Differences

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

Link to this comparison view

rl:labs:12 [2024/01/05 19:01]
vlad_iulius.nastase
rl:labs:12 [2024/01/15 07:11] (current)
vlad_iulius.nastase [Topologie]
Line 3: Line 3:
 ====== Laborator 12. Protocolul BGP ====== ====== Laborator 12. Protocolul BGP ======
  
-  * [[ https://​curs.upb.ro/​mod/​feedbackadm/​view.php?​id=25122 | Feedback CA]] +  * [[ https://​curs.upb.ro/2023/​mod/​feedbackadm/​view.php?​id=9386 | Feedback CA]] 
-  * [[ https://​curs.upb.ro/​mod/​feedbackadm/​view.php?​id=25125 | Feedback CB]] +  * [[ https://​curs.upb.ro/2023/​mod/​feedbackadm/​view.php?​id=9388 | Feedback CB]] 
-  * [[ https://​curs.upb.ro/​mod/​feedbackadm/​view.php?​id=25128 | Feedback CC]]+  * [[ 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 =====
Line 20: Line 22:
   * Pentru conectarea la infrastructură se va folosi comanda de mai jos.   * Pentru conectarea la infrastructură se va folosi comanda de mai jos.
 <code Bash> <code Bash>
-ssh -J your_user.here@fep.grid.pub.ro -p 2000+X root@TODO+ssh -J your_user.here@fep.grid.pub.ro -p 2000+X root@10.9.2.74
 </​code>​ </​code>​
  
 ===== Introducere ===== ===== Introducere =====
  
-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 domeniile ​prezente în momentul de față in internet, iar [[https://​ipinfo.io/​AS2614|aici]] găsiți detalii despre AS2614 (AARNIEC / RoEduNet).+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).
  
-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.g. RDS 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 domeniu ​de tranzit este un domeniu ​care oferă servicii de rutare altor domenii. Mai exact, într-un ​domeniu ​de tranzit sunt pachete a căror sursă și destinație nu aparțin neapărat ​domeniului. Astăzi, peste 85% dintre ​domenii ​sunt de tip stub. În imaginea de mai jos TODO sunt stub si TODO sunt tranzit.+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.g. RDS 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.
  
-TOOD imagine+{{ :​rl:​labs:​12:​as_stub_transit.png?​direct&​400 |}}
  
 === Internet eXchange Points (IXP) === === Internet eXchange Points (IXP) ===
  
-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 aacesta ​sunt legate și alte routere din domenii care vor să se interconecteze. Vedem în imaginea de mai jos un astfel de exemplu.+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.
  
-TODO imagine+{{ :​rl:​labs:​12:​IXP.png?​direct&​400 |}}
  
 === Factorul economic === === Factorul economic ===
Line 44: Line 46:
   * shared-cost peering   * shared-cost peering
  
-TODO imagine+{{ :​rl:​labs:​12:​money.png?​direct&​400 |}}
  
 În imaginea de mai sus, AS7 plătește AS4 pentru a î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 peering. De exemplu, AS3 și AS4 ambele plătesc AS1 pentru a îl folosi ca AS de tranzit. Astfel, entitățile care dețin AS3 și AS4 pot alege să facă peering între ele și să plătească doar un link cu AS1. În imaginea de mai sus, AS7 plătește AS4 pentru a î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 peering. De exemplu, AS3 și AS4 ambele plătesc AS1 pentru a îl folosi ca AS de tranzit. Astfel, entitățile care dețin AS3 și AS4 pot alege să facă peering între ele și să plătească doar un link cu AS1.
Line 51: Line 53:
 Î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]]. Î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]].
  
-BGP este un protocol care se bazează ​pe încredere. ​De exemplu, în 2004tot traficul ​din lume fost redirectat ​prin Turciadeoarece aceștia au anunțat un prefix greșit.+Î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 2008rute pentru Youtube în internet, tăind accesul la acesta. [[https://​www.wired.com/​2008/​02/​pakistans-accid/​]] 
 +  * Un ISP din Rusia 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 prezentse încearcă adoptarea [[https://​blog.cloudflare.com/​rpki|RPKI]] pentru validarea folosind certificate a update-urilor BGP.
  
 == Tipuri de mesaje == == Tipuri de mesaje ==
Line 60: Line 66:
   * 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.   * 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.
  
-Găsiți un exemplu de captură de mesaje BGP în urmatoarea ​[[https://​www.cloudshark.org/​captures/​89f1795591f6|captură de pe Cloudshark]]. Studiați cu atenție aceste mesaje.+Găsiți un exemplu de captură de mesaje BGP în următoarea ​[[https://​www.cloudshark.org/​captures/​89f1795591f6|captură de pe Cloudshark]].
  
  
 == Extensii BGP == == Extensii BGP ==
 În implementarea protocolului,​ pentru a fi mai ușor de configurat, avem două mari extensii: Î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.  +  * 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.+  * 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 =====
  
-TODO+Î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 =====
  
Line 78: Line 107:
  
 ===== Exerciții ===== ===== Exerciții =====
- 
-TODO 
  
 {{namespace>:​rl:​labs:​12:​contents&​nofooter&​noeditbutton}} {{namespace>:​rl:​labs:​12:​contents&​nofooter&​noeditbutton}}
  
rl/labs/12.1704474077.txt.gz · Last modified: 2024/01/05 19:01 by vlad_iulius.nastase
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