summaryrefslogtreecommitdiff
path: root/docs/configuration/protocols/bfd.rst
blob: eb8088fd5d7202cd07f83789f4ebbf3dd2befc62 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
:lastproofread: 2021-09-28

.. include:: /_include/need_improvement.txt

.. _routing-bfd:

###
BFD
###

:abbr:`BFD (Bidirectional Forwarding Detection)` is described and extended by
the following RFCs: :rfc:`5880`, :rfc:`5881` and :rfc:`5883`.

In the age of very fast networks, a second of unreachability may equal millions of lost packets.
The idea behind BFD is to detect very quickly when a peer is down and take action extremely fast. 

BFD sends lots of small UDP packets very quickly to ensures that the peer is still alive.

This allows avoiding the timers defined in BGP and OSPF protocol to expires.

Configure BFD
=============

.. cfgcmd:: set protocols bfd peer <address>

   Set BFD peer IPv4 address or IPv6 address

.. cfgcmd:: set protocols bfd peer <address> echo-mode

   Enables the echo transmission mode

.. cfgcmd:: set protocols bfd peer <address> multihop

   Allow this BFD peer to not be directly connected

.. cfgcmd:: set protocols bfd peer <address> source 
   [address <address> | interface <interface>]

   Bind listener to specific interface/address, mandatory for IPv6

.. cfgcmd:: set protocols bfd peer <address> interval echo-interval <10-60000>

   The minimal echo receive transmission interval that this system is
   capable of handling

.. cfgcmd:: set protocols bfd peer <address> interval multiplier <2-255>

   Remote transmission interval will be multiplied by this value

.. cfgcmd:: set protocols bfd peer <address> interval 
   [receive | transmit] <10-60000>

   Interval in milliseconds

.. cfgcmd:: set protocols bfd peer <address> shutdown

   Disable a BFD peer


Enable BFD in BGP
-----------------

.. cfgcmd:: set protocols bgp <asn> neighbor <address> bfd

   Enable BFD on a single BGP neighbor

.. cfgcmd:: set protocols bgp <asn> peer-group <group> bfd

   Enable BFD on a BGP peer group


Enable BFD in OSPF
------------------

.. cfgcmd:: set interfaces ethernet <interface> ip ospf bfd

   Enable BFD for OSPF on an interface

.. cfgcmd:: set interfaces ethernet <interface> ipv6 ospfv3 bfd

   Enable BFD for OSPFv3 on an interface


Enable BFD in ISIS
------------------

.. cfgcmd:: set protocols isis <name> interface <interface> bfd

   Enable BFD for ISIS on an interface



Operational Commands
====================

.. opcmd:: show protocols bfd peer

   Show all BFD peers

   .. code-block:: none

      BFD Peers:
           peer 198.51.100.33 vrf default interface eth4.100
                   ID: 4182341893
                   Remote ID: 12678929647
                   Status: up
                   Uptime: 1 month(s), 16 hour(s), 29 minute(s), 38 second(s)
                   Diagnostics: ok
                   Remote diagnostics: ok
                   Local timers:
                           Receive interval: 300ms
                           Transmission interval: 300ms
                           Echo transmission interval: 50ms
                   Remote timers:
                           Receive interval: 300ms
                           Transmission interval: 300ms
                           Echo transmission interval: 0ms

           peer 198.51.100.55 vrf default interface eth4.101
                   ID: 4618932327
                   Remote ID: 3312345688
                   Status: up
                   Uptime: 20 hour(s), 16 minute(s), 19 second(s)
                   Diagnostics: ok
                   Remote diagnostics: ok
                   Local timers:
                           Receive interval: 300ms
                           Transmission interval: 300ms
                           Echo transmission interval: 50ms
                   Remote timers:
                           Receive interval: 300ms
                           Transmission interval: 300ms
                           Echo transmission interval: 0ms