(T) Wstęp do protokołu BGP*

Wstęp do protokołu BGP

Podstawowe informacje dotyczące protokołu BGP

Właściwości protokołu BGP

  • Domyślna wartość administracyjna (AD) względem:
    • Trasy wewnętrznej (Internal Route): AD 200.
    • Trasy zewnętrznej (External Route): AD 20.
  • Domyślne ustawienia komunikacji:
    • Wykorzystywany port: TCP 179.
    • Wykorzystywany adres IP: Unicast IP address.

Założenia protokołu BGP

  • Protokół BGP jest protokołem wektora ścieżki (Path Vector). związku z czym nie posiada wiedzy na temat otaczającej go topologii sieciowej.

Standaryzacja protokołu BGP

  • RFC 2858 – Definiuje protokół Multi-Protocol BGP (MP-BGP)
  • RFC 1654 – Definiuje

Wykorzystanie protokołu BGP

  • Protokół BGP jest jedynym przedstawicielem rodziny EGP (Exterior Gateway Protocol) jaki istnieje i jest obecnie wykorzystywany. Został stworzony w celu obsługi globalnych tablic routingu, dzięki czemu jest zdolny do obsługi setek tysięcy tras routingu.

Nadawanie publicznych adresów IPv4

  1. Organizacja ICANN (Internet Corporation for Assigned Names and Numbers) oraz IANA (Internet Assigned Numbers Authority) rozdzielają pule publicznych adresów IPv4 względem poszczególnych obszarów geograficznych.
  2. Organizacja IANA przypisuje adresy z poszczególnych obszarów geograficznych do jednostek RIR (Regional Internet Registries).
  3. Poszczególne jednostki RIR rozdzielają dostępne pule publicznych adresów IPv4 do jednostek NIR (National Internet Registries) oraz LIR (Local Internet Registries), z czego dostawcy usług internetowych ISP z reguły stanowią jednostki LIR.
  4. Końcowy przydział publicznych adresów IPv4 do użytkowników końcowych jest dokonywany przez IR (Internet Registry).

Pojęcia wykorzystywane przez protokół BGP

  • Protokół BGP wykorzystuje w warstwie czwartej protokół TCP na porcie 179 (w celu nawiązywania relacji sąsiedztwa).
  • Robust best-path Algorithm – Algorytm wykorzystywany przez protokół BGP w celu wyszukania najlepszej trasy prowadzącej do sieci docelowej, na podstawie 14 domyślnych atrybutów przypisanych do każdej z istniejących tras. Dzięki zastosowaniu tak dużej liczby atrybutów, protokół BGP umożliwia szeroki zakres ingerencji w wybór drogi.
  • AS-Patch Loop Detection – Mechanizm umożliwiający wykrycie pętli w topologii BGP.
  • Autonomous System Number (ASN) – Zbiór ruterów / urządzeń warstwy trzeciej, pod kontrolą jednej organizacji. W którym routing zarządzany jest za pomocą protokołów IGP. Duże firmy, organizacje czy dostawcy usług sieciowych ISP, wykorzystują protokół BGP w komunikacji ze światem zewnętrznym. Aby uczestniczyć w ruchu globalnym muszą posiadać przypisany przez organizację IANA (Internet Assigned Numbers Authority), unikalny numer ASN. Pierwotnie numer ASN składał się z 2bajtów (16bitów) co dawało łączną ilość 65,535 kombinacji, jednak obecnie wykorzystywana wersja protokołu BGP, stosuje wartość ASN składającą się z 4bajtów (32bitów) co daje łączną ilość 4,294,967,295 kombinacji (Zmiana długości numeru ASN, była podyktowana wyczerpaniem się pierwotnej puli. Została opisana w referencji RFC 4893). Pula dostępnych numerów ASN została podzielona na:
    • Pulę prywatną – Nie dopuszczaną do rozgłaszania w sieci publicznej jak i nie znajdującą się pod zwierzchnictwem organizacji IANA / ICANN (Pula ta zawiera następujący zakres numerów ASN: od 64,512 do 65,535 (Dla 16-bitowej wersji numeru ASN) jak i od 4,200,000,000 do 4,294,967,294 (Dla 32-bitowej wersji numeru ASN)).
    • Pulę publiczną – Przydzielaną przez organizację IANA / ICANN, wymagającą spełnienia następujących warunków:
      • Dowodu na posiadanie puli publicznych adresów IP.
      • Dowodu na wykorzystanie przynajmniej podwójnego połączenia z Internetem.
      • Wykorzystania unikalnej polityki trasowania od dostawcy usług internetowych (ISP).
W przypadku nie spełnienia powyższych warunków, firma może wykorzystać numer ASN przydzielony przez dostawcę usług Internetowych (ISP).
  • Pełna pula wartości ASN (Dla 16-bitowej wersji numeru ASN) wygląda następująco:
    • 0 – Wartość ASN zarezerwowana przez organizację IANA / ICANN.
    • 1 – 64,495 – Wartości ASN przydzielane przez organizację IANA / ICANN do użytku publicznego.
    • 64,496 – 64,511 – Wartości ASN zarezerwowane w celu tworzenia dokumentacji.
    • 64,512 – 65,534 – Wartości ASN zarezerwowane do użytku prywatnego.
    • 65,535 – Wartość ASN zarezerwowana przez organizację IANA / ICANN.
Istotne jest aby używać jedynie numerów ANS otrzymanych od organizacji IANA / ICANN, dostawcy usług internetowych (ISP) czy numerów z puli prywatnej. Ponieważ wykorzystanie numeru ASN innej organizacji bez jej zgody może doprowadzić do utraty pakietów bądź też całego połączenia Internetowego.
  • Network Layer Reachability Information (NLRI) – Wartości Prefix/Lenght względem rozgłaszanej sieci (IPv4, IPv6 multicast).
  • Hold Timer
  • RID (BGP Identifier) – 32-bitowa, dot-decymalną wartość identyfikująca określony ruter, jest wykorzystywana jako mechanizm zapobiegający powstawaniu pętli wewnątrz jednego systemu autonomicznego (AS).
  • AS-Patch Loop Detection – Protokół BGP opiera swoje działanie na zasadzie wektora ścieżki (Path Vector), związku z czym posiada on wiedzę jedynie o tym, przez jakie systemy autonomiczne (AS) przejść muszą dane, aby dotrzeć do celu. Aby zabezpieczyć sieć przed powstawaniem pętli sieciowych, protokół BGP wykorzystuje atrybutu AS_PATH (Jeżeli ruter znajdzie w atrybucie AS_PATH swój własny numer ASN porzuci daną trasę, podejrzewając powstanie pętli sieciowej).
  • BGP Split Horizon Rule – W przypadku protokołu iBGP trasa otrzymana od jednego sąsiada nie zostanie przekazana innym sąsiadom.
  • Sesja BGP (BGP Sessions) – Odnosi się do relacji sąsiedztwa funkcjonującej pomiędzy dwoma ruterami wspierającymi protokół BGP. Wyróżnia się dwa rodzaje takowej relacji:
    • Internal BGP (iBGP) – Sesja protokołu BGP nawiązana pomiędzy dwoma ruterami należącymi do tego samego systemu autonomicznego (AS), wartość AD takie trasy wynosi 200.
    • External BGP (eBGP) – Sesja protokołu BGP nawiązana pomiędzy dwoma ruterami należącymi do różnych systemów autonomicznych (AS), wartość AD takie trasy wynosi 20.
  • MP-BGP, MBGP (Multiprotocol BGP) – Wersja protokołu BGP opisana w referencji RFC 2858, rozszeża wsparcie o protokół IPv6.
    • AFI (Address Family Identifier) – Określa obecnie wykorzystywaną rodzinę adresów IP (IPv4 badź IPv6).
    • SAFI (Subsequent Address Family Identifier) – Określa obecnie wykorzystywany rodzaj ruchu (Unicast bądź Multicast).
Trasy iBGP uważane są za bardziej bezpieczne.

Określanie wartości RID (Router ID)

  • RID (BGP Identifier) – Stanowi 32-bitową dot-decymalną wartość identyfikującą wskazany ruter. Wartość ta jest wykorzystywana jako mechanizm zapobiegający powstawaniu pętli wewnątrz jednego systemu autonomicznego (AS). Może być przy tym skonfigurowana statycznie bądź też dynamicznie, niezależnie od metody wyboru jest konieczna do nawiązania relacji sąsiedztwa. Proces dynamicznej alokacji numeru RID jest zależny od wykorzystywanego systemu IOS:
    • IOS – Wartość RID stanowi najwyższy adres IP aktywnego interfejsu loopback, w przypadku braku tak owego wybierany jest najwyższy adres IP aktywnego interfejsu non-loopback.
    • IOS XR – Wartość RID stanowi najniższy adres IP aktywnego interfejsu loopback, w przypadku braku tak owego wykorzystywana jest pusta wartość (0.0.0.0), zapobiegająca nawiązaniu relacji sąsiedztwa.
    • NX-OS – Wartość RID stanowi najniższy adres IP aktywnego interfejsu loopback, w przypadku braku tak owego wybierany jest najniższy adres IP aktywnego interfejsu non-loopback.
  • Konfigurację statycznej wartości RID można dokonać za pomocą komendy [bgp router-id RID] wydanej w trybie konfiguracji protokołu BGP w systemie IOS oraz IOS XR jaki i przy pomocy komendy [router-id RID] wydanej w trybie konfiguracji protokołu BGP w systemie NX-OS.
Zmiana wartości RID automatycznie wymusza re-negocjacje wszystkich aktywnych relacji sąsiedztwa protokołu BGP.
Statyczne skonfigurowanie wartości RID, jest metodą polecaną (Best Practice).

Stany i bazy protokołu BGP

Stany protokołu BGP (Krótki opis)

  1. Idle – Stan początkowy / Odnowa relacji.
  2. Connect – Czeka na zakończenie połączenia.
  3. Active – Nasłuchuje wiadomości, akceptuje połączenie.
  4. OpenSent – Czeka na wiadomość „Open”.
  5. OpenConfirm – Czeka na wiadomość „Keepalive” bądź „notification”.
  6. Established – Rozpoczyna wymianę tras / Stan stabilnej relacji sąsiedztwa.

Bazy danych protokołu BGP

  • Neighbor database – Przechowuje informację o sąsiadach protokołu BGP (Zawiera zarówno aktywne relacje sąsiedztwa jak i te znajdujące się w innych stanach). Zawartość tablicy może być wyświetlona za pomocą komendy [show ip bgp summary].
  • BGP database / RIB (Routing Information Base) – Zawiera wszystkie trasy protokołu BGP wraz z atrybutami (BGP paths and Attributes). Zawartość tablicy może być wyświetlona za pomocą komendy [show ip bgp].
  • Routing table – Zawiera najlepsze trasy względem wszystkich dostępnych sieci docelowych, zebrane za pomocą protokołów routingu dynamicznego czy statycznych wpisów, względem konfigurowanego urządzenia. Zawartość tablicy może być wyświetlona za pomocą komendy [show ip route].

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

PDFPRINT

Robert T Kucharski

Cisco Network Engineer in GPW.

Dodaj komentarz