BFD In BGP¶
With BFD usage in BGP, the failover mechanism is greatly improved by detecting the loss of remote BGP speaker in a few seconds, instead of generally 20/30 seconds. To get more information on BFD, please see BFD.
BFD Configuration And Monitoring In BGP¶
A BFD peer session context is created, along with BGP peering session. The session
inherits from BGP settings. For instance, if
ebgp-multihop is used, then a BFD
multi-hop is created. Also, if
update-source is used, the
parameter is set.
vrf customer1 routing bgp as 65555 router-id 192.168.1.1 neighbor 192.168.1.2 remote-as 65100 neighbor 192.168.1.2 ebgp-multihop 5 neighbor 192.168.1.2 update-source 192.168.1.1 neighbor 192.168.1.2 track bfd
Then you can continue the configuration as usual. For timer settings, the default emission and reception settings are set to 300000 microseconds, which may not be what is wished. In that case, it is possible to override default timers, by configuring general timer settings. More information is given in Configuring general BFD settings.
vrouter> show bfd vrf customer1 sessions BFD Peers: peer 192.168.1.2 multihop local-address 192.168.1.1 ID: 3581662458 Remote ID: 4190161000 Status: up Uptime: 1 minute(s), 48 second(s) Diagnostics: ok Remote diagnostics: ok Local timers: Receive interval: 600ms Transmission interval: 600ms Echo transmission interval: 50ms Remote timers: Receive interval: 300ms Transmission interval: 300ms Echo transmission interval: 50ms vrouter> show bgp vrf customer1 neighbors BGP neighbor is 192.168.1.2, remote AS 65100, local AS 65555, external link Hostname: rt1 BGP version 4, remote router ID 10.254.254.3, local router ID 10.254.254.1 BGP state = Established, up for 00:04:37 Last read 00:00:05, Last write 00:00:05 Hold time is 24, keepalive interval is 8 seconds [..] BFD: Type: multi hop Detect Multiplier: 3, Min Rx interval: 300, Min Tx interval: 300 Status: Up, Last
BGP Graceful Restart With BFD¶
There are cases where the non stop forwarding mechanisms configured in BGP may have to prevent BFD to trigger the neighbouring peer session to go down. BFD provides such feature by embedding in BFD control packet a bit that reflects the relationship between control-plane and dataplane. This bit is called the control bit. By default, that bit is set to 1, and means that if a BFD event happens, then the associated control-plane routing context may go down too.
BGP graceful restart informs remote peer that the local speaker is able to keep BGP routing entries in stale mode, during the non availability of that remote speaker. When leaving, remote BFD peer leaves too. Then, the local BFD triggers a notification to BGP quicker than if the local BGP was detecting that the remote BGP speaker left without saying anything (usually TCP error). When keeping BFD posted with specific BGP constraint, the incoming BFD control packet has the C-BIT unset, which means that the control-plane and dataplane should be independent to each other. Consequently, BGP is notified that the remote BGP speaker went down, but as the incoming C-BIT is unset, the event is ignored, thus letting the BGP graceful restart mechanism taking the hand, and thus keeping the routing entries.
Following configuration should be applied if the control-plane decision should be done independently of the incoming BFD notification. Reversely, that configuration will also unset the C-BIT for outgoing BFD control packets.
vrf customer1 routing bgp as 65555 router-id 192.168.1.1 graceful-restart .. neighbor 192.168.1.2 remote-as 65100 neighbor 192.168.1.2 track bfd neighbor 192.168.1.2 check-control-plane-failure true
BFD Configuration And Monitoring In BGP Using Trackers¶
It’s also possible to configure a BFD or ICMP tracker manually. This enables using the same tracker in different services. The example below uses the same BFD tracker in a BGP neighbor and a static route. If the link becomes unrechable, the BGP neighbor and the static route will be removed from the configuration.
tracker bfd my-bfd-tracker type multi-hop address 192.168.1.2 source 192.168.1.1 vrf customer1 required-receive-interval 600000 desired-transmission-interval 600000 / vrf customer1 routing static ipv4-route 192.168.1.0/24 next-hop 192.168.1.2 track my-bfd-tracker bgp as 65555 router-id 192.168.1.1 neighbor 22.214.171.124 remote-as 65100 neighbor 126.96.36.199 update-source 192.168.1.1 neighbor 188.8.131.52 track my-bfd-tracker / commit