Cele:
- Skonfiguruj BGP na wszystkich routerach według schematu sieci. Rozgłoś w BGP interfejsy Loopback.
- R3: trasa do 1.1.1.0/24 ma prowadzić przez R1, natomiast do sieci 2.2.2.0/24 przez R2. Zrób to zmieniając atrybut wagi (weight).
- Wyłącz interfejs FastEthernet 1/0 na R2. Czy R3 ma wciąż dostęp do sieci 2.2.2.0/24?
Adresy IP routerów:
R1
Interfejs | IP |
---|---|
FastEthernet 0/0 | 10.0.13.1/29 |
FastEthernet 1/0 | 10.12.12.1/29 |
Loopback 0 | 1.1.1.1/24 |
R2
Interfejs | IP |
---|---|
FastEthernet 0/0 | 10.12.12.2/29 |
FastEthernet 1/0 | 10.0.23.2/29 |
Loopback 0 | 2.2.2.2/24 |
R3
Interfejs | IP |
---|---|
FastEthernet 0/0 | 10.0.13.3/29 |
FastEthernet 1/0 | 10.0.23.3/29 |
Loopback 0 | 3.3.3.3/24 |
Schemat sieci:
Router: 3640
IOS: c3640-jk9o3s-mz.124-16a.bin
Rozwiązanie
Skonfiguruj BGP na wszystkich routerach według schematu sieci. Rozgłoś w BGP interfejsy Loopback.
Uruchamiamy proces BGP na wszystkich routerach, definiujemy sąsiadów i rozgłaszamy sieci przypisane do interfejsów Loopback. R1 i R2 należą do systemu autonomicznego 12, a R3 do 3.
R1(config)#router bgp 12 R1(config-router)#neighbor 10.12.12.2 remote-as 12 R1(config-router)#neighbor 10.0.13.3 remote-as 3 R1(config-router)#network 1.1.1.0 mask 255.255.255.0
R2(config)#router bgp 12 R2(config-router)#neighbor 10.12.12.1 remote-as 12 R2(config-router)#neighbor 10.0.23.3 remote-as 3 R2(config-router)#network 2.2.2.0 mask 255.255.255.0
R3(config)#router bgp 3 R3(config-router)#neighbor 10.0.13.1 remote-as 12 R3(config-router)#neighbor 10.0.23.2 remote-as 12 R3(config-router)#network 3.3.3.0 mask 255.255.255.0
Czekamy chwilę, aż routery zestawią ze sobą sesję, następnie sprawdzimy jej status na R2 i R3:
R2#show ip bgp summary BGP router identifier 2.2.2.2, local AS number 12 BGP table version is 1, main routing table version 1 Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd 10.0.23.3 4 3 56 57 1 0 0 00:53:23 0 10.12.12.1 4 12 57 57 1 0 0 00:54:25 0
R3#show ip bgp summary BGP router identifier 10.0.23.3, local AS number 3 BGP table version is 1, main routing table version 1 Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd 10.0.13.1 4 12 57 57 1 0 0 00:53:44 0 10.0.23.2 4 12 58 57 1 0 0 00:54:47 0
Dobrze, każdy z nich ma po 2 sąsiadów. Tablica routingu na R3:
R3#show ip route bgp 1.0.0.0/24 is subnetted, 1 subnets B 1.1.1.0 [20/0] via 10.0.13.1, 00:00:09 2.0.0.0/24 is subnetted, 1 subnets B 2.2.2.0 [20/0] via 10.0.13.1, 00:00:09
Mamy wpisy do sieci 1.1.1.0/24 i 2.2.2.0/24, co ciekawe obydwie trasy prowadzą przez R1.
R3: trasa do 1.1.1.0/24 ma prowadzić przez R1, natomiast do sieci 2.2.2.0/24 przez R2. Zrób to zmieniając atrybut wagi (weight).
Router R3 nauczył się dwóch tras z AS 12 przez protokół BGP. Jednak w naszym przypadku trasa do sieci 2.2.2.0/24 prowadzi przez router R1. Możemy wpłynąć na decyzje algorytmu wyboru najlepszej ścieżki zmieniając atrybuty dla danych prefiksów. Jednym z nich jest waga (WEIGHT), która określa priorytet danej trasy. Domyślna wartość to 0, jest to lokalny parametr routera (nie jest przesyłany dalej) i zaimplementowany tylko w Cisco. Wyższa wartość oznacza lepszą trasę. W algorytmie wyboru ścieżki waga ma najwyższy priorytet spośród innych atrybutów (Local preference, MED, AS_PATH), więc zmiana jej wartości będzie bezwzględnie wyznaczała priorytet ścieżki.
Zacznijmy od polecenia show ip bgp
na R3:
R3#show ip bgp BGP table version is 8, local router ID is 10.0.23.3 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.23.2 0 12 i *> 10.0.13.1 0 0 12 i * 2.2.2.0/24 10.0.23.2 0 0 12 i *> 10.0.13.1 0 12 i *> 3.3.3.0/24 0.0.0.0 0 32768 i
R3 wie, że do każdej z sieci w AS 12 może dostać się przez R1 (10.0.13.1) lub R2 (10.0.23.2). Skonfigurujemy dwie route-map przy pomocy których zmienimy wagę danych tras, a następnie przypiszemy każdą z nich do sąsiadów w BGP. Pierwsza z nich, przypisana do R1, ustawi wagę do sieci 1.1.1.0/24 na 10, a do sieci 2.2.2.0/24 na 5. Druga natomiast (przypisana do R2), ustawi wagę do sieci 1.1.1.0/24 na 5, a do 2.2.2.0/24 na 10.
Krok pierwszy to konfiguracja dwóch list kontroli dostępu: R1_NETWORK i R2_NETWORK.
R3(config)#ip access-list extended R1_NETWORK R3(config-ext-nacl)#permit ip 1.1.1.0 0.0.0.255 any
R3(config)#ip access-list extended R2_NETWORK R3(config-ext-nacl)#permit ip 2.2.2.0 0.0.0.255 any
Pierwsza z nich wyłapuje sieć z interfejsu Loopback od R1, a druga od R2. Teraz route-map, która ustawi odpowiednio atrybut wagi dla tras od R1:
R3(config)#route-map FROM_R1 permit 10 R3(config-route-map)#match ip address R1_NETWORK R3(config-route-map)#set weight 10 R3(config-route-map)#exit R3(config)#route-map FROM_R1 permit 20 R3(config-route-map)#match ip address R2_NETWORK R3(config-route-map)#set weight 5
I kolejna, którą później przypiszemy do R2:
R3(config)#route-map FROM_R2 permit 10 R3(config-route-map)#match ip address R1_NETWORK R3(config-route-map)#set weight 5 R3(config-route-map)#exit R3(config)#route-map FROM_R2 permit 20 R3(config-route-map)#match ip address R2_NETWORK R3(config-route-map)#set weight 10
Teraz przechodzimy do trybu konfiguracji BGP:
R3(config)#router bgp 3 R3(config-router)#neighbor 10.0.13.1 route-map FROM_R1 in R3(config-router)#neighbor 10.0.23.2 route-map FROM_R2 in
Przypisaliśmy odpowiednie route-mapy dla tras przychodzących od naszych sąsiadów. Aby zobaczyć zmiany zresetujemy sesję BGP na R3:
R3#clear ip bgp * soft in
Zobaczmy wyniki korzystając z polecenia show ip bgp
:
R3#show ip bgp | begin Network Network Next Hop Metric LocPrf Weight Path * 1.1.1.0/24 10.0.23.2 5 12 i *> 10.0.13.1 0 10 12 i *> 2.2.2.0/24 10.0.23.2 0 10 12 i * 10.0.13.1 5 12 i
Konfiguracja działa, R3 ustawił teraz odpowiednio wartości dla atrybutu wagi. Trasa do 1.1.1.0/24 prowadzi przez R1, a do 2.2.2.0/24 przez R2. Sprawdzimy jeszcze tablicę routingu:
R3#show ip route bgp 1.0.0.0/24 is subnetted, 1 subnets B 1.1.1.0 [20/0] via 10.0.13.1, 00:03:13 2.0.0.0/24 is subnetted, 1 subnets B 2.2.2.0 [20/0] via 10.0.23.2, 00:03:13
Wyłącz interfejs FastEthernet 1/0 na R2. Czy R3 ma wciąż dostęp do sieci 2.2.2.0/24?
Sprawdzimy czy w przypadku awarii łącza pomiędzy R2 i R3 nie stracimy łączności z siecią 2.2.2.0/24.
R2(config)#interface fastEthernet 1/0 R2(config-if)#shutdown
Sesja BGP nie jest zerwana od razu. Router R3 wysyła jeszcze trzy razy pakiety keepalive co 60 sekund (Last read 00:02:19, last write 00:00:19, hold time is 180, keepalive interval is 60 seconds):
R3#show ip bgp neighbors 10.0.23.2 BGP neighbor is 10.0.23.2, remote AS 12, external link BGP version 4, remote router ID 2.2.2.2 BGP state = Established, up for 00:45:19 Last read 00:02:19, last write 00:00:19, hold time is 180, keepalive interval is 60 seconds
Po tym czasie sesja BGP zmienia status na Active:
R3#show ip bgp summary | begin Neighbor Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd 10.0.13.1 4 12 217 220 12 0 0 00:50:25 2 10.0.23.2 4 12 211 216 0 0 0 00:04:25 Active
Mamy oczywiście wciąż łączność z R1, więc teoretycznie R3 powinien wysyłać pakiety do interfejsu Loopback od R2 własnie przez niego:
BGP table version is 12, local router ID is 10.0.23.3 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.13.1 0 10 12 i *> 2.2.2.0/24 10.0.13.1 5 12 i *> 3.3.3.0/24 0.0.0.0 0 32768 i
Zgadza się, R1 to Next Hop dla obydwu sieci, poniżej jeszcze tablica routingu:
R3#show ip route bgp 1.0.0.0/24 is subnetted, 1 subnets B 1.1.1.0 [20/0] via 10.0.13.1, 00:15:02 2.0.0.0/24 is subnetted, 1 subnets B 2.2.2.0 [20/0] via 10.0.13.1, 00:06:26
0 Komentarze.