BFD – Bidirectional Forwarding Detection

Whats BFD ?

– BFD is a detection protocol used to used to detect failures in the forwarding path between two adjacent routers. Its also independant of any media type, encapsulation and routing protocols. It provides failure detection in means of milliseconds.

– Cisco supports the asynchronous BFD, meaning that both BFD peers must be BFD enabled.

– BFD can be enabled globally on all interface or can be enabled on per interface basis.


1. CEF
2. Routing protocols that support BFD 

How BFD Works ?

1. When the routing protocol discovers a neighbor it sends a request to the BFD process to initiate a BFD neighbor session

2. BFD control packets are used to establish the BFD neghborship session and negotiate the BFD timers

3. Once the BFD neighborship session is established, BFD control packets acts as keepalive to maintain the BFD neighborship session

4. When the BFD neighborship session  is torn down the BFD process rapidly notifies the routing protocol, then the routing protocol tears down is neighborship, if an alternative path exists the routing process immediately converges.

5. Routing protocol registers with BFD when 1) the routing protocol is in the established/full state, 2) the routing protocol BFD feature is enabled and BFD process are enabled.


– An alternative mechanism to BFD is reducing the routing protocols timers to its minimum, but still BFD can detect failures in means of milliseconds,  also its less CPU intensive than reducing the timers of the routing protocols and protocol/media/encapsulation independent. 


[toggle title_open=”1. Enable BFD Globally” title_closed=”1. Enable BFD Globally” hide=”no” border=”no” style=”default” excerpt_length=”0″ read_more_text=”Read More” read_less_text=”Read Less” include_excerpt_html=”no”]R5(config)#router isis 1
R5(config-router)#bfd all-interfaces[/toggle]

[toggle title_open=”2. Enable BFD Per Interface” title_closed=”2. Enable BFD Per Interface” hide=”no” border=”no” style=”default” excerpt_length=”0″ read_more_text=”Read More” read_less_text=”Read Less” include_excerpt_html=”no”]R1(config)#int fa 0/0

R1(config-if)#isis bfd
R1(config-if)#bfd interval 100 min_rx 100 multiplier 3 [/toggle]

Abdullah Medhat Salah