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 multihop is supported starting from IOS XR Release 6.3.2 but BFD multihop over non IP core is not supported.
-
BFD supports BFDv6 on bundle-ether for VRF BGP IPv6 single-hop.
-
Only IETF mode is supported in BFD over bundle feature.
-
Dampening extensions for BFD are not supported.
SNMP traps are not supported for multipath BFD sessions.
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 for OSPF3 on an Interface
The following procedures describe how to configure BFD for OSPFv3 on an interface. The steps in the procedure are common to the steps for configuring BFD on IS-IS, and MPLS-TE; only the command mode differs.
Note |
BFD per-interface configuration is supported for OSPF, OSPFv3, and IS-IS only. |
Router# configure
/* Enter OSPF configuration mode to configure the OSPF routing process. */
Router(config)# router ospfv3 10
/* Set the BFD minimum interval. The range is from 15 to 30000 milliseconds. */
Router(config-ospfv3)# bfd minimum-interval 6500
/* Set the BFD multiplier. */
Router(config-ospfv3)# bfd multiplier 7
/* Configure an Open Shortest Path First (OSPF) area. */
Router(config-ospfv3)# area 0
/* Enter interface configuration mode. */
Router(config-ospfv3-ar)# interface gigabitEthernet 0/5/1/0
/* Enable BFD to detect failures in the path between adjacent forwarding engines. */
Router(config-ospfv3-ar-if)# bfd fast-detect
Router(config-ospfv3-ar-if)# commit
Router(config-ospfv3-ar-if)# end
Running Configuration
configure
router ospfv3 10
bfd minimum-interval 6500
bfd multiplier 7
area 0
interface gigabitEthernet 0/5/1/0
bfd fast-detect
!
Verification
RP/0/RP0/CPU0:router(config-ospfv3-ar-if)#show run router ospf3
router ospfv3 10
bfd minimum-interval 6500
bfd multiplier 7
area 0
interface gigabitEthernet 0/5/1/0
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