Czym jest BGP?
BGP to protokół routingu internetu, który wymienia trasy między systemami autonomicznymi. Poznaj eBGP, iBGP, ścieżki AS i bezpieczeństwo.
Ostatnia aktualizacja:
BGP (Border Gateway Protocol) to protokół routingu, który spaja cały internet. Wymienia on informacje o osiągalności sieci między systemami autonomicznymi (AS). Każdy operator, dostawca treści czy duża firma ma własny numer AS, a BGP pozwala tym sieciom ogłaszać sobie nawzajem, które prefiksy adresów IP obsługują. Dzięki temu pakiet wysłany z jednej części świata wie, którędy dotrzeć do celu, mimo że żaden router nie zna pełnej mapy internetu.
Co robi BGP i jak działa
BGP jest protokołem typu path-vector. Zamiast wymieniać surowe metryki jak protokoły wewnętrzne, routery BGP przekazują sobie całe ścieżki AS, czyli listę numerów systemów autonomicznych, przez które dany prefiks został ogłoszony. Sesje BGP nawiązywane są nad TCP na porcie 179, co daje niezawodne dostarczanie aktualizacji. Po nawiązaniu sesji sąsiedzi wymieniają pełne tablice tras, a potem przesyłają już tylko zmiany przyrostowe. W stabilnej sieci ogranicza to ruch kontrolny.
eBGP kontra iBGP
Rozróżnienie między eBGP a iBGP zależy od tego, czy sesja łączy dwa różne systemy autonomiczne, czy routery w obrębie jednego AS. eBGP (external BGP) działa między różnymi AS i to ono buduje globalną tablicę routingu internetu. iBGP (internal BGP) propaguje trasy nauczone z zewnątrz wewnątrz własnego AS, tak aby wszystkie routery brzegowe miały spójny obraz dostępnych ścieżek.
- eBGP zwykle łączy bezpośrednio sąsiadujące routery i domyślnie obniża TTL, oczekując sąsiada w tym samym segmencie.
- iBGP wymaga pełnej siatki połączeń lub mechanizmów skalujących, takich jak route reflektory albo konfederacje.
- Trasy nauczone przez iBGP nie są domyślnie reklamowane innym sąsiadom iBGP, co wymusza pełną siatkę lub reflektory.
- eBGP modyfikuje ścieżkę AS, dopisując własny numer AS, podczas gdy iBGP jej nie zmienia.
Wybór trasy i znaczenie dla operatorów
Gdy router pozna kilka tras do tego samego prefiksu, BGP wybiera jedną najlepszą według ustalonej kolejności atrybutów. Najpierw brany jest pod uwagę lokalny atrybut weight, potem LOCAL_PREF, następnie długość ścieżki AS, typ pochodzenia, atrybut MED, a dalej preferencja eBGP nad iBGP i metryka do następnego skoku. Dla operatorów oznacza to realną kontrolę nad polityką ruchu. Poprzez LOCAL_PREF można preferować tańszy peering nad płatnym tranzytem, a poprzez prepending ścieżki AS wpływać na to, którędy ruch przychodzący wraca do sieci.
Dla każdego dostawcy internetu BGP jest narzędziem inżynierii ruchu i niezawodności. Posiadanie własnego AS i sesji BGP pozwala na multihoming, czyli jednoczesne połączenie z wieloma dostawcami i automatyczne przełączanie ruchu w razie awarii łącza. To również podstawa publicznego i prywatnego peeringu, dzięki któremu można obniżyć koszty tranzytu i skrócić drogę pakietów do popularnych zasobów.
Bezpieczeństwo: porwania tras, MANRS i RPKI
BGP powstał w czasach, gdy operatorzy ufali sobie nawzajem, dlatego sam w sobie nie weryfikuje, czy ogłaszający prefiks ma do niego prawo. Skutkiem są porwania tras (route hijacking), gdy obcy AS ogłasza cudzy prefiks, oraz wycieki tras (route leaks), gdy trasy są nieumyślnie propagowane wbrew polityce. Aby ograniczyć te zagrożenia, powstała inicjatywa MANRS oraz mechanizm RPKI z walidacją ROA, który kryptograficznie wiąże prefiks z uprawnionym do jego ogłaszania numerem AS. Filtrowanie prefiksów, walidacja origin i limity maksymalnej liczby tras to dziś standard dobrej higieny BGP.
Najczęstsze pytania
Czym różni się eBGP od iBGP?
eBGP działa między różnymi systemami autonomicznymi i buduje globalną tablicę tras, natomiast iBGP propaguje te trasy wewnątrz jednego AS. eBGP dopisuje własny numer AS do ścieżki, a iBGP jej nie zmienia.
Po co operatorowi własny BGP?
Własny AS i sesje BGP umożliwiają multihoming, czyli redundancję łączy i automatyczne przełączanie ruchu, a także peering obniżający koszty tranzytu i poprawiający opóźnienia.
Czym jest porwanie trasy (route hijack)?
To sytuacja, gdy system autonomiczny ogłasza w BGP prefiks, do którego nie ma prawa, przekierowując ruch ofiary. Filtrowanie prefiksów i walidacja RPKI ograniczają to ryzyko.
Jak RPKI poprawia bezpieczeństwo BGP?
RPKI z obiektami ROA kryptograficznie wiąże prefiks z uprawnionym numerem AS, dzięki czemu routery mogą odrzucać nieprawidłowe ogłoszenia origin i ograniczać skutki porwań tras.
