BFD: Bidirectional Forwarding Detection for Fast Failover
How BFD detects link and neighbor failures in under a second, why routing protocols alone can't, and how to enable BFD for OSPF, BGP, EIGRP, and HSRP on Cisco IOS.
- BFD is a lightweight hello protocol whose only job is to detect that a neighbor died, fast. Timers in the 50 to 300 ms range instead of routing protocols' 3 to 40 seconds.
- Routing protocols register with BFD as clients. When BFD says 'down', it fires an event and the routing protocol tears down its adjacency immediately. No more waiting for hold-timers to expire.
- Use BFD when convergence matters more than a bit of CPU: voice/video WANs, financial DCs, dual-carrier eBGP peers. Skip it on stable, low-priority links.
The one-sentence mental model
BFD is the neighbor-death detector that routing protocols wish they had. OSPF hello is 10 s, dead 40 s. EIGRP hello 5 s, hold 15 s. BGP keepalive 60 s, hold 180 s. Way too slow for real-time apps. BFD fires 3-per-second (or faster) hellos and detects failure in under a second, then tells the routing protocol to react.
Why not just tighten routing-protocol timers?
You can. But:
- CPU cost. Every neighbor + every protocol multiplies the hello load.
- Not consistent. OSPF, BGP, HSRP, static routes with track. Each has its own timer knobs.
- Not sub-second reliably. Below 1s, timer-based detection gets flaky under load.
BFD solves all three: one lightweight protocol, one detection engine, one config. Every routing protocol just subscribes.
How BFD works
Two neighbors negotiate a session:
- Discriminator exchange: each side picks a random ID for the session and tells the peer.
- Timer negotiation: TX interval + detection multiplier. Actual detection time = TX × multiplier.
- Steady state: both sides fire BFD packets at the TX interval. If N in a row are missed → session down.
Typical numbers: TX 50 ms × multiplier 3 = detection in 150 ms. Compare to OSPF dead-timer 40 seconds. BFD is ~250× faster.
Two flavors:
- BFD Asynchronous: bidirectional constant packet stream. Detects link and peer aliveness. Always runs.
- BFD Echo: one side loops packets back through the other’s data plane. Tests the actual forwarding hardware, not just the control plane. On Cisco IOS, echo mode is on by default on top of the async session (disable with
no bfd echoon the interface).
Enabling BFD on Cisco IOS
Enable on the interface first:
interface GigabitEthernet0/1
bfd interval 100 min_rx 100 multiplier 3
This says: send BFD every 100 ms, expect one every 100 ms, declare dead after 3 misses (300 ms).
Then attach protocols as clients.
OSPF
router ospf 1
bfd all-interfaces
Or per-interface: ip ospf bfd.
EIGRP
router eigrp 100
bfd all-interfaces
BGP (per neighbor)
router bgp 65001
neighbor 203.0.113.1 fall-over bfd
HSRP
interface Vlan10
bfd interval 100 min_rx 100 multiplier 3
standby 1 ip 10.10.10.1
standby bfd
HSRP BFD peering (standby bfd, on by default once BFD is enabled on the interface) lets the Standby detect a dead Active router in about 300 ms. Note that BFD does not change an interface’s line-protocol state, so track ... interface line-protocol gets no benefit from BFD.
Static route with BFD
interface GigabitEthernet0/1
bfd interval 100 min_rx 100 multiplier 3
!
ip route static bfd GigabitEthernet0/1 203.0.113.1
ip route 10.0.0.0 255.0.0.0 GigabitEthernet0/1 203.0.113.1
If the BFD session to 203.0.113.1 goes down, the static route is withdrawn from the routing table.
Verifying
show bfd neighbors ← session state, protocols using it
show bfd neighbors 203.0.113.1 details ← negotiated timers, drops
Look for State = Up and LD/RD (local/remote discriminator) values. If timers renegotiate to something you didn’t ask for, one side’s config caps the other.
When to use BFD
Use it when:
- Real-time apps (voice, video, financial market data) traverse the link.
- Dual-carrier eBGP peers: you want the “prefer ISP-A unless dead” logic to react in under a second.
- Static routes that need to failover fast without a routing protocol.
- HSRP tracking on WAN interfaces.
Skip it when:
- The link is a low-priority backup (a couple seconds of downtime is fine).
- CPU is a hard constraint on old hardware.
- The routing protocol already has sub-second timers negotiated (rare).
Common exam / real-world mistakes
- Forgetting to enable BFD on the interface and attach the protocol. Enabling
router ospf 1 → bfd all-interfaceswithoutinterface Gi0/1 → bfd interval ...does nothing. - Asymmetric timer configs. Both sides need compatible intervals. BFD negotiates, but only within the ranges each side allows.
- Trusting BFD Echo without hardware support. Some older platforms don’t support echo mode.
show bfd neighbors detailswill showecho not supported. - Enabling BFD everywhere at 50/3. That’s 20 packets per second in each direction, per neighbor. Across hundreds of sessions on a scale-out core, it’s real CPU. Start with 200 ms × 3 = 600 ms detection on non-critical links.
- Missing that BGP
fall-over bfdstill needs BFD enabled on the interface reaching the peer. Symptom: BGP sits with default 180 s hold-timer, BFD session doesn’t exist.
Cheat strip
Job detect neighbor/link death. Fast. Sub-second.
Numbers TX × multiplier = detection time. Typical 100×3 = 300ms.
Modes Async (default) | Echo (hardware loop, best detection)
Enable interface X → bfd interval T min_rx R multiplier M
Attach:
OSPF router ospf N → bfd all-interfaces
EIGRP router eigrp N → bfd all-interfaces
BGP neighbor X fall-over bfd
HSRP standby bfd (default on once the interface has BFD)
static ip route static bfd <interface> <next-hop>
Verify show bfd neighbors [details]
Practice: quick check
Every question in the bank, once. No repeats. Missed ones cycle back at the end.
QoS Marking & Queuing: DSCP, Trust Boundaries, LLQ, CBWFQ
The CCNP ENCOR QoS chapter, distilled: classification, marking with DSCP, trust boundaries, and queuing with LLQ and CBWFQ. Where to mark, where to trust, and how the router services the queues.
WLC Deployment: Autonomous, Centralized, Cloud, and FlexConnect
Every WLC / AP deployment model CCNP ENCOR expects: autonomous, centralized (CUWN), FlexConnect, Cloud (Meraki + Catalyst 9800), and embedded (EWC on a 9100 AP). Where each fits and the trade-offs.
Want this drilled into reflex?
1:1 weekly sessions, live feedback on your labs, and US interview prep: built around the CCNP® exam blueprint. Free first session. No card on file until you decide.
Related topics
BGP Basics
CCNP BGP guide: eBGP vs iBGP, neighbor states, best-path selection, AS_PATH, LOCAL_PREF, MED, communities, route reflectors, RPKI and 8 worked scenarios.
IP ConnectivityFHRP: HSRP, VRRP & GLBP
First-hop redundancy protocols. How two routers share one virtual IP so hosts don't notice when their default gateway fails. Covers HSRP states, election, preemption, and the GLBP load-balancing twist.
IP ConnectivityOSPF Single-Area
CCNA OSPF guide: link-state model, seven neighbor states, LSA types, DR/BDR election, cost tuning, authentication, summarization and 8 worked scenarios.
Stuck on BFD: Bidirectional Forwarding Detection for Fast Failover?
Walk your plan with a senior US network engineer in a free 20 minute call. We find the one thing blocking you and name the next step. No card. No pitch.
- 20 minutes, 1:1 with a senior US network engineer
- No card, no obligation, no sales pitch
- You pick the slot that fits your week
Get the free CCNA 12-week roadmap
You're already reading up on BFD: Bidirectional Forwarding Detection for Fast Failover. The roadmap is the order I recommend studying every CCNA topic in: with what to lab each week and where BFD: Bidirectional Forwarding Detection for Fast Failover fits. A written personal reply, not an autoresponder. Expect it within one business day.
Personal reply from a senior network engineer. No third-party tracking. Unsubscribe any time.
