Routing

Protokół Bramy Brzegowej (BGP)

Protokół wektora-ścieżki (EGP) napędzający Internet, oparty na atrybutach i politykach.

Wprowadzenie: BGP między systemami autonomicznymi

Protokoły routingu, takie jak RIP, OSPF i EIGRP, są znane jako . Są przeznaczone do zarządzania ruchem wewnątrz jednego AS. Routery wymieniają informacje o osiągalnych prefiksach, kosztach i stanie łączy, a następnie obliczają trasy zgodnie z regułami danego IGP.

Gdy pakiet ma przejść przez kilka niezależnych sieci, routery potrzebują informacji o prefiksach osiągalnych w innych AS. IGP jednego operatora nie opisuje całej takiej ścieżki. Do wymiany osiągalności między AS służy protokół, który uwzględnia polityki oraz relacje między operatorami.

Tę funkcję pełni BGP (Border Gateway Protocol). BGP jest używanym do wymiany osiągalności między AS. Jego decyzje nie sprowadzają się do jednej metryki. Lokalna polityka wybiera dopuszczalną ścieżkę zgodną z wymaganiami operatora w sieci połączonych AS.

BGP wymienia prefiksy IP oraz atrybuty opisujące ścieżkę. Router przechowuje informacje otrzymane od sąsiadów, stosuje lokalną politykę, wybiera trasę do użycia i zgodnie z polityką eksportu przekazuje wybrane informacje dalej. Zakres decyzji BGP dotyczy przekazywania zależnego od adresu docelowego.

Systemy autonomiczne i ASN

Podstawowym zakresem działania BGP jest System Autonomiczny (AS). Internet składa się z wielu niezależnych sieci, które prezentują innym operatorom własną politykę routingu.

obejmuje sieci IP i routery pod kontrolą jednej administracji.

  • Utrzymuje własną sieć wewnętrzną, zwykle z protokołem IGP, takim jak OSPF.
  • Jest zarządzany przez jedną organizację, na przykład dostawcę usług internetowych, firmę technologiczną lub uniwersytet.
  • Ma routery brzegowe, które realizują połączenia z innymi AS.
  • Ustala relacje z sąsiednimi AS, między innymi przez umowy peeringowe i tranzytowe.

Każdy AS ma unikalny Numer Systemu Autonomicznego (ASN), przydzielany w ramach systemu rejestrów internetowych. BGP wymienia informacje o prefiksach oraz o sekwencji AS, przez które ogłoszenie przeszło.

Granice AS wynikają z administracji i polityki routingu, dlatego jeden operator może używać kilku protokołów IGP lub kilku zestawów metryk. Z perspektywy zewnętrznych partnerów przedstawia jednak spójny plan osiągalności. ASN pozwala routerom rozpoznać tę domenę w AS_PATH.

Wektor ścieżki i AS_PATH

BGP stosuje algorytm routingu typu wektor ścieżki. Oprócz prefiksu ogłoszenie zawiera informację o systemach autonomicznych, przez które przeszła trasa, co pozwala wykrywać pętle na poziomie AS.

Protokół wektora odległości, taki jak RIP, przekazuje sąsiadom cel i metrykę. BGP ogłasza prefiks wraz z sekwencją numerów AS, przez które informacja o trasie przeszła. Ta informacja jest zapisana w atrybucie AS_PATH.

Przykład: propagacja ogłoszenia trasy

  1. Router w AS 65100, gdzie znajdują się serwery example.com, ogłasza swoją sieć 203.0.113.0/24203.0.113.0/24. Ogłoszenie zawiera AS_PATH (65100).
  2. 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ć 203.0.113.0/24203.0.113.0/24 z AS_PATH (65200, 65100).
  3. 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).

Każdy router otrzymujący UPDATE zna prefiks oraz sekwencję AS zapisaną w AS_PATH. Na tej podstawie może ocenić długość ścieżki i sprawdzić, czy jego własny ASN już w niej występuje.

UPDATE może zawierać prefiksy osiągalne, prefiksy wycofane oraz wspólne atrybuty ścieżki. Router nie przekazuje automatycznie każdej poznanej trasy. Jego decyzję ograniczają reguły importu i eksportu ustalone dla konkretnego sąsiada.

Wykrywanie pętli na podstawie AS_PATH

Router sprawdza AS_PATH przed wyborem trasy. Jeżeli własny ASN występuje w tym atrybucie, trasa jest wyłączana z procesu decyzyjnego. Mechanizm ogranicza pętle między AS i różni się od zjawiska zliczania do nieskończoności znanego z prostych protokołów wektora odległości.

Sesje BGP między sąsiadami

BGP wymienia informacje przez kontrolowane, punktowe sesje komunikacyjne. Administrator konfiguruje routery tak, aby tworzyły sesje peeringowe z określonymi routerami. Te routery są nazywane sąsiadami lub partnerami BGP.

BGP korzysta z Protokołu Kontroli Transmisji (TCP) na porcie 179179. TCP zapewnia transport z kontrolą kolejności, retransmisją i potwierdzeniami, dzięki czemu BGP nie musi definiować tych funkcji w komunikatach aktualizacji.

Po utworzeniu sesji routery wymieniają początkowy zestaw tras dopuszczony przez politykę eksportu, a później wysyłają aktualizacje przy zmianach. BGP nie wymaga okresowego przesyłania całej tablicy routingu. KEEPALIVE i wartość Hold Time służą do wykrywania utraty sesji.

Zewnętrzny a Wewnętrzny BGP (eBGP vs. iBGP)

Sesje BGP dzielą się na dwa podstawowe rodzaje, zależnie od przynależności partnerów:

  • eBGP (External BGP):

    Jest to sesja między routerami w różnych Systemach Autonomicznych. Służy do wymiany tras między operatorami i innymi niezależnymi sieciami. Partnerzy często są bezpośrednio połączeni, lecz możliwa jest także sesja eBGP wieloskokowa. Przy ogłaszaniu trasy do zewnętrznego partnera router dodaje własny ASN do AS_PATH.

  • iBGP (Internal BGP):

    Jest to sesja między routerami wewnątrz tego samego Systemu Autonomicznego. Gdy trasa zostanie poznana przez eBGP, iBGP przekazuje ją innym routerom tego AS zgodnie z polityką. Klasyczny model wymaga pełnej siatki sesji iBGP, a route reflectors ograniczają liczbę połączeń. Przy ogłaszaniu przez iBGP AS_PATH nie jest modyfikowany.

Typy komunikatów BGP

Partnerzy BGP komunikują się za pomocą czterech typów komunikatów przesyłanych przez połączenie TCP.

  • Komunikat OPEN: Jest wysyłany po nawiązaniu połączenia TCP. Zawiera identyfikator BGP, ASN oraz parametry sesji, w tym wartość Hold Time. Po zaakceptowaniu komunikatów OPEN obie strony mogą przejść do wymiany UPDATE.
  • Komunikat UPDATE: Służy do ogłaszania nowych tras, wycofywania tras lub wykonania obu operacji w jednym komunikacie. Pojedynczy UPDATE może zawierać wiele prefiksów z tym samym zestawem atrybutów ścieżki. Komunikat przenosi AS_PATH i inne atrybuty używane przez lokalną politykę. BGP wysyła aktualizacje przy zmianie informacji, zamiast okresowo odświeżać całą tablicę.
  • Komunikat KEEPALIVE: Jeżeli router nie wysyła innych komunikatów, okresowo wysyła mały KEEPALIVE, aby wartość Hold Time sąsiada nie wygasła. Odstęp wynika z wynegocjowanego Hold Time. Typowo nie przekracza jednej trzeciej tego czasu. Przy Hold Time równym zero komunikaty KEEPALIVE nie są wysyłane okresowo.
  • Komunikat NOTIFICATION: Jeśli router wykryje błąd, taki jak nieprawidłowy komunikat lub wygaśnięcie wartości Hold Time, wysyła NOTIFICATION z kodem i przyczyną błędu. Następnie zamyka sesję BGP.

Wybór trasy przez BGP

BGP nie wybiera trasy na podstawie jednej metryki. Proces decyzyjny najpierw stosuje lokalną politykę i wyznacza stopień preferencji, a następnie porównuje atrybuty ścieżki oraz rozstrzyga remisy. Najważniejsze kryteria obejmują:

Trasa musi mieć rozwiązywalny NEXT_HOP, aby mogła zostać wybrana do lokalnej tablicy. Po preferencji lokalnej standardowy proces porównuje między innymi AS_PATH i ORIGIN, a MED porównuje tylko trasy od tego samego sąsiedniego AS. Konkretna implementacja może rozszerzać proces o własne kryteria.

  • Długość AS_PATH: Po uwzględnieniu stopnia preferencji BGP preferuje krótszą ścieżkę AS_PATH, czyli trasę przechodzącą przez mniejszą liczbę AS.
  • Preferencja lokalna (LOCAL_PREF): Atrybut używany w jednym AS do wskazania preferowanej bramy wyjściowej dla ruchu.
  • Kod pochodzenia (ORIGIN): Wskazuje, jak informacja o trasie została wprowadzona do BGP, na przykład jako informacja wewnętrzna AS albo przez redystrybucję.

Podsumowanie: rola BGP

BGP różni się od protokołów IGP zakresem działania i sposobem wyboru tras. Czas zbieżności zależy od topologii, polityki, timerów i implementacji, dlatego nie ma jednej uniwersalnej wartości. BGP wspiera skalowalność, stabilność oraz kontrolę opartą na polityce.

Wektor ścieżki, transport TCP i konfiguracja relacji z partnerami tworzą mechanizm obsługujący globalną wymianę prefiksów. Atrybuty ścieżki pozwalają operatorom wdrażać polityki biznesowe i techniczne, więc wybór trasy zależy od informacji o ścieżce oraz lokalnych reguł. BGP jest podstawowym protokołem wymiany tras między niezależnymi AS w Internecie.

Poprawne działanie wymaga zgodnych zasad importu i eksportu, osiągalnych adresów następnego skoku oraz aktualnego stanu sesji. Zmiana polityki może zmienić wybraną trasę bez zmiany samej topologii, ponieważ decyzja BGP opiera się także na atrybutach i konfiguracji.

Powiązane artykuły