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.
The router supports BFD with VRF context.
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 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.
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.
-
BFD over IRB interface is not supported.
-
Starting from Cisco IOS XR Release 6.6.1, BFD over VRF is supported.
-
Starting from Cisco IOS XR Release 7.1.1, BFD over BVI is supported only on fixed NCS5500 platforms.
-
Starting from Cisco IOS XR Release 7.2.1, BFD support over VRRP interface is supported.
-
Egress IPv4 ACLs block all traffic, including router-generated traffic for the following routers and line cards:
-
NC57-24DD
-
NC57-18DD-SE
-
NC57-36H-SE
-
NC57-36H6D-S
-
NC57-MOD-S
-
NCS-57B1-6D24-SYS
-
NCS-57B1-5DSE-SYS
For all other routers and line cards, egress IPv4 ACLs do not block certain router-generated traffic, such as ICMP messages.
-
BFD Packet Injection
BFD enables egress packet processing injection which results in egress feature processing and ACL processing. The manner in which the egress ACL processes the locally generated BFD packets is different from how the routing protocol processes them. Routing protocols use TX inject to inject packets from the IOS-XR software stack where most locally-generated packets are not subject to egress ACL.
The router injects the source IP address 0.0.0.0 with tunnel encapsulation. The BFD programmable editor overwrites the source IP address with the actual IP address using tunnel encapsulation in the egress transmit packet processor (ETPP). However, as this occurs after the egress IPv4 ACL processing, the egress ACL processing is aware of the SRC IP address of 0.0.0.0. This could result in unexpected matches. A bearing condition monitoring (BCM) limitation causes the aforesaid unexpected mismatches because operations, administration, maintenance, and provisioning (OAMP) supports only 16 different SRC IP addresses. To overcome this limitation, you need to permit BFD packets specifically.
To know more about protecting locally originated BFD packets, see Protecting Locally Originated BFD Packets.
BFD Timers
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 |
Enabling BFD on a Static Route
The following procedure describes how to enable BFD on a static route.
RP/0/RP0/CPU0:router(config)# configure
/* Enter static route configuration mode, and configure static routing. */
Router(config)# router static
/* Enter address family configuration mode. */
Router(config-static)# address-family ipv4 unicast
/* Specify an unicast destination address and next-hop IPv4 address.
Enable BFD fast-detection on the specified IPv4 unicast destination address */
Router(config-static)# 192.168.2.2/32 HundredGigE0/0/0/2 192.168.6.2 bfd fast-detect minimum-interval 4 multiplier 3
Configuration example of a BFD single-hop scenario:
!
router
address-family ipv4 unicast
10.2.150.193/32 BVI1252 10.2.153.1 bfd fast-detect
Note |
The next-hop IPv4 address (10.2.153.1) is determined from the IP address of the directly connected interface. |
Configuration example of a BFD multi-hop scenario:
!
router static
address-family ipv4 unicast
10.10.10.0/24 10.20.20.20 bfd fast-detect multihop 10.30.30.30
Note |
In a BFD multi-hop scenario:
|
Configuration example of BFD on directly-connected host routes (/32 or /128):
!
router static
address-family ipv4 unicast
10.102.134.140/32 TenGigE0/0/0/1 10.102.134.140 bfd fast-detect
Note |
In this BFD single-hop specific scenario:
|
Running Configuration
router static
address-family ipv4 unicast
192.168.2.2/32 HundredGigE0/0/0/2 192.168.6.2 bfd fast-detect minimum-interval 4 multiplier 3
!
!
Enabling BFD for OSPF on an Interface
The following procedures describe how 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.
SUMMARY STEPS
- configure
- router ospf process-name
- area area-id
- interface type interface-path-id
- bfd fast-detect
- bfd minimum-interval milliseconds
- bfd multiplier multiplier
- Use the commit or end command.
DETAILED STEPS
Command or Action | Purpose | |||
---|---|---|---|---|
Step 1 |
configure Example:
|
Enters mode. |
||
Step 2 |
router ospf process-name Example:
|
Enters OSPF configuration mode, allowing you to configure the OSPF routing process.
|
||
Step 3 |
area area-id Example:
|
Configures an Open Shortest Path First (OSPF) area. Replace area-id with the OSPF area identifier. |
||
Step 4 |
interface type interface-path-id Example:
|
Enters interface configuration mode and specifies the interface name. |
||
Step 5 |
bfd fast-detect Example:
|
Enables BFD to detect failures in the path between adjacent routers. |
||
Step 6 |
bfd minimum-interval milliseconds Example:
|
Sets the BFD minimum interval. Range is 4-30000 milliseconds. This example sets the BFD minimum interval to 6500 milliseconds. |
||
Step 7 |
bfd multiplier multiplier Example:
|
Sets the BFD multiplier. This is optional, the minimum is 3 and by default the multiplier will be 3 for all protocols. This example sets the BFD multiplier to 7. |
||
Step 8 |
Use the commit or end command. |
commit —Saves the configuration changes and remains within the configuration session.
|
Enable BFD for IS-IS on an Interface
Perform the following steps to configure BFD for Integrated Intermediate System-to-Intermediate System (IS-IS) on an interface.
Note |
BFD per interface configuration is supported for OSPF and IS-IS only. |
Router# configure
/* Enter IS-IS configuration mode to configure the IS-IS routing process. */
Router(config)# router isis 65444
/* Set the system type (area or backbone router). Each IS-IS instance can support either a single Level 1 or Level 2, or one of each.*/
Router(config-isis)#is-type level-2-only
/* Specify a NET for each routing instance if you are configuring multi-instance IS-IS.*/
Router(config-isis)# net 49.0001.0840.3803.4088.00
/* Enter interface configuration mode. */
Router(config-isis)# interface gigabitEthernet 0/3/0/1
/* Set the BFD minimum interval. */
Router(config-isis-if)# bfd minimum-interval 6500
/* Set the BFD multiplier. */
Router(config-isis-if)# bfd multiplier 7
/* Enable BFD to detect failures in the path between adjacent forwarding engines. Only IPv4 is supported.*/
Router(config-isis-if)# bfd fast-detect ipv4
/* Specify the IPv4 address family and enters router address family configuration mode. */
Router(config-isis-if)# address-family ipv4 unicast
!
Running Configuration
configure
router isis 65444
is-type level-2-only
net 49.0001.0840.3803.4088.00
interface gigabitEthernet 0/3/0/1
bfd minimum-interval 6500
bfd multiplier 7
bfd fast-detect ipv4
address-family ipv4 unicast
!
!
Enabling BFD on a BGP Neighbor
BFD can be enabled per neighbor, or per interface. This task describes how to enable BFD for BGP on a neighbor router.
SUMMARY STEPS
- configure
- router bgp autonomous-system-number
- neighbor ip-address
- remote-as autonomous-system-number
- bfd fast-detect
- bfd minimum-interval milliseconds
- bfd multiplier multiplier
- Use the commit or end command.
DETAILED STEPS
Command or Action | Purpose | |
---|---|---|
Step 1 |
configure Example:
|
Enters mode. |
Step 2 |
router bgp autonomous-system-number Example:
|
Enters BGP configuration mode, allowing you to configure the BGP routing process. |
Step 3 |
neighbor ip-address Example:
|
Places the router in neighbor configuration mode for BGP routing and configures the neighbor IP address as a BGP peer. This example configures the IP address 172.168.40.24 as a BGP peer. |
Step 4 |
remote-as autonomous-system-number Example:
|
Creates a neighbor and assigns it a remote autonomous system. This example configures the remote autonomous system to be 2002. |
Step 5 |
bfd fast-detect Example:
|
Enables BFD between the local networking devices and the neighbor whose IP address you configured to be a BGP peer in Step 3. In the example in Step 3, the IP address 172.168.40.24 was set up as the BGP peer. In this example, BFD is enabled between the local networking devices and the neighbor 172.168.40.24. |
Step 6 |
bfd minimum-interval milliseconds Example:
|
Sets the BFD minimum interval. Range is 4-30000 milliseconds. |
Step 7 |
bfd multiplier multiplier Example:
|
Sets the BFD multiplier. This is optional, the minimum is 3 and by default the multiplier will be 3 for all protocols |
Step 8 |
Use the commit or end command. |
commit —Saves the configuration changes and remains within the configuration session.
|
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/# show bfd counters all packet location 0/RP0/CPU0
RP/0/# clear bfd counters all packet location 0/RP0/CPU0
RP/0/# show bfd counters all packet location 0/RP0/CPU0