[Contents] [Prev] [Next] [Index] [Report an Error]

Configuring Bidirectional Forwarding Detection

The Bidirectional Forwarding Detection (BFD) protocol is a simple hello mechanism that detects failures in a network. Hello packets are sent at a specified, regular interval. A neighbor failure is detected when the router stops receiving a reply after a specified interval. BFD works with a wide variety of network environments and topologies. The failure detection timers for BFD have shorter time limits than the failure detection mechanisms of static routes, providing faster detection. These timers are also adaptive. For example, a timer can adapt to a higher value if an adjacency fails, or a neighbor can negotiate a higher value than the one configured. By default, BFD is supported on single-hop static routes. Beginning with JUNOS Release 8.2, BFD also supports multihop static routes.

To enable failure detection, include the bfd-liveness-detection statement:

static route destination-prefix {
bfd-liveness-detection {
detection-time {
threshold milliseconds;
}
local-address ip-address;
minimum-interval milliseconds;
minimum-receive-interval milliseconds;
minimum-receive-ttl number;
multiplier number;
neighbor address;
no-adaptation;
transmit-interval {
threshold milliseconds;
minimum-interval milliseconds;
}
version (1 | automatic);
}
}

Beginning with JUNOS Release 9.1, the BFD protocol is supported for IPv6 static routes. Global unicast and link-local IPv6 addresses are supported for static routes. The BFD protocol is not supported on multicast or anycast IPv6 addresses. For IPv6, the BFD protocol supports only static routes and beginning with JUNOS Release 9.3. OSPV3. IPv6 for BFD is not supported for any other protocol. To configure the BFD protocol for IPv6 static routes, include the bfd-liveness-detection statement at the [edit routing-options rib inet6.0 static route destination-prefix] hierarchy level.

Beginning with JUNOS Release 8.5, you can configure a hold-down interval to specify how long the BFD session must remain up before state change notification is sent. To specify the hold-down interval, include the holddown-interval statement:

static route destination-prefix {
bfd-liveness-detection {
holddown-interval milliseconds;
}
}

You can configure a number in the range from 0 through 255,000 milliseconds, and the default is 0. If the BFD session goes down and then comes back up during the hold-down interval, the timer is restarted.

Note: If a single BFD session includes multiple static routes, the hold-down interval with the highest value is used.

To specify the minimum transmit and receive intervals for failure detection, include the minimum-interval statement:

static route destination-prefix {
bfd-liveness-detection {
minimum-interval milliseconds;
}
}

This value represents the minimum interval at which the local router transmits hello intervals as well as the minimum interval that the router expects to receive a reply from a neighbor with which it has established a BFD session. You can configure a number in the range from 1 through 255,000 milliseconds. You can also specify the minimum transmit and receive intervals separately.

To specify only the minimum receive interval for failure detection, include the minimum-receive-interval statement:

static route destination-prefix {
bfd-liveness-detection {
minimum-receive-interval milliseconds;
}
}

This value represents the minimum interval at which the local router expects to receive a reply from a neighbor with which it has established a BFD session. You can configure a number in the range from 1 through 255,000 milliseconds.

To specify the number of hello packets not received by the neighbor that causes the originating interface to be declared down, include the multiplier statement:

static route destination-prefix {
bfd-liveness-detection {
multiplier number;
}
}

The default value is 3. You can configure a number in the range from 1 through 255.

To specify a threshold for detecting the adaptation of the detection time, include the threshold statement:

static route destination-prefix {
bfd-liveness-detection {
detection-time {
threshold milliseconds;
}
}
}

When the BFD session detection time adapts to a value equal to or higher than the threshold, a single trap and a system log message are sent. The detection time is based on the multiplier of the minimum-interval or the minimum-receive-interval value. The threshold must be a higher value than the multiplier for either of these configured values. For example if the minimum-receive-interval is 300 ms and the multiplier is 3, the total detection time is 900 ms. Therefore, the detection time threshold must have a value higher than 900.

To specify only the minimum transmit interval for failure detection, include the transmit-interval minimum-interval statement:

static route destination-prefix {
bfd-liveness-detection {
transmit-interval {
minimum-interval milliseconds;
}
}
}

This value represents the minimum interval at which the local router transmits hello packets to the neighbor with which it has established a BFD session. You can configure a value in the range from 1 through 255,000 milliseconds.

To specify the transmit threshold for detecting the adaptation of the transmit interval, include the transmit-interval threshold statement:

static route destination-prefix {
bfd-liveness-detection {
transmit-interval {
threshold milliseconds;
}
}
}

The threshold value must be greater than the transmit interval. When the BFD session detection time adapts to a value higher than the threshold, a single trap and a system log message are sent. The detection time is based on the multiplier of the minimum-interval or the minimum-receive-interval value. The threshold must be a higher value than the multiplier for either of these configured values.

To specify the BFD version, include the version statement:

static route destination-prefix {
bfd-liveness-detection {
version (1 | automatic);
}
}

The default is to have the version detected automatically.

To include an IP address for the next hop of the BFD session, include the neighbor statement:

static route destination-prefix {
next-hop interface-name;
bfd-liveness-detection {
neighbor address;
}
}

Note: You must configure the neighbor statement if the next hop specified is an interface name. If you specify an IP address as the next hop, that address is used as the neighbor address for the BFD session.

Beginning with JUNOS Release 9.0, you can configure BFD sessions not to adapt to changing network conditions. To disable BFD adaptation, include the no-adaptation statement:

bfd-liveness-detection {
no-adaptation;
}

Note: We recommend that you not disable BFD adaptation unless it is preferable not to have BFD adaptation in your network.

For a list of hierarchy levels at which you can include these statements, see the statement summary sections for these statements.

Note: If BFD is configured only on one end of a static route, the route is removed from the routing table. BFD establishes a session when BFD is configured on both ends of the static route.

BFD is not supported on ISO address families in static routes. BFD does support IS-IS.

If you configure Graceful Routing Engine Switchover (GRES) at the same time as BFD, GRES does not preserve the BFD state information during a failover.

The JUNOS software also supports BFD over multihop static routes. For example, you can configure BFD over a Layer 3 path to provide path integrity over that path. You can limit the number of hops by specifying the time-to-live (TTL).

To configure BFD over multihop static routes, include the following statements:

static route destination-prefix {
bfd-liveness-detection {
local-address ip-address;
minimum-receive-ttl number;
}
}

To specify the source address for the multihop static route and to enable multihop BFD support, include the local-address statement.

To specify the number of hops, include the minimum-receive-ttl statement. You must configure this statement for a multihop BFD session. You can configure a value in the range from 1 through 255. It is optional for a single-hop BFD session. If you configure the minimum-receive-ttl statement for a single-hop session, the value must be 255.

For a list of hierarchy levels at which you can include these statements, see the statement summary sections for these statements.


[Contents] [Prev] [Next] [Index] [Report an Error]