Differences

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

Link to this comparison view

pc:laboratoare:09_bgp [2022/05/02 12:12]
vlad_andrei.badoiu [Rutare interdomain]
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 rețele diferite numite domenii (domains). Un domeniu este reprezentat de un set de rutere ce aparțîn 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 o harta interactivă cu domeniile prezente în momentul de față 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 o hartă ​interactivă cu domeniile prezente în momentul de față in internet.
  
-Domenile pot fi împărțite în două clase, domenii de **tranzit** și **stub**. Un domeniu stub primește/​trimite pachete în care sursă ​sau destinația sunt hosts din acest domeniu(e.g. RDS va primit/trimite pachete în care sursă ​sau destinată ​î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 ​alto 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.+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.1651482745.txt.gz · Last modified: 2022/05/02 12:12 by vlad_andrei.badoiu
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