Cele:
- Skonfiguruj OSPF wewnątrz AS 25. Rozgłoś wszystkie niezbędne sieci oraz ich interfejsy Loopback.
- Skonfiguruj IBGP w AS 25 pomiędzy R2 i R5. Aktualizacje BGP mają być wysyłane przy pomocy interfejsów Loopback.
- 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.
- Dlaczego R1 i R6 nie mają łączności z sieciami rozgłaszanymi w EBGP?
- Włącz synchronizację BGP w AS 25.
- Popraw konfigurację tak, aby R1 i R6 miały ze sobą pełną łączność.
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:
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.
Fajnie i jasno przedstawione, na pewno pomoże wielu zaczynającym przygodę z BGP.