BGP – synchronizacja

Cele:

Adresy IP routerów:

R1

Interfejs IP
FastEthernet 0/0 10.0.12.1/28
Loopback 0 1.1.1.1/24

R2

Interfejs IP
FastEthernet 0/0 10.0.12.2/28
FastEthernet 1/0 10.25.23.2/28

R3

Interfejs IP
FastEthernet 0/0 10.25.23.3/28
FastEthernet 1/0 10.25.34.3/28

R4

Interfejs IP
FastEthernet 0/0 10.25.45.4/28
FastEthernet 1/0 10.25.34.4/28

R5

Interfejs IP
FastEthernet 0/0 10.0.56.5/28
FastEthernet 1/0 10.25.45.5/28

R6

Interfejs IP
FastEthernet 0/0 10.0.56.6/28
Loopback 0 6.6.6.6/24

Schemat sieci:

BGP - synchronizacja

Router: 3640
IOS: c3640-jk9o3s-mz.124-16a.bin

Rozwiązanie

Skonfiguruj OSPF wewnątrz AS 25. Rozgłoś wszystkie niezbędne sieci oraz ich interfejsy Loopback.

Na samym początku konfiguracja OSPF na R2, R3, R4 i R5. Routery muszą mieć ze sobą 100% łączność, także do interfejsów Loopback. Nie chcemy też aby R2 i R5 wysyłały pakiety OSPF w kierunku R1 i R6. Dodatkowo na każdym interfejsie Loopback definiujemy typ sieci OSPF poleceniem ip ospf network point-to-point:

R2(config)#router  ospf 1
R2(config-router)#network 10.25.23.0 0.0.0.15 area 0
R2(config-router)#network 2.2.2.0 0.0.0.255 area 0
R2(config-router)#passive-interface f0/0
R3(config)#router  ospf 1
R3(config-router)#network 10.25.23.0 0.0.0.15 area 0
R3(config-router)#network 10.25.34.0 0.0.0.15 area 0
R3(config-router)#network 3.3.3.0 0.0.0.255 area 0
R4(config)#router  ospf 1
R4(config-router)#network 10.25.34.0 0.0.0.15 area 0
R4(config-router)#network 10.25.45.0 0.0.0.15 area 0
R4(config-router)#network 4.4.4.0 0.0.0.255 area 0
R5(config)#router  ospf 1
R5(config-router)#network 10.25.45.0 0.0.0.15 area 0
R5(config-router)#network 5.5.5.0 0.0.0.255 area 0  
R5(config-router)#passive-interface f0/0

Zobaczmy tablicę routingu na R2 oraz upewnijmy się czy ma łączność z R5:

R2#show ip route ospf 
     3.0.0.0/24 is subnetted, 1 subnets
O       3.3.3.0 [110/2] via 10.25.23.3, 00:52:13, FastEthernet1/0
     4.0.0.0/24 is subnetted, 1 subnets
O       4.4.4.0 [110/3] via 10.25.23.3, 00:52:13, FastEthernet1/0
     5.0.0.0/24 is subnetted, 1 subnets
O       5.5.5.0 [110/4] via 10.25.23.3, 00:52:13, FastEthernet1/0
     10.0.0.0/28 is subnetted, 4 subnets
O       10.25.34.0 [110/2] via 10.25.23.3, 00:52:13, FastEthernet1/0
O       10.25.45.0 [110/3] via 10.25.23.3, 00:52:13, FastEthernet1/0
R2#ping 5.5.5.5 source loopback 0

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 5.5.5.5, timeout is 2 seconds:
Packet sent with a source address of 2.2.2.2 
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 48/56/68 ms

Świetnie, przechodzimy dalej.


Skonfiguruj IBGP w AS 25 pomiędzy R2 i R5. Aktualizacje BGP mają być wysyłane przy pomocy interfejsów Loopback.

Uruchamiamy sesję BGP, ale tylko pomiędzy routerami R2 i R5.

R2(config)#router  bgp 25
R2(config-router)#neighbor 5.5.5.5 remote-as 25
R2(config-router)#neighbor 5.5.5.5 update-source loopback 0
R5(config)#router bgp 25
R5(config-router)#neighbor 2.2.2.2 remote-as 25
R5(config-router)#neighbor 2.2.2.2 update-source loopback 0

Po chwili łączność pomiędzy nimi zostaje nawiązana:

R2#show ip bgp summary 
BGP router identifier 2.2.2.2, local AS number 25
BGP table version is 1, main routing table version 1

Neighbor        V    AS MsgRcvd MsgSent   TblVer  InQ OutQ Up/Down  State/PfxRcd
5.5.5.5         4    25       2       2        0    0    0 00:00:09        0

Nie rozgłaszamy też żadnych sieci w BGP w AS 25.


Skonfiguruj EBGP pomiędzy AS 25 – AS 1 oraz AS 25 – AS 6. Rozgłoś w nim sieci 1.1.1.0/24 i 6.6.6.0/24.

Czas na EBGP. Do AS 25 podpinamy dwa kolejne systemy autonomiczne: AS 1 oraz AS 6. W pierwszym z nich rozgłaszamy sieć 1.1.1.0/24 a w drugim sieć 6.6.6.0/24:

R1(config)#router  bgp 1
R1(config-router)#neighbor 10.0.12.2 remote-as 25
R1(config-router)#network 1.1.1.0 mask 255.255.255.0
R2(config)#router  bgp 25
R2(config-router)#neighbor 10.0.12.1 remote-as 1
R5(config)#router  bgp 25
R5(config-router)#neighbor 10.0.56.6 remote-as 6
R6(config)#router  bgp 6
R6(config-router)#neighbor 10.0.56.5 remote-as 25
R6(config-router)#network 6.6.6.0 mask 255.255.255.0

Dlaczego R1 i R6 nie mają łączności z sieciami rozgłaszanymi w EBGP?

Zacznijmy od routera R1 i tego czego nauczył się przez BGP:

R1#show ip bgp 
BGP table version is 2, local router ID is 1.1.1.1
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
              r RIB-failure, S Stale
Origin codes: i - IGP, e - EGP, ? - incomplete

   Network          Next Hop            Metric LocPrf Weight Path
*> 1.1.1.0/24       0.0.0.0                  0         32768 i

Tutaj nic, przejdźmy do R2:

R2#show ip bgp 
BGP table version is 2, local router ID is 2.2.2.2
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
              r RIB-failure, S Stale
Origin codes: i - IGP, e - EGP, ? - incomplete

   Network          Next Hop            Metric LocPrf Weight Path
*> 1.1.1.0/24       10.0.12.1                0             0 1 i
* i6.6.6.0/24       10.0.56.6                0    100      0 6 i

Jest sieć 6.6.6.0/24 prowadząca przez 10.0.56.6. Nie zna on jednak trasy do tego adresu, więc sieć nie została dodana do tablicy routingu. Analogiczną sytuację mamy na R5:

R5#show ip 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
Origin codes: i - IGP, e - EGP, ? - incomplete

   Network          Next Hop            Metric LocPrf Weight Path
* i1.1.1.0/24       10.0.12.1                0    100      0 1 i
*> 6.6.6.0/24       10.0.56.6                0             0 6 i

Next Hop dla sieci 1.1.1.0/24 to 10.0.12.1 czyli router R1. Problem ten możemy łatwo naprawić używając opcji next-hop-self w konfiguracji BGP na R2 i R5:

R2(config)#router  bgp 25
R2(config-router)#neighbor 5.5.5.5 next-hop-self
R5(config)#router  bgp 25
R5(config-router)#neighbor 2.2.2.2 next-hop-self

Sprawdzamy status na R2:

R2#show ip bgp | begin Network
   Network          Next Hop            Metric LocPrf Weight Path
*> 1.1.1.0/24       10.0.12.1                0             0 1 i
*>i6.6.6.0/24       5.5.5.5                  0    100      0 6 i

R5 nadpisał atrybut Next Hop swoim adresem IP dla sieci 6.6.6.0/24 przez co R2 dodał ją do tablicy routingu:

R2#show  ip route bgp 
     1.0.0.0/24 is subnetted, 1 subnets
B       1.1.1.0 [20/0] via 10.0.12.1, 00:17:19
     6.0.0.0/24 is subnetted, 1 subnets
B       6.6.6.0 [200/0] via 5.5.5.5, 00:02:04

Wracamy teraz do routera R1:

R1#show ip bgp | begin Network
   Network          Next Hop            Metric LocPrf Weight Path
*> 1.1.1.0/24       0.0.0.0                  0         32768 i
*> 6.6.6.0/24       10.0.12.2                              0 25 6 i

Sytuacja na R6:

R6#show ip route bgp 
     1.0.0.0/24 is subnetted, 1 subnets
B       1.1.1.0 [20/0] via 10.0.56.5, 00:03:3

Sieci rozgłaszane w BGP pojawiły się w tablicy routingu (zarówno na R1 jak i na R6), jednak czy routery te mają ze sobą łączność?

R1#ping 6.6.6.6 source l0

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 6.6.6.6, timeout is 2 seconds:
Packet sent with a source address of 1.1.1.1 
.....
Success rate is 0 percent (0/5)

Pisząc krótko… nie mają. Pytanie dlaczego? Przeanalizujmy sytuację wysyłając pakiet ICMP z routera R1 do 6.6.6.6 (router R6). Zgodnie z tablicą routingu R1 wysyła pakiet w kierunku routera R2 – adres 10.0.12.2. Co zrobi R2 zobaczyć możemy w jego tablicy routingu:

R2#show ip route | begin Gateway
Gateway of last resort is not set

     1.0.0.0/24 is subnetted, 1 subnets
B       1.1.1.0 [20/0] via 10.0.12.1, 00:22:58
     2.0.0.0/24 is subnetted, 1 subnets
C       2.2.2.0 is directly connected, Loopback0
     3.0.0.0/24 is subnetted, 1 subnets
O       3.3.3.0 [110/2] via 10.25.23.3, 00:31:02, FastEthernet1/0
     4.0.0.0/24 is subnetted, 1 subnets
O       4.4.4.0 [110/3] via 10.25.23.3, 00:31:02, FastEthernet1/0
     5.0.0.0/24 is subnetted, 1 subnets
O       5.5.5.0 [110/4] via 10.25.23.3, 00:31:02, FastEthernet1/0
     6.0.0.0/24 is subnetted, 1 subnets
B       6.6.6.0 [200/0] via 5.5.5.5, 00:07:43
     10.0.0.0/28 is subnetted, 4 subnets
C       10.25.23.0 is directly connected, FastEthernet1/0
C       10.0.12.0 is directly connected, FastEthernet0/0
O       10.25.34.0 [110/2] via 10.25.23.3, 00:31:02, FastEthernet1/0
O       10.25.45.0 [110/3] via 10.25.23.3, 00:31:02, FastEthernet1/0

Trasa do 6.6.6.6 prowadzi przez 5.5.5.5, jak wiemy mamy z nim 100% łączność. Jednak, wysyłając pakiet do 5.5.5.5 kolejnym węzłem na trasie jest adres 10.25.23.3 (5.5.5.0 [110/4] via 10.25.23.3), a więc router R3. Wyświetlamy tablicę routingu na R3:

R3#show ip route | begin Gateway
Gateway of last resort is not set

     2.0.0.0/24 is subnetted, 1 subnets
O       2.2.2.0 [110/2] via 10.25.23.2, 00:33:16, FastEthernet0/0
     3.0.0.0/24 is subnetted, 1 subnets
C       3.3.3.0 is directly connected, Loopback0
     4.0.0.0/24 is subnetted, 1 subnets
O       4.4.4.0 [110/2] via 10.25.34.4, 00:33:16, FastEthernet1/0
     5.0.0.0/24 is subnetted, 1 subnets
O       5.5.5.0 [110/3] via 10.25.34.4, 00:33:16, FastEthernet1/0
     10.0.0.0/28 is subnetted, 3 subnets
C       10.25.23.0 is directly connected, FastEthernet0/0
C       10.25.34.0 is directly connected, FastEthernet1/0
O       10.25.45.0 [110/2] via 10.25.34.4, 00:33:16, FastEthernet1/0

Właśnie, R3 nie ma trasy do sieci 6.6.6.0/24. Dostając ten pakiet od R2, nie wie gdzie go przesłać dalej, więc go odrzuca. Możemy to potwierdzić uruchamiając tryb debug dla pakietów ICMP na R3 i pingując sieć 6.6.6.6 z R1:

R3#debug ip icmp 
ICMP packet debugging is on
R3#
*Mar  1 00:36:13.075: ICMP: dst (6.6.6.6) host unreachable sent to 1.1.1.1

Dlaczego więc trasy te zostały dodane do tablicy routingu na R1 i R6? Zauważmy, że dla BGP 100% łączność wydaję się być zachowana. Skonfigurowaliśmy IBGP pomiędzy R2 i R5, które mają wszystkie niezbędne wpisy. Problem w tym, że pomiędzy nimi mamy jeszcze dwa routery, które nie wiedzą wszystkiego.


Włącz synchronizację BGP w AS 25.

Jeżeli nasz AS jest obszarem tranzytowym i przesyła trasy z jednego systemu autonomicznego do innego, BGP nie rozgłosi trasy dalej, dopóki wszystkie routery wewnątrz naszego AS nie nauczą się tej trasy poprzez IGP (Interior Gateway Protocol, np OSPF, RIP, EIGRP). W skrócie protokół IGP musi być zsynchronizowany z BGP wewnątrz danego systemu autonomicznego.
Obecnie w Cisco IOS synchronizacja BGP jest domyślnie wyłączona (no synchronization). Jest to opcja zalecana jeżeli wszystkie routery w naszym środowisku działają pod kontrolą BGP, routery mają połączenie każdy z każdym (full mesh) lub nasz AS nie jest obszarem tranzytowym.
Synchronizację aktywujemy w trybie konfiguracji BGP poleceniem synchronization na routerach R2 i R5:

R2(config)#router  bgp 25
R2(config-router)#synchronization
R5(config)#router  bgp 25
R5(config-router)#synchronization

Po tej zmianie sieć 1.1.1.0/24 znika z tablicy routingu routerów R5 i R6, a sieć 6.6.6.0/24 z R1 i R2.


Popraw konfigurację tak, aby R1 i R6 miały ze sobą pełną łączność.

Aby rozwiązać problem w zadaniu musimy się upewnić, że wszystkie routery wewnątrz AS 25 (łącznie z R3 i R4) mają pełną wiedzę o wymaganych sieciach. Na potrzeby zadania problem rozwiążemy poprzez redystrybucje tras BGP do OSPF.

R2(config)#router  ospf 1
R2(config-router)#redistribute bgp 25 subnets
R5(config)#router  ospf 1
R5(config-router)#redistribute bgp 25 subnets

Po chwili sieci z BGP (1.1.1.0/24 oraz 6.6.6.0/24) pojawiają się w tablicy routingu routerów R2, R3, R4 i R5.

R4#show ip route  ospf 
     1.0.0.0/24 is subnetted, 1 subnets
O E2    1.1.1.0 [110/1] via 10.25.34.3, 00:01:05, FastEthernet1/0
     2.0.0.0/24 is subnetted, 1 subnets
O       2.2.2.0 [110/3] via 10.25.34.3, 00:01:05, FastEthernet1/0
     3.0.0.0/24 is subnetted, 1 subnets
O       3.3.3.0 [110/2] via 10.25.34.3, 00:01:05, FastEthernet1/0
     5.0.0.0/24 is subnetted, 1 subnets
O       5.5.5.0 [110/2] via 10.25.45.5, 00:01:05, FastEthernet0/0
     6.0.0.0/24 is subnetted, 1 subnets
O E2    6.6.6.0 [110/1] via 10.25.45.5, 00:01:05, FastEthernet0/0
     10.0.0.0/28 is subnetted, 3 subnets
O       10.25.23.0 [110/2] via 10.25.34.3, 00:01:05, FastEthernet1/0

Mamy więc sytuację kiedy nasz IGP (OSPF) jest zsynchronizowany z BGP. Routery R1 i R6 wreszcie mają ze sobą łączność:

R1#show ip route bgp 
     6.0.0.0/24 is subnetted, 1 subnets
B       6.6.6.0 [20/0] via 10.0.12.2, 00:03:13
R1#ping 6.6.6.6 source loopback 0

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 6.6.6.6, timeout is 2 seconds:
Packet sent with a source address of 1.1.1.1 
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 88/98/108 ms

Na koniec mała dygresja. Proponowane tutaj rozwiązanie należy traktować tylko w celach ćwiczebnych i edukacyjnych ;] Ma ono na celu pokazanie tylko czym jest synchronizacja w BGP, nie jest to jednak gotowiec na problemy w rzeczywistości. Trudno sobie wyobrazić sytuację kiedy ktoś re-dystrybuuje kilkaset tysięcy tras BGP do OSPF (lub innego IGP)…
Jak zwykle czekamy na Wasze komentarze, uwagi i propozycję. Zapraszamy też do przejrzenie innych zadań z działu Cisco Labs.

  1. Fajnie i jasno przedstawione, na pewno pomoże wielu zaczynającym przygodę z BGP.

Zostaw komentarz


Podpowiedź - możesz użyć tych HTML tagów i atrybutów:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Obraz CAPTCHY

*