BGP – backdoor

Cele:

Adresy IP routerów:

R1

Interfejs IP
FastEthernet 0/0 10.0.12.1/24
FastEthernet 1/0 10.0.13.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.13.3/24
FastEthernet 1/0 10.0.23.3/24

Schemat sieci:

BGP - backdoor

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

Rozwiązanie

Skonfiguruj OSPF pomiędzy R1 i R2. Rozgłoś ich interfejsy Loopback.

Na routerach R1 i R2 uruchamiamy proces OSPF i rozgłaszamy w nim sieci 1.1.1.0/24 oraz 2.2.2.0/24. Przy okazji zmienimy typ sieci dla interfejsów Loopback na point-to-point:

R1(config)#interface loopback 0
R1(config-if)#ip ospf network point-to-point
R1(config-if)#exit
R1(config)#
R1(config)#router  ospf 1
R1(config-router)#network 10.0.12.0 0.0.0.255 area 0
R1(config-router)#network 1.1.1.0 0.0.0.255 area 0
R2(config)#interface loopback 0
R2(config-if)#ip ospf network point-to-point
R2(config-if)#exit
R2(config)#
R2(config)#router  ospf 1
R2(config-router)#network 10.0.12.0 0.0.0.255 area 0
R2(config-router)#network 2.2.2.0 0.0.0.255 area 0

Po chwili każdy z nich ma nowy wpis w tablicy routingu:

R1#show ip route ospf
     2.0.0.0/24 is subnetted, 1 subnets
O       2.2.2.0 [110/2] via 10.0.12.2, 00:00:00, FastEthernet0/0

Na koniec przetestujmy łączność:

R1#ping 2.2.2.2 source loopback 0

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 2.2.2.2, 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 = 4/16/24 ms

Skonfiguruj EBGP pomiędzy R1 i R3 oraz R2 i R3. Rozgłoś interfejsy Loopback.

Uruchamiamy proces BGP na wszystkich routerach i definiujemy sąsiadów. Uwaga – nie tworzymy sesji EBGP pomiędzy R1 i R2:

R1(config)#router bgp 100
R1(config-router)#neighbor 10.0.13.3 remote-as 300
R1(config-router)#network 1.1.1.0 mask 255.255.255.0
R2(config)#router bgp 200
R2(config-router)#neighbor 10.0.23.3 remote-as 300
R2(config-router)#network 2.2.2.0 mask 255.255.255.0
R3(config)#router bgp 300
R3(config-router)#neighbor 10.0.13.1 remote-as 100
R3(config-router)#neighbor 10.0.23.2 remote-as 200
R3(config-router)#neighbor 10.0.13.1 next-hop-self
R3(config-router)#neighbor 10.0.23.2 next-hop-self

Na R1 i R2 rozgłaszamy interfejsy Loopback w BGP. Na R3 użyliśmy opcji next-hop-self dzięki czemu routery będą miały łączność z sieciami 1.1.1.0/24 oraz 2.2.2.0/24 w BGP. Sprawdźmy status na R2:

R2#show ip bgp
BGP table version is 3, 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.23.3                              0 300 100 i
*> 2.2.2.0/24       0.0.0.0                  0         32768 i

Mamy sieć 1.1.1.0/24 do której trasa prowadzi przez 10.0.23.3 (R3).


R1 i R2: trasa do sieci 1.1.1.0/24 oraz 2.2.2.0/24 prowadzi przez R3 pomimo tego, że routery mają ze sobą bezpośrednie połączenie. Dlaczego? Popraw konfigurację tak, aby R1 i R2 korzystały z łącza, którym są bezpośrednio podłączone.

No właśnie po uruchomieniu BGP pingując adres 2.2.2.2 z R1 pakiety kierowane są do routera R3 zamiast bezpośrednio do R2.

R1#traceroute 2.2.2.2 source loopback 0

Type escape sequence to abort.
Tracing the route to 2.2.2.2

  1 10.0.13.3 12 msec 16 msec 24 msec
  2 10.0.23.2 36 msec *  36 msec

Trasa routingu na R1:

R1#show ip route bgp
     2.0.0.0/24 is subnetted, 1 subnets
B       2.2.2.0 [20/0] via 10.0.13.3, 00:43:34

Dlaczego tak jest? W tm przypadku „winny” jest dystans administracyjny (AD). Wartość AD dla tras rozgłaszanych przez EBGP to 20, natomiast dla OSPF 110. Poniżej domyślne wartości AD dla różnych protokołów routingu:

Protokół Dystans administracyjny
EBGP 20
EIGRP 90
IGRP 100
OSPF 110
IS-IS 115
RIP 120
IBGP 200

R1 otrzymuje informacja dotyczące sieci 2.2.2.0/24 z dwóch protokołów routingu (EBGP oraz OSPF), a ponieważ niższa wartość ma większy priorytet, wybiera on trasę przez R3. Problem możemy rozwiązać korzystając z BGP backdoor.

R1(config)#router bgp 100
R1(config-router)#network 2.2.2.0 mask 255.255.255.0 backdoor

W ten sposób trasy rozgłaszane przez IGP (OSPF w naszym przypadku) mają większy priorytet niż te z EBGP. Sprawdźmy tablicę routingu:

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

     1.0.0.0/24 is subnetted, 1 subnets
C       1.1.1.0 is directly connected, Loopback0
     2.0.0.0/24 is subnetted, 1 subnets
O       2.2.2.0 [110/2] via 10.0.12.2, 00:04:46, FastEthernet0/0
     10.0.0.0/24 is subnetted, 2 subnets
C       10.0.12.0 is directly connected, FastEthernet0/0
C       10.0.13.0 is directly connected, FastEthernet1/0

Świetnie trasa do 2.2.2.0/24 wskazuje bezpośrednio na R2. Poprawimy teraz konfigurację na drugim routerzze:

R2(config)#router  bgp 200
R2(config-router)#network 1.1.1.0 mask 255.255.255.0 backdoor 
R2#show ip route | begin Gateway
Gateway of last resort is not set

     1.0.0.0/24 is subnetted, 1 subnets
O       1.1.1.0 [110/2] via 10.0.12.1, 00:00:20, FastEthernet0/0
     2.0.0.0/24 is subnetted, 1 subnets
C       2.2.2.0 is directly connected, Loopback0
     10.0.0.0/24 is subnetted, 2 subnets
C       10.0.12.0 is directly connected, FastEthernet0/0
C       10.0.23.0 is directly connected, FastEthernet1/0

A co się stanie jeśli wyłączymy link pomiędzy R1 a R2?

R1(config)#interface fastEthernet 0/0
R1(config-if)#shutdown 
R1(config-if)#
*Mar  1 02:28:32.775: %OSPF-5-ADJCHG: Process 1, Nbr 2.2.2.2 on FastEthernet0/0 from FULL to DOWN, Neighbor Down: Interface down or detached
Gateway of last resort is not set

     1.0.0.0/24 is subnetted, 1 subnets
C       1.1.1.0 is directly connected, Loopback0
     2.0.0.0/24 is subnetted, 1 subnets
B       2.2.2.0 [200/0] via 10.0.13.3, 00:00:33
     10.0.0.0/24 is subnetted, 1 subnets
C       10.0.13.0 is directly connected, FastEthernet1/0

Tracimy relację sąsiedztwa w OSPF, ale w tablicy routingu znów pojawia się wpis BGP, a my mamy łączność ponownie przez R3:

R1#traceroute 2.2.2.2 source loopback 0

Type escape sequence to abort.
Tracing the route to 2.2.2.2

  1 10.0.13.3 16 msec 20 msec 20 msec
  2 10.0.23.2 28 msec *  36 msec

To tyle na dziś, czekamy na Wasze uwagi i komentarze.

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

*