Principi rada BGP protokola

Danes bomo obravnavali protokol BGP. Ne bomo se predolgo ukvarjali s tem, zakaj in kako se uporablja kot edini protokol. Obstaja precej informacij o tem, na primer tukaj.

Kaj je torej BGP? BGP je protokol dinamičnega usmerjanja, ki je edini EGP (External Gateway Protocol) protokol. Ta protokol se uporablja za gradnjo usmerjanja v internetu. Poglejmo, kako se vzpostavi sosedstvo med dvema BGP usmerjevalnikoma.

Principi rada BGP protokola
Poglejmo sosedstvo med Router1 in Router3. Nastavili jih bomo s pomočjo naslednjih ukazov:

router bgp 10
  network 192.168.12.0
  network 192.168.13.0
  neighbor 192.168.13.3 remote-as 10

router bgp 10
  network 192.168.13.0
  network 192.168.24.0
  neighbor 192.168.13.1 remote-as 10

Sosedstvo znotraj iste avtonomne sistema — AS 10. Po vnosu podatkov na usmerjevalniku, na primer na Router1, ta usmerjevalnik poskuša vzpostaviti sosedske odnose z usmerjevalnikom Router3. Začetno stanje, ko se še nič ne dogaja, se imenuje Idle. Takoj ko bo nastavljen BGP na Router1, bo začel poslušati TCP port 179 — prešel bo v stanje Povezivanje, in ko poskuša odpreti sejo z Router3, bo prešel v stanje Active.

Ko se seja vzpostavi med Router1 in Router3, pride do izmenjave Open sporočil. Ko to sporočilo pošlje Router1, bo to stanje imenovano Open Sent. Ko prejme Open sporočilo od Router3, preide v stanje Open Confirm. Poglejmo podrobneje Open sporočilo:

Principi rada BGP protokola
V tem sporočilu se prenašajo informacije o samem protokolu BGP, ki ga uporablja usmerjevalnik. Z izmenjavo Open sporočil Router1 in Router3 sporočata drug drugemu informacije o svojih nastavitvah. Preneseni so naslednji parametri:

  • Različica: to vključuje različico BGP, ki jo usmerjevalnik uporablja. Trenutna različica BGP je različica 4, ki je opisana v RFC 4271. Dva BGP usmerjevalnika se bosta trudila, da se dogovorita o združljivi različici; ko pride do neusklajenosti, BGP seja ne bo vzpostavljena.
  • Moja AS: to vključuje številko AS BGP usmerjevalnika, usmerjevalniki se morajo dogovoriti o številkah AS in določa tudi, ali bodo izvajali iBGP ali eBGP.
  • Čas zadrževanja: če BGP ne prejme nobenih keepalive ali posodobitvenih sporočil s druge strani za čas zadrževanja, bo razglasil drugo stran za 'mrtvo' in bo prekinil BGP sejo. Privzeto je čas zadrževanja nastavljen na 180 sekund na usmerjevalnikih Cisco IOS, sporočilo keepalive se pošilja vsakih 60 sekund. Oba usmerjevalnika se morata dogovoriti o času zadrževanja, sicer ne bo BGP seje.
  • BGP identifikator: to je lokalni BGP ID usmerjevalnika, ki se izbira kot pri OSPF:
    • Uporabite router-ID, ki je bil ročno nastavljen s pomočjo ukaza bgp router-id.
    • Uporabite največjo IP adresu na loopback vmesniku.
    • Uporabite največjo IP adresu na fizičnem vmesniku.
  • Neobvezni parametri: tukaj boste našli nekatere opcionalne sposobnosti BGP usmerjevalnika. To polje je bilo dodano, da bi bilo mogoče dodati nove funkcije BGP, ne da bi bilo treba ustvariti novo različico. Tukaj boste morda našli:
    • podporo za MP-BGP (Multi Protocol BGP).
    • podporo za Route Refresh.
    • podporo za 4-octet AS številke.

Za vzpostavitev sosedske povezave je potrebno izpolniti naslednje pogoje:

  • Število različice. Trenutna različica je 4.
  • Številka AS se mora ujemati s tisto, ki ste jo nastavili. neighbor 192.168.13.3 remote-as 10.
  • Router ID mora biti različen od soseda.

Če kateri koli od parametrov ne izpolnjuje teh pogojev, bo usmerjevalnik poslal Notification sporočilo, ki bo označilo napako. Po pošiljanju in prejemanju Open sporočil, sosedski odnosi preidejo v stanje ESTABLISHED. Po tem pa lahko usmerjevalniki izmenjujejo informacije o poteh in to naredijo s pomočjo Posodobi sporočil. Takšno Update sporočilo pošilja Router1 k Router3:

Principi rada BGP protokola

Tukaj so omrežja, o katerih poroča Router1, in Path attributes, ki so analogni meritvam. O Path attributes bomo govorili podrobneje. Tudi znotraj TCP seje se prenašajo Keepalive sporočila. Ta se sporočila po privzetku pošiljajo vsakih 60 sekund. To je Keepalive Timer. Če v času Hold Timerja ne bo prejeto Keepalive sporočilo, bo to pomenilo izgubo stika s sosedom. Po privzetku traja — 180 sekund.

Koristen tabelar.

Principi rada BGP protokola

Zdi se, da smo razumeli, kako usmerjevalniki med seboj prenašajo informacije, zdaj pa poskusimo razumeti logiko delovanja protokola BGP.

Za oglasitev katere koli poti v tabeli BGP, tako kot v protokolih IGP, se uporablja ukaz network, vendar logika delovanja odstopa. Če v IGP po navedbi poti v ukazu network, IGP preveri, kateri vmesniki pripadajo temu podomrežju in jih vključi v svojo tabelo, potem ukaz network v BGP preverja v tabeli usmerjanja in išče natančno ujema z potjo v ukazu network. Ko najde take, pridejo te poti v tabelo BGP.

Išči pot v trenutni IP tabeli usmerjanja usmerjevalnika, ki se natančno ujema s parametri ukaza network; če IP pot obstaja, daj ekvivalentni NLRI v lokalno BGP tabelo.

Zdaj bomo dvignili BGP na vseh preostalih in pogledali, kako poteka izbira poti znotraj enega AS. Po tem, ko BGP usmerjevalnik prejme poti od soseda, se začne izbira optimalne poti. Tukaj je treba razumeti, kakšne vrste sosedje so lahko — notranji in zunanji. Usmerjevalnik s konfiguracijo razume, ali je konfigurirani sosed notranji ali zunanji? Če je v ukazu:

neighbor 192.168.13.3 remote-as 10 

Kot parametra remote-as je AS, ki je konfiguriran na usmerjevalniku v ukazu router bgp 10. Pot, ki prihaja iz notranjega AS, velja za notranjo, pot iz zunanjega pa za zunanjo. Različna logika pridobivanja in pošiljanja deluje za vsako od njih. Poglejmo to topologijo:

Principi rada BGP protokola

Na vsakem usmerjevalniku je nastavljen loopback vmesnik z ip: x.x.x.x 255.255.255.0 — kjer je x številka usmerjevalnika. Na Router9 imamo loopback vmesnik z naslovom — 9.9.9.9 255.255.255.0. Ta bomo napovedali preko BGP in pogledali, kako se širi. Ta pot bo poslana na Router8 in Router12. Z Router8 bo ta pot prišla do Router6, vendar je na Router5 ne bo v tabeli usmerjanja. Enako se bo zgodilo tudi na Router12, kjer bo ta pot prišla v tabelo, vendar je na Router11 prav tako ne bo. Poskusimo razumeti to. Poglejmo, katere podatke in parametre Router9 pošlje svojim sosedom, obvešča o tej poti. Paket spodaj bo poslan z Router9 na Router8.

Principi rada BGP protokola
Informacije o poti se sestoje iz atributov poti (Path attributes).

Atributi poti so razdeljeni v 4 kategorije:

  1. Well-known mandatory — vsi usmerjevalniki, ki delujejo po protokolu BGP, morajo prepoznati te atribute. Prikazati se morajo v vseh posodobitvah (update).
  2. Well-known discretionary — vsi usmerjevalniki, ki delujejo po protokolu BGP, morajo prepoznati te atribute. Lahko se pojavijo v posodobitvah (update), vendar njihova prisotnost ni obvezna.
  3. Optional transitive — jih morda ne prepoznajo vse implementacije BGP. Če usmerjevalnik ne prepozna atributa, ga označi kot delno (partial) in ga pošlje naprej sosedom, pri čemer ohrani neprepoznan atribut.
  4. Optional non-transitive — jih morda ne prepoznajo vse implementacije BGP. Če usmerjevalnik ne prepozna atributa, ga ignorira in ga ob prenosu sosedom zavrže.

Primeri BGP atributov:

  • Well-known mandatory:
    • Avtonomni sistem pot
    • Naslednji sklop
    • Origin

  • Well-known discretionary:
    • Lokalna prednost
    • Atomska agregacija
  • Optional transitive:
    • Agregator
    • Skupnosti
  • Optional non-transitive:
    • Multi-exit discriminator (MED)
    • Originator ID
    • Seznam grozdov

V tem primeru nas trenutno zanimajo Origin, Next-hop, AS Path. Ker pot teče med Router8 in Router9, torej znotraj istega AS, jo obravnavamo kot notranjo in se osredotočimo na Origin.

Atribut Origin — kaže, kako je bila pot pridobljena v posodobitvi. Možne vrednosti atributa so:

  • 0 — IGP: NLRI pridobljena znotraj izvornega avtonomnega sistema;
  • 1 — EGP: NLRI je bila naučena putem protokola Exterior Gateway Protocol (EGP). Prethodnik BGP, ne koristi se.
  • 2 — Nepotpuno: NLRI je naučena na neki drugi način.

U našem slučaju, kao što se vidi, ravno je 0. Kada se ova ruta šalje na Router12, ovaj kod će imati kod — 1.

Dalje, Next-hop. Atribut Next-hop.

  • To je IP adresa eBGP rutera kroz koji ide put do odredišne mreže.
  • Atribut se menja pri prenosu prefiksa u drugu AS.

U slučaju iBGP, dakle unutar iste AS, Next-hop će biti onaj koji je saznao ili ispričao o ovoj ruti. U našem slučaju, to će biti 192.168.89.9. Ali kada se ova ruta bude prenosila od Router8 do Router6, Router8 će je izmeniti i zameniti svojom. Next-hop će biti — 192.168.68.8. Ovo nas dovodi do dva pravila:

  1. Ako ruter prenosi rutu svom unutrašnjem susedu, ne menja parametar Next-hop.
  2. Ako ruter prenosi rutu svom spoljašnjem susedu, menja Next-hop na IP interfejsa preko kojeg prenosi ovaj ruter.

Ovo nas dovodi do razumevanja prvog problema — Zašto neće biti rute u tabeli rutiranja na Router5 i Router11. Razmotrimo detaljnije. Dakle, Router6 je primio informacije o ruti 9.9.9.0/24 i uspešno je dodao u tabelu rutiranja:

Router6#show ip route bgp
Kode: L - lokal, C - povezano, S - statično, R - RIP, M - mobilno, B - BGP
       D - EIGRP, EX - EIGRP zunanje, O - OSPF, IA - OSPF medsebojna
       N1 - OSPF NSSA zunanje tip 1, N2 - OSPF NSSA zunanje tip 2
       E1 - OSPF zunanje tip 1, E2 - OSPF zunanje tip 2
       i - IS-IS, su - IS-IS povzetek, L1 - IS-IS raven-1, L2 - IS-IS raven-2
       ia - IS-IS medsebojna, * - kandidatska privzeta, U - statična pot po uporabniku
       o - ODR, P - periodično prenesena statična pot, H - NHRP, l - LISP
       a - aplikacijska pot
       + - replicirana pot, % - preusmeritev naslednjega skoka, p - preusmeritve iz PfR

Zadnja rezervna prehod ni nastavljena

      9.0.0.0/24 je razdeljena na, 1 podneta
B        9.9.9.0 [20/0] preko 192.168.68.8, 00:38:25<source>
Zdaj je Router6 posredoval pot Router5 in prvega pravila Next-hop ni spremenil. To pomeni, da mora Router5 dodati  <b>9.9.9.0 [20/0] preko 192.168.68.8</b> , vendar nima poti do 192.168.68.8, zato ta pot ne bo dodana, čeprav bodo informacije o tej poti shranjene v BGP tabeli:

<source><b>Router5#show ip bgp
Različica BGP tabele je 1, lokalna identifikacijska številka usmerjevalnika je 5.5.5.5
Statusni kod: s potisnjen, d zadušen, h zgodovina, * veljaven, &gt; najboljši, i - notranji,
              r RIB-napaka, S zastarela, m večpotna, b rezervna-pot, f RT-Filtr,
              x najboljši-zunanji, a dodatna-pot, c RIB-stisnjen,
Kodi izvora: i - IGP, e - EGP, ? - nepopoln
Kod RPKI validacije: V veljavno, I neveljavno, N ni najdeno

     Mreža            Naslednji prehod            Metrična LocPrf Teža Pot
 * i 9.9.9.0/24       192.168.68.8             0    100      0 45 i</b>

Ista situacija će se desiti i između Router11 i Router12. Da bismo izbegli takvu situaciju, potrebno je podesiti da Router6 ili Router12, prenoseći rutu svojim unutrašnjim susedima, ubacuju svoj IP adresu kao Next-hop. To se radi pomoću komande:

neighbor 192.168.56.5 next-hop-self

Nakon ove komande, Router6 će poslati Update poruku, gde će za rute ulogu Next-hop imati IP interfejsa Gi0/0 Router6 — 192.168.56.6, nakon čega će ova ruta već biti u tabeli rutiranja.

Idemo dalje i pogledajmo hoće li se ova ruta pojaviti na Router7 i Router10. U tabeli rutiranja je neće biti i mogli bismo pomisliti da je problem kao u prvom sa parametrom Next-hop, ali ako pogledamo ispis komande show ip bgp, videćemo da ta ruta nije ni primljena čak ni s pogrešnim Next-hop, što znači da ruta čak nije ni prenosena. A ovo nas dovodi do postojanja još jednog pravila:

Rute primljene od unutrašnjih suseda se ne prenose drugim unutrašnjim susedima.

Ker Router5 je prejel pot od Router6, je ne bo posredoval svojemu notranjemu sosedu. Da bi prišlo do prenosa, je potrebno nastaviti funkcijo Route Reflector, ali pa nastaviti polno povezano sosedstvo (Full Mesh), kar pomeni, da bo vsak Router5-7 sosed z vsakim. V tem primeru bomo uporabili Route Reflector. Na Router5 je treba uporabiti to ukaz:

neighbor 192.168.57.7 route-reflector-client

Route Reflector spremeni obnašanje BGP pri prenosu poti notranjemu sosedu. Če je notranji sosed označen kot route-reflector-client, bodo ti odjemalci prejeli napovedi notranjih poti.

Pot se ni pojavila na Router7? Ne pozabimo tudi na Next-hop. Po teh manipulacijah bi se pot morala pojaviti tudi na Router7, a to se ne zgodi. To nas pripelje do še enega pravila:

Pravilo next-hop deluje samo za zunanje poti. Za notranje poti zamenjava atribute next-hop ne poteka.

In dobili smo situacijo, kjer je treba ustvariti okolje s statično usmerjanjem ali protokoli IGP, da obvestimo usmerjevalnike o vseh poteh znotraj AS. Določili bomo statične poti na Router6 in Router7 in po tem dobili želeno pot v tabeli usmerjevalnika. V AS 678 pa bomo nekoliko drugače — določili bomo statične poti za 192.168.112.0/24 na Router10 in 192.168.110.0/24 na Router12. Nato bomo nastavili sosedske odnose med Router10 in Router12. Tudi na Router12 bomo nastavili pošiljanje svojega next-hop za Router10:

neighbor 192.168.110.10 next-hop-self

Rezultat bo, da bo Router10 prejemal pot 9.9.9.0/24, prejel jo bo tako od Router7 kot od Router12. Poglejmo, katero izbiro bo naredil Router10:

Router10#show ip bgp
BGP tabela različica je 3, lokalna ID usmerjevalnika je 6.6.6.6
Statusne kode: s potlačene, d pomirjene, h zgodovina, * veljavna, > najboljša, i - notranja,
              r neuspeh RIB, S zastarela, m multipot, b rezervna-pot, f RT-filt,
              x najboljša-zunanja, a dodatna-pot, c RIB-stisnjena,
Izvorne kode: i - IGP, e - EGP, ? - nepopolna
Kode validacije RPKI: V veljavna, I neveljavna, N ni najdena

     Mreža              Naslednji hop            Metrična LocPrf Teža Pot
 * > i 9.9.9.0/24       192.168.112.12           0    100       0      45 i

                               192.168.107.7                                0     123 45 i  

Kot vidimo, sta dve poti in puščica ( > ) označuje, da je izbrana pot preko 192.168.112.12.
Poglejmo, kako poteka postopek izbire poti:

  1. Najprej se ob prejemu poti preveri dostopnost njenega Next-hop. Ravno zato, ko smo prejeli pot na Router5 brez nastavitve Next-hop-self, ta pot nato ni bila predana nadaljnji obdelavi.
  2. Nato je parameter Weight. Ta parameter ni atribut poti (PA) in se ne prenaša v BGP sporočilih. Nastavlja se lokalno na vsaki usmerjevalniku in se uporablja le za manipulacijo izbire poti na samem usmerjevalniku. Poglejmo primer. Kmalu zgoraj je prikazano, da je Router10 izbral pot za 9.9.9.0/24 preko Router12 (192.168.112.12). Za spremembo parametra Weight lahko uporabimo route-map, da določimo za določene poti, ali mu dodelimo težo sosedu s pomočjo ukaza:
     neighbor 192.168.107.7 weight 200       

    Zdaj bodo vse poti od tega soseda imele to težo. Poglejmo, kako se bo izbira poti spremenila po tej manipulaciji:

    Router10#show bgp
    *Mar  2 11:58:13.956: %SYS-5-CONFIG_I: Konfigurirano iz konzole po konzoli
    Različica BGP tabele je 2, lokalni ID usmerjevalnika je 6.6.6.6
    Statusne kode: s zatirane, d ukrivljene, h zgodovina, * veljavne, > najboljša, i - notranje,
                  r RIB-napaka, S zastarela, m večpotna, b rezervna pot, f RT-filtriranje,
                  x najboljši-zunanji, a dodatna-pot, c RIB-stisnjena,
    Kode izvora: i - IGP, e - EGP, ? - nepopolno
    Kode validacije RPKI: V veljavno, I neveljavno, N ni najdeno
    
         Mreža           Naslednji skok            Metrična vrednost LocPrf Teža      Pot
     * >  9.9.9.0/24       192.168.107.7                        200      123 45 i
     * i                          192.168.112.12           0          100      0 45 i

    Kot vidite, je zdaj izbrana pot preko Router7, toda nobenega učinka na ostale usmerjevalnike to ne bo imelo.

  3. Na tretjem mestu imamo – Local Preference. Ta parameter je znan kot prostovoljni atribut, kar pomeni, da njegova prisotnost ni obvezna. Ta parameter velja samo znotraj enega AS in vpliva na izbiro poti le za notranje sosede. Zato se prenaša samo v Update sporočilih, namenjenih notranjemu sosedu. V Update sporočilih za zunanje sosede ga ni. Zato je bil uvrščen med znane prostovoljne. Poskusimo ga uporabiti na Router5. Na Router5 bi morali imeti dve poti za 9.9.9.0/24 – ena preko Router6 in druga preko Router7.

    Poglejmo:

    Router5#show bgp
    Različica BGP tabele je 2, lokalni ID usmerjevalnika je 5.5.5.5
    Statusne kode: s zatirane, d ukrivljene, h zgodovina, * veljavne, > najboljša, i - notranje,
                  r RIB-napaka, S zastarela, m večpotna, b rezervna pot, f RT-filtriranje,
                  x najboljši-zunanji, a dodatna-pot, c RIB-stisnjena,
    Kode izvora: i - IGP, e - EGP, ? - nepopolno
    Kode validacije RPKI: V veljavno, I neveljavno, N ni najdeno
    
         Mreža           Naslednji skok            Metrična vrednost LocPrf Teža Pot
     * >i 9.9.9.0/24       192.168.56.6             0    100      0 45 i

    A kot vidimo, ena pot preko Router6. Kje je pot preko Router7? Morda je na Router7 tudi ni? Poglejmo:

    Router#show bgp
    BGP tabela verzija je 10, lokalni ID rutera je 7.7.7.7
    Statusni kodovi: s potisnuto, d prigušeno, h istorija, * validno, > najbolje, i - interno,
                  r RIB-greška, S zastarjelo, m višeputo, b backup-put, f RT-Filter,
                  x najbolje-vanjsko, a dodatno-put, c RIB-komprimirano,
    Kodovi porekla: i - IGP, e - EGP, ? - nepotpuno
    RPKI kodovi validacije: V validno, I nevalidno, N Nije pronađeno
    
         Mreža                Sledeća adresa            Metar LokPrf  Težina    Put
     *>i 9.9.9.0/24       192.168.56.6             0     100           0      45 i
    
                                  192.168.107.10                                  0     678 45 i 

    Čudno, izgleda da je sve u redu. Zašto se onda ne prenosi na Router5? Problem je u tome što BGP ima pravilo:

    Ruter prenosi samo one rute koje koristi sam.

    Router7 koristi put preko Router5, stoga put preko Router10 neće biti prenesen. Vratimo se na Local Preference. Postavimo Local Preference na Router7 i pogledajmo kako će se Router5 na to reagovati:

    route-map BGP dovoljenje 10
     match ip naslov 10
     set local-preference 250
    seznam-dostopa 10 dovoli vsak
    usmerjevalnik bgp 123
     sosed 192.168.107.10 route-map BGP v</b>

    Dakle, kreirali smo route-map u koji se uključuju sve rute i rekli Router7 da prilikom primanja menja parametar Local Preference na 250, koji je inače 100. Pogledajmo šta se dogodilo na Router5:

    Router5#show bgp
    BGP tabela verzija je 8, lokalni ID rutera je 5.5.5.5
    Statusni kodovi: s potisnuto, d prigušeno, h istorija, * validno, > najbolje, i - interno,
                  r RIB-greška, S zastarjelo, m višeputo, b backup-put, f RT-Filter,
                  x najbolje-vanjsko, a dodatno-put, c RIB-komprimirano,
    Kodovi porekla: i - IGP, e - EGP, ? - nepotpuno
    RPKI kodovi validacije: V validno, I nevalidno, N Nije pronađeno
    
         Mreža          Sledeća adresa            Metar LokPrf Težina        Put
     *>i 9.9.9.0/24       192.168.57.7             0          250      0 678 45 i

    Kao što vidimo, sada Router5 preferira put preko Router7. Slična slika će biti i na Router6, iako njemu više odgovara da izabere put preko Router8. Takođe treba napomenuti da promene ovog parametra zahtevaju restart veze da bi promene stupile na snagu. Pročitajte tukaj. Razjasnili smo Local Preference. Prelazimo na sledeći parametar.

  4. Preferencija rute sa parametrima Next-hop 0.0.0.0, odnosno lokalne ili agregirane rute. Ove rute automatski nakon unošenja komande network dobijaju parametar Weight koji je maksimalan — 32678:
    Router#show bgp
    BGP tabela verzija je 2, lokalni ID rutera je 9.9.9.9
    Statusni kodovi: s potisnuto, d prigušeno, h istorija, * validno, > najbolje, i - interno,
                  r RIB-greška, S zastarjelo, m višeputo, b backup-put, f RT-Filter,
                  x najbolje-vanjsko, a dodatno-put, c RIB-komprimirano,
    Kodovi porekla: i - IGP, e - EGP, ? - nepotpuno
    RPKI kodovi validacije: V validno, I nevalidno, N Nije pronađeno
    
         Mreža          Sledeća adresa            Metar LokPrf Težina    Put
     *>  9.9.9.0/24       0.0.0.0                  0            32768    i
  5. Najkraći put preko AS. Biraju se najkraći parametar AS_Path. Što manje AS prolazi kroz rutu, to je ona bolja. Razmotrite put do 9.9.9.0/24 na Router10:
    Router10#show bgp
    BGP tabela verzije je 2, lokalni ID rutera je 6.6.6.6
    Status kodovi: s suzdržano, d umanjeno, h istorija, * važeće, > najbolje, i - interno,
                  r neuspeh RIB-a, S zastarelo, m višepat, b rezervni put, f RT-filtr,
                  x najbolje-eksterno, a dodatni-put, c RIB-kompresovano,
    Kodovi porekla: i - IGP, e - EGP, ? - nepotpuno
    Kodovi RPKI validacije: V važeće, I nevažeće, N nije pronađeno
    
         Mreža            Sledeća adresa        Metrički LocPrf Težina Put
     *   9.9.9.0/24     192.168.107.7                           0           123 45 i
     *>i                     192.168.112.12           0    100       0       45 i

    Kao što vidite, Router10 je odabrao put preko 192.168.112.12 jer parametar AS_Path za ovu rutu sadrži samo 45, dok u drugom slučaju sadrži 123 i 45. Ovo je intuitivno razumljivo.

  6. Sledeći parametar je Origin. IGP (ruta dobijena putem BGP-a) je bolja od EGP (ruta dobijena putem prethodnika BGP-a, koji se sada ne koristi), dok je EGP bolja od Incomplete? (dobijena na neki drugi način, na primer redistribucijom).
  7. Sledeći parametar je MED. Imali smo Weight, koji je radio samo lokalno na ruteru. Imali smo Local Preference, koji je radio samo unutar jedne autonomne sisteme. Kako je lako pretpostaviti, MED je parametar koji će se prenositi između autonomnih sistema. Vrlo dobar. članek o ovom parametru.

Više atributa se neće koristiti, ali ako su kodovi kod dve rute isti, primenjuju se sledeća pravila:

  1. Izabrati put kroz najbližeg IGP-suseda.
  2. Izabrati najstariju rutu za eBGP-put.
  3. Izabrati put kroz suseda sa najmanjim BGP ID-om rutera.
  4. Izabrati put kroz suseda sa najmanjom IP adresom.

Sada razmotrimo pitanje konvergencije BGP-a.

Pogledajmo šta će se desiti ako, recimo, Router6 izgubi rutu 9.9.9.0/24 preko Router9. Isključujemo interfejs Gi0/1 Router6, koji odmah shvata da je BGP sesija sa Router8 prekinuta i da je sused nestao, što znači da su i ruta dobijena od njega nevažeća. Router6 odmah šalje Update poruku, navodeći mrežu 9.9.9.0/24 u polju Povučene rute. Čim Router5 primi sličnu poruku, poslaće je Router7. Ali pošto Router7 ima rutu preko Router10, odmah će poslati Update sa novom rutom. Ako se ne uspe detektovati gubitak suseda prema stanju interfejsa, treba čekati aktivaciju Hold Timer-a.

Konfederacija.

Če se spomnite, smo govorili o tem, da pogosto uporabljamo polno povezano topologijo. Z velikim številom usmerjevalnikov v eni AS to lahko povzroči velike težave, zato je potrebno uporabiti konfederacije. Ena AS se razdeli na več sub-AS, kar omogoča delovanje brez zahteve po polno povezani topologiji.

Principi rada BGP protokola

Tukaj je povezava do te laboratorije, a tukaj konfiguracija za GNS3.

Na primer, pri taki topologiji bi se morali povezati vsi usmerjevalniki v AS 2345, vendar z uporabo konfederacije lahko vzpostavimo odnose sosedstva le med usmerjevalniki, ki so neposredno povezani drug z drugim. O tem bomo podrobneje govorili. Če bi imeli samo AS 2345, bi laForge prejel pot od Picard in bi ga sporočil njegovim usmerjevalnikom Podatki in Worf, vendar oni ne bi povedali o njem usmerjevalniku Crusher . Tudi poti, ki jih širi sam usmerjevalnik laForge, niso bile prenesene Crusher niti Worf-om, niti Podatki.

Bilo bi treba nastaviti Route-Reflector ali polno povezane odnose sosedstva. S tem, ko razdelimo AS 2345 na 4 sub-AS (2, 3, 4, 5) za vsak usmerjevalnik, končno pridobimo drugačno logiko delovanja. Vse je odlično opisano ovde.

Viri:

  1. CCIE Routing and Switching v5.0 Official Cert Guide, Volume 2, Fifth Edition, Narbik Kocharians, Terry Vinson.
  2. Web stranica xgu.ru
  3. Web stranica GNS3Vault.

Izvor: habr.com

Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki 🔥 Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki | ProHoster