Co to jest BGP?

Autor: Opublikowano

W skrócie: BGP (Border Gateway Protocol) to protokół, dzięki któremu sieci tworzące internet wymieniają informacje o dostępnych trasach do adresów IP. Pozwala operatorom wybierać, przez które sieci ma przechodzić ruch, zgodnie z ich zasadami i umowami, a nie wyłącznie według szybkości połączenia. Błąd w tych informacjach może sprawić, że działająca strona stanie się niedostępna dla części użytkowników.

Jaką rolę BGP pełni w internecie?

Internet składa się z wielu połączonych sieci zarządzanych przez operatorów telekomunikacyjnych, firmy hostingowe, uczelnie czy dostawców chmury. Podstawową jednostką w routingu BGP jest system autonomiczny (AS): sieć lub grupa sieci objęta wspólną polityką wyboru tras. Identyfikuje go numer ASN.

Routing oznacza wybieranie tras, którymi mogą być przesyłane pakiety danych. Routery używające BGP ogłaszają sobie nawzajem osiągalność prefiksów IP, czyli bloków adresów. Ogłoszenie mówi w uproszczeniu: „przez moją sieć możesz dotrzeć do tego zakresu adresów”.

BGP nie przesyła treści strony ani wiadomości e-mail. Dostarcza informacje, które routery wykorzystują do budowania tablic routingu, a te służą do kierowania pakietów. To warstwa organizująca drogę komunikacji, nie usługę działającą na jej końcu.

Jak BGP wybiera trasę?

Routery zestawiają sesje BGP, czyli połączenia służące do wymiany informacji o trasach. Gdy pojawia się nowa trasa lub dotychczasowa przestaje być dostępna, mogą ogłosić zmianę albo wycofać wcześniejsze ogłoszenie. Nie muszą przy tym za każdym razem przesyłać całego zestawu znanych tras.

Oprócz prefiksu ogłoszenie zawiera atrybuty opisujące trasę. Jednym z nich jest AS_PATH, czyli lista numerów systemów autonomicznych, przez które przekazano informację o trasie. Pomaga ona między innymi wykrywać pętle: sieć może odrzucić trasę, jeśli zobaczy na tej liście własny numer.

BGP nie szuka automatycznie drogi o najmniejszym opóźnieniu. Operator może preferować konkretnego dostawcę ze względu na koszt, umowę lub własne zasady zarządzania ruchem. Krótszy AS_PATH bywa kryterium wyboru, lecz nie jest jedynym ani zawsze najważniejszym; dokładny proces zależy od konfiguracji i implementacji.

Rozróżnia się dwa zastosowania tego samego protokołu:

iBGP nie zastępuje wszystkich mechanizmów routingu wewnętrznego. W rozbudowanych sieciach współpracuje z protokołami, które zapewniają osiągalność routerów w obrębie infrastruktury operatora.

Przykład: hosting z dwoma połączeniami do internetu

Załóżmy, że firma hostingowa ma własny system autonomiczny i łączy się z dwoma operatorami: A oraz B. Ogłasza przez BGP swój blok adresów IP obu operatorom. Dzięki temu pozostałe sieci mogą poznać więcej niż jedną drogę prowadzącą do serwerów hostingu.

Hosting może ustawić operatora A jako preferowanego dla ruchu wychodzącego, a B traktować jako zapasowego. Jeśli połączenie z A przestanie działać i odpowiednie trasy zostaną wycofane, ruch może przejść przez B. Zmiana nie musi być natychmiastowa: wykrycie awarii i przeliczenie tras wymagają czasu, a podczas przełączenia część pakietów może zginąć.

Droga powrotna nie musi być taka sama. O trasie od użytkownika do hostingu decydują także inne sieci, stosujące własne reguły. Dlatego dwa łącza nie oznaczają automatycznie równomiernego rozłożenia ruchu ani pełnej kontroli nad jego przepływem.

Skąd biorą się awarie i zagrożenia BGP?

Podstawowy BGP nie zapewnia samodzielnie wiarygodnego potwierdzenia, że sieć ma prawo ogłaszać dany prefiks. Błędna konfiguracja lub celowe działanie mogą więc wpłynąć na ruch poza siecią, w której powstał problem.

Przejęcie prefiksu, nazywane BGP hijacking, polega na nieuprawnionym ogłoszeniu cudzej przestrzeni adresowej. Wyciek tras, czyli route leak, to przekazanie informacji o trasach dalej, niż powinna pozwalać polityka połączeń między sieciami. Obie sytuacje mogą prowadzić do niedostępności usług, a w niektórych przypadkach do skierowania ruchu przez niepożądaną sieć.

Jednym z zabezpieczeń jest RPKI, infrastruktura pozwalająca kryptograficznie potwierdzać uprawnienia systemu autonomicznego do ogłaszania prefiksu. Operatorzy mogą na tej podstawie sprawdzać pochodzenie tras i odrzucać nieprawidłowe ogłoszenia. Nie jest to jednak sprawdzenie całej ścieżki AS_PATH ani ochrona przed każdym wyciekiem tras; potrzebne są również filtry, kontrola konfiguracji i monitoring.

Co BGP oznacza dla właściciela strony?

Jeśli korzystasz ze zwykłego hostingu, zazwyczaj nie konfigurujesz BGP samodzielnie. Odpowiada za niego dostawca infrastruktury lub jego operatorzy. Sam zakup domeny, certyfikatu TLS czy serwera VPS nie wymaga własnego ASN.

BGP bywa mylony z DNS, czyli systemem tłumaczącym nazwy domen na adresy IP. DNS pomaga ustalić adres serwera, natomiast routing umożliwia dotarcie do niego. Poprawna odpowiedź DNS nie dowodzi więc, że połączenie sieciowe działa.

Jeśli strona otwiera się przez internet mobilny, ale nie przez domowe łącze, sprawdź ją z obu sieci i zanotuj czas wystąpienia problemu. Przekaż hostingowi wyniki oraz, jeśli potrafisz, pomiar traceroute lub MTR pokazujący przebieg połączenia. Różnica w dostępności nie dowodzi awarii BGP, ale daje administratorom konkretny punkt wyjścia do sprawdzenia routingu.

Zobacz też: Co to jest CDN?

Przeczytaj także

Dowiedz się, jak PHP-FPM obsługuje żądania PHP, czym różni się od serwera WWW i jak dobrać ustawienia procesów do ruchu oraz zasobów hostingu.
Poznaj BIND, otwarte oprogramowanie serwera DNS: sprawdź, jak obsługuje domeny, czym różnią się jego role i kiedy warto samodzielnie go wdrożyć.
Poznaj najważniejsze Security Headers, ich rolę w ochronie strony oraz sposób sprawdzania i wdrażania nagłówków bez blokowania potrzebnych funkcji.