EBGP Multihop
EBGP Multihop
Network topology:
An eBGP session will be setup between R0 & R1 routers using their Loopback interfaces. Static routes are configured between R0 and R1 routers to reach the Loopback interfaces. The primary path to reach 2.2.2.2 from R0 is through SW0. A floating static route (AD=254) is also configured through SW2.
The multihop eBGP connection is configured using neighbor ebgp-multihop <value> command under BGP. The "value" indicates the number of hops. The range of "value" is 1 to 255. Since BGP session is to be formed between Loopback interfaces, technically, that is one hop away from the routers.
R0 configuration
interface Loopback0
ip address 1.1.1.1 255.255.255.255
!
interface FastEthernet0/0
ip address 10.1.1.1 255.255.255.0
!
interface FastEthernet0/1
ip address 10.2.2.1 255.255.255.0
!
router bgp 100
no synchronization
bgp log-neighbor-changes
neighbor 2.2.2.2 remote-as 200
neighbor 2.2.2.2 ebgp-multihop 2
neighbor 2.2.2.2 update-source Loopback0
no auto-summary
!
ip route 2.2.2.2 255.255.255.255 10.1.1.2 track 10
ip route 2.2.2.2 255.255.255.255 10.2.2.2 254
!
ip sla 1
icmp-echo 2.2.2.2 source-interface FastEthernet0/0
timeout 3000
threshold 2
frequency 3
ip sla schedule 1 life forever start-time now
!
track 10 rtr 1 reachability
delay down 10 up 15
!
As seen below, R0 uses static route (default AD of 1) to reach 2.2.2.2.
Static route for 2.2.2.2
R0# show ip route 2.2.2.2
Routing entry for 2.2.2.2/32
Known via "static", distance 1, metric 0
Routing Descriptor Blocks:
* 10.1.1.2
Route metric is 0, traffic share count is 1
Prefix 192.168.2.0 is advertised by R1 router via BGP. When R0 receives this prefix via eBGP connection, it installs in its BGP table first and the next-hop for 192.168.2.0 prefix will be the BGP Router ID of R1 i.e. 2.2.2.2. BGP performs recursive routing to find out the outgoing interface and checks if it can reach the next-hop before declaring the route as "best route" and installing in the routing table.
Recursive routing
R0# show ip cef 192.168.2.0
192.168.2.0/24, version 18, epoch 0, cached adjacency 10.1.1.2
0 packets, 0 bytes
via 2.2.2.2, 0 dependencies, recursive
next hop 10.1.1.2, FastEthernet0/0 via 2.2.2.2/32
valid cached adjacency
R0# show ip cef 2.2.2.2
2.2.2.2/32, version 17, epoch 0, cached adjacency 10.1.1.2
0 packets, 0 bytes
via 10.1.1.2, 1 dependency, recursive
next hop 10.1.1.2, FastEthernet0/0 via 10.1.1.2/32
valid cached adjacency
BGP Session
R0# show ip bgp neighbors | include BGP state|Connections established|Last reset
BGP state = Established, up for 00:29:55
Connections established 1; dropped 0
Last reset never
Failover- When FastEthernet 0/0 interface of R1 is shutdown manually
When Fa 0/0 interface of R1 is shutdown, the state of tracking object goes down and the floating static route becomes active. Hence, 2.2.2.2 is now reachable via SW2.
Floating static route
00:37:35.883: %TRACKING-5-STATE: 10 rtr 1 reachability Up->Down
R0# show ip route 2.2.2.2
Routing entry for 2.2.2.2/32
Known via "static", distance 254, metric 0
Routing Descriptor Blocks:
* 10.2.2.2
Route metric is 0, traffic share count is 1
The outgoing interface changes to Fa 0/1 for all routes advertised by R1 to R0.
After Failover: BGP entries
R0# show ip cef 192.168.2.0
192.168.2.0/24, version 18, epoch 0, cached adjacency 10.2.2.2
0 packets, 0 bytes
via 2.2.2.2, 0 dependencies, recursive
next hop 10.2.2.2, FastEthernet0/1 via 2.2.2.2/32
valid cached adjacency
R0# show ip cef 2.2.2.2
2.2.2.2/32, version 19, epoch 0, cached adjacency 10.2.2.2
0 packets, 0 bytes
via 10.2.2.2, 1 dependency, recursive
next hop 10.2.2.2, FastEthernet0/1 via 10.2.2.2/32
valid cached adjacency
The following output clearly shows that the BGP session stays "established" during failover.
BGP session after failover
R0# show ip bgp neighbors | include BGP state|Connections established|Last reset
BGP state = Established, up for 00:30:55
Connections established 1; dropped 0
Last reset never
BGP Next-hop reachability using a default route 0.0.0.0/0
A default-route 0.0.0.0/0 is only configured on R0 for reachability to 2.2.2.2. It shows that a BGP session is still established without a more specific route to 2.2.2.2.
Default-route with BGP on R0
R0(config)# ip route 0.0.0.0 0.0.0.0 10.1.1.2
R0(config)# no ip route 2.2.2.2 255.255.255.255 10.1.1.2 track 10
R0(config)# no ip route 2.2.2.2 255.255.255.255 10.2.2.2 254
R0(config)# end
R0# clear ip bgp *
R0#
02:18:30.743: %BGP-5-ADJCHANGE: neighbor 2.2.2.2 Down User reset
02:19:04.435: %BGP-5-ADJCHANGE: neighbor 2.2.2.2 Up
R0# show ip cef 2.2.2.2
0.0.0.0/0, version 20, epoch 0, cached adjacency 10.1.1.2
0 packets, 0 bytes
via 10.1.1.2, 1 dependency, recursive
next hop 10.1.1.2, FastEthernet0/0 via 10.1.1.2/32
valid cached adjacency
R0# show ip bgp | begin Network
Network Next Hop Metric LocPrf Weight Path
*> 192.168.2.0 2.2.2.2 0 0 200 i