Dziś przyjrzymy się protokołowi BGP. Nie będziemy się zbytnio rozwodzić nad tym, dlaczego jest on stosowany jako jedyny protokół. Jest sporo informacji na ten temat, na przykład .
Czym zatem jest BGP? BGP to protokół dynamicznego routingu, będący jedynym protokołem EGP (External Gateway Protocol). Protokół ten używany jest do budowania routingu w Internecie. Przyjrzyjmy się, jak tworzona jest sąsiedztwie między dwoma routerami BGP.
Analizując sąsiedztwo między Router1 a Router3, skonfigurujemy je za pomocą następujących poleceń:
router bgp 10
network 192.168.12.0
network 192.168.13.0
neighbor 192.168.13.3 remote-as 10
router bgp 10
network 192.168.13.0
network 192.168.24.0
neighbor 192.168.13.1 remote-as 10Sąsiedztwo w obrębie jednej autonomicznej systemu — AS 10. Po wprowadzeniu danych na routerze, na przykład na Router1, ten router spróbuje nawiązać relacje sąsiedztwa z routerem Router3. Stan początkowy, kiedy nic się nie dzieje, nazywa się Idle. Gdy tylko BGP zostanie skonfigurowany na Router1, zacznie nasłuchiwać na porcie TCP 179 — przejdzie do stanu Connect, a gdy spróbuje otworzyć sesję z Router3, przejdzie do stanu Active.
Po nawiązaniu sesji między Router1 a Router3 następuje wymiana wiadomości Open. Gdy Router1 wyśle tę wiadomość, stan ten będzie nazywany Open Sent. A kiedy otrzyma wiadomość Open od Router3, przejdzie do stanu Open Confirm. Przyjrzyjmy się bliżej wiadomości Open:
W tej wiadomości przekazywane są informacje o samym protokole BGP, który używa router. Wymieniając wiadomości Open, Router1 i Router3 informują się nawzajem o swoich ustawieniach. Przekazywane są następujące parametry:
- Wersja: obejmuje wersję BGP, którą używa router. Obecna wersja BGP to wersja 4, która jest opisana w RFC 4271. Dwa routery BGP będą próbować uzgodnić kompatybilną wersję, gdy wystąpi różnica, sesja BGP nie zostanie nawiązana.
- Mój AS: obejmuje numer AS routera BGP, routery muszą uzgodnić numery AS i to również decyduje o tym, czy będą działać w trybie iBGP czy eBGP.
- Czas hold: jeśli BGP nie otrzyma żadnych wiadomości keepalive lub aktualizacji z drugiej strony przez czas hold, ogłosi, że druga strona jest 'martwa' i zakończy sesję BGP. Domyślnie czas hold jest ustawiony na 180 sekund na routerach Cisco IOS, wiadomość keepalive jest wysyłana co 60 sekund. Oba routery muszą uzgodnić czas hold, w przeciwnym razie nie będzie sesji BGP.
- Identyfikator BGP: to lokalny identyfikator routera BGP, który jest wybierany w taki sam sposób jak w OSPF:
- Użyj router-ID, który został skonfigurowany ręcznie za pomocą polecenia bgp router-id.
- Użyj najwyższego adresu IP na interfejsie loopback.
- Użyj najwyższego adresu IP na interfejsie fizycznym.
- Opcjonalne parametry: tutaj znajdziesz opcjonalne możliwości routera BGP. To pole zostało dodane, aby nowe funkcje mogły być dodawane do BGP bez konieczności tworzenia nowej wersji. Rzeczy, które możesz tutaj znaleźć, to:
- wsparcie dla MP-BGP (Multi Protocol BGP).
- wsparcie dla Route Refresh.
- wsparcie dla czterooktetowych numerów AS.
Aby nawiązać sąsiedztwo, należy spełnić następujące warunki:
- Numer wersji. Obecna wersja to 4.
- Numer AS musi odpowiadać temu, który skonfigurowałeś. neighbor 192.168.13.3 remote-as 10.
- Router ID musi być różny od sąsiada.
Jeśli którykolwiek z parametrów nie spełnia tych warunków, router wyśle Notification wiadomość, w której wskaże błąd. Po wysłaniu i odebraniu wiadomości Open, relacja sąsiedztwa przechodzi w stan ESTABLISHED. Po tym routery mogą wymieniać informacje o trasach i robią to za pomocą Update wiadomości. Oto jaka wiadomość Update wysyła Router1 do Router3:
Tutaj określa się sieci, o których informuje Router1 i atrybuty ścieżki, które są odpowiednikiem metryk. O atrybutach ścieżki porozmawiamy bardziej szczegółowo. W ramach sesji TCP przesyłane są także wiadomości Keepalive. Są one przesyłane, domyślnie, co 60 sekund. To jest Timer Keepalive. Jeśli w czasie Hold Timer nie zostanie odebrana wiadomość Keepalive, oznacza to utratę połączenia z sąsiadem. Domyślnie trwa to 180 sekund.
Przydatna tabelka:
Wygląda na to, że rozumiejmy, jak routery przesyłają sobie informacje, teraz spróbujmy zrozumieć logikę działania protokołu BGP.
Aby ogłosić jakąś trasę w tabeli BGP, podobnie jak w protokołach IGP, używa się polecenia network, ale logika działania różni się. W przypadku IGP, po wskazaniu trasy w poleceniu network, IGP sprawdza, które interfejsy należą do danej podsieci i dołącza je do swojej tabeli, podczas gdy polecenie network w BGP przeszukuje tabelę routingu i znajduje dokładne dopasowanie do trasy w poleceniu network. Po znalezieniu takich tras, dane trasy trafią do tabeli BGP.
Szukaj trasy w aktualnej tabeli routingu IP routera, która dokładnie odpowiada parametrom polecenia network; jeśli trasa IP istnieje, umieść odpowiadający NLRI w lokalnej tabeli BGP.
Teraz uruchomimy BGP na wszystkich pozostałych i zobaczymy, jak odbywa się wybór trasy wewnątrz jednej AS. Po tym, jak router BGP otrzyma trasy od sąsiada, rozpoczyna się wybór optymalnej trasy. Należy zrozumieć, jakiego rodzaju sąsiedzi mogą być — wewnętrzni i zewnętrzni. Router na podstawie konfiguracji rozumie, czy skonfigurowany sąsiad jest wewnętrzny czy zewnętrzny. W przypadku komendy:
neighbor 192.168.13.3 remote-as 10 jako parametr remote-as wskazany jest AS, który jest skonfigurowany na samym routerze w komendzie router bgp 10. Trasy przychodzące z wewnętrznej AS są uważane za wewnętrzne, a trasy z zewnętrznej odpowiednio za zewnętrzne. W odniesieniu do każdej z tych tras obowiązuje różna logika odbierania i wysyłania. Rozważmy taką topologię:
Na każdym routerze skonfigurowany jest interfejs loopback z ip: x.x.x.x 255.255.255.0 — gdzie x to numer routera. Na Router9 mamy interfejs loopback o adresie — 9.9.9.9 255.255.255.0. Będziemy go ogłaszać przez BGP i zobaczymy, jak się rozprzestrzenia. Ta trasa zostanie przekazana na Router8 i Router12. Z Router8 ta trasa dotrze do Router6, ale na Router5 w tabeli tras jej nie będzie. Podobnie na Router12 ta trasa trafi do tabeli, ale na Router11 również nie będzie. Postaramy się to zrozumieć. Zobaczmy, jakie dane i parametry przekazuje Router9 swoim sąsiadom, informując o tej trasie. Pakiet poniżej zostanie wysłany z Router9 do Router8.
Informacje o trasie składają się z atrybutów ścieżki (Path attributes).
Atrybuty ścieżki dzielą się na 4 kategorie:
- Well-known mandatory — wszystkie routery działające zgodnie z protokołem BGP muszą rozpoznawać te atrybuty. Muszą być obecne we wszystkich aktualizacjach (update).
- Well-known discretionary — wszystkie routery działające zgodnie z protokołem BGP muszą rozpoznawać te atrybuty. Mogą być obecne w aktualizacjach (update), ale ich obecność nie jest obowiązkowa.
- Optional transitive — mogą nie być rozpoznawane przez wszystkie implementacje BGP. Jeśli router nie rozpoznał atrybutu, oznacza aktualizację jako częściową (partial) i przesyła ją dalej do sąsiadów, zachowując nierozpoznany atrybut.
- Optional non-transitive — mogą nie być rozpoznawane przez wszystkie implementacje BGP. Jeśli router nie rozpoznał atrybutu, to atrybut jest ignorowany i przy przekazywaniu do sąsiadów odrzucany.
Przykłady atrybutów BGP:
- Well-known mandatory:
- Ścieżka systemu autonomicznego
- Next-hop
- Pochodzenie
- Well-known discretionary:
- Preferencje lokalne
- Agregat atomowy
- Optional transitive:
- Agregator
- Społeczności
- Optional non-transitive:
- Wielokrotny wskaźnik wyjścia (MED)
- ID nadawcy
- Lista klastrów
W tym przypadku interesować nas będą Origin, Next-hop, AS Path. Ponieważ trasa jest przekazywana między Router8 a Router9, czyli wewnątrz jednej AS, uznawana jest za wewnętrzną i zwrócimy uwagę na Origin.
Atrybut Origin wskazuje, w jaki sposób trasa została uzyskana w aktualizacji. Możliwe wartości atrybutu to:
- 0 — IGP: NLRI uzyskano wewnątrz pierwotnej autonomicznej systemu;
- 1 — EGP: NLRI nauczono się za pomocą protokołu Exterior Gateway Protocol (EGP). Poprzednik BGP, nie jest już używany
- 2 — Incomplete: NLRI została nauczona w inny sposób
W naszym przypadku, jak widać z pakietu, jest to 0. Gdy ta trasa zostanie przekazana do Router12, kod ten będzie miał wartość 1.
Dalej, Next-hop. Atrybut Next-hop
- To adres IP eBGP-routera, przez który prowadzi ścieżka do docelowej sieci.
- Atrybut zmienia się podczas przekazywania prefiksu do innej AS.
W przypadku iBGP, czyli wewnątrz jednej AS, Next-hop będzie wskazywał tego, który uzyskał lub przekazał tę trasę. W naszym przypadku będzie to 192.168.89.9. Jednak gdy ta trasa będzie przekazywana z Router8 do Router6, Router8 zmieni ją i zastąpi swoim. Next-hop będzie — 192.168.68.8. To prowadzi nas do dwóch reguł:
- Jeśli router przekazuje trasę swojemu wewnętrznemu sąsiadowi, nie zmienia parametru Next-hop.
- Jeśli router przekazuje trasę swojemu zewnętrznemu sąsiadowi, zmienia Next-hop na adres IP interfejsu, z którego przekazuje ten router.
To prowadzi nas do zrozumienia pierwszego problemu — dlaczego trasa nie będzie w tabeli routingu na Router5 i Router11. Przyjrzyjmy się temu bliżej. Router6 uzyskał informację o trasie 9.9.9.0/24 i pomyślnie dodał ją do tabeli routingu:
Router6#show ip route bgp
Kody: L - lokalny, C - połączony, S - statyczny, R - RIP, M - mobilny, B - BGP
D - EIGRP, EX - EIGRP zewnętrzny, O - OSPF, IA - OSPF między strefami
N1 - OSPF NSSA zewnętrzny typ 1, N2 - OSPF NSSA zewnętrzny typ 2
E1 - OSPF zewnętrzny typ 1, E2 - OSPF zewnętrzny typ 2
i - IS-IS, su - IS-IS podsumowanie, L1 - IS-IS poziom 1, L2 - IS-IS poziom 2
ia - IS-IS między strefami, * - domyślny kandydat, U - statyczna trasa dla użytkownika
o - ODR, P - okresowo pobierana statyczna trasa, H - NHRP, l - LISP
a - trasa aplikacji
+ - trasa zreplikowana, % - nadpisanie następnego skoku, p - nadpisania z PfR
Brama ostatniej instancji nie jest ustawiona
9.0.0.0/24 jest podzielona, 1 podsieć
B 9.9.9.0 [20/0] przez 192.168.68.8, 00:38:25<source>
Router6 teraz przekazał trasę Router5 i pierwsza zasada Next-hop nie została zmieniona. To znaczy, Router5 musi dodać <b>9.9.9.0 [20/0] przez 192.168.68.8</b> , ale nie ma trasy do 192.168.68.8 i dlatego ta trasa nie zostanie dodana, chociaż informacja o tej trasie będzie przechowywana w tabeli BGP:
<source><b>Router5#show ip bgp
Wersja tabeli BGP to 1, lokalny identyfikator routera to 5.5.5.5
Kody statusu: s - stłumione, d - stłumione, h - historia, * - ważne, > - najlepsze, i - wewnętrzne,
r - awaria RIB, S - przestarzałe, m - wiele ścieżek, b - backup, f - filtr RT,
x - najlepsze zewnętrzne, a - dodatkowa ścieżka, c - skompresowane RIB,
Kody pochodzenia: i - IGP, e - EGP, ? - niekompletne
Kody walidacji RPKI: V - ważne, I - nieważne, N - nie znaleziono
Sieć Następny skok Metryka LocPrf Waga Ścieżka
* i 9.9.9.0/24 192.168.68.8 0 100 0 45 i</b>Ta sama sytuacja wystąpi również między Router11-Router12. Aby uniknąć takiej sytuacji, należy skonfigurować Router6 lub Router12, aby podczas przekazywania trasy swoim wewnętrznym sąsiadom podstawiały swój adres IP jako Next-hop. Robi się to za pomocą polecenia:
neighbor 192.168.56.5 next-hop-selfPo tym poleceniu Router6 wyśle wiadomość Update, w której dla tras jako Next-hop będzie podany adres IP interfejsu Gi0/0 Router6 — 192.168.56.6, po czym ta trasa już trafi do tabeli routingu.
Przejdźmy dalej i sprawdźmy, czy ta trasa pojawi się na Router7 i Router10. W tabeli routingu jej nie znajdziemy i moglibyśmy pomyśleć, że problem jest taki sam jak w pierwszym przypadku z parametrem Next-hop, ale gdy spojrzymy na wynik polecenia show ip bgp, zobaczymy, że trasa nie została otrzymana nawet z błędnym Next-hop, co oznacza, że trasa nie była w ogóle przesyłana. To prowadzi nas do istnienia kolejnej zasady:
Trasy otrzymane od wewnętrznych sąsiadów nie są przesyłane innym wewnętrznym sąsiadom.
Ponieważ Router5 otrzymał trasę od Router6, to nie będzie ona przekazywana innemu jego wewnętrznemu sąsiadowi. Aby odbyła się transmisja, należy skonfigurować funkcję , lub skonfigurować pełne połączenia sąsiedztwa (Full Mesh), to znaczy Router5-7 każdy będzie sąsiadem z każdym. W przypadku użyjemy Route Reflectora. Na Router5 należy użyć tego polecenia:
neighbor 192.168.57.7 route-reflector-clientRoute Reflector zmienia zachowanie BGP przy przesyłaniu trasy do wewnętrznego sąsiada. Jeśli wewnętrzny sąsiad jest określony jako route-reflector-client, to tym klientom będą ogłaszane wewnętrzne trasy.
Trasa nie pojawiła się na Router7? Nie zapominajmy także o Next-hop. Po tych manipulacjach trasa powinna być również na Router7, ale tak się nie dzieje. To prowadzi nas do kolejnej zasady:
Zasada next-hop działa tylko dla tras zewnętrznych. Dla tras wewnętrznych zamiana atrybutu next-hop nie zachodzi.
I mamy sytuację, w której konieczne jest stworzenie środowiska za pomocą statycznego routingu lub protokołów IGP, aby poinformować routery o wszystkich trasach wewnątrz AS. Zdefiniujemy statyczne trasy na Router6 i Router7, a następnie uzyskamy potrzebną trasę w tabeli routingu. W AS 678 postąpimy nieco inaczej - zdefiniujemy statyczne trasy dla 192.168.112.0/24 na Router10 i 192.168.110.0/24 na Router12. Następnie nawiążemy relacje sąsiedztwa między Router10 a Router12. Dodatkowo skonfigurujemy na Router12 wysyłanie swojego next-hop dla Router10:
neighbor 192.168.110.10 next-hop-selfEfektem będzie to, że Router10 otrzyma trasę 9.9.9.0/24, która zostanie od niego otrzymana zarówno od Router7, jak i od Router12. Zobaczymy, jaki wybór podejmie Router10:
Router10#show ip bgp
Wersja tabeli BGP to 3, lokalny identyfikator routera to 6.6.6.6
Kody statusu: s - stłumiony, d - osłabiony, h - historia, * - ważny, > - najlepszy, i - wewnętrzny,
r - błąd RIB, S - przestarzały, m - wielościeżkowy, b - ścieżka zapasowa, f - filtr RT,
x - najlepszy zewnętrzny, a - dodatkowa ścieżka, c - skompresowana RIB,
Kody pochodzenia: i - IGP, e - EGP, ? - niekompletne
Kody walidacji RPKI: V - ważny, I - nieaktualny, N - nie znaleziono
Sieć Następny Skok Metryka LocPrf Waga Ścieżka
*>i 9.9.9.0/24 192.168.112.12 0 100 0 45 i
192.168.107.7 0 123 45 i Jak widzimy, mamy dwa trasy, a strzałka (>) oznacza, że wybrana została trasa przez 192.168.112.12.
Zobaczmy, jak zachodzi proces wyboru trasy:
- Pierwszym krokiem po otrzymaniu trasy jest sprawdzenie dostępności jej Następnego skoku. Dlatego, gdy otrzymywaliśmy trasę na Router5 bez ustawienia Next-hop-self, ta trasa nie była przekazywana dalej do przetworzenia.
- Następnie znajduje się parametr Waga. Parametr ten nie jest Atrybutem ścieżki (PA) i nie jest przekazywany w komunikatach BGP. Jest ustawiany lokalnie na każdym routerze i używany tylko do manipulacji przy wyborze trasy na tym routerze. Rozważmy przykład. Powyżej pokazano, że Router10 wybrał trasę dla 9.9.9.0/24 przez Router12 (192.168.112.12). Aby zmienić parametr Waga, można użyć route-map, aby ustawić go dla określonych tras, lub przypisać wagę sąsiadowi za pomocą komendy:
neighbor 192.168.107.7 weight 200Teraz wszystkie trasy od tego sąsiada będą miały taką wagę. Zobaczmy, jak zmieni się wybór trasy po tej manipulacji:
Router10#show bgp *Mar 2 11:58:13.956: %SYS-5-CONFIG_I: Skonfigurowano z konsoli przez konsolę Wersja tabeli BGP to 2, lokalny identyfikator routera to 6.6.6.6 Kody statusu: s - stłumiony, d - osłabiony, h - historia, * - ważny, > - najlepszy, i - wewnętrzny, r - błąd RIB, S - przestarzały, m - wielościeżkowy, b - ścieżka zapasowa, f - filtr RT, x - najlepszy zewnętrzny, a - dodatkowa ścieżka, c - skompresowana RIB, Kody pochodzenia: i - IGP, e - EGP, ? - niekompletne Kody walidacji RPKI: V - ważny, I - nieaktualny, N - nie znaleziono Sieć Następny Skok Metryka LocPrf Waga Ścieżka *> 9.9.9.0/24 192.168.107.7 200 123 45 i * i 192.168.112.12 0 100 0 45 iJak widzisz, teraz wybrana została trasa przez Router7, ale nie ma to wpływu na inne routery.
- Na trzeciej pozycji mamy Local Preference. Ten parametr jest znanym atrybutem fakultatywnym, co oznacza, że jego obecność nie jest obowiązkowa. Parametr ten ma zastosowanie tylko wewnątrz jednej AS i wpływa na wybór ścieżki jedynie dla sąsiadów wewnętrznych. Dlatego jest przekazywany tylko w wiadomościach Update przeznaczonych dla sąsiada wewnętrznego. W wiadomościach Update dla sąsiadów zewnętrznych go nie ma. Dlatego został zakwalifikowany jako znany atrybut fakultatywny. Spróbujmy zastosować go na Router5. Na Router5 powinniśmy mieć dwa trasy dla 9.9.9.0/24 — jedną przez Router6 i drugą przez Router7.
Spójrzmy:
Router5#show bgp BGP table version is 2, local router ID is 5.5.5.5 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter, x best-external, a additional-path, c RIB-compressed, Origin codes: i - IGP, e - EGP, ? - incomplete RPKI validation codes: V valid, I invalid, N Not found Network Next Hop Metric LocPrf Weight Path * >i 9.9.9.0/24 192.168.56.6 0 100 0 45 iAle widzimy, że jest tylko jedna trasa przez Router6. A gdzie jest trasa przez Router7? Może na Router7 też jej nie ma? Spójrzmy:
Router#show bgp BGP table version is 10, local router ID is 7.7.7.7 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter, x best-external, a additional-path, c RIB-compressed, Origin codes: i - IGP, e - EGP, ? - incomplete RPKI validation codes: V valid, I invalid, N Not found Network Next Hop Metric LocPrf Weight Path * >i 9.9.9.0/24 192.168.56.6 0 100 0 45 i 192.168.107.10 0 678 45 iDziwne, wydaje się, że wszystko jest w porządku. Dlaczego nie jest przekazywana do Router5? Chodzi o to, że BGP ma zasady:
Router przekazuje tylko te trasy, które sam wykorzystuje.
Router7 wykorzystuje trasę przez Router5, dlatego trasa przez Router10 nie będzie przekazywana. Wróćmy do Local Preference. Ustalmy Local Preference na Router7 i zobaczmy, jak zareaguje na to Router5:
mapa-routingu BGP zezwól 10 dopasuj adres IP 10 ustaw preferencję lokalną 250 lista dostępu 10 zezwól na dowolny router bgp 123 sąsiad 192.168.107.10 mapa-routingu BGP w</b>Stworzyliśmy więc route-map, do którego trafiają wszystkie trasy, i poleciliśmy Router7, aby przy odbiorze zmieniał parametr Local Preference na 250, który domyślnie wynosi 100. Spójrzmy, co się wydarzyło na Router5:
Router5#show bgp BGP table version is 8, local router ID is 5.5.5.5 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter, x best-external, a additional-path, c RIB-compressed, Origin codes: i - IGP, e - EGP, ? - incomplete RPKI validation codes: V valid, I invalid, N Not found Network Next Hop Metric LocPrf Weight Path * >i 9.9.9.0/24 192.168.57.7 0 250 0 678 45 iJak widzimy, Router5 woli trasę przez Router7. Taki sam obraz będzie miał Router6, chociaż korzystniej mu byłoby wybrać trasę przez Router8. Dodajmy również, że zmiana tego parametru wymaga restartu sąsiedztwa, aby zmiana zaczęła obowiązywać. Czytaj . Rozumieliśmy Local Preference. Przechodzimy do następnego parametru.
- Preferencja trasy z parametrem Next-hop 0.0.0.0, czyli lokalne lub agregowane trasy. Tym trasom automatycznie po wprowadzeniu komendy network przyznawany jest parametr Weight równy maksimum — 32678:
Router#show bgp Wersja tabeli BGP to 2, lokalny identyfikator routera to 9.9.9.9 Status kodów: s tłumiony, d tłumiony, h historia, * ważny, > najlepszy, i - wewnętrzny, r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter, x najlepszy zewnętrzny, a dodatkowa ścieżka, c RIB-compressed, Kody pochodzenia: i - IGP, e - EGP, ? - niekompletny Kody walidacji RPKI: V ważny, I nieważny, N Nie znaleziono Sieć Next Hop Metryka LocPrf Waga Ścieżka * > 9.9.9.0/24 0.0.0.0 0 32768 i - Najkrótsza ścieżka przez AS. Wybierany jest najkrótszy parametr AS_Path. Im mniejsza liczba AS, przez które przechodzi trasa, tym jest lepsza. Rozważmy trasę do 9.9.9.0/24 na Router10:
Router10#show bgp Wersja tabeli BGP to 2, lokalny identyfikator routera to 6.6.6.6 Status kodów: s tłumiony, d tłumiony, h historia, * ważny, > najlepszy, i - wewnętrzny, r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter, x najlepszy zewnętrzny, a dodatkowa ścieżka, c RIB-compressed, Kody pochodzenia: i - IGP, e - EGP, ? - niekompletny Kody walidacji RPKI: V ważny, I nieważny, N Nie znaleziono Sieć Next Hop Metryka LocPrf Waga Ścieżka * 9.9.9.0/24 192.168.107.7 0 123 45 i * > i 192.168.112.12 0 100 0 45 iJak widzicie, Router10 wybrał trasę przez 192.168.112.12, ponieważ dla tej trasy parametr AS_Path zawiera tylko 45, a w innym przypadku 123 i 45. To jest intuicyjnie zrozumiałe.
- Następny parametr — Origin. IGP (trasa uzyskana za pomocą BGP) jest lepszy niż EGP (trasa uzyskana za pomocą poprzednika BGP, obecnie nieużywanego), a EGP jest lepszy niż Incomplete? (uzyskany w inny sposób, na przykład poprzez redystrybucję).
- Następny parametr — MED. Mieliśmy Weight, który działał tylko lokalnie na routerze. Był Local Preference, który działał tylko w ramach jednego systemu autonomicznego. Jak łatwo się domyślić, MED to parametr, który będzie przekazywany między systemami autonomicznymi. Bardzo dobry na ten temat.
Więcej atrybutów nie będzie używanych, ale jeśli dwa trasy mają je takie same, to stosuje się następujące zasady:
- Wybrać ścieżkę przez najbliższego sąsiada IGP.
- Wybierz najstarszą trasę dla ścieżki eBGP.
- Wybierz ścieżkę przez sąsiada z najmniejszym identyfikatorem routera BGP.
- Wybierz ścieżkę przez sąsiada z najmniejszym adresem IP.
Zajmijmy się teraz kwestią zbieżności BGP.
Zobaczmy, co się stanie, jeśli Router6 straci trasę 9.9.9.0/24 przez Router9. Wyłączmy interfejs Gi0/1 Router6, który od razu zrozumie, że sesja BGP z Router8 została przerwana i sąsiad zniknął, co oznacza, że trasa od niego jest nieważna. Router6 natychmiast wysyła komunikaty Update, w których wskazuje sieć 9.9.9.0/24 w polu Withdrawn Routes. Gdy tylko Router5 otrzyma taki komunikat, przekaże go do Router7. Jednak ponieważ Router7 ma trasę przez Router10, od razu wyśle zaktualizowany komunikat z nową trasą. Jeśli nie uda się wykryć utraty sąsiada na podstawie stanu interfejsu, trzeba będzie czekać na aktywację Hold Timer.
Konfederacja.
Jeśli pamiętasz, rozmawialiśmy o tym, że często trzeba korzystać z pełnej topologii. Przy dużej liczbie routerów w jednej AS może to sprawić wiele problemów, aby temu zapobiec, należy używać konfederacji. Jedna AS dzieli się na kilka sub-AS, co pozwala na działanie bez wymogu pełnej topologii.
Tutaj link do tej , a konfiguracja dla GNS3.
Na przykład w takiej topologii musielibyśmy połączyć wszystkie routery w AS 2345 ze sobą, jednak korzystając z konfederacji, możemy nawiązać relacje sąsiedztwa tylko między routerami bezpośrednio połączonymi ze sobą. Omówimy to szczegółowo. Gdybyśmy mieli tylko AS 2345, to laForge otrzymując trasę od Picard opowiedziałby jej routerom Dane i Worf, ale nie przekazałby jej routerowi Crusher . Również trasy, które sam router laForge, nie byłyby przekazywane Crusher ani Worf-owi, ani Dane.
Trzeba byłoby skonfigurować Route-Reflector lub pełne relacje sąsiedztwa. Rozdzielając jedną AS 2345 na 4 sub-AS (2,3,4,5) dla każdego routera, ostatecznie uzyskujemy inną logikę działania. Wszystko jest dobrze opisane .
Źródła:
- CCIE Routing and Switching v5.0 Official Cert Guide, Tom 2, Piąte wydanie, Narbik Kocharians, Terry Vinson.
- Strona
- Strona .
Źródło: habr.com
