BGP - Border Gateway Protocol

Wszystko co musisz wiedzieć o BGP do CCNA R&S

Border Gateway Protocol

Po raz pierwszy w historii Cisco postanowiło umieścić podstawy Border Gateway Protocols w CCNA R&S. Oczywiście wcześniej external BGP był wspominany jako jeden z współczesnych protokołów routingu wykorzystywany do wymiany informacji o trasach pomiędzy AS (autonomous system), jednak dopiero zdając CCNA 3.0 będziesz umiał skonfigurować oraz przeprowadzić troubleshooting tego protokołu. CCNA R&S skupia się wyłącznie eBGP single-homed (połączenie do ISP jednym łączem) wersji dla ipv4. W rzeczystych środowiskach produkcyjnych firmy posiadające wyłącznie jedno podłączenie do ISP nie zaprzątają sobie głowy BGP.
BGP jest obecnie jedynym współcześnie używanym protokołem exterior gateway protocol (EGP). Należy do protokołów path vector, posiada wiele opcji konfiguracyjnych (Ich ilość wystarcza na pokrycie materiałów CCNA poprzez CCNP aż do CCIE i nadal uczysz się czegoś nowego) oraz pozwala na ogromną skalowalność i robi to świetnie. Tak na marginiesie obecna pełna tablica „routingu Internetu” zawiera ponad 700 tysięcy wpisów! 
 Zdjęcie pochodzi ze strony http://bgp.potaroo.net/
Do głównych zalet należy zaliczyć:
  • Protokół routingu typu path vector
  • Obsługuje VLSM, CIDR oraz summaryzację
  • Pełna informacja o trasach rozsyłana na starcie, potem tylko aktualizacje
  • Połaczeniowy tryb komunikacji z użyciem portu 179
  • Złożona metryka, na podstawie której wyznaczane sa trasy
  • Dobra skalowalność, rozrastanie sieci nie stanowi problemu
  • Możliwe jest kierowanie ruchem poprzez odpowiednia konfigurację atrybutów metryki

Rozgłaszanie tras

BGP rozgłasza prefixy wykorzystując podobny mechanizm wymiany informacji co protokoły IGP. Aby wysłać informację (BGP update) jeden z routerów musi posiadać informację o routowalnym w internecie prefixie. Routery które posiadają relację sąsiedztwa nazywane są peer’ami.
W odróżnieniu od protokołów IGP które rozgłaszają adresy nazywane podsieciami, adresy rozgłaszane przez BGP nazywane są prefixami, blokami adresów oraz prawidłowo w odniesieniu do BGP Network Layer Reachability Information (NLRI).
W powyższym przypadku korporacja posiada relację sąsiedztwa (peering relationship)  ze swoim lokalnym ISP 1 do którego przesyła informację o posiadanym bloku adresów 192.10.10.0/24. Następnie ISP 1 przesyła NLRI dalej do ISP2 który przesyła update do ISP 3 i tak dalej, aż wszystkie routery w Internecie będą znały trasę do sieci 192.10.10.0/24.
Bardzo ważną rolę w BGP odgrywa  Autonomous system number(ASN). Identycznie jak ma to miejsce w EIGRP , termin autonomous system odnosi się do automicznej sieci. BGP wykorzystuje ASN – numer identyfikujący AS – w wielu aspektach konfiguracji między innymi w mechanizmach zapobiegania pętlą routingu czy wyborze najlepszej ścieżki jednak jest to poza zakresem CCNA R&S.

Rozgłaszanie publicznego prefixu do internetu

Rozważmy teraz typową sytuację w której mamy dwa eBGP peeery. Z jednej strony korporację posiadająca blok adresów klasy C 192.10.10.0/24 który został podzielony na podsieci 192.10.10.0/29 oraz 192.10.10.128/26 oraz prywatny blok adresów klasy A 10.0.0.0/8. Które podsieci zostany rozgłoszone do routera ISP poprzez eBGP? Oczywiście tylko cała klasa C 192.10.0.0/24.  Stanie się tak ponieważ z punktu widzenia ISP interesujący jest jedynie fakt posiadania przez peera całej klasy C. Ruch do poszczególnych podsieci będzie i tak przechodził przez ten styk. Obecnie tablice BGP posiadają ponad 700 tysięcy wpisów, wyobraź sobie jak bardzo by urosły gdyby zawierały informację o wszystkich podsieciach na świecie?
Prywatne klasy adresów nie powinny być rozgłaszane do internetu, nawet jeśli tak się stanie ISP natychmiast odfiltruje takich ruch.

W drugą stronę ISP rozgłasza default-route do korporacji. Dlaczego tak? Załóżmy, że ISP 1 rozgłosi wszystkie prefixy i router brzegowy korpo umieści wszystkie trasy w swojej tablicy routingu. Jaki adres następnego skoku będą posiadać wszystkie trasy? Oczywiście routera brzegowego ISP 1.

Wybór najlepszej trasy z BGP

Podobnie jak protokoły IGP BGP również posiada coś na wzór metryki, dzięki której wybierana jest najlepsza trasa. Jednakże BGP wykorzystuje nieco inne podejście do tego procesu. Po pierwsze BGP nie ma jednej definicji metryki. W rzeczywistości wykorzystuje atrybuty ścieżki (path attributes). BGP rozgłasza prefixy wraz z lista atrybutów (sprzęt Cisco rozpoznaje 11 atrybutów). Ze względu, że wybór najlepszej trasy jest podejmowany na podstawie zestawu atrybutów wybranych przez administratora, możliwa jest bardzo precyzyjna konfiguracja jak chcemy zarządzać przesyłanymi danymi.
BGP wykorzystuje proces nazywany selekcją najlepszej trasy. Kiedy router otrzymuje pakiet BGP update zawierający prefix który już jest w tabeli routingu musi podjąć decyzję czy nowa trasa jest lepsza od dotychczasowej. Aby to ustalić przeprowadzana jest seria porównań (zwykle około 10) na podstawie parametrów trasy. Takie porównywanie wymaga znacznie mniej pracy niż przykładowo uruchomienie procesu SPF dla protokołu OSPF.
Jednym z atrybutów biorących udział w porównaniu jest AS_Path (PA) który zawiera listę wszystkich ASN które znajdują się na ścieżce do danego bloku adresów. Przypomina to metrykę liczby przeskoków w RIP’ie, jednakże każdy skok to cały AS zamiast pojedyńczego routera.

Styk internetu

Termin styk internetu odnosi się zarówno połączenia pomiędzy użytkownikiem końcowym/korporacją a ISP, jak również do połączeń ISP do ISP. Na potrzeby CCNA R&S musisz znać tylko jeden model takiego styku zwany single-homed. Pamiętaj jednak, że to nie jedyny możliwy sposób połączenia. Takie rozwiązanie ma oczywiście swoje plusy i minusy. Jeśli łącze ulegnie uszkodzeniu tracimy dostęp do internetu do czasu naprawienia awarii. Analogiczna sytuacja występuje w przypadku awarii routerów brzegowych. Z drugiej strony takie połączenie jest zdecydowanie tańsze od rozwiązań bazujących na redundancji, czy to poprzez dołożenie dodatkowych łączy do jednego ISP czy poprzez podłączenie do kolejnych ISP.

Termin Dual odnosi się do sytuacji gdy posiadamy dwa lub więcej łączy do jednego ISP. Każdy z tych wzorców może być zastosowany do dowolnego łącza WAN, bez różnicy czy będzie to DSL, światłowod itd.

Konfiguracja BGP

W odróżnieniu od  protokołów IGP takich jak OSPF czy EIGRP w BGP nie ma dynamicznego odkrywania sąsiadów. Wszystkie peery muszą zostać wprowadzane przez administratora. Do komunikacji wykorzystywany jest port TCP 179. Po nawiązaniu sesji TCP dwa peery sprawdzają wzajemnie czy powinno ustanowić relację sąsiedztwa. Jeśli weryfikacja zakończy się pomyślnie rozpoczyna się przesyłanie pakietów BGP update z NLRI.
Konfiguracja BGP rozpoczynamy od polecenia router BGP asn (numer AS do ktorego nalezy router). Router przenosi nas wtedy do konfiguracji BGP. Następnie w celu nawiązania relacji sąsiedztwa musimy wprowadzić polecenie neighbor ip_adres remote-as asn.


Polecenie show tcp brief pokazuje wszystkie połączenia TCP terminowane na routerze nie ograniczając się wyłącznie do BGP, jednak może być z powodzeniem wykorzystywane do sprawdzania poprawności relacji sąsiedztwa.

Weryfikacja

Polecenie show ip bgp summary pokazuje informacje na temat działającego protokołu na routerze oraz listę peerów.
W celu sprawdzenia czy dany peer należy do eBGP czy do iBGP należy porównać numery AS (nie ma bezpośredniej informacji). Ostatnia kolumna State/PfxRcd informuje w jakim stanie jest relacja sąsiedztwa z danym peerem. Jeśli relacja jest poprawnie nawiązana taki status nazywa się Established. W takim wypadku zamiast nazwy stanu wyświetlana jest liczba prefixów pobranych od sąsiada.

Idle Sąsiad został administracyjnie wyłączony (neighbor shutdown) lub router oczekuje na ponowne nawiązanie relacji.
Connect Została podjęta próba zestawienia sesji TCP jednak nie została prawidłowo zakończona.
Active Połączenie TCP zostało poprawnie zestawione, jednak żadna wiadomość BGP nie została jeszcze wysłana.
Opensent Połączenie TCP zostało poprawnie zestawione, router wysłał pierwszą wiadomość w celu nawiązania relacji sąsiedztwa (BGP Open message)
Openconfirm Połączenie TCP zostało poprawnie zestawione, router otrzymał wiadomość BGP Open message. Relacja sąsiedztwa nadal nie ustanowiona.
Established Routery są obecnie peer’ami BGP i mogą wymieniać informacje

W celu rozgłoszenia tabeli BGP należy umieścić dany prefix w tablicy routingu. Do tego celu można wykorzystać polecenie network ip_adres mask maska. Polecenie network jednak ma nieco inne zastosowanie niż w protokołach IGP.

Sprowadza się to do:

  • Rozgłaszania tras dla całych klasowych sieci lub publicznych bloków adresów
    Rozgłaszania tras dla podsieci publicznych bloków adresów
    Rozgłaszania tras dla całych bloków adresów nawet jeżeli w tabeli routingu znajduje się wyłącznie podsieci danego bloku

Rozgłaszanie klasowego prefixu z Static Discard Route

Routery ISP nie potrzebują osobnych tras do korporacyjnych podsieci. Zamiast tego zdecydowanie jest opcją jest rozgłaszanie poprzez korporację całych bloków adresowych. Jednakże jeśli router korpo nie posiada trasy dla całego bloku adresowego (w naszym przypadku korpo router posiada wyłącznie podsieci 192.10.10.0/29 i 192.10.10.128/26 zamiast 192.10.10.0/24) nie możliwe jest dodanie tego bloku poleceniem network do tablicy BGP.
Rozwiązaniem tego problemu jest stworzenie trasy nazywanej discard route. Polega to na stworzeniu trasy do całego bloku adresowego kierującej na interfejs null0 poprzez polecenie ip route ip_adress maska null0. Od tej pory możemy dodać blok do tablicy BGP i wszystkie pakiety pasujące do danej maski zostaną odrzucone, jednakże pakiety adresowane do naszych podsieci nadal zostaną dostarczone ponieważ routery przeszukując tablice routingu poszukują najdłuższego dopasowania.

O mnie

O mnie

Cześć! Nazywam się Rafał i jestem sieciowcem pasjonatem. Na blogu chciałbym podzielić się z Tobą swoimi przemyśleniami na temat sieci komputerowych.

Więcej o mnie…