Protok贸艂 Bramy Brzegowej (BGP)
Protok贸艂 wektora-艣cie偶ki (EGP) nap臋dzaj膮cy Internet, oparty na atrybutach i politykach.
Wprowadzenie: Od Dr贸g Wewn臋trznych do Mi臋dzynarodowych Traktat贸w
Protoko艂y routingu, kt贸re om贸wili艣my do tej pory, takie jak RIP, OSPF i EIGRP, s膮 znane jako . Zosta艂y zaprojektowane do zarz膮dzania przep艂ywem ruchu wewn膮trz sieci jednej organizacji. Pomy艣l o IGP jako o wewn臋trznym systemie zarz膮dzania drogami dla jednego kraju. Zna on wszystkie lokalne drogi, autostrady i najlepsze sposoby na dotarcie z Warszawy do Krakowa. Jest zoptymalizowany pod k膮tem szybko艣ci, wydajno艣ci i szybkiej reakcji na korki (awarie 艂膮czy).
Ale co si臋 dzieje, gdy pakiet musi podr贸偶owa膰 z Warszawy na serwer w Tokio? Taki pakiet musi przekroczy膰 granice mi臋dzynarodowe, przechodz膮c przez sieci zarz膮dzane przez r贸偶ne firmy, organizacje i kraje. Wewn臋trzna mapa drogowa Polski jest bezu偶yteczna do nawigacji po wewn臋trznej mapie drogowej Japonii. Potrzebny jest inny rodzaj protoko艂u: taki, kt贸ry nie dzia艂a w oparciu o szybko艣膰, ale o umowy, polityki i zaufanie mi臋dzy tymi ogromnymi, niezale偶nymi sieciami.
To jest 艣wiat BGP (Border Gateway Protocol). BGP jest jedynym , kt贸ry sprawia, 偶e globalny internet funkcjonuje. Nie zajmuje si臋 on znajdowaniem najszybszej 艣cie偶ki, ale znajdowaniem wa偶nej, zgodnej z polityk膮 艣cie偶ki przez globaln膮 sie膰 po艂膮czonych ze sob膮 sieci. Jest to j臋zyk mi臋dzynarodowej dyplomacji dla internetu.
Systemy Autonomiczne: Narody Internetu
Aby zrozumie膰 BGP, nale偶y najpierw zrozumie膰 jego fundamentalny element budulcowy: System Autonomiczny (AS). Internet to nie jest jedna gigantyczna sie膰; to "sie膰 sieci". Ka偶da z tych niezale偶nych sieci to AS.
mo偶na sobie wyobrazi膰 jako pa艅stwo.
- Ma w艂asny wewn臋trzny rz膮d i system dr贸g (swoj膮 wewn臋trzn膮 sie膰 z protoko艂em IGP, np. OSPF).
- Jest zarz膮dzany przez jedn膮 organizacj臋 (jak dostawca us艂ug internetowych, np. Orange czy T-Mobile, gigant technologiczny jak Google, czy du偶y uniwersytet).
- Ma jasno zdefiniowane granice i przej艣cia graniczne (swoje routery brzegowe).
- Ma stosunki dyplomatyczne (umowy peeringowe) z s膮siednimi pa艅stwami (innymi AS-ami).
Ka偶demu AS jest przypisywany unikalny numer, Numer Systemu Autonomicznego (ASN), przez regionalny rejestr internetowy. Ca艂a praca BGP polega na wymianie informacji o tym, kt贸re sieci s膮 osi膮galne przez jak膮 sekwencj臋 AS-贸w.
Wektor 艢cie偶ki: Routing wg Planu Podr贸偶y, a nie Plotek
BGP u偶ywa unikalnego algorytmu routingu zwanego Wektor 艢cie偶ki. Jest to ewolucja algorytmu Wektora Odleg艂o艣ci u偶ywanego przez RIP, ale z kluczowym ulepszeniem, kt贸re czyni go niesko艅czenie bardziej skalowalnym i odpornym.
Podczas gdy protok贸艂 Wektora Odleg艂o艣ci, jak RIP, informuje swoich s膮siad贸w tylko o celu i metryce ("Mog臋 dotrze膰 do sieci X w 3 krokach"), protok贸艂 Wektora 艢cie偶ki dostarcza pe艂ny plan podr贸偶y. Og艂asza sie膰 docelow膮 wraz z ca艂膮 list膮 numer贸w AS, przez kt贸re pakiet musi przej艣膰, aby do niej dotrze膰. Ta lista jest znana jako atrybut AS_PATH.
Przyk艂ad: Podr贸偶 Og艂oszenia Trasy
- Router w AS 65100, gdzie znajduj膮 si臋 serwery example.com, og艂asza swoj膮 sie膰 . Og艂oszenie zawiera AS_PATH (65100).
- Jego s膮siad, router w AS 65200 (dostawca tranzytowy), otrzymuje to og艂oszenie. Aby udost臋pni膰 je swoim s膮siadom, do艂膮cza sw贸j numer na pocz膮tek 艣cie偶ki. Teraz og艂asza sie膰 z AS_PATH (65200, 65100).
- Jego inny s膮siad, router w AS 65300, otrzymuje to. Aby og艂osi膰 tras臋 dalej, ponownie do艂膮cza sw贸j numer, og艂aszaj膮c tras臋 z AS_PATH (65300, 65200, 65100).
Na ka偶dym kroku ka偶dy router otrzymuj膮cy t臋 aktualizacj臋 widzi nie tylko, gdzie znajduje si臋 sie膰, ale dok艂adn膮 sekwencj臋 "pa艅stw", przez kt贸re wiadomo艣膰 przesz艂a, aby tam dotrze膰.
Wbudowane Zapobieganie P臋tlom
Ten mechanizm zapewnia prosty i ca艂kowicie skuteczny spos贸b zapobiegania p臋tlom routingu na skal臋 globaln膮. Zasada jest prosta: je艣li router otrzyma aktualizacj臋 BGP i zobaczy numer w艂asnego AS ju偶 w atrybucie AS_PATH, natychmiast odrzuca t臋 aktualizacj臋. Oznacza to, 偶e og艂oszenie trasy nigdy nie mo偶e wr贸ci膰 do AS, kt贸ry ju偶 odwiedzi艂o, co ca艂kowicie eliminuje problem "liczenia do niesko艅czono艣ci", kt贸ry n臋ka艂 RIP.
Komunikacja BGP: Niezawodne Sesje mi臋dzy Partnerami
W przeciwie艅stwie do protoko艂贸w IGP, kt贸re cz臋sto rozg艂aszaj膮 swoje informacje, BGP ustanawia wysoce kontrolowane, indywidualne sesje komunikacyjne. Routery z BGP s膮 r臋cznie konfigurowane przez administrator贸w, aby tworzy膰 relacje, zwane sesjami peeringowymi, z innymi konkretnymi routerami. Te routery s膮 znane jako s膮siedzi lub partnerzy BGP.
BGP k艂adzie nacisk na niezawodno艣膰. Z tego powodu wszystkie sesje BGP dzia艂aj膮 w oparciu o Protok贸艂 Kontroli Transmisji (TCP) na porcie . U偶ycie TCP zapewnia, 偶e ka偶da aktualizacja routingu jest dostarczana poprawnie, w sekwencji i bez b艂臋d贸w. Stabilno艣膰 ca艂ego internetu zale偶y od tej niezawodno艣ci.
Zewn臋trzny a Wewn臋trzny BGP (eBGP vs. iBGP)
Sesje BGP wyst臋puj膮 w dw贸ch odmianach, w zale偶no艣ci od lokalizacji partner贸w:
- eBGP (External BGP):
Jest to sesja mi臋dzy routerami w r贸偶nych Systemach Autonomicznych. To jest podstawowa funkcja BGP: wymiana tras mi臋dzy dostawcami, firmami i pa艅stwami. Partnerzy s膮 zazwyczaj bezpo艣rednio po艂膮czeni. Kiedy trasa jest og艂aszana przez sesj臋 eBGP, router dodaje na pocz膮tek AS_PATH sw贸j w艂asny ASN.
- iBGP (Internal BGP):
Jest to sesja mi臋dzy routerami wewn膮trz tego samego Systemu Autonomicznego. Mo偶e to wydawa膰 si臋 dziwne: po co u偶ywa膰 protoko艂u zewn臋trznego wewn臋trznie? Powodem jest sp贸jno艣膰. Gdy trasa zostanie poznana od zewn臋trznego s膮siada przez eBGP, ta informacja musi by膰 rozes艂ana do wszystkich innych router贸w wewn膮trz tego AS, aby wszystkie wiedzia艂y, jak dotrze膰 do tej zewn臋trznej sieci. iBGP jest mechanizmem tej wewn臋trznej dystrybucji. Kiedy trasa jest og艂aszana przez sesj臋 iBGP, AS_PATH nie jest modyfikowany.
Typy Komunikat贸w BGP
Partnerzy BGP komunikuj膮 si臋 za pomoc膮 czterech g艂贸wnych typ贸w komunikat贸w, wszystkie wysy艂ane przez ich niezawodne po艂膮czenie TCP.
- Komunikat OPEN: Jest to pierwszy komunikat wysy艂any po nawi膮zaniu po艂膮czenia TCP. To jest u艣cisk d艂oni BGP. Routery u偶ywaj膮 go do identyfikacji, uzgadniania parametr贸w, takich jak ich ASN, i ustawiania Czasu Wstrzymania (jak d艂ugo czeka膰 bez komunikatu, zanim s膮siad zostanie uznany za nieaktywnego). Je艣li obie strony si臋 zgodz膮, sesja przechodzi do nast臋pnego stanu.
- Komunikat UPDATE: Jest to ko艅 poci膮gowy BGP. S艂u偶y do og艂aszania nowych tras, wycofywania starych tras, kt贸re nie s膮 ju偶 wa偶ne, lub obu tych rzeczy. Pojedynczy komunikat UPDATE mo偶e przenosi膰 informacje o osi膮galno艣ci dla wielu sieci, kt贸re dziel膮 te same atrybuty 艣cie偶ki. Ten komunikat zawiera wszystkie informacje o polityce (AS_PATH i inne atrybuty). W przeciwie艅stwie do IGP, aktualizacje s膮 wysy艂ane tylko wtedy, gdy co艣 si臋 zmieni.
- Komunikat KEEPALIVE: Je艣li router przez jaki艣 czas nie ma 偶adnych aktualizacji do wys艂ania, nie mo偶e milcze膰, poniewa偶 Czas Wstrzymania jego s膮siada m贸g艂by wygasn膮膰. Aby temu zapobiec, routery okresowo wysy艂aj膮 bardzo ma艂y komunikat KEEPALIVE, kt贸ry dzia艂a jak bicie serca, informuj膮c s膮siada "Nadal tu jestem, a po艂膮czenie jest zdrowe". Domy艣lnie jest on wysy艂any co 60 sekund.
- Komunikat NOTIFICATION: Je艣li router wykryje b艂膮d, taki jak nieprawid艂owy komunikat lub wygasaj膮cy Czas Wstrzymania, wysy艂a komunikat NOTIFICATION do swojego partnera, wskazuj膮c przyczyn臋 b艂臋du. Natychmiast po wys艂aniu tego komunikatu zamyka sesj臋 BGP. To jest mechanizm obs艂ugi b艂臋d贸w w BGP.
Podejmowanie Decyzji: Wgl膮d w Wyb贸r 艢cie偶ki przez BGP
BGP nie u偶ywa prostej metryki, jakiej u偶ywaj膮 IGP, do wyboru najlepszej trasy. Zamiast tego polega na z艂o偶onym procesie decyzyjnym, kt贸ry analizuje list臋 atrybut贸w 艣cie偶ki do艂膮czonych do ka偶dej trasy. Pe艂ny proces decyzyjny jest skomplikowany i zostanie szczeg贸艂owo om贸wiony na stronach po艣wi臋conych atrybutom i politykom BGP, ale oto zapowied藕 kilku kluczowych czynnik贸w:
- D艂ugo艣膰 AS_PATH: Chocia偶 nie jest to metryka w tradycyjnym sensie, BGP generalnie preferuje trasy z kr贸tsz膮 艣cie偶k膮 AS_PATH (przechodz膮ce przez mniejsz膮 liczb臋 System贸w Autonomicznych).
- Preferencja Lokalna (LOCAL_PREF): Atrybut u偶ywany wewn膮trz jednego AS do wp艂ywania na to, kt贸r膮 bram臋 wyj艣ciow膮 powinny preferowa膰 wszystkie routery w tym AS.
- Kod Pochodzenia (Origin): Wskazuje, jak trasa zosta艂a wprowadzona do BGP (np. z IGP czy w inny spos贸b).
Podsumowanie: Klej Internetu
BGP jest fundamentalnie inny od protoko艂贸w IGP, kt贸re badali艣my. Nie jest zaprojektowany z my艣l膮 o szybko艣ci. Jego konwergencja mo偶e by膰 mierzona w minutach, a nie sekundach. Nie znajduje on "najkr贸tszej" 艣cie偶ki w sensie technicznym. Zamiast tego BGP jest zaprojektowany dla skalowalno艣ci, stabilno艣ci i kontroli opartej na polityce.
Jego algorytm Wektora 艢cie偶ki, niezawodny transport TCP i manualna konfiguracja partner贸w tworz膮 solidny system, kt贸ry mo偶e zarz膮dza膰 globaln膮 tablic膮 routingu z setkami tysi臋cy tras bez zapadania si臋 w p臋tle. Jego si艂a pochodzi z bogatego zestawu atrybut贸w 艣cie偶ki, kt贸re pozwalaj膮 operatorom sieci na wdra偶anie z艂o偶onych polityk biznesowych i technicznych, przekszta艂caj膮c routing z prostego obliczenia metryki w form臋 programowalnej in偶ynierii ruchu. BGP to niezb臋dny protok贸艂, kt贸ry spaja tkank臋 globalnego internetu.