loader

BFD Overview

When a link fails, with routing protocols we need to wait until hold time or dead-interval expires then we recalculate the route to the destination. We could lower the hello packet as well as dead-interval timers to expedite the convergence. However, not only we are still talking about some seconds of downtime but also we increase the CPU overhead.

BDF is a very small packet at hardware level which can detect subsecond failures between two neighbors. Speaking of the neighbors, you need to configure BFD on both devices which are going to form BFD adjacency.

Once BFD enabled on the interface and on the routing protocol, NX-OS creates BFD session and sends BFD hello packets (like IGP hello packets) every mintx interval. The device expects to receive hello messages in min_rx intervals. If the BFD does not receive any hello message in multiplier value, the local device assumes a fault in the path.

In the example below:

  • Desired minimum transmit interval = 300
  • Required minimum receive interval = 300
  • Detect multiplier = 3
switch(config)# feature bfd
Please disable the ICMP / ICMPv6 redirects on all IPv4 and IPv6 interfaces 
running BFD sessions using the commands below

'no ip redirects '
'no ipv6 redirects '

Please configure relaxed BFD intervals when scaling above a total of 128 BFD sessions 
on Cloudscale platforms using the commands below

'bfd interval 300 min_rx 300 multiplier 3'
'bfd multihop interval 999 min_rx 999 multiplier 10'

Once BFD detects a failure, it reports it to the BFD-enabled protocol. Then the routing protocol tears down the neighbor relationship then it starts calculating the best path selection according to it’s topology/database table if there is no alternative path.

N9K01(config)# feature bfd
N9K01(config)# bfd interval 999 min_rx 999 multiplier 9
N9K01(config)# interface e0/0
N9K01(config-if)# ip ospf bfd
N9K01(config-if)# no ip redirects
N9K01(config-if)# no ipv6 redirects

Here is an example of BGP and BFD

N9K01(config)# feature bfd
N9K01(config)# interface Ethernet1/1
N9K01(config-if)# bfd interval 100 min_rx 100 multiplier 5
N9K01(config-if)# feature bgp
N9K01(config)# router bgp 65000
N9K01(config-router)# neighbor 172.16.2.1 remote-as 65000
N9K01(config-router-neighbor)# bfd

N9K01(config-router-neighbor)# update-source ethernet 1/1

Leave a Reply

Your email address will not be published. Required fields are marked *