draft-ietf-bfd-unaffiliated-echo-01.txt | draft-ietf-bfd-unaffiliated-echo-02.txt | |||
---|---|---|---|---|
BFD Working Group W. Cheng | BFD Working Group W. Cheng | |||
Internet-Draft R. Wang | Internet-Draft R. Wang | |||
Updates: 5880 (if approved) China Mobile | Updates: 5880 (if approved) China Mobile | |||
Intended status: Standards Track X. Min | Intended status: Standards Track X. Min | |||
Expires: May 6, 2021 ZTE Corp. | Expires: December 24, 2021 ZTE Corp. | |||
R. Rahman | R. Rahman | |||
Cisco Systems | Individual | |||
R. Boddireddy | R. Boddireddy | |||
Juniper Networks | Juniper Networks | |||
November 2, 2020 | June 22, 2021 | |||
Unaffiliated BFD Echo Function | Unaffiliated BFD Echo Function | |||
draft-ietf-bfd-unaffiliated-echo-01 | draft-ietf-bfd-unaffiliated-echo-02 | |||
Abstract | Abstract | |||
Bidirectional Forwarding Detection (BFD) is a fault detection | Bidirectional Forwarding Detection (BFD) is a fault detection | |||
protocol that can quickly determine a communication failure between | protocol that can quickly determine a communication failure between | |||
two forwarding engines. This document proposes a use of the BFD Echo | two forwarding engines. This document proposes a use of the BFD Echo | |||
function where the local system supports BFD but the neighboring | function where the local system supports BFD but the neighboring | |||
system does not support BFD. | system does not support BFD. | |||
Status of This Memo | Status of This Memo | |||
skipping to change at page 1, line 40 ¶ | skipping to change at page 1, line 40 ¶ | |||
Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
Drafts is at https://datatracker.ietf.org/drafts/current/. | Drafts is at https://datatracker.ietf.org/drafts/current/. | |||
Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
This Internet-Draft will expire on May 6, 2021. | This Internet-Draft will expire on December 24, 2021. | |||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2020 IETF Trust and the persons identified as the | Copyright (c) 2021 IETF Trust and the persons identified as the | |||
document authors. All rights reserved. | document authors. All rights reserved. | |||
This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
Provisions Relating to IETF Documents | Provisions Relating to IETF Documents | |||
(https://trustee.ietf.org/license-info) in effect on the date of | (https://trustee.ietf.org/license-info) in effect on the date of | |||
publication of this document. Please review these documents | publication of this document. Please review these documents | |||
carefully, as they describe your rights and restrictions with respect | carefully, as they describe your rights and restrictions with respect | |||
to this document. Code Components extracted from this document must | to this document. Code Components extracted from this document must | |||
include Simplified BSD License text as described in Section 4.e of | include Simplified BSD License text as described in Section 4.e of | |||
the Trust Legal Provisions and are provided without warranty as | the Trust Legal Provisions and are provided without warranty as | |||
described in the Simplified BSD License. | described in the Simplified BSD License. | |||
Table of Contents | Table of Contents | |||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | |||
1.1. Conventions Used in This Document . . . . . . . . . . . . 3 | ||||
2. Updates to RFC 5880 . . . . . . . . . . . . . . . . . . . . . 3 | 2. Updates to RFC 5880 . . . . . . . . . . . . . . . . . . . . . 3 | |||
3. Unaffiliated BFD Echo Procedures . . . . . . . . . . . . . . 6 | 3. Unaffiliated BFD Echo Procedures . . . . . . . . . . . . . . 6 | |||
4. Unaffilicated BFD Echo Applicability . . . . . . . . . . . . 7 | 4. Unaffiliated BFD Echo Applicability . . . . . . . . . . . . . 8 | |||
5. Security Considerations . . . . . . . . . . . . . . . . . . . 8 | 5. Security Considerations . . . . . . . . . . . . . . . . . . . 8 | |||
6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 8 | 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 8 | |||
7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 8 | 7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 8 | |||
8. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 8 | 8. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 9 | |||
9. References . . . . . . . . . . . . . . . . . . . . . . . . . 8 | 9. References . . . . . . . . . . . . . . . . . . . . . . . . . 9 | |||
9.1. Normative References . . . . . . . . . . . . . . . . . . 8 | 9.1. Normative References . . . . . . . . . . . . . . . . . . 9 | |||
9.2. Informative References . . . . . . . . . . . . . . . . . 9 | 9.2. Informative References . . . . . . . . . . . . . . . . . 9 | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 9 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 10 | |||
1. Introduction | 1. Introduction | |||
To minimize the impact of device/link faults on services and improve | To minimize the impact of device/link faults on services and improve | |||
network availability, a network device must be able to quickly detect | network availability, a network device must be able to quickly detect | |||
faults in communication with adjacent devices. Measures can then be | faults in communication with adjacent devices. Measures can then be | |||
taken to promptly rectify the faults to ensure service continuity. | taken to promptly rectify the faults to ensure service continuity. | |||
BFD [RFC5880] is a low-overhead, short-duration method to detect | BFD [RFC5880] is a low-overhead, short-duration method to detect | |||
faults on the communication path between adjacent forwarding engines. | faults on the communication path between adjacent forwarding engines. | |||
The faults can be on interface, data link, and even forwarding | The faults can be on interfaces, data link(s), and even the | |||
engine. It is a single, unified mechanism to monitor any media and | forwarding engines. It is a single, unified mechanism to monitor any | |||
protocol layers in real time. | media and protocol layers in real time. | |||
BFD defines Asynchronous mode to satisfy various deployment | BFD defines an Asynchronous mode to satisfy various deployment | |||
scenarios, and also supports Echo function to reduce the device | scenarios. It also supports an Echo function to reduce the device | |||
requirement for BFD. When the Echo function is activated, the local | requirement for BFD. When the Echo function is activated, the local | |||
system sends BFD Echo packets and the remote system loops back the | system sends BFD Echo packets and the remote system loops back the | |||
received Echo packets through the forwarding path. If several | received Echo packets through the forwarding path. If several | |||
consecutive BFD Echo packets are not received by the local system, | consecutive BFD Echo packets are not received by the local system, | |||
then the BFD session is declared to be Down. | then the BFD session is declared to be Down. | |||
When using BFD Echo function, there are two typical scenarios as | When using BFD Echo function, there are two typical scenarios as | |||
below: | below: | |||
o Full BFD protocol capability with affiliated Echo function: this | o Full BFD protocol capability with affiliated Echo function: This | |||
scenario requires both the local device and the neighboring device | scenario requires both the local device and the neighboring device | |||
to support full BFD protocol. | to support the full BFD protocol. | |||
o Only BFD Echo function without full BFD protocol capability: | o BFD Echo-Only function without full BFD protocol capability: This | |||
this scenario requires only the local device to support sending | scenario requires only the local device to support sending and | |||
and demultiplexing BFD Control packets. | demultiplexing BFD Control packets. | |||
The two typical scenarios are both reasonable and useful, and the | The latter scenario is referred to as Unaffiliated BFD Echo function | |||
latter is referred to as Unaffiliated BFD Echo function in this | in this document. | |||
document. | ||||
Section 6.2.2 of [BBF-TR-146] describes one use case of the | Section 6.2.2 of [BBF-TR-146] describes one use case of the | |||
Unaffiliated BFD Echo function, and at least one more use case is | Unaffiliated BFD Echo function, and at least one more use case is | |||
known in the field BFD deployment. | known to be deployed. | |||
This document describes the use of the Unaffiliated BFD Echo function | This document describes the use of the Unaffiliated BFD Echo function | |||
over IPv4 and IPv6 for single IP hop. | over IPv4 and IPv6 for single IP hop. | |||
1.1. Conventions Used in This Document | ||||
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | ||||
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | ||||
"OPTIONAL" in this document are to be interpreted as described in BCP | ||||
14 [RFC2119] [RFC8174] when, and only when, they appear in all | ||||
capitals, as shown here. | ||||
2. Updates to RFC 5880 | 2. Updates to RFC 5880 | |||
The Unaffiliated BFD Echo function described in this document reuses | The Unaffiliated BFD Echo function described in this document reuses | |||
the BFD Echo function as described in [RFC5880] and [RFC5881], but | the BFD Echo function as described in [RFC5880] and [RFC5881], but | |||
does not require BFD asynchronous mode. When using the Unaffiliated | does not require BFD Asynchronous mode. When using the Unaffiliated | |||
BFD Echo function, only the local system has the BFD protocol | BFD Echo function, only the local system has the BFD protocol | |||
enabled, the remote system just loops back the received BFD Echo | enabled; the remote system just loops back the received BFD Echo | |||
packets as regular data packets. | packets as regular data packets. | |||
With that said, this document updates [RFC5880] with respect to its | This document updates [RFC5880] with respect to its descriptions on | |||
descriptions on the BFD Echo function as follows. | the BFD Echo function as follows. | |||
o [RFC5880] states in the 4th paragraph of Section 3.2: | o The 4th paragraph of Section 3.2 of [RFC5880] is updated as below: | |||
OLD TEXT | ||||
An adjunct to both modes is the Echo function. | ||||
NEW TEXT | ||||
An adjunct or complement to both modes is the Echo function. | ||||
OLD TEXT | ||||
An adjunct to both modes is the Echo function. When the Echo | ||||
function is active, a stream of BFD Echo packets is transmitted in | ||||
such a way as to have the other system loop them back through its | ||||
forwarding path. If a number of packets of the echoed data stream | ||||
are not received, the session is declared to be down. The Echo | ||||
function may be used with either Asynchronous or Demand mode. | ||||
Since the Echo function is handling the task of detection, the | Since the Echo function is handling the task of detection, the | |||
rate of periodic transmission of Control packets may be reduced | rate of periodic transmission of Control packets may be reduced | |||
(in the case of Asynchronous mode) or eliminated completely (in | (in the case of Asynchronous mode) or eliminated completely (in | |||
the case of Demand mode). | the case of Demand mode). | |||
* This paragraph is now updated to: | NEW TEXT | |||
An adjunct or complement to both modes is the Echo function. When | Since the Echo function is handling the task of detection, the | |||
the Echo function is active, a stream of BFD Echo packets is | rate of periodic transmission of Control packets may be reduced | |||
transmitted in such a way as to have the other system loop them | (in the case of Asynchronous mode) or eliminated completely (in | |||
back through its forwarding path. If a number of packets of the | the case of Demand mode). The Echo function may also be used | |||
echoed data stream are not received, the session is declared to be | independently, with neither Asynchronous nor Demand mode. | |||
down. The Echo function may be used with either Asynchronous or | ||||
Demand mode. Since the Echo function is handling the task of | ||||
detection, the rate of periodic transmission of Control packets | ||||
may be reduced (in the case of Asynchronous mode) or eliminated | ||||
completely (in the case of Demand mode). The Echo function may | ||||
also be used independently, with neither Asynchronous nor Demand | ||||
mode. | ||||
o [RFC5880] states in the 3rd and 9th paragraphs of Section 6.1: | o The 3rd and 9th paragraphs of Section 6.1 of [RFC5880] are updated | |||
as below: | ||||
OLD TEXT | ||||
Once the BFD session is Up, a system can choose to start the Echo | Once the BFD session is Up, a system can choose to start the Echo | |||
function if it desires and the other system signals that it will | function if it desires and the other system signals that it will | |||
allow it. The rate of transmission of Control packets is | allow it. | |||
typically kept low when the Echo function is active. | ||||
NEW TEXT | ||||
When a system is running with Asynchronous mode, once the BFD | ||||
session is Up, it can choose to start the Echo function if it | ||||
desires and the other system signals that it will allow it. | ||||
OLD TEXT | ||||
If the session goes Down, the transmission of Echo packets (if | If the session goes Down, the transmission of Echo packets (if | |||
any) ceases, and the transmission of Control packets goes back to | any) ceases, and the transmission of Control packets goes back to | |||
the slow rate. | the slow rate. | |||
* The two paragraphs are now updated to: | NEW TEXT | |||
When a system is running with Asynchronous mode, once the BFD | ||||
session is Up, it can choose to start the Echo function if it | ||||
desires and the other system signals that it will allow it. The | ||||
rate of transmission of Control packets is typically kept low when | ||||
the Echo function is active. | ||||
In Asynchronous mode, if the session goes Down, the transmission | In Asynchronous mode, if the session goes Down, the transmission | |||
of Echo packets (if any) ceases, and the transmission of Control | of Echo packets (if any) ceases, and the transmission of Control | |||
packets goes back to the slow rate. | packets goes back to the slow rate. | |||
o [RFC5880] states in the 2nd paragraph of Section 6.4: | o The 2nd paragraph of Section 6.4 of [RFC5880] is updated as below: | |||
OLD TEXT | ||||
When a system is using the Echo function, it is advantageous to | When a system is using the Echo function, it is advantageous to | |||
choose a sedate reception rate for Control packets, since liveness | choose a sedate reception rate for Control packets, since liveness | |||
detection is being handled by the Echo packets. This can be | detection is being handled by the Echo packets. | |||
controlled by manipulating the Required Min RX Interval field (see | ||||
section 6.8.3). | ||||
* This paragraph is now updated to: | NEW TEXT | |||
When a system is using the Echo function with Asynchronous mode, | When a system is using the Echo function with Asynchronous mode, | |||
it is advantageous to choose a sedate reception rate for Control | it is advantageous to choose a sedate reception rate for Control | |||
packets, since liveness detection is being handled by the Echo | packets, since liveness detection is being handled by the Echo | |||
packets. This can be controlled by manipulating the Required Min | packets. | |||
RX Interval field (see section 6.8.3). | ||||
o [RFC5880] states in the 2nd paragraph of Section 6.8: | o The 2nd paragraph of Section 6.8 of [RFC5880] is updated as below: | |||
OLD TEXT | ||||
When a system is said to have "the Echo function active" it means | When a system is said to have "the Echo function active" it means | |||
that the system is sending BFD Echo packets, implying that the | that the system is sending BFD Echo packets, implying that the | |||
session is Up and the other system has signaled its willingness to | session is Up and the other system has signaled its willingness to | |||
loop back Echo packets. | loop back Echo packets. | |||
* This paragraph is now updated to: | NEW TEXT | |||
When a system in Asynchronous or Demand mode is said to have "the | When a system in Asynchronous or Demand mode is said to have "the | |||
Echo function active" it means that the system is sending BFD Echo | Echo function active" it means that the system is sending BFD Echo | |||
packets, implying that the session is Up and the other system has | packets, implying that the session is Up and the other system has | |||
signaled its willingness to loop back Echo packets. | signaled its willingness to loop back Echo packets. | |||
o [RFC5880] states in the 7th paragraph of Section 6.8.3: | o The 7th paragraph of Section 6.8.3 of [RFC5880] is updated as | |||
below: | ||||
OLD TEXT | ||||
When the Echo function is active, a system SHOULD set | When the Echo function is active, a system SHOULD set | |||
bfd.RequiredMinRxInterval to a value of not less than one second | bfd.RequiredMinRxInterval to a value of not less than one second | |||
(1,000,000 microseconds). This is intended to keep received BFD | (1,000,000 microseconds). | |||
Control traffic at a negligible level, since the actual detection | ||||
function is being performed using BFD Echo packets. | ||||
* This paragraph is now updated to: | NEW TEXT | |||
When the Echo function is active with Asynchronous mode, a system | When the Echo function is active with Asynchronous mode, a system | |||
SHOULD set bfd.RequiredMinRxInterval to a value of not less than | SHOULD set bfd.RequiredMinRxInterval to a value of not less than | |||
one second (1,000,000 microseconds). This is intended to keep | one second (1,000,000 microseconds). | |||
received BFD Control traffic at a negligible level, since the | ||||
actual detection function is being performed using BFD Echo | ||||
packets. | ||||
o [RFC5880] states in the 1st and 2nd paragraphs of Section 6.8.9: | o The 1st and 2nd paragraphs of Section 6.8.9 of [RFC5880] are | |||
updated as below: | ||||
OLD TEXT | ||||
BFD Echo packets MUST NOT be transmitted when bfd.SessionState is | BFD Echo packets MUST NOT be transmitted when bfd.SessionState is | |||
not Up. BFD Echo packets MUST NOT be transmitted unless the last | not Up. BFD Echo packets MUST NOT be transmitted unless the last | |||
BFD Control packet received from the remote system contains a | BFD Control packet received from the remote system contains a | |||
nonzero value in Required Min Echo RX Interval. | nonzero value in Required Min Echo RX Interval. | |||
BFD Echo packets MAY be transmitted when bfd.SessionState is Up. | NEW TEXT | |||
The interval between transmitted BFD Echo packets MUST NOT be less | ||||
than the value advertised by the remote system in Required Min | ||||
Echo RX Interval, except as follows: | ||||
A 25% jitter MAY be applied to the rate of transmission, such | ||||
that the actual interval MAY be between 75% and 100% of the | ||||
advertised value. A single BFD Echo packet MAY be transmitted | ||||
between normally scheduled Echo transmission intervals. | ||||
* The two paragraphs are now updated to: | ||||
When a system is using the Echo function with either Asynchronous | When a system is using the Echo function with either Asynchronous | |||
or Demand mode, BFD Echo packets MUST NOT be transmitted when | or Demand mode, BFD Echo packets MUST NOT be transmitted when | |||
bfd.SessionState is not Up, and BFD Echo packets MUST NOT be | bfd.SessionState is not Up, and BFD Echo packets MUST NOT be | |||
transmitted unless the last BFD Control packet received from the | transmitted unless the last BFD Control packet received from the | |||
remote system contains a nonzero value in Required Min Echo RX | remote system contains a nonzero value in Required Min Echo RX | |||
Interval. | Interval. | |||
OLD TEXT | ||||
BFD Echo packets MAY be transmitted when bfd.SessionState is Up. | ||||
The interval between transmitted BFD Echo packets MUST NOT be less | ||||
than the value advertised by the remote system in Required Min | ||||
Echo RX Interval... | ||||
NEW TEXT | ||||
When a system is using the Echo function with either Asynchronous | When a system is using the Echo function with either Asynchronous | |||
or Demand mode, BFD Echo packets MAY be transmitted when | or Demand mode, BFD Echo packets MAY be transmitted when | |||
bfd.SessionState is Up, and the interval between transmitted BFD | bfd.SessionState is Up, and the interval between transmitted BFD | |||
Echo packets MUST NOT be less than the value advertised by the | Echo packets MUST NOT be less than the value advertised by the | |||
remote system in Required Min Echo RX Interval, except as follows: | remote system in Required Min Echo RX Interval... | |||
A 25% jitter MAY be applied to the rate of transmission, such | ||||
that the actual interval MAY be between 75% and 100% of the | ||||
advertised value. A single BFD Echo packet MAY be transmitted | ||||
between normally scheduled Echo transmission intervals. | ||||
3. Unaffiliated BFD Echo Procedures | 3. Unaffiliated BFD Echo Procedures | |||
As shown in Figure 1, device A supports BFD, whereas device B does | As shown in Figure 1, device A supports BFD, whereas device B does | |||
not support BFD. To rapidly detect any IP forwarding faults between | not support BFD. Device A would send BFD Echo packets, and after | |||
device A and device B, a BFD Echo session MUST be created at device | receiving the BFD Echo packets sent from device A, the one-hop-away | |||
A, and the BFD Echo session is RECOMMENDED to follow the BFD state | BFD peer device B immediately loops them back by normal IP | |||
machine defined in Section 6.2 of [RFC5880], except that the received | forwarding, this allows device A to rapidly detect a connectivity | |||
state is not sent but echoed from the remote system. In this case, | loss to device B. Note that device B would not intercept any | |||
although BFD Echo packets are transmitted with destination UDP port | received BFD Echo packet or parse any BFD protocol field within the | |||
3785 as defined in [RFC5881], the BFD Echo packets sent by device A | BFD Echo packet. | |||
are BFD Control packets too, the looped BFD Echo packets back from | ||||
device B would drive BFD state change at device A, substituting the | To rapidly detect any IP forwarding faults between device A and | |||
BFD Control packets sent from the BFD peer. | device B, a BFD Echo session MUST be created at device A, and the BFD | |||
Echo session is RECOMMENDED to follow the BFD state machine defined | ||||
in Section 6.2 of [RFC5880], except that the received state is not | ||||
sent but echoed from the remote system, and AdminDown state is ruled | ||||
out because AdminDown effectively means removal of BFD Echo session. | ||||
In this case, although BFD Echo packets are transmitted with | ||||
destination UDP port 3785 as defined in [RFC5881], the BFD Echo | ||||
packets sent by device A are BFD Control packets too, the looped BFD | ||||
Echo packets back from device B would drive BFD state change at | ||||
device A, substituting the BFD Control packets sent from the BFD | ||||
peer. Also note that when device A receives looped BFD Control | ||||
packets, the validation procedures of [RFC5880] are used. | ||||
Once a BFD Echo session is created at device A, it starts sending BFD | Once a BFD Echo session is created at device A, it starts sending BFD | |||
Echo packets, which SHOULD include a BFD Echo session demultiplexing | Echo packets, which SHOULD include a BFD Echo session demultiplexing | |||
field, such as BFD Your Discriminator defined in [RFC5880] (BFD My | field, such as BFD "Your Discriminator" defined in [RFC5880] (BFD "My | |||
Discriminator can be set to 0 to avoid confusion), except that device | Discriminator" can be set to 0 to avoid confusion), except that | |||
A can use IP source address or UDP source port to demultiplex BFD | device A can use IP source address or UDP source port to demultiplex | |||
Echo session, or there is only one BFD Echo session running at device | BFD Echo session, or there is only one BFD Echo session running at | |||
A. Device A would send BFD Echo packets with IP destination address | device A. Device A would send BFD Echo packets with IP destination | |||
destined for itself, such as the IP address of interface 1 of device | address destined for itself, such as the IP address of interface 1 of | |||
A. All BFD Echo packets for the session MUST be sent with a Time to | device A. All BFD Echo packets for the session MUST be sent with a | |||
Live (TTL) or Hop Limit value of 255. | Time to Live (TTL) or Hop Limit value of 255. | |||
Considering the BFD peer wouldn't advertise Required Min Echo RX | "Desired Min TX Interval" and "Required Min RX Interval" defined in | |||
Interval as defined in [RFC5880], the transmit interval for sending | [RFC5880] may be populated with one second within the BFD Echo | |||
BFD Echo packets MUST be provisioned at device A, how to make sure | packet, which however has no real application and would be ignored by | |||
the BFD peer is willing and able to loop back BFD Echo packets sent | the receiver. | |||
with the provisioned transmit interval is outside the scope of this | ||||
document. Considering the BFD peer wouldn't advertise Detect Mult as | ||||
defined in [RFC5880], the Detect Mult for calculating the Detection | ||||
Time MUST be provisioned at device A, the Detection Time in device A | ||||
is equal to the provisioned Detect Mult multiplied by the provisioned | ||||
transmit interval. | ||||
After receiving the BFD Echo packets sent from device A, the one-hop- | Considering the BFD peer wouldn't advertise "Required Min Echo RX | |||
away BFD peer device B immediately loops them back by normal IP | Interval" as defined in [RFC5880], the transmission interval for | |||
forwarding, this allows device A to rapidly detect a connectivity | sending BFD Echo packets MUST be provisioned at device A, how to make | |||
loss to device B. | sure the BFD peer is willing and able to loop back BFD Echo packets | |||
sent with the provisioned transmission interval is outside the scope | ||||
of this document. Similar to what's specified in [RFC5880], the BFD | ||||
Echo session begins with the periodic, slow transmission of BFD Echo | ||||
packets, the slow transmission rate SHOULD be no less then one second | ||||
per packet, until the session is Up, after that the provisioned | ||||
transmission interval is applied, and reverting back to the slow rate | ||||
once the session goes Down. Considering the BFD peer wouldn't | ||||
advertise "Detect Mult" as defined in [RFC5880], the "Detect Mult" | ||||
for calculating the Detection Time MUST be provisioned at device A, | ||||
the Detection Time in device A is equal to the provisioned "Detect | ||||
Mult" multiplied by the provisioned transmission interval. | ||||
Device A Device B | Device A Device B | |||
BFD Echo session | ||||
BFD Enabled BFD Echo packets loopback | ||||
+--------+ +---------+ | ||||
| A |---------------------------------| B | | ||||
| |Inf 1 Inf 1| | | ||||
+--------+10.1.1.1/24 10.1.1.2/24+---------+ | ||||
BFD is supported. BFD is not supported. | ||||
Figure 1: Unaffiliated BFD Echo deployment scenario | BFD Enabled BFD Echo packets loopback | |||
+--------+ BFD Echo session +---------+ | ||||
| A |--------------------------------| B | | ||||
| |Inf 1 Inf 1| | | ||||
+--------+10.1.1.1/24 10.1.1.2/24+---------+ | ||||
BFD is supported. BFD is not supported. | ||||
4. Unaffilicated BFD Echo Applicability | Figure 1: Unaffiliated BFD Echo diagram | |||
With the more and more application of BFD detection, there are some | 4. Unaffiliated BFD Echo Applicability | |||
scenarios the BFD Echo function is deployed. And due to the | ||||
different capabilities of the devices deploying BFD Echo function, | ||||
it's required to apply Unaffiliated BFD Echo to the devices that | ||||
couldn't afford the overhead of the full BFD protocol capability, | ||||
such as the servers running virtual machines or some Internet of | ||||
Things (IoT) devices. Unaffiliated BFD Echo can be used when two | ||||
devices are connected and only one of them supports BFD protocol | ||||
capability. | ||||
Unaffiliated BFD Echo function is reasonable and useful. Firstly, | Some devices that would benefit from the use of BFD may be unable to | |||
Unaffiliated BFD Echo can use BFD protocol capability at the local | support the full BFD protocol. Examples of such devices include | |||
BFD-supported device, while using IP forwarding capability at the | servers running virtual machines, or Internet of Things (IoT) | |||
peer BFD-unsupported device, so Unaffiliated BFD Echo can support | devices. The Unaffiliated BFD Echo function can be used when two | |||
fast detecting and manage BFD sessions very effectively. Secondly, | devices are connected and only one of them supports the BFD protocol, | |||
it is scalable when using Unaffiliated BFD Echo to adapt to different | and the other is capable of looping BFD Echo packets. | |||
capabilities of devices. | ||||
5. Security Considerations | 5. Security Considerations | |||
Unicast Reverse Path Forwarding (uRPF), as specified in [RFC3704] and | All Security Considerations from [RFC5880] and [RFC5881] apply. | |||
[RFC8704], is a security feature that prevents the IP address | ||||
spoofing attacks which is commonly used in DoS, DDoS. uRPF has two | Note that the Unaffiliated BFD Echo function prevents the use of | |||
modes called strict mode and loose mode. uRPF strict mode means that | Unicast Reverse Path Forwarding (URPF) [RFC3704] [RFC8704] in strict | |||
the router will perform checks for all incoming packets on a certain | mode. | |||
interface: whether the router has a matching entry for the source IP | ||||
in the routing table and whether the router uses the same interface | As specified in Section 5 of [RFC5880], since BFD Echo packets may be | |||
to reach this source IP as where the router received this packet on. | spoofed, some form of authentication SHOULD be included. Considering | |||
Note that the use of BFD Echo function would prevent the use of uRPF | the BFD Echo packets in this document are also BFD Control packets, | |||
in strict mode. | the "Authentication Section" as defined in [RFC5880] for BFD Control | |||
packet is RECOMMENDED to be included within the BFD Echo packet. | ||||
In order to mitigate the potential reflector attack by the remote | ||||
attackers, or infinite loop of the BFD Echo packets, it's RECOMMENDED | ||||
to put two requirements on the device looping BFD Echo packets, the | ||||
first one is that a packet SHOULD NOT be looped unless it has a TTL | ||||
or Hop Limit value of 255, and the second one is that a packet being | ||||
looped MUST NOT reset the TTL or Hop Limit value to 255, and MUST use | ||||
a TTL or Hop Limit value of 254. | ||||
6. IANA Considerations | 6. IANA Considerations | |||
This document has no IANA action requested. | This document has no IANA action requested. | |||
7. Acknowledgements | 7. Acknowledgements | |||
The authors would like to acknowledge Ketan Talaulikar, Greg Mirsky | The authors would like to acknowledge Ketan Talaulikar, Greg Mirsky | |||
and Santosh Pallagatti for their careful review and very helpful | and Santosh Pallagatti for their careful review and very helpful | |||
comments. | comments. | |||
The authors would like to acknowledge Jeff Haas for his insightful | ||||
review and very helpful comments. | ||||
8. Contributors | 8. Contributors | |||
Liu Aihua | Liu Aihua | |||
ZTE | ZTE | |||
Email: liu.aihua@zte.com.cn | Email: liu.aihua@zte.com.cn | |||
Qian Xin | Qian Xin | |||
ZTE | ZTE | |||
Email: qian.xin2@zte.com.cn | Email: qian.xin2@zte.com.cn | |||
Zhao Yanhua | Zhao Yanhua | |||
ZTE | ZTE | |||
Email: zhao.yanhua3@zte.com.cn | Email: zhao.yanhua3@zte.com.cn | |||
9. References | 9. References | |||
9.1. Normative References | 9.1. Normative References | |||
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | ||||
Requirement Levels", BCP 14, RFC 2119, | ||||
DOI 10.17487/RFC2119, March 1997, | ||||
<https://www.rfc-editor.org/info/rfc2119>. | ||||
[RFC5880] Katz, D. and D. Ward, "Bidirectional Forwarding Detection | [RFC5880] Katz, D. and D. Ward, "Bidirectional Forwarding Detection | |||
(BFD)", RFC 5880, DOI 10.17487/RFC5880, June 2010, | (BFD)", RFC 5880, DOI 10.17487/RFC5880, June 2010, | |||
<https://www.rfc-editor.org/info/rfc5880>. | <https://www.rfc-editor.org/info/rfc5880>. | |||
[RFC5881] Katz, D. and D. Ward, "Bidirectional Forwarding Detection | [RFC5881] Katz, D. and D. Ward, "Bidirectional Forwarding Detection | |||
(BFD) for IPv4 and IPv6 (Single Hop)", RFC 5881, | (BFD) for IPv4 and IPv6 (Single Hop)", RFC 5881, | |||
DOI 10.17487/RFC5881, June 2010, | DOI 10.17487/RFC5881, June 2010, | |||
<https://www.rfc-editor.org/info/rfc5881>. | <https://www.rfc-editor.org/info/rfc5881>. | |||
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | ||||
2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | ||||
May 2017, <https://www.rfc-editor.org/info/rfc8174>. | ||||
9.2. Informative References | 9.2. Informative References | |||
[BBF-TR-146] | [BBF-TR-146] | |||
Broadband Forum, "BBF Technical Report - Subscriber | Broadband Forum, "BBF Technical Report - Subscriber | |||
Sessions Issue 1", 2013, <https://www.broadband- | Sessions Issue 1", 2013, <https://www.broadband- | |||
forum.org/technical/download/TR-146.pdf>. | forum.org/technical/download/TR-146.pdf>. | |||
[RFC3704] Baker, F. and P. Savola, "Ingress Filtering for Multihomed | [RFC3704] Baker, F. and P. Savola, "Ingress Filtering for Multihomed | |||
Networks", BCP 84, RFC 3704, DOI 10.17487/RFC3704, March | Networks", BCP 84, RFC 3704, DOI 10.17487/RFC3704, March | |||
2004, <https://www.rfc-editor.org/info/rfc3704>. | 2004, <https://www.rfc-editor.org/info/rfc3704>. | |||
skipping to change at page 9, line 31 ¶ | skipping to change at page 10, line 15 ¶ | |||
[RFC8704] Sriram, K., Montgomery, D., and J. Haas, "Enhanced | [RFC8704] Sriram, K., Montgomery, D., and J. Haas, "Enhanced | |||
Feasible-Path Unicast Reverse Path Forwarding", BCP 84, | Feasible-Path Unicast Reverse Path Forwarding", BCP 84, | |||
RFC 8704, DOI 10.17487/RFC8704, February 2020, | RFC 8704, DOI 10.17487/RFC8704, February 2020, | |||
<https://www.rfc-editor.org/info/rfc8704>. | <https://www.rfc-editor.org/info/rfc8704>. | |||
Authors' Addresses | Authors' Addresses | |||
Weiqiang Cheng | Weiqiang Cheng | |||
China Mobile | China Mobile | |||
Beijing | Beijing | |||
CN | China | |||
Email: chengweiqiang@chinamobile.com | Email: chengweiqiang@chinamobile.com | |||
Ruixue Wang | Ruixue Wang | |||
China Mobile | China Mobile | |||
Beijing | Beijing | |||
CN | China | |||
Email: wangruixue@chinamobile.com | Email: wangruixue@chinamobile.com | |||
Xiao Min | Xiao Min | |||
ZTE Corp. | ZTE Corp. | |||
Nanjing | Nanjing | |||
CN | China | |||
Email: xiao.min2@zte.com.cn | Email: xiao.min2@zte.com.cn | |||
Reshad Rahman | Reshad Rahman | |||
Cisco Systems | Individual | |||
Kanata | Kanata | |||
CA | Canada | |||
Email: rrahman@cisco.com | Email: reshad@yahoo.com | |||
Raj Chetan Boddireddy | Raj Chetan Boddireddy | |||
Juniper Networks | Juniper Networks | |||
Email: rchetan@juniper.net | Email: rchetan@juniper.net | |||
End of changes. 64 change blocks. | ||||
169 lines changed or deleted | 199 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |