Differences

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

Link to this comparison view

pc:laboratoare:09_bgp [2022/05/02 11:56]
mihai.dumitru2201
pc:laboratoare:09_bgp [2022/05/23 01:12] (current)
vlad_andrei.badoiu [Exerciții]
Line 3: Line 3:
 ====Lectură laborator ==== ====Lectură laborator ====
 De citit înainte de laborator: De citit înainte de laborator:
-  * [[https://​www.computer-networking.info/​2nd/​html/​protocols/​bgp.html#​interdomain-routing|Interdomain routing]]+  * [[https://​www.computer-networking.info/​2nd/​html/​protocols/​bgp.html#​Interdomain ​routing|Interdomain routing]]
   * [[https://​www.computer-networking.info/​2nd/​html/​protocols/​bgp.html#​the-border-gateway-protocol|BGP]]   * [[https://​www.computer-networking.info/​2nd/​html/​protocols/​bgp.html#​the-border-gateway-protocol|BGP]]
  
Line 66: Line 66:
 </​hidden>​ </​hidden>​
 ==== Rutare interdomain ==== ==== Rutare interdomain ====
-Internetul din ziua de azi este compus din peste 45,000 de retele ​diferite numite domenii (domains). Un domeniu este reprezentat de un set de rutere ce apartin aceleasi organizatii ​(e.g. RDS, sau chiar al unei tari). Exemple mari de domenii sunt google, facebook, sprint. Chiar si [[https://​www.roedu.net/​|RoEduNet]] este un domeniu. [[https://​bgpview.io/​reports/​countries#​countries-heatmap|Aici]] ​gasiti ​harta interactiva ​cu domeniile prezente ​in momentul de fata in internet.+Internetul din ziua de azi este compus din peste 45,000 de rețele ​diferite numite domenii (domains). Un domeniu este reprezentat de un set de rutere ce aparțin aceleași organizații ​(e.g. RDS, sau chiar al unei țări). Exemple mari de domenii sunt google, facebook, sprint. Chiar și [[https://​www.roedu.net/​|RoEduNet]] este un domeniu. [[https://​bgpview.io/​reports/​countries#​countries-heatmap|Aici]] ​găsiți ​hartă interactivă ​cu domeniile prezente ​în momentul de față ​in internet.
  
-Domenile pot fi impartite in doua clase, domenii de **tranzit** ​si **stub**. Un domeniu stub primeste/trimite pachete ​in care sursa sau destinatia ​sunt hosts din acest domeniu(e.g. RDS va primit/trimite pachete ​in care sursa sau destinata in header-ul IP este un IP pe care RDS il detine). In schimb, un domeniu de tranzit este un domeniu care ofera servicii de rutare ​alto domenii, mai exact intr-un domeniu de tranzit sunt pachete a caror sursa si destinatie ​nu apartin ​domeniului. ​Astazi, peste 85% dintre domenii sunt de tip stub. In imaginea de mai jos, domenile T1,T2 si T3 sunt de tranzit, iar S1,S2,S3,S4 sunt stub.+Domenile pot fi împărțite în două clase, domenii de **tranzit** ​și **stub**. Un domeniu stub primește/trimite pachete ​în care sursa sau destinația ​sunt hosts 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 ​domeniului. ​Astăzi, peste 85% dintre domenii sunt de tip stub. În imaginea de mai jos, domenile T1, T2 și T3 sunt de tranzit, iar S1, S2, S3, S4 sunt stub.
  
 {{:​pc:​laboratoare:​network-fig-089-c.png?​300|}} {{:​pc:​laboratoare:​network-fig-089-c.png?​300|}}
Line 76: Line 76:
  
 === Internet eXchange Points (IXP) === === Internet eXchange Points (IXP) ===
-solutie folosita astazi ​pentru a permite unui numar mare de domenii ​sa se interconecteze este Internet eXchange Points (IXP). ​In general, un IXP reprezinta ​mai multe routere dintr-un datacenter care fac parte din domenii diferite. Practic, pentru fiecare domeniu care vrea sa participe la interconectare ,va exista un router ​in acest datacenter care e legat la domeniul din care acesta face parte si la un switch din datacenter (vor fi in acelasi ​LAN si vor putea trimite ​informatii intre ele) la care sunt legate ​si alte routere din domenii care vor sa se interconecteze. Vedem in imaginea de mai jos un astfel de exemplu. IXP este popular ​in Europa+ 
 +soluție folosită astăzi ​pentru a permite unui număr ​mare de domenii ​să se interconecteze este Internet eXchange Points (IXP). ​În general, un IXP reprezintă ​mai multe routere dintr-un datacenter care fac parte din domenii diferite. Practic, pentru fiecare domeniu care vrea să participe la interconectare,​ va exista un router ​în acest datacenter care e legat la domeniul 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 care sunt legate ​și alte routere din domenii care vor să se interconecteze. Vedem în imaginea de mai jos un astfel de exemplu. IXP este popular ​în Europa.
  
 {{:​pc:​laboratoare:​network-fig-103-c.png?​400|}} {{:​pc:​laboratoare:​network-fig-103-c.png?​400|}}
  
 === Factorul economic === === Factorul economic ===
-In primele zile ale internetului,​ domenilor schimbau ​intre ele toate rutele ​stiuteTotusi, internetul din ziua de azi are la baza factorul economic. ​Intre domenii ​exista ​mai multe tipuri de relatii ​economice:+ 
 +În primele zile ale internetului,​ domenilor schimbau ​între ​ele toate rutele ​știuteTotuși, internetul din ziua de azi are la baza factorul economic. ​Între ​domenii ​există ​mai multe tipuri de relații ​economice:
  
   * customer->​provider   * customer->​provider
Line 88: Line 90:
 {{:​pc:​laboratoare:​network-fig-106-c.png?​300|}} {{:​pc:​laboratoare:​network-fig-106-c.png?​300|}}
  
-In imaginea de mai sus, AS7 plateste ​AS4 pentru a il folosi ca un AS de tranzit. ​Legaturile ​cu $ sunt de tip customer -> provider. ​In schimb ​legaturile ​mov sunt de tip shared-cost peering. De exemplu, AS3 si AS4 ambele ​platesc ​AS1 pentru a il folosi ca AS de tranzit. Astfel, ​entitatile ​care detin AS3 si AS4 pot alege sa faca peering ​intre ei si sa plateasca ​doar un link cu AS1.+În imaginea de mai sus, AS7 plătește ​AS4 pentru a îl folosi ca un AȘ 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.
  
-==== BGP protocol==== +==== BGP protocol ==== 
-In ziua de astazi ​este folosit un singur protocol pentru rutare interdomain,​ Border Gateway Protocol (BGP). BGP ruleaza ​peste TCP si este un protocol de tip path vector (vectorul ​distantelor, similar cu RIP). Vom folosi termenul de Autonomous System (AS) pentru a referi la domeniile din internet. Fiecare AS este reprezentat de un ID (integer) unic. In cazul anunturilor ​de rute, BGP anunta ​un prefix ​cat si drumul ​pana la acesta. Acest drum reprezinta ​lista de AS-uri, astfel este evitata ​problema ​numararii ​la infinit.+În ziua de astăzi ​este folosit un singur protocol pentru rutare interdomain,​ Border Gateway Protocol (BGP). BGP rulează ​peste TCP și este un protocol de tip path vector (vectorul ​distanțelor, similar cu RIP). Vom folosi termenul de Autonomous System (AS) pentru a ne referi la domeniile din internet. 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ă ​listă ​de AS-uri, astfel este evitată ​problema ​numărării ​la infinit.
  
-BGP este un protocol care se bazeaza ​pe incredere. De exemplu, ​in 2004 tot traficul din lume a fost redirectat prin Turcia deoarece ​acestia ​au anuntat ​un prefx gresit.+BGP este un protocol care se bazează ​pe încredere. De exemplu, ​în 2004tot traficul din lume a fost redirectat prin Turciadeoarece ​aceștia ​au anunțat ​un prefix greșit.
  
 == Tipuri de mesaje == == Tipuri de mesaje ==
  
-  * OPEN: Mesajul ​de OPEN este trimis imediat ce conexiunea TCP dintr-o doua routere este realizata. Acest mesaj initializeaza ​sesiunea BGP si faciliteaza ​negocierea mai multor ​optiuni ​pentru protocol +  * 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. 
-  * NOTIFICATION: ​Mesajul ​NOTIFICATION este folosit pentru a inchide ​sesiuni BGP. In general, acest mesaj este trimis atunci ​cand apar erori. +  * NOTIFICATION: ​mesajul ​NOTIFICATION este folosit pentru a închide ​sesiuni BGP. În general, acest mesaj este trimis atunci ​când apar erori. 
-  * UPDATE: mesajul este folosit pentru a anunta ​noi rute sau modificari ​la rutele existente. ​ Spre deosebire de alti algoritmi de tip vector distance, BGP trimite doar update-uri cu schimbari, nu intreaga tabela ​de rutare la fiecare update. +  * 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. 
-  * KEEPALIVE: mesajul este trimis regulat ​si este folosit pentru a confirma ​ca routerul peer este conectat. ​In cazul in care pentru o perioada ​de 90 de secunde nu primim un mesaj de tip KEEPALIVE de la un peer, inseamna ca sesiunea este down si trebuie ​sa anuntam ​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.
  
-Gasiti ​un exemplu de captura ​de mesaje ​bgp in urmatoarea [[https://​www.cloudshark.org/​captures/​89f1795591f6|captura ​de pe Cloudshark]]. ​Studiati ​cu atentie ​aceste mesaje.+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.
  
  
-== Extensii ​BGB == +== Extensii ​BGP == 
-In implementarea protocolului, ​pentur ​a fi mai usor de configurat avem doua mari extensii: +În implementarea protocolului, ​pentru ​a fi mai ușor de configuratavem două mari extensii: 
-  * External Border Gateway Protocol (EBGP) - Extensie a protocolului BGP folosit pentru comunicarea ​in 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 ​in interiorul unui AS. Practic rutele care sunt aflate folosind EBGP vor fi sumarizate ​in AS folosind IBGP.+  * Interior Border Gateway Protocol (IBGP) - Extensie a protocolului BGP folosit pentru comunicarea ​în interiorul unui AS. Practicrutele care sunt aflate folosind EBGP vor fi sumarizate ​în AS folosind IBGP.
 ==== Informatii utilizare infrastructura laborator - FFRouting ==== ==== Informatii utilizare infrastructura laborator - FFRouting ====
 În cadrul acestui laborator veți lucra folosind suita FRRouting. FRRouting combină mai multe daemonuri de rutare într-o interfață similară cu a Cisco iOS (sistem de operare de pe routere CISCO). [[https://​frrouting.org/​|FRRouting]] În cadrul acestui laborator veți lucra folosind suita FRRouting. FRRouting combină mai multe daemonuri de rutare într-o interfață similară cu a Cisco iOS (sistem de operare de pe routere CISCO). [[https://​frrouting.org/​|FRRouting]]
Line 247: Line 249:
  
  
-==== Exercitii ​==== +==== Exerciții ​====
- +
-Pentru acest laborator veți lucra în echipe de câte 2-3 persoane. În cadrul laboratorului vom simula că suntem administratorii unui datacenter al firmei Aperture DC cu locații în Paris, Londra, Berlin și București, având următoarea topologie: ​+
  
 <​note>​ <​note>​
-In cadrul laboratorului ​veti lucra la un mic internet. Celelalte grupe vor fi si ei participanti in acest internet cu propriul lor AS.+În cadrul laboratorului ​veți lucra la un mic internet. Celelalte grupe vor fi și ei participanți în acest internet cu propriul lor AS.
 </​note>​ </​note>​
 +
 +Pentru acest laborator veți lucra în echipe de câte 2-3 persoane. În cadrul laboratorului vom simula că suntem administratorii unui datacenter al firmei Aperture DC cu locații în Paris, Londra, Berlin și București, având următoarea topologie: ​
  
 {{:​pc:​laboratoare:​worldmap_topology_lab5.png?​400|}} {{:​pc:​laboratoare:​topology_lab9.png?​300|}} {{:​pc:​laboratoare:​worldmap_topology_lab5.png?​400|}} {{:​pc:​laboratoare:​topology_lab9.png?​300|}}
  
-Vom configura iBGP pe routerele ​BerlinParis is Buch, pe cand pe LOND vom configura eBGP. IXP  este **AS 21**. OSPF ruleaza ​deja pe toate ruterele.+Vom configura iBGP pe routerele ​BERLPARI si BUCH, pe când pe LOND vom configura eBGP. IXP  este **AS 21**. OSPF rulează ​deja pe toate ruterele.
  
 <​note>​ <​note>​
-Routerele ​ruleaza ​deja OSPF si sunt configurate cu IP-uri din blocul <group number>​.0.0.0/​8. Putem folosi `show ip interface brief` pentru a vedea IP-urile asignate pe o interfata. IP-urile de pe interfete ​sunt urmatoarele:+Routerele ​rulează ​deja OSPF și sunt configurate cu IP-uri din blocul <group number>​.0.0.0/​8. Putem folosi `show interface brief` pentru a vedea IP-urile asignate pe o interfață. IP-urile de pe interfețe ​sunt următoarele:
  
 LOND: <group number>​.0.1.1 si <group number>​.0.2.2 LOND: <group number>​.0.1.1 si <group number>​.0.2.2
Line 272: Line 274:
  
  
-**1.** ​Configurati ​BGP peering cu IXP. In acest exercitiu ​vom configura eBGP pentru a participa la internet, practic vom face cunoscut IXP-ului rutele noastre. ​Aceasta operatie ​va fi realizata ​pe router-ul conectat la IXP, mai exact LOND. +**1.** ​Configurați ​BGP peering cu IXP. În acest exercițiu ​vom configura eBGP pentru a participa la internet, practic vom face cunoscut IXP-ului rutele noastre. ​Această operație ​va fi realizată ​pe router-ul conectat la IXP, mai exact LOND. 
-**1.1** ​Configurati ​regulile de import pentru IXP + 
-**1.2** ​Configurati ​regulile de export pentru IXP.+**1.1** ​Configurați ​regulile de import pentru IXP 
 + 
 +**1.2** ​Configurați ​regulile de export pentru IXP.
 <​note>​ <​note>​
-Pentru peering la IXP vom folosi 180.21.0.<​numar_as>/​24. Mai jos aveti un exemplu de cum este configurat IP-ul pe interfata legata ​la IXP din LOND.+Puteti verifica ca totul merge bine folosind comanda `show ip bgp` si `show ip route`. Comenzile vor afisa rutele invatate prin BGP. 
 +</​note>​ 
 + 
 +Pentru peering la IXP vom folosi 180.21.0.<​numar_as>/​24. Mai jos aveți ​un exemplu de cum este configurat IP-ul pe interfață legată ​la IXP din LOND.
 <​code>​ <​code>​
 ! For AS 2, we set the following IP on the link to the IXP. ! For AS 2, we set the following IP on the link to the IXP.
 interface ixp_21 interface ixp_21
  ip address 180.21.0.2/​24  ip address 180.21.0.2/​24
 +</​code>​
 +
 +**2.** Configurați iBGP în full mesh pentru a redistribui intern rutele aflate folosind BGP. Găsiți [[https://​www.drumato.com/​posts/​simple-ibgp-rr-with-frr/​|aici]] un mic exemplu.
 +
 +<​note>​
 +Veți ajunge în situația în care puteți de pe routerul LOND să dați ping routerelor LOND din AS-urile colegilor; ping către alte routere din AS-uri străine, sau ping de pe un alt router din AS-ul vostru către un AS străin nu va merge.
 +Motivul este pentru că, deși routerele învață prin BGP cum să ajungă în alte AS-uri, nu știu cum să ajungă la următorul hop (interfața către IXP a routerului de la granița AS-ului respectiv).
 +Corectați configurația OSPF astfel încât routerul LOND să propage informații despre această rețea:
 +<​code>​
 +router ospf
 +  redistribute connected
 </​code>​ </​code>​
 </​note>​ </​note>​
  
-**2.** Configurati iBGP in full mesh pentru a redistribui intern rutele aflate ​folosind ​BGPGasiti [[https://​www.drumato.com/​posts/​simple-ibgp-rr-with-frr/​|aici]] un mic exemplu.+**3.** Testați dacă aveți conexiune la AS-urile colegilor ​folosind ​pingPuteți verifică prefixele primite de la IXP folosind comandă `show ip bgp`.
  
-**3.** Testati daca aveti conexiune la AS-uriel colegilor folosind pingPuteti verifica prefixele primite de la IXP folosind comanda `show ip bgp`+**4.** Citiți articolul [[https://​www.theverge.com/​2021/​10/​4/​22709260/​what-is-bgp-border-gateway-protocol-explainer-internet-facebook-outage|What is BGP, and what role did it play in Facebook’s massive outage]] și explicația ce a cauzat întreruperea serviciilor Facebook pentru aproape o zi de acum 6 luni.
  
-**4.** Cititi articolul ​[[https://​www.theverge.com/2021/​10/​4/​22709260/​what-is-bgp-border-gateway-protocol-explainer-internet-facebook-outage|What is BGP, and what role did it play in Facebook’s massive outage]] si explicatia ce cauzat intreruperea serviciilor Facebook pentru aproape o zi de acum 6 luni.+**5.** **Bonus**. Filtrați după un prefix dat folosind ACL-uri. Găsiți ​[[https://​www.youtube.com/watch?​v=hirKpSVpcxg|aici]] o prezentare rapidă ​funcționalității ​de filtering.
  
-**5.** **Bonus**. Filtrati dupa un prefix dat folosin ACL-uri.- Gasiti ​[[https://www.youtube.com/watch?​v=hirKpSVpcxg|aici]] ​o prezentare rapdia a functionalitatii de filtering.+ 
 +<​note>​ 
 +O posibila solutie a laboratorului o gasiti ​[[https://ocw.cs.pub.ro/courses/​_media/​pc/​laboratoare/​solution.txt|aici]] 
 +</​note>​
  
pc/laboratoare/09_bgp.1651481782.txt.gz · Last modified: 2022/05/02 11:56 by mihai.dumitru2201
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