BFD Overview
Bidirectional forwarding detection (BFD) provides low-overhead, short-duration detection of failures in the path between adjacent routers. BFD allows a single mechanism to be used for failure detection over any media and at any protocol layer, with a wide range of detection times and overhead. The fast detection of failures provides immediate reaction to failure in the event of a failed link or neighbor.
Restrictions
These restrictions apply to BFD:
-
Demand mode is not supported in Cisco IOS XR software.
-
BFD echo mode and encryption are not supported.
-
BFD hardware offload for IPv4 is supported.
-
Only the static, OSPF, BGP and IS-IS applications are supported on BFD.
-
BFD dampening for IPv4 is supported starting from Cisco IOS XR Release 6.3.2.
-
BFD supports BFDv6 on bundle-ether for VRF BGP IPv6 single-hop.
-
BFD multihop over non-IP core (Label Distribution Protocol or Segment Routing) is supported starting from IOS XR Release 7.1.1.
BFD is only supported in IP core. It cannot coexist with Label distribution Protocol, or Segment Routing, or Traffic Engineering in the core. This is applicable for releases prior to IOS XR Release 7.1.1.
-
BFD over bundle feature is supported only in IETF mode.
-
Dampening extensions for BFD are not supported.
-
Starting from Cisco IOS XR Release 6.6.1, BFD over VRF is supported.
-
Starting from Cisco IOS XR Release 7.2.1, BFD support over VRRP interface is supported.
BFD Timers
The BFD timers are applicable on the following NCS 540 variants:
Medium Density XR NCS 540 - N540-24Z8Q2C-SYS, N540-28Z4C-SYS, N540X-ACC-SYS, N540-ACC-SYS
Medium Density XR NCS 540 - N540-28Z4C-SYS-A, N540-28Z4C-SYS-D, N540X-16Z4G8Q2C-A, N540X-16Z4G8Q2C-D, N540X-16Z8Q2C-D, N540-12Z20G-SYS-A,N540-12Z20G-SYS-D, N540X-12Z16G-SYS-A, N540X-12Z16G-SYS-D
Small Density XR NCS 540 - N540X-6Z18G-SYS-A, N540X-6Z18G-SYS-D, N540X-8Z16G-SYS-A, N540X-8Z16G-SYS-D
Note |
The router uses six unique timer profiles. Four timers profiles are available when you configure BFD over Bundle (BoB). Up to five timers profiles are available when you configure BoB. |
Type of BFD Session |
Minimum Timer Supported |
Default/Minimum-interval timer (Multipliers) |
Supported Timer Profiles (Up to 6 unique timers profiles) |
---|---|---|---|
Single Hop |
4ms |
3 |
Any |
BFD over Bundle Members (BoB) |
4ms |
3 |
Any |
BFD over Logical bundle (BLB) |
50ms |
3 |
Any |
BGP Multi Hop |
50ms |
3 |
Any |
Type of BFD Session |
Minimum Timer Supported |
Default/Minimum- interval timer (Multipliers) |
Supported Timer Profile (Up to 6 unique timer profiles) |
Maximum Scale depending on Minimum Interval |
---|---|---|---|---|
Single Hop |
4ms |
3 |
Any |
150 (with 8ms and above, all 256 sessions are configurable) |
BFD over Bundle Members (BoB) |
4ms |
3 |
Any |
150ms (with 8ms and above, all 256 sessions are configurable) |
BFD over Logical bundle (BLB) |
50ms |
3 |
Any |
256 |
BGP Multi Hop |
50ms |
3 |
Any |
256 |
Enable and Disable IPv6 Checksum Calculations for BFD on a Router
Perform the following steps to configure IPv6 checksum calculations for BFD on a Router.
RP/0/RP0/CPU0:router(config)# bfd
RP/0/RP0/CPU0:router(config-bfd-if)# ipv6 checksum disable
RP/0/RP0/CPU0:router(config-bfd-if)# commit
Configure BFD Under a Dynamic Routing Protocol or Use a Static Route
To establish a BFD neighbor, complete at least one of the following procedures to configure BFD under a dynamic routing protocol or to use a static route:
Enable BFD for OSPF on an Interface
Perform the following steps to configure BFD for Open Shortest Path First (OSPF) on an interface. The steps in the procedure are common to the steps for configuring BFD on IS-IS; only the command mode differs.
Note |
BFD per interface configuration is supported for OSPF and IS-IS only. |
Router# configure
/* Enter OSPF configuration mode to configure the OSPF routing process. */
Router(config)# router ospf 0
/* Set the BFD minimum interval. The range is from 15 to 30000 milliseconds. */
Router(config-ospf)# bfd minimum-interval 6500
/* Set the BFD multiplier. */
Router(config-ospf)# bfd multiplier 7
/* Configure an Open Shortest Path First (OSPF) area. */
Router(config-ospf)# area 0
/* Enter interface configuration mode. */
Router(config-ospf-ar)# interface gigabitEthernet 0/3/0/1
/* Enable BFD to detect failures in the path between adjacent forwarding engines. */
Router(config-ospf-ar-if)# bfd fast-detect
Running Configuration
configure
router ospf 0
bfd minimum-interval 6500
bfd multiplier 7
area 0
interface gigabitEthernet 0/3/0/1
bfd fast-detect
Verification
Router(config-ospf-ar-if)# show run router ospf
router ospf 0
bfd minimum-interval 6500
bfd multiplier 7
area 0
interface gigabitEthernet 0/3/0/1
bfd fast-detect
/* Verify the details of the IPv4 BFD session in the source router. */
Router# show bfd session
Interface Dest Addr Local det time(int*mult) State Echo Async H/W NPU
--------- --------- -------- ------------- ----- ---- ----- --- ---
Te0/0/0/0 10.23.1.2 0s(0s*0) 300ms(100ms*3) UP Yes 0/RP0/CPU0
BE3739 10.23.1.2 n/a n/a UP No n/a
Enable BFD over BGP
Perform the following steps to configure BFD over BGP. The following example shows how to configure BFD between autonomous system 65000 and neighbor 192.168.70.2:
Router# configure
Router(config)# router bgp 65000
Router(config-bgp)# bfd multiplier 2
Router(config-bgp)# bfd minimum-interval 20
Router(config-bgp)# neighbor 192.168.70.24
Router(config-bgp-nbr)# remote-as 2
Router(config-bgp-nbr)# bfd fast-detect
Router(config-bgp-nbr)# commit
Router(config-bgp-nbr)# end
Running Configuration
router bgp 65000
bfd multiplier 2
bfd minimum-interval 20
neighbor 192.168.70.24
remote-as 2
bfd fast-detect
commit
end
Verification
Verify that BFD has been enabled over BGP.
Router# show run router bgp
router bgp 65000
bfd multiplier 2
bfd minimum-interval 20
neighbor 192.168.70.24
remote-as 2
bfd fast-detect
Enable BFD on an IPv4 Static Route
The following procedure shows how to enable BFD on an IPv4 static route.
RP/0/RSP0/CPU0:router# configure
/*Enter static route configuration mode to configure static routing. */
RP/0/RSP0/CPU0:router(config)# router static
/* Enable BFD fast-detection on the specified IPV4 unicast destination address prefix and on the forwarding next-hop address.*/
RP/0/RSP0/CPU0:router(config-static)# address-family ipv4 unicast 10.2.2.0/24 10.6.0.1 bfd fast-detect minimum-interval 1000 multiplier 5
RP/0/RSP0/CPU0:router(config-static)# commit
Running Configuration
configure
router static
address-family ipv4 unicast 10.2.2.0/24 10.6.0.1 bfd fast-detect minimum-interval 1000 multiplier 5
commit
Verification
Verify that BFD is enabled on the appropriate interface.
RP/0/RSP0/CPU0:router# show run router static address-family ipv4 unicast
router static
address-family ipv4 unicast
10.2.2.0/24 10.6.0.1 bfd fast-detect minimum-interval 1000 multiplier 5
commit
!
!
Enable BFD on an IPv6 Static Route
The following procedure describes how to enable BFD on a IPv6 static route.
RP/0/RP0/CPU0:router# configure
/* Enter static route configuration mode to configure static routing. */
RP/0/RP0/CPU0:router(config)# router static
/* Enable BFD fast-detection on the specified IPv6 unicast destination address prefix and on the forwarding next-hop address. */
/* BFD sessions are established with the next hop 2001:0DB8:D987:398:AE3:B39:333:783 when it becomes reachable. */
RP/0/RP0/CPU0:router(config-static)# address-family ipv6 unicast 2001:0DB8:C18:2:1::F/64 2001:0DB8:D987:398:AE3:B39:333:783 bfd fast-detect minimum-interval 150 multiplier 4
RP/0/RP0/CPU0:router(config-static-vrf)# commit
Running Configuration
configure
router static
address-family ipv6 unicast 2001:0DB8:C18:2:1::F/64 2001:0DB8:D987:398:AE3:B39:333:783 bfd fast-detect minimum-interval 150 multiplier 4
commit
Verification
RP/0/RP0/CPU0:router# show run router static address-family ipv6 unicast
configure
router static
address-family ipv6 unicast 2001:0DB8:C18:2:1::F/64 2001:0DB8:D987:398:AE3:B39:333:783 bfd fast-detect minimum-interval 150 multiplier 4
commit
Clear and Display BFD Counters
The following procedure describes how to display and clear BFD packet counters. You can clear packet counters for BFD sessions that are hosted on a specific node or on a specific interface.
RP/0/RP0/CPU0:router# show bfd counters all packet location 0/3/cpu0
RP/0/RP0/CPU0:router# clear bfd counters all packet location 0/3/cpu0
RP/0/RP0/CPU0:router# show bfd counters all packet location 0/3/cpu0