BGP – external BGP

Cele:

Adresy IP routerów:

R1

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

R2

Interfejs IP
FastEthernet 0/0 10.0.12.2/24
FastEthernet 1/0 10.0.23.2/24
Loopback 0 2.2.2.2/24

R3

Interfejs IP
FastEthernet 0/0 10.0.23.3/24
FastEthernet 1/0 10.0.34.3/24
Loopback 0 3.3.3.3/24

R4

Interfejs IP
FastEthernet 0/0 10.0.34.4/24
Loopback 0 4.4.4.4/24

Schemat sieci:

BGP - external BGP

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

Rozwiązanie

Skonfiguruj EBGP pomiędzy AS 1 i AS 2 oraz pomiędzy AS 3 i AS 4.

W zadaniu tym skupiamy się na konfiguracji EBGP pomiędzy czterema różnymi systemami autonomicznymi. Każdy z routerów tworzy odrębny AS. Zaczynamy od ustanowienia sesji BGP pomiędzy R1 i R2 oraz R3 i R4:

R1(config)#router bgp 1
R1(config-router)#neighbor 10.0.12.2 remote-as 2
R2(config)#router  bgp 2
R2(config-router)#neighbor 10.0.12.1 remote-as 1
R3(config)#router  bgp 3 
R3(config-router)#neighbor 10.0.34.4 remote-as 4
R4(config)#router  bgp 4
R4(config-router)#neighbor 10.0.34.3 remote-as 3

Sprawdzimy status sesji BGP na R1:

R1#show ip bgp summary 
BGP router identifier 1.1.1.1, local AS number 1
BGP table version is 1, main routing table version 1

Neighbor        V    AS MsgRcvd MsgSent   TblVer  InQ OutQ Up/Down  State/PfxRcd
10.0.12.2       4     2       5       5        1    0    0 00:02:11        0

Jego sąsiadem jest router o adresie IP 10.0.12.2 (czyli R2), który znajduje się w AS numer 2, a sesja pomiędzy nimi została nawiązana ponad 2 minuty temu. Routery korzystają z wersji 4 (V 4) protokołu BGP. Jak dotąd R2 nie rozgłasza żadnych sieci w BGP. Sytuacja wygląda podobnie pomiędzy R3 i R4:

R3#show ip bgp summary 
BGP router identifier 3.3.3.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.34.4       4     4       4       4        1    0    0 00:01:46        0

Skonfiguruj EBGP pomiędzy AS 2 i AS 3. Do wysyłania aktualizacji BGP użyj
interfejsów Loopback.

W tym kroku nawiążemy sesję BGP pomiędzy R2 i R3 z tą różnicą, że aktualizacje BGP wysyłane będą przy pomocy interfejsów Loopback. Musimy najpierw wpisać 2.2.2.2 oraz 3.3.3.3 do tablicy routingu, w przeciwnym razie komunikacja nie będzie możliwa. Wpisy te dodamy statycznie na R2 i R3:

R2(config)#ip route 3.3.3.3 255.255.255.255 fastEthernet 1/0
R3(config)#ip route 2.2.2.2 255.255.255.255 fastEthernet 0/0

Sprawdzamy łączność:

R2#ping 3.3.3.3 source loopback 0

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 3.3.3.3, 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 = 8/11/20 ms

Wracamy do BGP:

R2(config)#router  bgp 2
R2(config-router)#neighbor 3.3.3.3 remote-as 3
R2(config-router)#neighbor 3.3.3.3 update-source loopback 0
R2(config-router)#neighbor 3.3.3.3 ebgp-multihop 2
R3(config)#router  bgp 3
R3(config-router)#neighbor 2.2.2.2 remote-as 2
R3(config-router)#neighbor 2.2.2.2 update-source loopback 0
R3(config-router)#neighbor 2.2.2.2 ebgp-multihop 2

W EBGP domyślnie możemy zestawić sesję tylko z bezpośrednio połączonym routerem (TTL jest ustawiony na 1). Routery R2 i R3 połączone są ze sobą przez FastEthernet, ale my do wysyłania pakietów BGP korzystamy z interfejsów Loopback. Tak więc mamy jeden dodatkowy „skok” i musimy użyć opcji ebgp-multihop 2 (TTL = 2). Sprawdzamy status BGP na R2:

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

Neighbor        V    AS MsgRcvd MsgSent   TblVer  InQ OutQ Up/Down  State/PfxRcd
3.3.3.3         4     3       9       9        1    0    0 00:05:03        0
10.0.12.1       4     1      21      21        1    0    0 00:18:30        0

Nawiązał on sesję BGP z dwoma sąsiadami, R1 (10.0.12.1) oraz nowo skonfigurowany R3 (3.3.3.3).


Rozgłoś interfejsy Loopback w BGP od wszystkich routerów. Upewnij się, że mają pełną łączność.

Każdy z routerów ma jeden interfejs Loopback. Rozgłosimy teraz te sieci w BGP:

R1(config)#router  bgp 1
R1(config-router)#network 1.1.1.0 mask 255.255.255.0
R2(config)#router  bgp 2
R2(config-router)#network 2.2.2.0 mask 255.255.255.0
R3(config)#router bgp 3
R3(config-router)#network 3.3.3.0 mask 255.255.255.0
R4(config)#router  bgp 4 
R4(config-router)#network 4.4.4.0 mask 255.255.255.0

Zobaczmy teraz sytuację na R1:

R1#show ip bgp 
BGP table version is 5, 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
*> 2.2.2.0/24       10.0.12.2                0             0 2 i
*> 3.3.3.0/24       10.0.12.2                              0 2 3 i
*> 4.4.4.0/24       10.0.12.2                              0 2 3 4 i
R1#show ip route bgp 
     2.0.0.0/24 is subnetted, 1 subnets
B       2.2.2.0 [20/0] via 10.0.12.2, 03:47:56
     3.0.0.0/24 is subnetted, 1 subnets
B       3.3.3.0 [20/0] via 10.0.12.2, 03:47:25
     4.0.0.0/24 is subnetted, 1 subnets
B       4.4.4.0 [20/0] via 10.0.12.2, 03:46:54

Mamy wszystkie sieci. Widzimy, że np. trasa do 4.4.4.0/24 prowadzi przez AS 2, 3 i 4 (Path), co też pasuje do naszego schematu sieci. Dystans administracyjny (administrative distance) dla tras z EBGP wynosi 20. Sprawdźmy łączność:

R1#ping 2.2.2.2

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 2.2.2.2, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 8/9/12 ms

Ping do R2 przeszedł. Sprawdźmy dalej:

R1#ping 3.3.3.3

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 3.3.3.3, timeout is 2 seconds:
.....
Success rate is 0 percent (0/5)

Tutaj już problem. Router R1 wysyła pakiet do R3 (interfejs Loopback), ale adres źródłowy pakietu ICMP to 10.0.12.1 (czyli adres jego interfejsu FastEthernet 0/0). R3 w swojej tablicy routingu nie ma trasy do linku pomiędzy R1-R2, dlatego nie może wysłać odpowiedzi do R1 (poniżej debug pakietów ICMP na R3):

R3#debug ip icmp 
ICMP packet debugging is on
R3#
*Mar  1 04:46:56.946: ICMP: echo reply sent, src 3.3.3.3, dst 10.0.12.1

Rozwiązaniem jest rozgłoszenie sieci 10.0.12.0/24 w BGP:

R1(config)#router  bgp 1
R1(config-router)#network 10.0.12.0 mask 255.255.255.0

Sprawdzamy tablicę 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 2.2.2.2, 03:38:12
     2.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
B       2.2.2.0/24 [20/0] via 2.2.2.2, 03:37:41
     4.0.0.0/24 is subnetted, 1 subnets
B       4.4.4.0 [20/0] via 10.0.34.4, 03:36:51
     10.0.0.0/24 is subnetted, 3 subnets
B       10.0.12.0 [20/0] via 2.2.2.2, 00:00:19

oraz jeszcze raz ping:

R1#ping 3.3.3.3

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 3.3.3.3, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 12/17/28 ms

Tym razem działa. Testujemy dalej ping z R1 do R4:

R1#ping 4.4.4.4

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 4.4.4.4, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 16/24/44 ms

Tutaj też bez problemów, ponieważ rozgłosiliśmy już sieć 10.0.12.0/24 w BGP.
Podobny problem będziemy mieć pingując z R2 do R4 (R4 nie ma trasy do 10.0.23.0/24) oraz pingując z routera R4 sieci 2.2.2.0/24 lub 1.1.1.0/24 (R1 i R2 nie mają tras do 10.0.34.0/24). W tym celu poprawimy konfigurację BGP

R2(config)#router  bgp 2
R2(config-router)#network 10.0.23.0 mask 255.255.255.0
R4(config)#router bgp 4
R4(config-router)#network 10.0.34.0 mask 255.255.255.0

Po tym zabiegu mamy pełną łączność, tablica routingu przykładowo z R4:

R4#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.34.3, 03:44:31
     2.0.0.0/24 is subnetted, 1 subnets
B       2.2.2.0 [20/0] via 10.0.34.3, 03:44:01
     3.0.0.0/24 is subnetted, 1 subnets
B       3.3.3.0 [20/0] via 10.0.34.3, 03:43:30
     4.0.0.0/24 is subnetted, 1 subnets
C       4.4.4.0 is directly connected, Loopback0
     10.0.0.0/24 is subnetted, 3 subnets
B       10.0.12.0 [20/0] via 10.0.34.3, 00:06:38
B       10.0.23.0 [20/0] via 10.0.34.3, 00:03:05
C       10.0.34.0 is directly connected, FastEthernet0/0

Ma on wpisy do wszystkich sieci, zarówno do interfejsów Loopback jak i do linków pomiędzy AS 1 – AS 2 oraz AS 2 – AS 3.

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

*