Jak działa BGP

Dzisiaj przyjrzymy się protokołowi BGP. Nie będziemy długo rozmawiać o tym, dlaczego tak jest i dlaczego jest używany jako jedyny protokół. Informacji na ten temat jest na przykład całkiem sporo tutaj.

Czym więc jest BGP? BGP to dynamiczny protokół routingu i jedyny protokół EGP (External Gateway Protocol). Protokół ten służy do budowania routingu w Internecie. Przyjrzyjmy się, jak budowane jest sąsiedztwo pomiędzy dwoma routerami BGP.

Jak działa BGP
Rozważmy sąsiedztwo pomiędzy Routerami 1 i Routerami 3. Skonfigurujmy 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 10

Otoczenie w ramach pojedynczego systemu autonomicznego to AS 10. Po wprowadzeniu informacji o routerze, takim jak Router1, router ten podejmuje próbę ustanowienia relacji sąsiedztwa z Routerem3. Nazywa się stan początkowy, w którym nic się nie dzieje Idle. Gdy tylko bgp zostanie skonfigurowany na Router1, zacznie on nasłuchiwać portu TCP 179 - przejdzie do stanu Skontaktuj się, a gdy spróbuje otworzyć sesję z Routerem3, przejdzie do stanu Aktywna.

Po ustanowieniu sesji pomiędzy Routerami1 i Router3 następuje wymiana komunikatów Open. Kiedy ten komunikat zostanie wysłany przez Router1, ten stan zostanie wywołany Otwórz Wysłane. A kiedy otrzyma wiadomość Open od Router3, przejdzie w stan Otwórz Potwierdź. Przyjrzyjmy się bliżej wiadomości Open:

Jak działa BGP
Komunikat ten przekazuje informację o samym protokole BGP, którego używa router. Wymieniając komunikaty Open, Router1 i Router3 przekazują sobie nawzajem informacje o swoich ustawieniach. Przekazywane są następujące parametry:

  • Wersja: obejmuje to wersję protokołu BGP używaną przez router. Obecna wersja BGP to wersja 4, opisana w RFC 4271. Dwa routery BGP będą próbowały wynegocjować kompatybilną wersję, w przypadku niezgodności sesja BGP nie będzie.
  • Mój jak: obejmuje numer AS routera BGP, routery będą musiały uzgodnić numer(y) AS, a także określa, czy będą korzystać z protokołu iBGP czy eBGP.
  • Wstrzymaj się: jeśli BGP nie otrzyma żadnych komunikatów o utrzymaniu lub aktualizacji od drugiej strony przez czas wstrzymania, wówczas uzna, że ​​druga strona jest „martwa” i zakończy sesję BGP. Domyślnie czas wstrzymania jest ustawiony na 180 sekund na routerach Cisco IOS, komunikat o utrzymaniu aktywności jest wysyłany co 60 sekund. Oba routery muszą uzgodnić czas wstrzymania, w przeciwnym razie sesja BGP nie będzie.
  • Identyfikator BGP: jest to identyfikator lokalnego routera BGP, który jest wybierany tak samo jak OSPF:
    • Użyj identyfikatora routera skonfigurowanego ręcznie za pomocą polecenia bgp router-id.
    • Użyj najwyższego adresu IP w interfejsie pętli zwrotnej.
    • Użyj najwyższego adresu IP na interfejsie fizycznym.
  • Parametry opcjonalne: tutaj znajdziesz opcjonalne możliwości routera BGP. To pole zostało dodane, aby można było dodawać nowe funkcje do protokołu BGP bez konieczności tworzenia nowej wersji. Rzeczy, które możesz tu znaleźć to:
    • obsługa MP-BGP (Multi Protocol BGP).
    • obsługa odświeżania trasy.
    • obsługa 4-oktetowych numerów AS.

Aby założyć 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ś sąsiad 192.168.13.3 zdalny jako 10.
  • Identyfikator routera musi różnić się od identyfikatora sąsiada.

Jeżeli którykolwiek z parametrów nie spełnia tych warunków, router wyśle Zgłoszenie komunikat informujący o błędzie. Po wysłaniu i odebraniu wiadomości Open relacja sąsiedzka wchodzi w stan PRZYJĘTY. Następnie routery mogą wymieniać informacje o trasach i robić to za pomocą Aktualizacja wiadomości. Oto komunikat o aktualizacji wysłany przez Router1 do Routera3:

Jak działa BGP

Tutaj możesz zobaczyć sieci raportowane przez atrybuty Router1 i Path, które są analogiczne do metryk. Porozmawiamy o atrybutach Path bardziej szczegółowo. Komunikaty Keepalive są również wysyłane w ramach sesji TCP. Domyślnie są one przesyłane co 60 sekund. To jest licznik czasu utrzymywania aktywności. Jeśli wiadomość Keepalive nie zostanie odebrana w czasie odliczania czasu wstrzymania, będzie to oznaczać utratę komunikacji z sąsiadem. Domyślnie jest to 180 sekund.

Przydatny znak:

Jak działa BGP

Wygląda na to, że zrozumieliśmy, w jaki sposób routery przesyłają między sobą informacje, teraz spróbujmy zrozumieć logikę protokołu BGP.

Aby ogłosić trasę do tablicy BGP, podobnie jak w protokołach IGP, używane jest polecenie network, ale logika działania jest inna. Jeśli w IGP po podaniu trasy w poleceniu sieciowym IGP sprawdza, które interfejsy należą do tej podsieci i uwzględnia je w swojej tablicy, to polecenie sieciowe w BGP przegląda tablicę routingu i szuka dokładne odpowiada trasie w poleceniu sieciowym. Jeśli takie zostaną znalezione, trasy te pojawią się w tabeli BGP.

Poszukaj trasy w aktualnej tabeli routingu IP routera, która dokładnie odpowiada parametrom polecenia sieciowego; jeśli trasa IP istnieje, umieść odpowiedni NLRI w lokalnej tabeli BGP.

Teraz podnieśmy BGP do wszystkich pozostałych i zobaczmy jak trasa jest wybierana w ramach jednego AS. Po tym jak router BGP odbierze trasy od swojego sąsiada, rozpoczyna wybieranie optymalnej trasy. Tutaj musisz zrozumieć, jakiego rodzaju sąsiedzi mogą być - wewnętrzni i zewnętrzni. Czy router rozpoznaje poprzez konfigurację, czy skonfigurowany sąsiad jest wewnętrzny, czy zewnętrzny? Jeśli jesteś w zespole:

neighbor 192.168.13.3 remote-as 10 

parametr Remote-as określa system AS, który jest konfigurowany na samym routerze za pomocą polecenia router bgp 10. Trasy przychodzące z wewnętrznego systemu AS są uważane za wewnętrzne, a trasy z zewnętrznego systemu AS są uważane za zewnętrzne. I dla każdego działa inna logika odbierania i wysyłania. Rozważ tę topologię:

Jak działa BGP

Każdy router ma interfejs pętli zwrotnej skonfigurowany z adresem ip: xxxx 255.255.255.0 - gdzie x to numer routera. Na Router9 mamy interfejs zwrotny o adresie - 9.9.9.9 255.255.255.0. Ogłosimy to za pośrednictwem protokołu BGP i zobaczymy, jak się rozprzestrzeni. Trasa ta zostanie przesłana do routerów Router8 i Router12. Z routera 8 trasa ta poprowadzi do routera 6, ale do routera 5 nie będzie jej w tablicy routingu. Również na routerze 12 trasa ta pojawi się w tabeli, ale na routerze 11 również jej nie będzie. Spróbujmy to rozgryźć. Zastanówmy się, jakie dane i parametry Router9 przesyła do swoich sąsiadów, zgłaszając tę ​​trasę. Poniższy pakiet zostanie wysłany z Router9 do Router8.

Jak działa BGP
Informacje o trasie składają się z atrybutów ścieżki.

Atrybuty ścieżki są podzielone na 4 kategorie:

  1. Dobrze znane obowiązkowe - Wszystkie routery obsługujące protokół BGP muszą rozpoznawać te atrybuty. Musi być obecny we wszystkich aktualizacjach.
  2. Znany dyskrecjonalny - Wszystkie routery obsługujące protokół BGP muszą rozpoznawać te atrybuty. Mogą być obecne w aktualizacjach, ale ich obecność nie jest wymagana.
  3. Opcjonalny przechodni - może nie być rozpoznawany przez wszystkie wdrożenia BGP. Jeśli router nie rozpoznaje atrybutu, oznacza aktualizację jako częściową i przekazuje ją sąsiadom, przechowując nierozpoznany atrybut.
  4. Opcjonalny nieprzechodni - może nie być rozpoznawany przez wszystkie wdrożenia BGP. Jeśli router nie rozpoznaje atrybutu, atrybut jest ignorowany i odrzucany po przekazaniu sąsiadom.

Przykłady atrybutów BGP:

  • Dobrze znane obowiązkowe:
    • Ścieżka systemu autonomicznego
    • Następny skok
    • Origin

  • Znany dyskrecjonalny:
    • Lokalne preferencje
    • Agregat atomowy
  • Opcjonalny przechodni:
    • Agregator
    • społeczności
  • Opcjonalny nieprzechodni:
    • Dyskryminator wielu wyjść (MED)
    • Identyfikator inicjatora
    • Lista klastrów

W tym przypadku na razie interesują nas Origin, Next-hop, AS Path. Ponieważ trasa transmituje pomiędzy Routerami8 i Router9, czyli w obrębie jednego AS, uważa się ją za wewnętrzną i zwrócimy uwagę na Origin.

Atrybut Origin — wskazuje, w jaki sposób uzyskano trasę w aktualizacji. Możliwe wartości atrybutów:

  • 0 - IGP: NLRI otrzymany w pierwotnym systemie autonomicznym;
  • 1 - EGP: NLRI jest uczony przy użyciu protokołu Exterior Gateway Protocol (EGP). Poprzednik BGP, nieużywany
  • 2 – Niekompletne: NLRI zostało poznane w inny sposób

W naszym przypadku, jak widać z pakietu, jest ona równa 0. Kiedy ta trasa zostanie przesłana do Router12, kod ten będzie miał kod 1.

Następny, następny przeskok. Atrybut następnego przeskoku

  • Jest to adres IP routera eBGP, przez który przechodzi ścieżka do sieci docelowej.
  • Atrybut zmienia się, gdy prefiks zostanie wysłany do innego AS.

W przypadku iBGP, czyli w ramach jednego AS, Next-hop zostanie wskazany przez tego, który dowiedział się lub powiedział o tej trasie. W naszym przypadku będzie to 192.168.89.9. Ale kiedy ta trasa zostanie przesłana z routera 8 do routera 6, router 8 zmieni ją i zastąpi własną. Następnym przeskokiem będzie 192.168.68.8. Prowadzi nas to do dwóch zasad:

  1. Jeśli router przekazuje trasę do swojego wewnętrznego sąsiada, nie powoduje to zmiany parametru Next-hop.
  2. Jeśli router przesyła trasę do swojego zewnętrznego sąsiada, zmienia opcję Next-hop na adres IP interfejsu, z którego router ten transmituje.

To prowadzi nas do zrozumienia pierwszego problemu – dlaczego w tablicy routingu na routerach Router5 i Router11 nie będzie żadnej trasy. Przyjrzyjmy się bliżej. Zatem Router6 otrzymał informacje o trasie 9.9.9.0/24 i pomyślnie dodał je do tablicy routingu:

Router6#show ip route bgp
Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
       ia - IS-IS inter area, * - candidate default, U - per-user static route
       o - ODR, P - periodic downloaded static route, H - NHRP, l - LISP
       a - application route
       + - replicated route, % - next hop override, p - overrides from PfR

Gateway of last resort is not set

      9.0.0.0/24 is subnetted, 1 subnets
B        9.9.9.0 [20/0] via 192.168.68.8, 00:38:25<source>
Теперь Router6 передал маршрут Router5 и первому правилу Next-hop не изменил. То есть, Router5 должен добавить  <b>9.9.9.0 [20/0] via 192.168.68.8</b> , но у него нет маршрута до 192.168.68.8 и поэтому данный маршрут добавлен не будет, хотя информация о данном маршруте будет храниться в таблице BGP:

<source><b>Router5#show ip bgp
BGP table version is 1, 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.68.8             0    100      0 45 i</b>

Ta sama sytuacja będzie miała miejsce pomiędzy routerami Router11-Router12. Aby uniknąć tej sytuacji, musisz skonfigurować Router6 lub Router12, przekazując trasę do swoich wewnętrznych sąsiadów, tak aby zastępował ich adres IP jako Next-hop. Odbywa się to za pomocą polecenia:

neighbor 192.168.56.5 next-hop-self

Po tym poleceniu Router6 wyśle ​​wiadomość Update, w której adres IP interfejsu Gi0/0 Router6 zostanie określony jako Next-hop dla tras - 192.168.56.6, po czym trasa ta będzie już uwzględniona w tablicy routingu.

Pójdźmy dalej i zobaczmy, czy ta trasa pojawia się na Routerach 7 i Routerach 10. Nie będzie go w tablicy routingu i możemy pomyśleć, że problem jest taki sam jak w pierwszym z parametrem Next-hop, ale jeśli spojrzymy na wynik polecenia show ip bgp, zobaczymy, że trasa nie została tam odebrana nawet przy złym Next-hopie, co oznacza, że ​​trasa w ogóle nie została przesłana. A to doprowadzi nas do istnienia kolejnej reguły:

Trasy otrzymane od sąsiadów wewnętrznych nie są propagowane do innych sąsiadów wewnętrznych.

Ponieważ Router5 otrzymał trasę od Routera6, nie zostanie ona przesłana do innego wewnętrznego sąsiada. Aby transfer mógł nastąpić należy skonfigurować funkcję Reflektor trasylub skonfiguruj w pełni połączone relacje sąsiedzkie (Full Mesh), czyli Router5-7 każdy będzie sąsiadem dla wszystkich. W tym przypadku użyjemy reflektora trasy. Na Router5 musisz użyć tego polecenia:

neighbor 192.168.57.7 route-reflector-client

Route-Reflector zmienia zachowanie BGP podczas przekazywania trasy do wewnętrznego sąsiada. Jeśli sąsiad wewnętrzny jest określony jako klient-reflektor trasy, tym klientom będą ogłaszane trasy wewnętrzne.

Trasa nie pojawiła się na Routerze7? Nie zapomnij też o Next-hopie. Po tych manipulacjach trasa powinna również prowadzić do Router7, ale tak się nie dzieje. To prowadzi nas do kolejnej zasady:

Reguła następnego przeskoku działa tylko w przypadku tras zewnętrznych. W przypadku tras wewnętrznych atrybut następnego przeskoku nie jest zastępowany.

I dostajemy sytuację, w której konieczne jest stworzenie środowiska wykorzystującego routing statyczny lub protokoły IGP, aby informować routery o wszystkich trasach w obrębie AS. Zarejestrujmy trasy statyczne na routerach Router6 i Router7, a następnie otrzymamy żądaną trasę w tablicy routerów. W AS 678 zrobimy to trochę inaczej - trasy statyczne zarejestrujemy dla 192.168.112.0/24 na Router10 i 192.168.110.0/24 na Router12. Następnie ustalimy relację sąsiedztwa pomiędzy Routerami 10 i Routerami 12. Skonfigurujemy także Router12 tak, aby wysyłał swój następny skok do Router10:

neighbor 192.168.110.10 next-hop-self

W rezultacie Router10 otrzyma trasę 9.9.9.0/24, zostanie ona odebrana zarówno z Routera7, jak i Routera12. Zobaczmy, jakiego wyboru dokona Router10:

Router10#show ip bgp
BGP table version is 3, local router ID is 6.6.6.6
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.112.12           0    100       0      45 i

                               192.168.107.7                                0     123 45 i  

Jak widzimy dwie trasy i strzałka (>) oznaczają, że wybrana jest trasa przez 192.168.112.12.
Zobaczmy jak działa proces wyboru trasy:

  1. Pierwszym krokiem przy odbiorze trasy jest sprawdzenie dostępności jej następnego przeskoku. Dlatego też, gdy otrzymaliśmy trasę na Router5 bez ustawienia Next-hop-self, trasa ta nie była dalej przetwarzana.
  2. Następny jest parametr Waga. Ten parametr nie jest atrybutem ścieżki (PA) i nie jest wysyłany w komunikatach BGP. Jest konfigurowany lokalnie na każdym routerze i służy wyłącznie do manipulowania wyborem trasy na samym routerze. Spójrzmy na przykład. Tuż powyżej widać, że Router10 wybrał trasę dla 9.9.9.0/24 przez Router12 (192.168.112.12). Aby zmienić parametr Wieght, możesz użyć mapy tras do wyznaczenia konkretnych tras lub przypisać wagę sąsiadowi za pomocą polecenia:
     neighbor 192.168.107.7 weight 200       

    Teraz wszystkie trasy od tego sąsiada będą miały tę wagę. Zobaczmy, jak zmieni się wybór trasy po tej manipulacji:

    Router10#show bgp
    *Mar  2 11:58:13.956: %SYS-5-CONFIG_I: Configured from console by console
    BGP table version is 2, local router ID is 6.6.6.6
    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
     *>  9.9.9.0/24       192.168.107.7                        200      123 45 i
     * i                          192.168.112.12           0          100      0 45 i

    Jak widać, trasa przez Router7 jest teraz wybrana, ale nie będzie to miało żadnego wpływu na inne routery.

  3. Na trzeciej pozycji mamy Preferencje lokalne. Parametr ten jest dobrze znanym atrybutem uznaniowym, co oznacza, że ​​jego obecność jest opcjonalna. Parametr ten obowiązuje tylko w obrębie jednego AS i wpływa na wybór ścieżki tylko dla sąsiadów wewnętrznych. Dlatego jest przesyłany tylko w komunikatach aktualizacji przeznaczonych dla sąsiada wewnętrznego. Nie ma go w komunikatach aktualizacji dla sąsiadów zewnętrznych. Dlatego został sklasyfikowany jako powszechnie znany uznaniowy. Spróbujmy zastosować to na Router5. Na Routerze 5 powinniśmy mieć dwie trasy dla 9.9.9.0/24 - jedną przez Router6 i drugą przez Router7.

    Patrzymy:

    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 i

    Ale jak widzimy jedną trasę przez Router6. Gdzie jest trasa przez Router7? Może Router7 też tego 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 i 

    Dziwne, wszystko wydaje się być w porządku. Dlaczego nie jest przesyłany do Router5? Rzecz w tym, że BGP ma regułę:

    Router przesyła tylko te trasy, z których korzysta.

    Router7 korzysta z trasy przez Router5, więc trasa przez Router10 nie będzie transmitowana. Wróćmy do Preferencji lokalnych. Ustawmy preferencje lokalne na routerze Router7 i zobaczmy, jak router5 na to zareaguje:

    route-map BGP permit 10
     match ip address 10
     set local-preference 250
    access-list 10 permit any
    router bgp 123
     neighbor 192.168.107.10 route-map BGP in</b>

    Stworzyliśmy więc mapę tras zawierającą wszystkie trasy i poinstruowaliśmy Router7, aby po odebraniu zmienił parametr Local Preference na 250, wartość domyślna to 100. Zobaczmy, co stało się na Routerze 5:

    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 i

    Jak widzimy teraz, Router5 preferuje trasę przez Router7. Ten sam obraz będzie na Routerze6, chociaż bardziej opłaca się mu wybrać trasę przez Router8. Dodajemy również, że zmiana tego parametru wymaga ponownego uruchomienia sąsiedztwa, aby zmiana odniosła skutek. Czytać tutaj. Rozwiązaliśmy kwestię preferencji lokalnych. Przejdźmy do kolejnego parametru.

  4. Preferuj trasę z parametrem Next-hop 0.0.0.0, czyli trasy lokalne lub zagregowane. Trasom tym automatycznie przypisywany jest parametr Waga równy maksimum – 32678 – po wprowadzeniu polecenia sieciowego:
    Router#show bgp
    BGP table version is 2, local router ID is 9.9.9.9
    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
     *>  9.9.9.0/24       0.0.0.0                  0            32768    i
  5. Najkrótsza droga przez AS. Wybrany jest najkrótszy parametr AS_Path. Im mniej AS przechodzi trasa, tym lepiej. Rozważ trasę do 9.9.9.0/24 na Router10:
    Router10#show bgp
    BGP table version is 2, local router ID is 6.6.6.6
    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
     *   9.9.9.0/24     192.168.107.7                           0           123 45 i
     *>i                     192.168.112.12           0    100       0       45 i

    Jak widać, 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. Intuicyjnie jasne.

  6. Następnym parametrem jest Pochodzenie. IGP (trasa uzyskana za pomocą BGP) jest lepsza niż EGP (trasa uzyskana za pomocą poprzednika BGP, już nieużywana), a EGP jest lepsza niż Incomplete? (otrzymany inną metodą, na przykład poprzez redystrybucję).
  7. Kolejnym parametrem jest MED. Mieliśmy Wiegh, który działał tylko lokalnie na routerze. Istniała preferencja lokalna, która działała tylko w ramach jednego autonomicznego systemu. Jak można się domyślić, MED to parametr, który będzie przesyłany pomiędzy systemami autonomicznymi. Bardzo dobry artykuł o tym parametrze.

Nie będą już używane żadne atrybuty, ale jeśli dwie trasy mają te same atrybuty, stosowane są następujące reguły:

  1. Wybierz ścieżkę przez najbliższego sąsiada IGP.
  2. Wybierz najstarszą trasę dla ścieżki eBGP.
  3. Wybierz ścieżkę przez sąsiada o najmniejszym identyfikatorze routera BGP.
  4. Wybierz ścieżkę przez sąsiada o najniższym adresie IP.

Przyjrzyjmy się teraz zagadnieniu konwergencji BGP.

Zobaczmy, co się stanie, jeśli Router6 utraci trasę 9.9.9.0/24 przez Router9. Wyłączmy interfejs Gi0/1 Routera 6, który od razu zrozumie, że sesja BGP z Routerem 8 została zakończona i sąsiad zniknął, co oznacza, że ​​otrzymana od niego trasa jest nieważna. Router6 natychmiast wysyła komunikaty aktualizacyjne, w których w polu Wycofane trasy wskazuje sieć 9.9.9.0/24. Gdy tylko Router5 otrzyma taką wiadomość, wyśle ​​ją do Router7. Ponieważ jednak Router7 ma trasę przez Router10, natychmiast odpowie aktualizacją z nową trasą. Jeśli na podstawie stanu interfejsu nie można wykryć upadku sąsiada, należy poczekać, aż uruchomi się licznik czasu wstrzymania.

Konfederacja.

Jeśli pamiętasz, rozmawialiśmy o tym, że często musisz używać w pełni połączonej topologii. Przy dużej liczbie routerów w jednym systemie AS może to powodować duże problemy. Aby tego uniknąć, należy używać konfederacji. Jeden AS jest podzielony na kilka podsystemów, co pozwala im działać bez konieczności posiadania w pełni połączonej topologii.

Jak działa BGP

Oto link do tego laboratoriumI tutaj konfiguracja dla GNS3.

Na przykład przy tej topologii musielibyśmy połączyć ze sobą wszystkie routery w AS 2345, ale korzystając z Konfederacji, możemy ustalić relacje sąsiedztwa tylko pomiędzy routerami bezpośrednio ze sobą połączonymi. Porozmawiajmy o tym szczegółowo. Gdybyśmy tylko mieli AS 2345 laForge otrzymawszy marsz od Picard powiedziałbym to routerom Dane и Worf, ale nie powiedzieliby o tym routerowi Crusher . Również trasy dystrybuowane przez sam router laForge, nie zostałby przesłany Crusher ani Worf-O nie Dane.

Musiałbyś skonfigurować reflektor trasy lub w pełni połączoną relację sąsiedztwa. Dzieląc jeden AS 2345 na 4 podsystemy AS (2,3,4,5) dla każdego routera, otrzymujemy inną logikę działania. Wszystko jest doskonale opisane tutaj.

Źródła:

  1. Oficjalny przewodnik po certyfikatach CCIE Routing and Switching v5.0, tom 2, wydanie piąte, Narbik Kocharians, Terry Vinson.
  2. Strona xgu.ru
  3. Strona GNS3Vault.

Źródło: www.habr.com

Dodaj komentarz