Differences

This shows you the differences between two versions of the page.

Link to this comparison view

rl:labs:12 [2020/10/09 10:44]
florin.stancu swap with AWS
rl:labs:12 [2024/01/15 07:11] (current)
vlad_iulius.nastase [Topologie]
Line 1: Line 1:
 ~~NOTOC~~ ~~NOTOC~~
  
-====== Laborator 12. Amazon Web Services ​======+====== Laborator 12. Protocolul BGP ====== 
 + 
 +  * [[ https://​curs.upb.ro/​2023/​mod/​feedbackadm/​view.php?​id=9386 | Feedback CA]] 
 +  * [[ https://​curs.upb.ro/​2023/​mod/​feedbackadm/​view.php?​id=9388 | Feedback CB]] 
 +  * [[ https://​curs.upb.ro/​2023/​mod/​feedbackadm/​view.php?​id=9390 | Feedback CC]] 
 +  * [[ https://​curs.upb.ro/​2023/​mod/​feedbackadm/​view.php?​id=9392 | Feedback CD]] 
  
 ===== Cunoștințe și abilități ce vor fi dobândite ===== ===== Cunoștințe și abilități ce vor fi dobândite =====
  
-  * Administrarea resurselor cloud folosind consola grafică+  * Configurare eBGP
-  * Securitate în cloud+  * Configurare iBGP
-  * Configurarea rutării ​în cloud+  * Factori economici ​în rutarea dintre AS-uri
-  * Accesarea serviciilor de transfer de fișiere ​(FTP).+  * Internet eXchange Points ​(IXP).
  
 ===== Pregătire infrastructură de laborator ===== ===== Pregătire infrastructură de laborator =====
  
-  * Vom crea o infrastructură de rețea  ​în cloud-ul Amazon. +  * În cadrului laboratorului se va lucra cu suita [[https://​frrouting.org/​|FRRouting]] ​în cadrul unei infrastructuri virtualizate folosind [[https://​www.docker.com/​|Docker]] și [[https://www.openvswitch.org/|Open vSwitch]]. 
-  * Fiecare student va folosi ​[[https://rl-aws.root.sx|aplicația laboratorului]]. Pentru a vă loga, veți primi parola laboratorului din partea asistentului și veți avea astfel acces la credențialele pentru cloud.+  * Veți lucra în echipe de 2-3 studenți, conform indicațiilor asistentului. 
 +  * Pentru conectarea la infrastructură se va folosi comanda de mai jos. 
 +<code Bash> 
 +ssh -J your_user.here@fep.grid.pub.ro -p 2000+X root@10.9.2.74 
 +</​code>​
  
-<note warning>​ +===== Introducere =====
-Fiecare student își va denumi resursele astfel //​student<​X>//​_[nume_resursa]. De exemplu //​student1_//​VPC. +
-</​note>​+
  
-{{ :rl:labs:​nume_resurse.png?​400 ​|}}+Internetul din ziua de azi este compus din peste 45,000 de rețele diferite numite Autonomous Systems (AS). Un AS este reprezentat de un set de rețele ce aparțin aceleiași organizații sau țări. Exemple mari de AS-uri sunt Google, Facebook, Sprint. Chiar și RoEduNet este un AS. [[https://​bgpview.io/​reports/​countries#​countries-heatmap|Aici]] găsiți o hartă interactivă cu AS-urile prezente în momentul de față in internet, iar [[https://ipinfo.io/AS2614|aici]] găsiți detalii despre AS2614 (AARNIEC / RoEduNet).
  
-<​hidden>​https:/​/docs.google.com/document/​d/​1Gz-u4l68eCdQ0fKbZJB0Z3G4l0cGn-QYx6RT7PnRe2o/​edit</​hidden>​ +AS-urile pot fi împărțite în două clase mari, AS-uri de tranzit și stub. Un AS stub primește/trimite pachete în care sursa sau destinația sunt IP-uri din acest domeniu (e.gRDS va primi/trimite pachete în care sursa sau destinația în header-ul IP este un IP pe care RDS îl deține). În schimb, un AS de tranzit este un AS care oferă servicii de rutare altor domenii. Mai exact, într-un AS de tranzit sunt pachete a căror sursă și destinație nu aparțin neapărat AS-ului. Astăzi, peste 85% dintre AS-uri sunt de tip stub. În imaginea de mai jos 22, 87264, 57 și 4561 sunt stub, iar restul sunt tranzit. Mai mult de atât, AS-urile 57 și 87264 sunt multihomed.
-===== Prezentare concepte =====+
  
-Servicii de cloud existenteAmazon Web Services, Google Cloud Platform și Microsoft Azure.+{{ :rl:​labs:​12:​as_stub_transit.png?​direct&​400 |}}
  
-Mai departe discutăm despre AWS; serviciile pe care le vom folosi în cadrul laboratorului:​ +=== Internet eXchange Points (IXP) ===
-  * Compute: EC2 +
-  * Networking and Content Delivery: VPC+
  
-Alte servicii ​în cloud-ul Amazon: +O soluție folosită astăzi pentru a permite unui număr mare de AS-uri să se interconecteze este crearea de Internet eXchange Points (IXP). În general, un IXP reprezintă o grupare de routere, aparținând unor AS-uri diferite, colocate și interconectate într-o locație neutră, precum un datacenter. Practic, pentru fiecare AS care vrea să participe la interconectare,​ va exista un router ​în acest datacenter care e legat la AS-ul din care acesta face parte și la un switch din datacenter ​(vor fi în același LAN și vor putea trimite informații între ele). La acesta sunt legate și alte routere din domenii care vor să se interconecteze.
-  * Storage - Amazon Simple Storage Service ​(Amazon S3) +
-  * Database +
-  * Machine Learning +
-  * Analytics +
-  * AR&VR +
-  * Mobile+
  
-**EC2 (Amazon Elastic Compute Cloud)** oferă capacitate dinamică computațională în cloud. De asemenea, pentru a dezvolta și lansa aplicații nu mai ai nevoie să îți achiziționezi hardware-ul,​ acest serviciu punându-ți la dispozițieservere virtuale, configurarea securității și networking, ajustarea spațiului de stocare.+{{ :rl:labs:12:IXP.png?​direct&​400 |}}
  
-{{:​rl:​labs:​virtual_private_cloud.png?​200 | }} \\  ​+=== Factorul economic ===
  
-**Virtual Private Cloud** te ajută să pornești resursele Amazon într-o rețea virtuală definită de tineAceastă rețea seamănă cu o rețea tradițională unde poțconfigura spații de adresetabele ​de rutare, gateways și setări de securitate, dar are în plus beneficiile utilizării unui infrastructuri scalabile precum AWS. Fiecare VPC creat este izolat logic de oricare alt VPC din cloud.+În primele zile ale internetului,​ domenilor schimbau între ele toate rutele ​știuteTotuși, internetul din ziua de azi are la baza factorul economic. Între AS-uri există mai multe tipuri ​de relații economice:
  
-Fiecare cont Amazon vine cu un VPC prestabilit pentru a putea să folosești resursele Amazon fără să îți construiești infrastructura de la zero. O diagrama simplă pentru un VPC avem în alăturată.+  * customer - provider 
 +  * shared-cost peering
  
-Două sau mai multe VPC-uri pot comunica atâta timp cât se află în aceeași regiuneÎn plus VPC-urile ale căror blocuri de adrese IP se suprapun nu pot comunica. \\  \\  ​+{{ :​rl:​labs:​12:​money.png?​direct&​400 |}}
  
-3 tipuri ​de adrese IP: +În imaginea ​de mai sus, AS7 plătește AS4 pentru ​îl folosi ca un AS de tranzit. Legăturile cu $ sunt de tip customer ​-> provider. În schimb legăturile mov sunt de tip shared-cost peeringDe exempluAS3 și AS4 ambele plătesc AS1 pentru a îl folosi ca AS de tranzitAstfel, entitățile care dețin AS3 șAS4 pot alege să facă peering între ​ele și să plătească doar un link cu AS1.
-  * adrese IP private +
-  * adrese IP publice. O adresă publică ce fost atribuită unei instanțe pe care am închis-o va reveni în pool-ul inițial ​de adreseCând vom reporni instanțaaceasta va avea o altă adresă IP publică. +
-  * adrese IP publice statice sunt adrese IP publice care rămân asociate contului tău Amazon până în momentul în care alegi să renunți la ele.+
  
-<note tip> +=== Protocolul BGP === 
-Care este diferența ​între ​adrese IP private ​și adresele IP publice? +În ziua de astăzi ​este folosit un singur protocol pentru rutare ​între ​AS-uri, Border Gateway Protocol (BGP). BGP rulează peste TCP și este un protocol de tip path vector (vectorul distanțelor,​ similar cu RIP). Fiecare AS este reprezentat de un ID (integer) unic. În cazul anunțurilor de rute, BGP anunță un prefix, cât și drumul până la acesta. Acest drum reprezintă o listă de AS-uri. Astfel este evitată [[https://​en.wikipedia.org/​wiki/Distance-vector_routing_protocol#​Count_to_infinity_problem|problema numărării la infinit]].
-</note>+
  
-**Subnet** ​interval de adrese IP într-un VPCPoți să lansezi resursele Amazon într-un subnet pe care îl creezi, la alegere.+În mod istoric, BGP este un protocol care se baza pe încredere. Acest lucru a făcut posibile incidente precum: 
 +  ​Un ISP din Pakistan care a anunțat, în 2008, rute pentru Youtube în internet, tăind accesul la acesta. [[https://​www.wired.com/​2008/​02/​pakistans-accid/​]] 
 +  ​Un ISP din Rusia a rutat traficul serviciilor bancare (Visa, Mastercard) prin Rusia. [[https://​arstechnica.com/​information-technology/​2017/​04/​russian-controlled-telecom-hijacks-financial-services-internet-traffic/​]] 
 +  * [[https://​en.wikipedia.org/​wiki/​AS_7007_incident|AS7007 incident]] 
 +În prezent, se încearcă adoptarea [[https://​blog.cloudflare.com/​rpki|RPKI]] pentru validarea folosind certificate a update-urilor BGP.
  
-În Amazon avem două tipuri ​de **subnets**:​ +== Tipuri ​de mesaje ==
-  * **Publice** (atunci când resursele trebuie să aibă acces direct în Internet, de exemplu serverele web). Un subnet este făcut public atunci când există o rută în tabela de rutare care trimite traficul în Internet printr-un Internet Gateway. +
-  * **Private** (atunci când resursele nu trebuie să aibă acces direct în Internet, de exemplu bazele de date)+
  
-<note important>​ +  * OPEN: mesajul ​de OPEN este trimis imediat ce conexiunea TCP dintre două routere ​este realizată. Acest mesaj inițializează sesiunea BGP și facilitează negocierea mai multor opțiuni ​pentru ​protocol. 
-În fiecare subnet, primele 4 adrese IP și ultima adresă IP nu pot fi folosite ​de utilizatori:​ +  * NOTIFICATION:​ mesajul NOTIFICATION ​este folosit ​pentru a închide sesiuni BGP. În general, acest mesaj este trimis atunci când apar erori. 
-  * Prima este adresă de rețea +  * UPDATE: mesajul ​este folosit pentru a anunța noi rute sau modificări la rutele existente. Spre deosebire ​de alți algoritmi de tip vector distance, BGP trimite doar update-uri cu schimbări, nu întreaga tabelă de rutare la fiecare update. 
-  * A doua este rezervată pentru ​ruter-ul VPC-ului +  * KEEPALIVE: mesajul ​este trimis regulat și este folosit pentru a confirma că routerul peer este conectat. În cazul în care pentru o perioadă ​de 90 de secunde nu primim un mesaj de tip KEEPALIVE de la un peer, înseamnă că sesiunea este down și trebuie să anunțăm retragerea tuturor rutelor prin acest peer.
-  * A treia este rezervată de AWS pentru ​serverul DNS (în general adresa de rețea ​subnet-ului plus doi) +
-  * A patra este rezervată de AWS pentru viitoare utilizări +
-  * Ultima ​este adresa ​de broadcast +
-</​note>​+
  
-**Internet Gateway**. IGW este o componentă a VPC-ului care permite comunicarea între instanțele din VPC șInternet. Pentru a comunica cu o instanță din subnet-ul public, este necesar ca instanța să aibă alocată o adresă IP publică statică. \\ +Găsiți un exemplu de captură de mesaje BGP în următoarea [[https://​www.cloudshark.org/​captures/​89f1795591f6|captură de pe Cloudshark]].
  
-<note warning> 
-Poți crea un singur obiect IGW per VPC. 
-</​note>​ 
- 
-**Tabela de rutare**. Fiecare subnet dintr-un VPC trebuie să aibă asociată o tabelă de rutare. Un subnet poate fi asociat numai cu o singură tabelă de rutare la un moment dat, dar o tabelă de rutare poate fi asociată cu mai multe subnet-uri. 
- 
-{{:​rl:​labs:​nat_device.png?​200 |}} 
- 
-Pentru ca instanțele create într-un subnet privat să acceseze Internetul (dar să nu fie accesate din Internet) putem folosi un obiect AWS numit NAT Device (Network Address Translation Device). 
-(exemplu: web serverul este în subnet-ul public și baza de date în subnet-ul privat. Baza de date s-ar putea să aibă nevoie de conexiune la Internet) 
- 
-**NAT Gateway** - serviciu AWS de management al traficului. Folosim un NAT Gateway pentru a permite instanțelor dintr-un subnet privat să aibă acces la Internet sau la alte servicii AWS și în același timp pentru a fi inițiate conexiuni din Internet către stațiile din acel subnet. 
- 
-{{:​rl:​labs:​security_group.png?​100 |}} 
- 
-Un **Security Group** acționează ca un firewall virtual care controlează traficul pentru una sau mai multe instanțe. Putem adăuga reguli pentru fiecare Security Group care să permită traficul către/de la instanțele asociate. 
- 
-Prestabilit,​ fiecare Security Groups permite tot traficul de ieșire. Regulile unui Security Group sunt întotdeauna permisive (nu putem adăuga o regulă de „deny”);​ Un Security Group este stateful (dacă o instanță face o cerere, răspunsul va ajunge la instanță indiferent de regulile de intrare din Security Group). 
-Modificările făcute asupra regulilor dintr-un Security Group se aplică în timp real. 
- 
-Un **Network ACL** (Access Control List) oferă un nivel opțional de securitate pentru VPC și acționează ca un firewall pentru controlul traficului de intrare și de ieșire pentru unul sau mai multe subnet-uri. ​ 
- 
- 
-<note tip>​Pentru mai multe detalii despre funcționarea VPC-urilor și resursele AWS, urmăriți [[https://​www.youtube.com/​watch?​v=fpxDGU2KdkA|tutorialul]]. ​ 
- 
-Documentație AWS: 
- 
-[[https://​docs.aws.amazon.com/​vpc/​latest/​userguide/​VPC_Networking.html|VPC Networking Components]] \\  
-[[https://​docs.aws.amazon.com/​vpc/​latest/​userguide/​VPC_Subnets.html|VPC and Subnets]] \\  
-[[https://​docs.aws.amazon.com/​vpc/​latest/​userguide/​vpc-eips.html|Elastic IP Addresses]] \\  
-[[https://​docs.aws.amazon.com/​AWSEC2/​latest/​UserGuide/​concepts.html|Amazon EC2]] 
-</​note>​ 
  
 +== Extensii BGP ==
 +În implementarea protocolului,​ pentru a fi mai ușor de configurat, avem două mari extensii:
 +  * External Border Gateway Protocol (eBGP) - Extensie a protocolului BGP folosit pentru comunicarea în exteriorul unui AS. 
 +  * Interior Border Gateway Protocol (iBGP) - Extensie a protocolului BGP folosit pentru comunicarea în interiorul unui AS. Practic, rutele care sunt aflate folosind EBGP vor fi sumarizate în AS folosind iBGP.
  
 ===== Topologie ===== ===== Topologie =====
  
-{{ :rl:​labs:​topologie.png?600 |}}+În topologia laboratorului curent, fiecare grupă va administra un AS cu un spațiu de adrese de forma ''​X.0.0.0/​8'',​ unde ''​X''​ este numărul grupei. 
 +Acest spațiu de adrese este împărțit conform topologiei de mai jos, astfel: 
 +  * Legătura cu IXP-ul va avea un IP din rețeaua ''​180.22.0.0/​24'',​ de forma ''​180.22.0.X'',​ unde ''​X''​ este numărul grupei / AS-ului. Spre exemplu, AS 13 va avea pe interfața către IXP IP-ul ''​180.22.0.13''​. IXP-ul va avea IP-ul ''​180.22.0.22''​. 
 +  * Subrețeaua dintre ''​LOND''​ și ''​PARI''​ va folosi spațiul ''​X.0.1.0/​24''​ 
 +      * ''​X.0.1.1''​ pentru ''​LOND''​ 
 +      * ''​X.0.1.2''​ pentru ''​PARI''​ 
 +  * Subrețeaua dintre ''​LOND''​ și ''​BERL''​ va folosi spațiul ''​X.0.2.0/​24''​ 
 +      * ''​X.0.2.2''​ pentru ''​LOND''​ 
 +      * ''​X.0.2.1''​ pentru ''​PARI''​ 
 +  * Subrețeaua dintre ''​PARI''​ și ''​BUCH''​ va folosi spațiul ''​X.0.3.0/​24''​ 
 +      * ''​X.0.3.1''​ pentru ''​PARI''​ 
 +      * ''​X.0.3.2''​ pentru ''​BUCH''​ 
 +  * Subrețeaua dintre ''​BERL''​ și ''​BUCH''​ va folosi spațiul ''​X.0.4.0/​24''​ 
 +      * ''​X.0.4.2''​ pentru ''​BERL''​ 
 +      * ''​X.0.4.1''​ pentru ''​BUCH''​ 
 +  * Subrețeaua dintre ''​BUCH''​ și ''​host''​ va folosi spațiul de adrese ''​X.104.0.0/​24''​
  
 +Mai mult, fiecare router va avea configurate următoarele adrese de loopback:
 +  * ''​X.151.0.1''​ pentru ''​LOND''​
 +  * ''​X.152.0.1''​ pentru ''​PARI''​
 +  * ''​X.153.0.1''​ pentru ''​BERL''​
 +  * ''​X.154.0.1''​ pentru ''​BUCH''​
 + 
  
 +{{ :​rl:​labs:​12:​bgp_routers2.png?​direct |}}
 ===== Navigare ===== ===== Navigare =====
  
-**[[:​rl:​labs:​06|Laboratorul ​6]]** +**[[:​rl:​labs:​12|Laboratorul ​12]]** 
-{{page>:​rl:​labs:​06:​meta:​nav&​nofooter&​noeditbutton}}+{{page>:​rl:​labs:​12:​meta:​nav&​nofooter&​noeditbutton}}
  
 ===== Exerciții ===== ===== Exerciții =====
  
-Dorim să ne creăm propriul VPC și să obținem o rețea funcțională conform topologiei de mai sus. Următoarele exerciții constituie pașii de parcurgere pentru ca la final să putem folosi rețeaua. +{{namespace>:​rl:​labs:​12:​contents&​nofooter&​noeditbutton}}
- +
-<note important>​ +
-Deși fiecare student primește câte un username separat, organizația AWS folosită (sponsorizată de către Bitdefender) este numai una, iar aceasta definește namespace-ul tuturor resurselor. De aici rezultă **principala limitare**, faptul că **o să puteți vedea și interacționa cu TOATE obiectele create de către fiecare student** (i.e., resursele sunt partajate între utilizatori). +
- +
-Mai mult, veți putea vedea și niște resurse prefixate cu ''​admin_''​. Acestea sunt folosite pentru găzduirea aplicației de gestiune a conturilor, încercați să nu vă atingeți de ele (deși am implementat restricții de acces, dacă cineva reușește să șteargă / facă aplicația nefuncțională well... o să ne mai vedem și la toamnă / anul :P). +
- +
-Permisiuni atribuite utilizatorilor student: doar de creare resurse, modificat unde este necesar, taguit doar cu prefixul ''​student<​X>​_'',​ fără drept de ștergere și alte acțiuni ne-necesare laboratorului. +
-</​note>​ +
- +
-{{namespace>:​rl:​labs:​06:​contents&​nofooter&​noeditbutton}}+
  
rl/labs/12.1602229498.txt.gz · Last modified: 2020/10/09 10:44 by florin.stancu
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0