BGP – atrybut AS PATH

Cele:

Adresy IP routerów:

R1

Interfejs IP
FastEthernet 0/0 10.0.12.1/28
Serial 1/0 10.0.14.1/28
Loopback 0 1.1.1.1/24

R2

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

R3

Interfejs IP
FastEthernet 0/0 10.0.23.3/28
FastEthernet 1/0 10.0.35.3/28

R4

Interfejs IP
Serial 0/0 10.0.14.4/28
Serial 1/0 10.0.45.4/28

R5

Interfejs IP
FastEthernet 0/0 10.0.35.5/28
Serial 1/0 10.0.45.5/28
Loopback 0 5.5.5.5/24

Schemat sieci:

BGP - atrybut AS PATH

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

Rozwiązanie

Skonfiguruj EBGP na wszystkich routerach. Rozgłoś interfejsy Loopback na R1 i R5. Upewnij się, że mają ze sobą łączność.

Uruchamiamy i konfigurujemy proces BGP na wszystkich routerach. Każdy z nich należy do innego systemu autonomicznego. Dodatkowo na R1 i R5 rozgłaszamy w BGP sieci z interfejsów Loopback:

R1(config)#router  bgp 100
R1(config-router)#neighbor 10.0.12.2 remote-as 200
R1(config-router)#neighbor 10.0.14.4 remote-as 400
R1(config-router)#network 1.1.1.0 mask 255.255.255.0
R2(config)#router  bgp 200
R2(config-router)#neighbor 10.0.12.1 remote-as 100
R2(config-router)#neighbor 10.0.23.3 remote-as 300
R3(config)#router  bgp 300
R3(config-router)#neighbor 10.0.23.2 remote-as 200
R3(config-router)#neighbor 10.0.35.5 remote-as 500
R4(config)#router  bgp 400
R4(config-router)#neighbor 10.0.14.1 remote-as 100
R4(config-router)#neighbor 10.0.45.5 remote-as 500
R5(config)#router  bgp 100
R5(config-router)#neighbor 10.0.35.3 remote-as 300
R5(config-router)#neighbor 10.0.45.4 remote-as 400
R5(config-router)#network 5.5.5.0 mask 255.255.255.0

Po chwili w tablicach routingu naszych routerów pojawią się nowe wpisy dotyczące sieci 1.1.1.0/24 oraz 5.5.5.0/24:

R1#show ip route bgp 
     5.0.0.0/24 is subnetted, 1 subnets
B       5.5.5.0 [20/0] via 10.0.14.4, 00:00:08
R5#show ip route bgp 
     1.0.0.0/24 is subnetted, 1 subnets
B       1.1.1.0 [20/0] via 10.0.45.4, 00:00:18

Testujemy łączność z R1 do R5:

R1#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 1.1.1.1 
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 36/49/64 ms

Upewnij się, że pakiety pomiędzy R1 i R5 przesyłane są przez łącza FastEthernet, a nie przez Serial.

Wiemy, że R1 i R5 mają ze sobą pełną łączność, ale nie do końca odpowiada nam wybrana prze BGP trasa. Zobaczmy jeszcze raz:

R1#show ip route bgp 
     5.0.0.0/24 is subnetted, 1 subnets
B       5.5.5.0 [20/0] via 10.0.14.4, 00:05:14

Jak widzimy zamiast skorzystać z szybszego łącza FastEthernet router R1 wysyła pakiety do R4 korzystając z łącza szeregowego. Zgodnie z algorytmem wyboru najlepszej ścieżki BGP preferuje trasę o najkrótszym AS_PATH, czyli tą, która prowadzi przez mniejszą ilość systemów autonomicznych. Patrząc na schemat sieci widzimy dwie możliwości: górna trasa prowadzi przez AS 200, AS 300 i AS 500, natomiast dolna przez AS 400 i AS 500. Wybrana zostaje „dolna”, ponieważ jest krótsza o jeden AS.

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
*  5.5.5.0/24       10.0.12.2                              0 200 300 500 i
*>                  10.0.14.4                              0 400 500 i

Korzystając z polecenia show ip bgp widzimy dokładne ścieżki do sieci 5.5.5.0/24.
Problem rozwiążemy przez sztuczne wydłużenie „dolnej” ścieżki korzystając z tzw. Path Prepending. Na routerze R1 do ścieżki „400 500 i” dodamy dwa razy jego AS, przez co AS_PATH będzie miał postać „100 100 400 500 i„. Resztę zrobi już algorytm wyboru tras w BGP, który wybierze trasę przez R2 i R3 jako bardziej korzystną.
Na R1 utworzymy route-map o nazwie AS_PATH i użyjemy jej w BGP z 10.0.14.4 dla tras przychodzących oraz wychodzących:

R1(config)#route-map AS_PATH permit 10
R1(config-route-map)# set as-path prepend 100 100
R1(config-route-map)#exit
R1(config)#route-map AS_PATH permit 20 
R1(config-route-map)#exit
R1(config)#router  bgp 100
R1(config-router)#neighbor 10.0.14.4 route-map AS_PATH in
R1(config-router)#neighbor 10.0.14.4 route-map AS_PATH out

Restart procesu BGP na R1:

R1#clear ip bgp * soft

Zobaczmy rezultat:

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
*> 5.5.5.0/24       10.0.12.2                              0 200 300 500 i
*                   10.0.14.4                              0 100 100 400 500 i

Trasa przez R4 została sztucznie wydłużona, dlatego pakiety do sieci 5.5.5.0/24 są kierowane teraz do routera R2.

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

Sytuacja na R6:

R5#show ip bgp  | begin Network
   Network          Next Hop            Metric LocPrf Weight Path
*  1.1.1.0/24       10.0.45.4                              0 400 100 100 100 i
*>                  10.0.35.3                              0 300 200 100 i
*> 5.5.5.0/24       0.0.0.0                  0         32768 i

Wszystko dobrze. R1 rozgłasza dłuższą ścieżkę w kierunku R4, dlatego R6 wybrał trasę przez AS 300.

Mam nadzieję, że zadanie się podobało, czekamy na Wasze komentarze. Zapraszamy też do przejrzenie innych zadań z działu Cisco Labs.

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

*