Support for Bidirectional Forwarding Detection on Static Routes

This version of Netvisor OS provides support for static route reachability detection using Bidirectional Forwarding Detection (BFD) protocol. A static route entry is installed in the Routing Information Database (RIB) only if BFD is able to communicate with the gateway. After installation, BFD periodically monitors reachability and removes the route if connectivity is lost.

When a Netvisor OS vRouter is configured as a gateway, Netvisor OS sends out BFD hellos periodically to specified neighbors. Static BFD sessions are configurable for this purpose.

Currently when a static route is created, a route entry is installed in RIB regardless of the reachability of the gateway. By making static routes conditional over BFD, neighborship formation alleviates this problem.

Netvisor OS now provides new parameters to configure static BFD sessions between a Netvisor OS vRouter and any remote routers supporting BFD. The vRouter sends out periodic BFD packets to these neighbors, so that the routers can determine if the Netvisor OS vRouter, acting as a gateway, is alive or not.

If the BFD destination IP address matches with a static route gateway IP address, that static route is considered BFD enabled. This means that this static route is installed in the RIB only if the BFD session is up. The BFD sessions are on a per gateway basis, in that different static routes using the same gateway, use the same BFD session to determine connectivity.

If the BFD session goes down, all such static routes are removed from RIB. The source address for the BFD session is the interface address of any vRouter interface (vnic) or a loopback interface.

BFD timers can be specified for the vRouter interface or the loopback interface.

CLI Commands

vrouter-static-bfd-add

Add a static BFD session

vrouter selector:

 

vrouter-name name-string

Specify the name of the vRouter service configuration to add BFD

the following static-bfd arguments:

 

src-ip ip-address

Specify the source IP address for the BFD session.

dst-ip ip-address

Specify the destination IP address for the BFD session.

type single-hop|multi-hop

Specify the BFD type.

vrouter-static-bfd-remove

Remove a static BFD session

 

vrouter selector:

 

vrouter-name name-string

Specify the name of the vRouter service configuration to add BFD.

the following static-bfd arguments:

 

src-ip ip-address

Specify the source IP address for the BFD session.

dst-ip ip-address

Specify the destination IP address for the BFD session.

vrouter-static-bfd-show

Displays a static BFD session

vrouter selector:

 

vrouter-name name-string

Displays the name of the vRouter service configuration to add BFD

the following static-bfd arguments:

 

src-ip ip-address

Displays the source IP address for the BFD session

dst-ip ip-address

Displays the destination IP address for the BFD session

type single-hop|multi-hop

BFD type

 

The source IP address is a vRouter interface (vnic) or a loopback interface.

vrouter-static-bfd-show

vrouter-name src-ip         dst-ip    type       

------------ -------------- --------- ----------

vr1          100.1.1.1      200.1.1.1 single-hop

vr1          100.1.1.1      201.1.1.1 multi-hop

 

The vrouter-static-route-show command is modified to show if a route is BFD-enabled or not. If BFD is configured, the configured source IP for that session is displayed.

Example output of static routes configured with BFD:

vrouter-static-route-show

vrouter-name network      gateway-ip distance bfd        bfd-src-ip

------------ ------------ ---------- -------- ---        ---------

vr1          101.1.1.0/24 201.1.1.1  1        single-hop 100.1.1.1

vr1          102.1.1.0/24 202.1.1.1  1        multi-hop  100.1.1.1

vr1          103.1.1.0/24 203.1.1.1  1                            

 

In addition, the existing command, vrouter-bfd-neighbor-show displays any static BFD neighbor information.

The existing commands, vrouter-interface-config-add and vrouter-interface-config-modify can be used to configure BFD timers.