Porównanie

eBGP vs iBGP

eBGP łączy różne systemy autonomiczne, a iBGP propaguje trasy wewnątrz jednego AS. Porównujemy next-hop, AS-path, TTL oraz typowe zastosowania obu trybów.

Ostatnia aktualizacja:

eBGP (external BGP) to sesja BGP między routerami należącymi do różnych systemów autonomicznych. iBGP (internal BGP) to sesja między routerami wewnątrz tego samego AS. Oba tryby używają tego samego protokołu (BGP-4, RFC 4271), ale różnią się sposobem obsługi next-hop, atrybutu AS-path, wartości TTL oraz reguł propagacji tras. Z tego powodu mają w sieci operatora inne role.

CechaeBGPiBGP
RelacjaMiędzy różnymi systemami autonomicznymiWewnątrz jednego systemu autonomicznego
Next-hopZmieniany na adres sąsiadaZachowywany bez zmian
AS-pathDopisywany własny numer ASPozostaje niezmieniony
Propagacja trasDo wszystkich sąsiadówNie dalej do innych peerów iBGP
Topologia sesjiZwykle sąsiedzi bezpośrednio połączeniPełna siatka albo route reflector
Domyślny TTL1, multihop wymaga zmiany255
Local-preferenceNie przechodzi między systemami ASPropagowany wewnątrz AS

Next-hop: kiedy adres się zmienia, a kiedy nie

To najczęstsze źródło błędów konfiguracyjnych. W sesji eBGP router domyślnie ustawia siebie jako next-hop dla rozgłaszanych prefiksów. W iBGP atrybut NEXT_HOP jest przekazywany bez zmian, więc trasa nauczona z eBGP zachowuje oryginalny next-hop sąsiada zewnętrznego. Jeśli ten adres nie jest osiągalny w IGP, trasa pozostaje nieaktywna i nie trafia do tablicy routingu.

  • eBGP: next-hop zmieniany na adres lokalnego routera na granicy AS.
  • iBGP: atrybut NEXT_HOP przekazywany bez zmian (RFC 4271).
  • Typowe rozwiązanie: polecenie next-hop-self na routerach brzegowych.
  • Alternatywa: rozgłaszanie sieci łączy zewnętrznych w IGP, aby next-hop był osiągalny.

AS-path i pętla propagacji

W eBGP router dokleja numer własnego AS na początek atrybutu AS_PATH przy każdym rozgłoszeniu. To mechanizm wykrywania pętli między systemami autonomicznymi. W iBGP numer AS nie jest doklejany, ponieważ trasa nie opuszcza systemu. Dlatego iBGP nie ma wbudowanej ochrony przed pętlami i obowiązuje zasada, że trasy nauczone przez iBGP nie są rozgłaszane do innych sąsiadów iBGP. To wymusza pełną siatkę (full mesh) sesji albo użycie route reflectorów (RFC 4456) lub konfederacji (RFC 5065).

TTL, ustanawianie sesji i wybór trasy

Sesje eBGP zwykle łączą bezpośrednio sąsiadujące routery, więc pakiety BGP wysyłane są z TTL=1 (multihop eBGP wymaga jawnego podniesienia TTL). Sesje iBGP często przebiegają przez wiele przeskoków IGP, dlatego sąsiedzi nie muszą być bezpośrednio połączeni. Różni się też domyślna preferencja: trasy eBGP mają niższy administrative distance (20 w Cisco) niż iBGP (200), a w procesie wyboru najlepszej trasy ścieżki eBGP są preferowane przed iBGP.

  • eBGP: domyślnie TTL=1, sąsiedzi bezpośrednio połączeni.
  • iBGP: sąsiedzi mogą być oddaleni o wiele przeskoków przez IGP.
  • Administrative distance: eBGP 20, iBGP 200 (Cisco).
  • GTSM (RFC 5082) chroni sesje eBGP, sprawdzając, czy pakiety przychodzą z odpowiednio wysokim TTL.

eBGP i iBGP w sieci AS202520 SkyPass

W AS202520 SkyPass eBGP obsługuje wszystkie relacje zewnętrzne: sesje peeringowe w polskich IXP (THINX, TPIX, WRIX, 1-IX) oraz sesje tranzytu IP dostarczające pełną tablicę BGP do klientów. Wewnątrz naszego AS iBGP propaguje te trasy spójnie między routerami brzegowymi, z route reflectorami w PoP-ach w Warszawie i we Wrocławiu. Konfigurując sesję BGP z nami, klient zestawia eBGP do AS202520. Po naszej stronie iBGP zapewnia, że prefiksy klienta są widoczne na wszystkich punktach styku. Stan tras możesz zweryfikować w naszym Looking Glass.

Najczęstsze pytania

Czym różni się eBGP od iBGP w jednym zdaniu?

eBGP łączy routery w różnych systemach autonomicznych, a iBGP propaguje trasy między routerami w obrębie tego samego AS.

Dlaczego trasa z iBGP jest nieaktywna, mimo że ją widzę?

Najczęściej next-hop nauczony z eBGP nie jest osiągalny w IGP. Rozwiązaniem jest polecenie next-hop-self na routerze brzegowym lub rozgłoszenie podsieci łącza do IGP.

Czy iBGP wykrywa pętle przez AS-path?

Nie. iBGP nie dokleja numeru AS, dlatego trasy z iBGP nie są przekazywane innym sąsiadom iBGP. Pętlom zapobiega pełna siatka (full mesh), route reflectory (RFC 4456) lub konfederacje (RFC 5065).

Czy sąsiedzi eBGP muszą być bezpośrednio połączeni?

Domyślnie tak, bo pakiety wysyłane są z TTL=1. Sesje przez wiele przeskoków wymagają jawnego multihop eBGP z podniesionym TTL.

Powiązane artykuły