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.