Implementing Bidirectional Forwarding Detection for IPv6

This document describes how to implement the Bidirectional Forwarding Detection for IPv6 (BFDv6) protocol. BFD is a detection protocol designed to provide fast forwarding path failure detection times for all media types, encapsulations, topologies, and routing protocols. In addition to fast forwarding path failure detection, BFD provides a consistent failure detection method for network administrators. BFDv6 provides IPv6 support by accommodating IPv6 addresses, and it provides the ability to create BFDv6 sessions.

Because the network administrator can use BFD to detect forwarding path failures at a uniform rate, rather than the variable rates for different routing protocol hello mechanisms, network profiling and planning will be easier, and reconvergence time will be consistent and predictable.

Finding Feature Information

Your software release may not support all the features documented in this module. For the latest caveats and feature information, see Bug Search Tooland the release notes for your platform and software release. To find information about the features documented in this module, and to see a list of the releases in which each feature is supported, see the feature information table.

Use Cisco Feature Navigator to find information about platform support and Cisco software image support. To access Cisco Feature Navigator, go to www.cisco.com/go/cfn. An account on Cisco.com is not required.

Prerequisites for Implementing Bidirectional Forwarding Detection for IPv6

IPv6 Cisco Express Forwarding and IPv6 unicast routing must be enabled on all participating routers.

Restrictions for Implementing Bidirectional Forwarding Detection for IPv6

  • BFDv6 supports only global IPv6 neighbor addresses if a global IPv6 address is configured on the interface.

  • Only asynchronous mode is supported. In asynchronous mode, either BFDv6 peer can initiate a BFDv6 session.

Information About Implementing Bidirectional Forwarding Detection for IPv6

Overview of the BFDv6 Protocol

This section describes the BFDv6 protocol, how it is different from BFD for IPv4, and how it works with BFD for IPv4. BFD is a detection protocol designed to provide fast forwarding path failure detection times for all media types, encapsulations, topologies, and routing protocols. In addition to fast forwarding path failure detection, BFD provides a consistent failure detection method for network administrators. BFDv6 provides IPv6 support by accommodating IPv6 addresses and provides the ability to create BFDv6 sessions.

BFDv6 Registration

BFD clients register with BFD using a registry application program interface (API). The registry arguments include protocol type and the address and interface description block (IDB) of the route to be monitored. These APIs and arguments are all assumed by BFD to be IPv4.

BFDv6 has registries from which these arguments have been removed, and the protocol and encapsulation are described within a session information structure. These session information structures are defined by BFDv6 for the protocols supported. BFDv6 uses information from the session information structures to determine the correct encapsulation for BFDv6 packets on that session.

BFDv6 Global and Link-Local Addresses

BFDv6 supports both global and link-local IPv6 addresses for neighbor creation. BFDv6 sessions select source addresses to match the neighbor address types (for example, global IPv6 address neighbors must be paired with global IPv6 source addresses and link-local IPv6 address neighbors must be paired with link-local IPv6 source addresses). The table below shows the address pairings that BFDv6 supports.

Table 1. BFDv6 Address Pairings for Neighbor Creation

Source Address

Destination Address

Status

Global

Global

Supported

Global

Link local

Not supported

Link local

Global

Not supported

Link local

Link local

Supported

Because all IPv6-enabled interfaces have a link-local address and BFDv6 selects the source address, link-local address neighbors are always paired with a link-local interface address. The link-local source address with global destination address is not supported by Cisco Express Forwarding. Therefore, a global IPv6 address must be configured on an interface before a session with a global address neighbor may be established in BFDv6. BFDv6 rejects any sessions in which the neighbor address is global and no global address is configured on the interface.


Note

The behavior of a unique local address (ULA) in BFDv6 is the same as a global address.


BFD for IPv4 and IPv6 on the Same Interface

BFD supports multiple IPv4 and IPv6 sessions per interface, with no restriction on the protocol of those sessions.

Static Route Support for BFD over IPv6

Using the BFDv6 protocol to reach the static route next hop ensures that an IPv6 static route is inserted only in the IPv6 Routing Information Base (RIB) when the next-hop neighbor is reachable. Using the BFDv6 protocol also can remove the IPv6 static route from the IPv6 RIB when the next hop becomes unreachable.

You can configure IPv6 static BFDv6 neighbors. These neighbors can operate in one of two modes: associated (which is the default) and unassociated. A neighbor can be transitioned between the two modes without interrupting the BFDv6 session associated with the neighbor.

BFDv6 Associated Mode

In Bidirectional Forwarding Detection for IPv6 (BFDv6) associated mode, an IPv6 static route is automatically associated with an IPv6 static BFDv6 neighbor if the static route next hop exactly matches the static BFDv6 neighbor.

An IPv6 static route requests a BFDv6 session for each static BFDv6 neighbor that has one or more associated IPv6 static routes and is configured over an interface on which BFD has been configured. The state of the BFDv6 session will be used to determine whether the associated IPv6 static routes are inserted in the IPv6 RIB. For example, static routes are inserted in the IPv6 RIB only if the BFDv6 neighbor is reachable, and the static route is removed from the IPv6 RIB if the BFDv6 neighbor subsequently becomes unreachable.

BFDv6 associated mode requires you to configure a BFD neighbor and static route on both the device on which the BFD-monitored static route is required and on the neighboring device.

BFDv6 Unassociated Mode

An IPv6 static BFD neighbor may be configured as unassociated. In this mode, the neighbor is not associated with static routes, and the neighbor always requests a BFDv6 session if the interface has been configured for BFDv6.

Unassociated mode is useful in the following situations:

  • Bringing up a BFDv6 session in the absence of an IPv6 static route—This case occurs when a static route is on router A, with router B as the next hop. Associated mode requires you to create both a static BFD neighbor and static route on both routers in order to bring up the BFDv6 session from B to A. Specifying the static BFD neighbor in unassociated mode on router B avoids the need to configure an unwanted static route.

  • Transition to BFD monitoring of a static route—This case occurs when existing IPv6 static routes are inserted in the IPv6 RIB. Here, you want to enable BFD monitoring for these static routes without any interruption to traffic. If you configure an attached IPv6 static BFD neighbor, then the static routes will immediately be associated with the new static BFD neighbor. However, because a static BFD neighbor starts in a down state, the associated static routes are then removed from the IPv6 RIB and are reinserted when the BFDv6 session comes up. Therefore, you will see an interruption in traffic. This interruption can be avoided by configuring the static BFD neighbor as unassociated, waiting until the BFDv6 session has come up, and then reconfiguring the static BFD neighbor as associated.

  • Transition from BFD monitoring of a static route—In this case, IPv6 static routes are monitored by BFD and inserted in the RIB. Here, you want to disable BFD monitoring of the static routes without interrupting traffic flow. This scenario can be achieved by first reconfiguring the static BFD neighbor as detached (thus disassociating the neighbor from the static routes) and then deconfiguring the static BFD neighbor.

BFD Support for OSPFv3

Bidirectional Forwarding Detection (BFD) supports OSPFv3.

How to Configure Bidirectional Forwarding Detection for IPv6

Specifying a Static BFDv6 Neighbor

An IPv6 static BFDv6 neighbor is specified separately from an IPv6 static route. An IPv6 static BFDv6 neighbor must be fully configured with the interface and neighbor address and must be directly attached to the local router.

SUMMARY STEPS

  1. enable
  2. configure terminal
  3. ipv6 route static bfd [vrf vrf-name ] interface-type interface-number ipv6-address [unassociated ]

DETAILED STEPS

  Command or Action Purpose
Step 1

enable

Example:


Device> enable

Enables privileged EXEC mode.

  • Enter your password if prompted.

Step 2

configure terminal

Example:


Device# configure terminal

Enters global configuration mode.

Step 3

ipv6 route static bfd [vrf vrf-name ] interface-type interface-number ipv6-address [unassociated ]

Example:


Device(config)# ipv6 route static bfd gigabitethernet 0/0/0 2001::1

Specifies static route IPv6 BFDv6 neighbors.

Associating an IPv6 Static Route with a BFDv6 Neighbor

IPv6 static routes are automatically associated with a static BFDv6 neighbor. A static neighbor is associated with a BFDv6 neighbor if the static next-hop explicitly matches the BFDv6 neighbor.

SUMMARY STEPS

  1. enable
  2. configure terminal
  3. ipv6 route static bfd [vrf vrf-name ] interface-type interface-number ipv6-address [unassociated ]
  4. ipv6 route [vrf vrf-name ] ipv6-prefix / prefix-length {ipv6-address | interface-type interface-number ipv6-address ]} [nexthop-vrf [vrf-name1 | default ]] [administrative-distance ] [administrative-multicast-distance | unicast | multicast ] [next-hop-address ] [tag tag ]

DETAILED STEPS


Step 1

enable

Example:


Device> enable

Enables privileged EXEC mode.

  • Enter your password if prompted.

Step 2

configure terminal

Example:


Device# configure terminal

Enters global configuration mode.

Step 3

ipv6 route static bfd [vrf vrf-name ] interface-type interface-number ipv6-address [unassociated ]

Example:


Device(config)# ipv6 route static bfd gigabitethernet 0/0/0 2001::1

Specifies static route BFDv6 neighbors.

Step 4

ipv6 route [vrf vrf-name ] ipv6-prefix / prefix-length {ipv6-address | interface-type interface-number ipv6-address ]} [nexthop-vrf [vrf-name1 | default ]] [administrative-distance ] [administrative-multicast-distance | unicast | multicast ] [next-hop-address ] [tag tag ]

Example:


Device(config)# ipv6 route 2001:DB8::/64 gigabitethernet 0/0/0 2001::1 

Establishes static IPv6 routes.


Configuring BFD Support for OSPFv3

This section describes the procedures for configuring BFD support for OSPFv3, so that OSPFv3 is a registered protocol with BFD and will receive forwarding path detection failure messages from BFD. You can either configure BFD support for OSPFv3 globally on all interfaces or configure it selectively on one or more interfaces.

There are two methods for enabling BFD support for OSPFv3:

  • You can enable BFD for all of the interfaces for which OSPFv3 is routing by using the bfd all-interfaces command in router configuration mode. You can disable BFD support on individual interfaces using the ipv6 ospf bfd disable command in interface configuration mode.

  • You can enable BFD for a subset of the interfaces for which OSPFv3 is routing by using the ipv6 ospf bfd command in interface configuration mode.


Note

OSPF will only initiate BFD sessions for OSPF neighbors that are in the FULL state.


Configuring Baseline BFD Session Parameters on the Interface

Repeat this task for each interface over which you want to run BFD sessions to BFD neighbors.

SUMMARY STEPS

  1. enable
  2. configure terminal
  3. interface type number
  4. bfd interval milliseconds min_rx milliseconds multiplier interval-multiplier

DETAILED STEPS

  Command or Action Purpose
Step 1

enable

Example:

Router> enable

Enables privileged EXEC mode.

  • Enter your password if prompted.

Step 2

configure terminal

Example:

Router# configure terminal

Enters global configuration mode.

Step 3

interface type number

Example:

Router(config)# interface gigabitethernet 0/0/0

Specifies an interface type and number, and places the router in interface configuration mode.

Step 4

bfd interval milliseconds min_rx milliseconds multiplier interval-multiplier

Example:

Router(config-if)# bfd interval 50 min_rx 50 multiplier 5

Enables BFD on the interface.

Configuring BFD Support for OSPFv3 for All Interfaces

Before you begin

OSPFv3 must be running on all participating devices. The baseline parameters for BFD sessions on the interfaces over which you want to run BFD sessions to BFD neighbors must be configured.

SUMMARY STEPS

  1. enable
  2. configure terminal
  3. ipv6 router ospf process-id [vrf vpn-name ]
  4. bfd all-interfaces [strict-mode ]
  5. exit
  6. show bfd neighbors [vrf vrf-name ] [client {bgp | eigrp | isis | ospf | rsvp | te-frr }] [ip-address | ipv6 ipv6-address ] [details ]
  7. show ipv6 ospf [process-id ] [area-id ] [rate-limit ]

DETAILED STEPS

  Command or Action Purpose
Step 1

enable

Example:

Device> enable 

Enables privileged EXEC mode.

  • Enter your password if prompted.

Step 2

configure terminal

Example:

Device# configure terminal 

Enters global configuration mode.

Step 3

ipv6 router ospf process-id [vrf vpn-name ]

Example:

Device(config)# ipv6 router ospf 2

Configures an OSPFv3 routing process.

Step 4

bfd all-interfaces [strict-mode ]

Example:

Device(config-router)# bfd all-interfaces

Enables BFD for all interfaces participating in the routing process.

[strict-mode] - BFD session is established in the strict-mode. In the strict-mode, the OSPF session is not established till the BFD session is established.

Step 5

exit

Example:

Device(config-router)# exit

Enter this command twice to go to privileged EXEC mode.

Step 6

show bfd neighbors [vrf vrf-name ] [client {bgp | eigrp | isis | ospf | rsvp | te-frr }] [ip-address | ipv6 ipv6-address ] [details ]

Example:

Device# show bfd neighbors detail

(Optional) Displays a line-by-line listing of existing BFD adjacencies.

Step 7

show ipv6 ospf [process-id ] [area-id ] [rate-limit ]

Example:

Device# show ipv6 ospf

(Optional) Displays general information about OSPFv3 routing processes. If BFD is enabled in strict-mode, the command output displays BFD is enabled in strict mode.

Configuring BFDv6 Support for OSPFv3 on One or More OPSFv3 Interfaces

Before you begin

OSPFv3 must be running on all participating routers. The baseline parameters for BFD sessions on the interfaces over which you want to run BFD sessions to BFD neighbors must be configured. See the Configuring Baseline BFD Session Parameters on the Interface section for more information.

SUMMARY STEPS

  1. enable
  2. configure terminal
  3. interface type number
  4. ipv6 ospf bfd [disable ]
  5. exit
  6. show bfd neighbors [vrf vrf-name ] [client {bgp | eigrp | isis | ospf | rsvp | te-frr }] [ip-address | ipv6 ipv6-address ] [details ]
  7. show ipv6 ospf [process-id ] [area-id ] [rate-limit ]

DETAILED STEPS

  Command or Action Purpose
Step 1

enable

Example:

Router> enable 

Enables privileged EXEC mode.

  • Enter your password if prompted.

Step 2

configure terminal

Example:

Router# configure terminal 

Enters global configuration mode.

Step 3

interface type number

Example:

Router(config)# interface gigabitethernet 0/0/0

Specifies an interface type and number, and places the router in interface configuration mode.

Step 4

ipv6 ospf bfd [disable ]

Example:

Router(config-if)# ipv6 ospf bfd

Enables BFD on a per-interface basis for one or more interfaces associated with the OSPFv3 routing process.

Step 5

exit

Example:

Router(config-router)# exit

Enter this command twice to go to privileged EXEC mode.

Step 6

show bfd neighbors [vrf vrf-name ] [client {bgp | eigrp | isis | ospf | rsvp | te-frr }] [ip-address | ipv6 ipv6-address ] [details ]

Example:

Router# show bfd neighbors detail

(Optional) Displays a line-by-line listing of existing BFD adjacencies.

Step 7

show ipv6 ospf [process-id ] [area-id ] [rate-limit ]

Example:

Router# show ipv6 ospf

(Optional) Displays general information about OSPFv3 routing processes.

Retrieving BFDv6 Information for Monitoring and Troubleshooting

SUMMARY STEPS

  1. enable
  2. monitor event ipv6 static [enable | disable ]
  3. show ipv6 static [ipv6-address | ipv6-prefix/prefix-length ] [interface type number | recursive ] [vrf vrf-name ] [bfd ] [detail
  4. show ipv6 static [ipv6-address | ipv6-prefix/prefix-length ] [interface type number | recursive ] [vrf vrf-name ] [bfd ] [detail ]
  5. debug ipv6 static

DETAILED STEPS

  Command or Action Purpose
Step 1

enable

Example:


Device> enable

Enables privileged EXEC mode.

  • Enter your password if prompted.

Step 2

monitor event ipv6 static [enable | disable ]

Example:


Device# monitor event ipv6 static enable

Enables the use of event trace to monitor the operation of the IPv6 static and IPv6 static BFDv6 neighbors.

Step 3

show ipv6 static [ipv6-address | ipv6-prefix/prefix-length ] [interface type number | recursive ] [vrf vrf-name ] [bfd ] [detail

Example:


Device# show ipv6 static vrf vrf1 detail

Displays the BFDv6 status for a static route associated with a static BFDv6 neighbor.

Step 4

show ipv6 static [ipv6-address | ipv6-prefix/prefix-length ] [interface type number | recursive ] [vrf vrf-name ] [bfd ] [detail ]

Example:


Device# show ipv6 static vrf vrf1 bfd

Displays static BFDv6 neighbors and associated static routes.

Step 5

debug ipv6 static

Example:


Device# debug ipv6 static

Enables BFDv6 debugging.

Configuration Examples for Bidirectional Forwarding Detection for IPv6

Example: Specifying an IPv6 Static BFDv6 Neighbor

The following example specifies a fully configured IPv6 static BFDv6 neighbor. The interface is GigabitEthernet 0/0/0 and the neighbor address is 2001::1.

 
Device(config)# ipv6 route static bfd gigabitethernet 0/0/0 2001::1
		  

Example: Associating an IPv6 Static Route with a BFDv6 Neighbor

In this example, the IPv6 static route 2001:DB8::/32 is associated with the BFDv6 neighbor 2001::1 over the GigabitEthernet 0/0/0 interface:


Device(config)# ipv6 route static bfd gigabitethernet 0/0/0 2001::1
Device(config)# ipv6 route 2001:DB8::/32 gigabitethernet 0/0/0 2001::1 

Additional References

Related Documents

Related Topic

Document Title

OSPF for IPv6

“Implementing OSPF for IPv6,” Cisco IOS IPv6 Configuration Guide

IPv6 static routes

“Implementing Static Routes for IPv6,” Cisco IOS IPv6 Configuration Guide

Standards

Standard

Title

No new or modified standards are supported by this feature, and support for existing standards has not been modified by this feature.

MIBs

MIB

MIBs Link

None

To locate and download MIBs for selected platforms, Cisco software releases, and feature sets, use Cisco MIB Locator found at the following URL:

http://www.cisco.com/go/mibs

RFCs

RFC

Title

draft-ietf-bfd-v4v6-1hop-07.txt

BFD for IPv4 and IPv6 (Single Hop)

Technical Assistance

Description

Link

The Cisco Support and Documentation website provides online resources to download documentation, software, and tools. Use these resources to install and configure the software and to troubleshoot and resolve technical issues with Cisco products and technologies. Access to most tools on the Cisco Support and Documentation website requires a Cisco.com user ID and password.

http://www.cisco.com/cisco/web/support/index.html

Feature Information for Implementing Bidirectional Forwarding for IPv6

The following table provides release information about the feature or features described in this module. This table lists only the software release that introduced support for a given feature in a given software release train. Unless noted otherwise, subsequent releases of that software release train also support that feature.

Use Cisco Feature Navigator to find information about platform support and Cisco software image support. To access Cisco Feature Navigator, go to www.cisco.com/go/cfn. An account on Cisco.com is not required.
Table 2. Feature Information for Implementing Bidirectional Forwarding for IPv6

Feature Name

Releases

Feature Information

IPv6 Routing: Static Route Support for BFD over IPv6

Cisco IOS XE Release 2.1

BFD for IPv6 is used to verify next-hop reachability for IPv6 static routes.

The following commands were introduced or modified by this feature: debug ipv6 static , ipv6 route , ipv6 route static bfd , monitor event ipv6 static , show ipv6 static

OSPFv3 for BFD

Cisco IOS XE Release 2.1

BFD supports the dynamic routing protocol OSPF for IPv6 (OSPFv3).

The following commands were introduced or modified by this feature: bfd all-interfaces , bfd interval , ipv6 ospf bfd , ipv6 router ospf , show bfd neighbors