Manual:Routing/BFD

From MikroTik Wiki
Jump to navigation Jump to search

Summary

Bidirectional Forwarding Detection (BFD) is a low-overhead and short-duration protocol intended to detect faults in the bidirectional path between two forwarding engines, including physical interfaces, sub-interfaces, data link(s), and to the extent possible the forwarding engines themselves, with potentially very low latency. It operates independently of media, data protocols and routing protocols.

BFD is basically a hello protocol for checking bidirectional neighbor reachability. It provides sub-second link failure detection support. BFD is not routing protocol specific, unlike protocol hello timers or such.

Standards and Technologies:

  • RFC 5880 Bidirectional Forwarding Detection (BFD)
  • RFC 5881 BFD for IPv4 and IPv6 (Single Hop)
  • RFC 5882 Generic Application of BFD (Single Hop)
  • RFC 5883 BFD for Multihop Paths
  • RFC 5884 BFD for MPLS LSPs
  • RFC 5885 BFD VCCV

Requirements

RouterOS 4.4 or newer with routing package installed.

Features supported

  • asynchronous mode [1]
  • BFD timer and detection multiplier configuration per interface;
  • enabling BFD for OSPF interfaces
  • enabling BFD for BGP peers
  • single hop IPv4 and IPv6 transport [2]
  • multihop IPv4 and IPv6 transport [3]

Features not yet supported

  • echo function
  • on-demand mode
  • authentication

Configuration

BFD configuration should be added in different places as required

BFD timer configuration

Sub-menu: /routing bfd interface


Properties

Property Description
interface (string; Default: ) Interface name to which BFD timers will be applied
interval (decimal [0.01 .. 10]sec; Default: 0.2sec)
min-rx (decimal [0.01..10]sec; Default: 0.2sec)
multiplier (integer [1..100]; Default: 5)


BFD neighbor status

Sub-menu: /routing bfd neighbor

Read-only properties

Property Description
actual-tx-interval (decimal)
address (IP | IPv6) IP/IPv6 address of the neighbor
desired-tx-interval (decimal)
hold-time (time)
interface (string) interface name on which BFD neighbor is reachable
multihop (yes | no) Whether neighbor is multiple hops away
multiplier (integer)
packets-rx (integer) Number of received packets
protocols (ospf | bgp) For which protocols BFD is used, currently only OSPF and BGP are possible.
remote-min-rx (decimal)
required-min-rx (decimal)
state (up | down) Shows the current BFD state
state-changes (integer) Number of state changes occurred between the neighbors
up (yes | no) Whether link to the neighbor is up
uptime (time) Link uptime


Example of BFD neighbor. Neighbor is used by OSPF and is directly connected.

[admin@R3-493G] /routing bfd neighbor> print detail 
Flags: U - up 
 0 U state=up address=10.5.101.1 interface=ether1 protocols=ospf multihop=no 
     state-changes=1 uptime=12s desired-tx-interval=0.2sec 
     actual-tx-interval=0.2sec required-min-rx=0.2sec remote-min-rx=0.2sec 
     multiplier=5 hold-time=1sec packets-rx=76 packets-tx=77 

OSPF

There is only one parameter per OSPF interface to enable BFD

 /routing ospf interface add interface=all use-bfd=yes

BGP

Similar to OSPF, only one option per BGP peer to enable BFD

 /routing bgp peer add remote-address=x.x.x.x remote-as=xxxxx use-bfd=yes

Interoperability

For interoperability with Cisco make sure to disable echo mode (it is enabled on Cisco by default), since it's not supported on MT.

To do that, on Cisco in interface configuration mode type:

no bfd echo


[ Top | Back to Content ]