(T) Nawiązywanie relacji sąsiedztwa (BGP Peers)*

Nawiązywanie relacji sąsiedztwa (BGP Peers)

Wstęp do nawiązywania relacji sąsiedztwa

Wymagania dotyczące procesu nawiązywania relacji sąsiedztwa (eBGP)

  • Adres IP sąsiedniego urządzenia, skonfigurowana za pomocą komendy [neighbor adres-IP remote-as ANS] musi odpowiadać źródłowemu adresowi IP nadchodzącej sesji TCP.
  • Wartość ASN sąsiedniego urządzenia, skonfigurowana za pomocą komendy [neighbor adres-IP remote-as ANS] musi odpowiadać wartości [router bgp ASN] skonfigurowanej na sąsiednim ruterze.
  • Wartość RID obydwóch urządzeń musi się różnić [bgp router-id RID].
  • Jeżeli skonfigurowany, proces uwierzytelniania musi przebiec pomyślnie [neighbor adres-IP password klucz].
  • Obydwa rutery muszą posiadać tę samą wersję protokołu BGP.
Jeżeli urządzenia nie znajdują się w tej samej sieci, ruter musi posiadać trasę do sieci w której znajduje się sąsiad, w tablicy routingu RIB(Trasa domyślna nie jest brana pod uwagę).

BGP a interfejs Loopback

  • Źródłowy adres IP nadchodzącego pakietu BGP, musi odpowiadać adresowi IP podanemu w komędzie [neighbor adres-IP remote-as ANS], wydanej w trybie konfiguracji protokołu BGP.
  • W przypadku istnienia jedynie pojedynczej trasy prowadzącej pomiędzy sąsiadami, źródłowym adresem IP może być adres interfejsu fizycznego. Jednak w sytuacji istnienia wielu tras, tylko jedna z nich mogła by być wykorzystywana jako trasa łącząca obydwa urządzenia. Ponieważ zmiana połączenia wpłynęła by na adres źródłowy.
  • Aby umożliwić redundancję połączenia pomiędzy sąsiadami, źródłowy adres IP powinien być adresem interfejsu Loopback, konfigurowanego za pomocą komendy [neighbor adres-IP update-source interfejs], wydanej w trybie konfiguracji protokołu BGP. Ponadto należy zmienić maksymalną dopuszczalną ilość przeskoków pomiędzy sąsiadami. z domyślnej wartości równej 1. Za pomocą komendy [neighbor adres-IP ebgp-multihop 1-255(maksymalna ilość-przeskoków)(1)], wydanej w trybie konfiguracji protokołu BGP.
Komenda [neighbor adres-IP ebgp-multihop 1-255(maksymalna ilość-przeskoków)(1)] wpływa na domyślną wartość TTL zawartą w nagłówku pakietu IP. Domyślnie ustawioną na 1 względem pakietów protokołu BGP. 

Przykładowe problemy związane z nawiązywaniem, utrzymaniem relacji sąsiedztwa (Peers)

  • Jeżeli sąsiedni ruter nie otrzymuje wiadomości „KeepAlive”, może to oznaczać że wartość MTU się nie zgadza.

Proces nawiązywania relacji sąsiedztwa FSM (Finite State Machine)

  • Idle – Stanowi pierwszy, wstępny etap nawiązywania relacji sąsiedztwa pomiędzy ruterami BGP. Na tym etapie urządzenia nasłuchują sesji TCP jak i próbują ją zainicjować. W przypadku zdegradowania relacji sąsiedztwa do stanu Idle z i innego stanu FSM, urządzenia aktywują czas ConnectRetryTimer ustawiony na 60 sekund. Ponowna próba inicjacji sesji TCP może nastąpić dopiero po upływie tego czasu. Jeżeli jednak relacja sąsiedztwa zostanie ponownie przeniesiona do stanu Idle, wartość czasu ConnectRetryTimer ulegnie podwojeniu.
  • Connect – Rutery inicjują pomiędzy sobą sesje TCP (3-way TCP hand-shake). Jeżeli proces się powiedzie, rutery nawiążą ze sobą sesje BGP resetując tym samym czas ConnectRetryTimer jak i wysyłając wiadomość „Open” do sąsiedniego urządzenia, a tym samym przenosząc relację sąsiedztwa do stanu OpenSent. Jeżeli jednak czas ConnectRetryTimer upłynie zanim sesja BGP zostanie nawiązana, próba nawiązania połączenia zostanie ponowiona. Czas ConnectRetryTimer zostanie zresetowany a relacja sąsiedztwa zostanie przeniesiona do stanu Active. W przypadku otrzymania innego sygnału sesje zostanie przeniesiona do stanu Idle.
    • Podczas trwania stanu Connect urządzenie z wyższą wartością adresu IP, będzie zarządzało połączeniem nawiązywanym z dynamicznego portu źródłowego oraz określonego portu docelowego TCP 179.
    • Komenda [show tcp brief / except „LISTEN/CLOSED”] wyświetla adresy IP wraz z wykorzystywanymi portami TCP jak i stanem relacji protokołu BGP.
  • Active – Ruter ponawia inicjacje sesji TCP (3-way TCP hand-shake).  Jeżeli proces powiedzie się, ruter poprawnie  nawiąże sesje BGP ustawiając wartość czasu ConnectRetryTimer na 4 minuty jak i wysyłając wiadomość „Open”,  a tym samym przenosząc relację sąsiedztwa do stanu OpenSent.
  • OpenSent – Po zakończeniu obopólnej wymiany wiadomości „Open”, sąsiednie urządzenia sprawdzają zawartość otrzymanych wiadomości pod względem następujących kryteriów:
    • Wersji protokołu BGP (Musi się zgadzać).
    • Źródłowego adres IP odebranej wiadomości „Open” (Adres IP musi być taki sam, jaki podany w konfiguracji).
    • Wartości AS sąsiedniego urządzenia (Musi być taka sama jaka wynika to z konfiguracji).
    • Otrzymanej wartości RID (Musi być unikalna względem obydwóch urządzeń) (Jeżeli wartość RID nie zastała zawarta w wiadomości „Open” warunek ten nie zostanie spełniony).
    • Innych wartości takich jak opcjonalne hasło czy wartość TTL (Muszą się zgadzać).
  • Jeżeli wiadomość „Open” zostanie pozytywnie zweryfikowana, sąsiednie urządzenia rozpoczną negocjacje wartość czasu „Hold Time” (Wybierając najmniejszą skonfigurowaną wartość) jak i czasu „KeepAlive” przy założeniu że nie jest ona równa 0. Następnie przeniosą relację sąsiedztwa do stanu OpenConfirm.
  • Jeżeli weryfikacja wiadomości „Open” nie zakończy się pomyślnie, połączenie zostanie zerwane, czas ConnectRetryTimer zresetowany a relacja sąsiedztwa przeniesiona do stanu Active. W przypadku otrzymania innego sygnału relacja sąsiedztwa zostanie przeniesiona do stanu Idle.
  • OpenConfirm – Rutery oczekują na otrzymanie pierwszej wiadomości „keepalive”, w przypadku jej otrzymania relacja sąsiedztwa zostanie przeniesiona do stanu Established. jeżeli czas „Hold time” upłynie a wiadomość nie nadejdzie bądź też wiadomość „Notification message” zostanie nadesłana, relacja sąsiedztwa zostanie przeniesiona do stanu Idle.
  • Established – Sesja protokołu BGP została nawiązana, umożliwiając wymianę tras routingu za pomocą wiadomości aktualizacyjnych „Update messages”. W przypadku otrzymania wiadomości aktualizacyjnej „Update messages” bądź też wiadomości „KeepAlive” wartość czasu Hold Time zostaje zresetowana. Jeżeli jednak żadne wiadomości nie dotrą przed upływem czasu Hold Time, relacja sąsiedztwa zostanie przeniesiona do stanu Idle.

Pozostałe artykuły związane z protokołem BGP

PDFPRINT

Robert T Kucharski

Cisco Network Engineer in GPW.

Dodaj komentarz