Bidirectional Forwarding Detection (BFD)

(Rene Molenaar) #1

This topic is to discuss the following lesson:

(Shinu V) #2

Really great article. Always you put new topics and explained it in very easy manner.

(Rene Molenaar) #3

Thanks Shinu!

(Mauro P) #4

Hello Rene,

Nice article about BFD.


(Dhananjay P) #5

Hi, thanks for the great simplification of the protocol. Are there any other quirks to it that a network engineer should be aware of? Also, what other protocols does it support? i.e. OSPF, EIGRP, HSRP etc.? Can you elaborate on more examples…?

(Rene Molenaar) #6

Hi Dhananjay,

Not any that I can think of now, it’s pretty straight forward. The protocols that are supported are OSPF, EIGRP, IS-IS, BGP, MPLS LDP, HSRP and VRRP but it’s possible that not all platforms support them.

The configuration of IS-IS and EIGRP is the same as OSPF, you only have to use the “bfd all-interfaces” command. BGP is a bit different:

router bgp 40000
neighbor x.x.x.x fall-over bfd

For HSRP you need to use the “standby bfd all-interfaces” command.


(Dhananjay P) #7

Thanks Rene.

(Emir H) #8

So in this example BFD wouldn’t really be any benefit since it is a daisy chain correct? However in a network with redundancy if a link went down then OSPF would fail over to a secondary link much faster if using BFD. Am I saying that correct?

(Rene Molenaar) #9

Hi Emir,

The convergence time basically consists of the link failure detection + the time it takes for OSPF to run SPF and update the routing table / forwarding table. In my example, detecting the link failure took 28 seconds. Running SPF / updating the routing table (and forwarding table) might take ~ 50ms. By implementing BFD, our link failure detection is reduced from 28 seconds to ~150ms.

In my example I only have two routers so when something goes on, it’s game over :slight_smile:

Implementing BFD is useful if you have multiple OSPF routers and redundant links.


(Emir H) #10

Understood, thanks.

(Edwin P) #11

Great stuff! Thanks Rene for clear example

(Hamood R) #12

What type of router and IOS did you use in the lab?
Please advice.


(Rene Molenaar) #13

Hi Hamood,

I used 2811 routers with IOS 15.x.


(Shannon S) #14

Hi Rene,

Many thanks for this lesson! I am enlightened!



(Thet Paing S) #15

Easy to understand well , great one of articles.

If devices are using link aggregation (ether-channel) , can we use BFD ?

Thanks, Rene

(Rene Molenaar) #16

Hi Thet,

Good question. There are some models and IOS versions that support this but most don’t.


(Mario R) #17

Would be nice if you could include a t-shoot section. I had an issue with BFD and had to run some “show bfd x” commands.

(Abdelrahman R) #18

I would like to share new info . when you put different time intervals and multipliers between two neighbors, the greater value in interval and multipliers will be taken between neighbors.

this case I faced when configure BFD between Cisco and Juniper — in Cisco time interval from (50 – 999) in juniper time interval ( 1 — 255000 ) and recommended greater than 1000 ms .

I got it by try and error :slight_smile:

(Casper V) #19

Hi Rene

I have a straight forward topology:


R5: int fa 0/0 -
OSPF 1 area 0

R6: int fa 0/0 -
OSPF 1 area 0

Routers can ping each other and ospf neighbours form.

I configured this string on fa 0/0 int on both routers:

bfd interval 150 min_rx 150 multiplier 3

The issue is the bfd neighbourship stays down:

State bit: AdminDown

I’ve tried shutting and unshutting the interfaces etc but nothing changes the state, any ideas?

(Rene Molenaar) #20

Hi Casper,

On what platform/routers did you try this? It doesn’t work for me on the IOSv images in Cisco VIRL but it does on real hardware.