Border Gateway Protocol

Schemat zmiany stanów połączenia BGP

BGP (ang. Border Gateway Protocol) – zewnętrzny protokół trasowania (routingu). BGP w wersji czwartej jest podstawą działania współczesnego Internetu. Istnieje wiele rozszerzeń BGP stosowanych przy implementacji MPLS VPN, IPv6 czy Multicast VPN.

Jest protokołem wektora ścieżki umożliwiającym tworzenie niezapętlonych ścieżek pomiędzy różnymi systemami autonomicznymi. Obecny otwarty standard protokołu BGP jest opisany w dokumentach RFC 4271 i 1771. Protokół ten nie używa tradycyjnych metryk – analogiczną funkcję (determinanty wyboru trasy) pełnią atrybuty i algorytm wyboru. BGP pozwala na pełną redundancję w połączeniu z Internetem, jest również używany do połączenia dwóch systemów autonomicznych, do wymiany ruchu między tymi systemami.

Protokół BGP funkcjonuje w oparciu o protokół warstwy 4 modelu OSI (port TCP o numerze 179). Zapewnia to, że aktualizacje są wysyłane w sposób niezawodny, dzięki czemu w BGP niepotrzebne są mechanizmy retransmisji, segmentacji itp. Routery zestawiają pomiędzy sobą sesje BGP, dzięki którym mogą wymieniać się informacjami o dostępnych trasach (prefiksach) i wyznaczać najlepszą niezapętloną ścieżkę do sieci docelowych.

Podstawą funkcjonowania BGP jest system autonomiczny, (ang. Autonomous System, AS), czyli sieć lub grupa sieci pod wspólną administracją i ze wspólną polityką trasowania. Systemy autonomiczne identyfikowane są za pomocą numerów, zwanych numerami AS, które przyznawane są przez organizację RIR (w Europie i części Azji jest to RIPE NCC). Protokół BGP w wersji oryginalnej zakładał dwubajtowe numery AS (16 bit), co ze względu na ich ograniczoną liczbę (65536) stanowiło poważniejsze ograniczenie rozwoju Internetu niż brak numerów IP. W 2007 roku wprowadzono numery AS o długości 4 bajtów (32 bit), przez co powiększono znacznie przestrzeń dostępnej numeracji. Implementacja 32 bitowego ASN jest rozwiązana za pomocą dodatkowych atrybutów, przez co jest kompatybilna ze starszym formatem i nie wymagała wymiany oprogramowania na wszystkich routerach.

Możemy rozróżnić EBGP (ang. exterior), gdy mamy sesję między dwoma różnymi AS oraz IBGP (ang. interior), gdy sesja BGP nawiązana jest między dwoma routerami brzegowymi w obrębie jednego AS. Protokół wymiany informacji przez routery IBGP oraz EBGP jest taki sam, natomiast routery inaczej interpretują trasy otrzymane poprzez protokół BGP z własnego lub obcego systemu autonomicznego. Trasy otrzymane przy użyciu BGP od routerów znajdujących się w tym samym systemie autonomicznym (IBGP) mają zazwyczaj bardzo niski priorytet. Pozwala to na stosowanie wewnętrznych protokołów routingu (IGP) do optymalizacji tras wewnątrz systemu autonomicznego. W implementacjach stosujących tzw. dystans administracyjny, czyli parametr określający priorytet ważności tras otrzymanych za pośrednictwem danego źródła (protokołu routingu), przejawia się to domyślnym ustawieniem dystansu dla EBGP na 20 (wysoki priorytet), a dla IBGP na 200 (bardzo niski priorytet). Routery również ustawiają w różny sposób atrybuty tras przy wysyłaniu aktualizacji przez IBGP lub EBGP[1].

Sesje mogą być zestawione pomiędzy routerami bezpośrednio połączonymi (standardowo na stykach Internetowych) lub pomiędzy zdalnymi routerami (BGP multihop). Sesje multihop są naturalne dla IBGP, w połączeniach zewnętrznych (EBGP) są rzadziej używane, gdyż najczęściej do prawidłowego działania wymagają wsparcia innych protokołów trasowania dynamicznego bądź też trasowania statycznego. Wynika to z konieczności uzyskania komunikacji na poziomie protokołu TCP z sąsiednim routerem EBGP, w przypadku braku trasy pochodzącej z innego źródła nie ma możliwości zestawienia sesji BGP.

Każdy system autonomiczny może rozgłaszać pewną liczbę adresów IP zgrupowanych w prefiksy. Np. www.onet.pl ma adres IP 213.180.130.200, Onet.pl rozgłasza prefiks 213.180.128.0/21 (czyli zakres IP 213.180.128.0-213.180.135.255) pod AS o numerze 12990. Liczba prefiksów w Internecie cały czas rośnie wraz z liczbą użytych adresów i wyczerpywaniem się adresacji (potrzeba dzielenia bloków adresowych na mniejsze), w kwietniu 2011 prefiksów w tablicy routingu było już 350000 a w maju 2013 już 450000.

BGP używa się typowo jako protokołu routingu w sieci posiadającej styki internetowe z 2 (lub więcej) dostawcami Internetu. BGP jest protokołem o długim czasie zbieżności (pobranie pełnej tablicy routingu Internetu może potrwać wiele godzin, jak również rozpowszechnienie nowego wpisu z tablicy routingu w całej sieci).

  1. Sam Halabi: Internet Routing Architecures. Wyd. 2. Cisco Press, kwiecień 2001, s. 138. ISBN 1-57870-233-X.

From Wikipedia, the free encyclopedia · View on Wikipedia

Developed by Tubidy