| rfc9747.original | rfc9747.txt | |||
|---|---|---|---|---|
| BFD Working Group W. Cheng | Internet Engineering Task Force (IETF) W. Cheng | |||
| Internet-Draft R. Wang | Request for Comments: 9747 R. Wang | |||
| Updates: 5880 (if approved) China Mobile | Updates: 5880 China Mobile | |||
| Intended status: Standards Track X. Min, Ed. | Category: Standards Track X. Min, Ed. | |||
| Expires: 13 June 2025 ZTE Corp. | ISSN: 2070-1721 ZTE Corp. | |||
| R. Rahman | R. Rahman | |||
| Equinix | Equinix | |||
| R. Boddireddy | R. Boddireddy | |||
| Juniper Networks | Juniper Networks | |||
| 10 December 2024 | March 2025 | |||
| Unaffiliated Bidirectional Forwarding Detection (BFD) Echo | Unaffiliated Bidirectional Forwarding Detection (BFD) Echo | |||
| draft-ietf-bfd-unaffiliated-echo-14 | ||||
| Abstract | Abstract | |||
| This document specifies an extension to the Bidirectional Forwarding | This document specifies an extension to the Bidirectional Forwarding | |||
| Detection (BFD) protocol that enables the use of the BFD Echo | Detection (BFD) protocol that enables the use of the BFD Echo | |||
| function without the need for an associated BFD control session. | function without the need for an associated BFD control session. | |||
| This "Unaffiliated BFD Echo" mechanism allows rapid detection of | This "Unaffiliated BFD Echo" mechanism allows rapid detection of | |||
| forwarding path failures in networks where establishing BFD control | forwarding path failures in networks where establishing BFD control | |||
| sessions is impractical or undesirable. By decoupling the Echo | sessions is impractical or undesirable. By decoupling the Echo | |||
| function from the control plane, network devices can utilize BFD's | function from the control plane, network devices can utilize BFD's | |||
| fast failure detection capabilities in a simplified manner, enhancing | fast failure detection capabilities in a simplified manner, enhancing | |||
| network resiliency and operational efficiency. | network resiliency and operational efficiency. | |||
| This document updates RFC 5880 by defining a new Unaffiliated BFD | This document updates RFC 5880 by defining a new Unaffiliated BFD | |||
| Echo mechanism. | Echo mechanism. | |||
| Status of This Memo | Status of This Memo | |||
| This Internet-Draft is submitted in full conformance with the | This is an Internet Standards Track document. | |||
| provisions of BCP 78 and BCP 79. | ||||
| Internet-Drafts are working documents of the Internet Engineering | ||||
| Task Force (IETF). Note that other groups may also distribute | ||||
| working documents as Internet-Drafts. The list of current Internet- | ||||
| Drafts is at https://datatracker.ietf.org/drafts/current/. | ||||
| Internet-Drafts are draft documents valid for a maximum of six months | This document is a product of the Internet Engineering Task Force | |||
| and may be updated, replaced, or obsoleted by other documents at any | (IETF). It represents the consensus of the IETF community. It has | |||
| time. It is inappropriate to use Internet-Drafts as reference | received public review and has been approved for publication by the | |||
| material or to cite them other than as "work in progress." | Internet Engineering Steering Group (IESG). Further information on | |||
| Internet Standards is available in Section 2 of RFC 7841. | ||||
| This Internet-Draft will expire on 13 June 2025. | Information about the current status of this document, any errata, | |||
| and how to provide feedback on it may be obtained at | ||||
| https://www.rfc-editor.org/info/rfc9747. | ||||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2024 IETF Trust and the persons identified as the | Copyright (c) 2025 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 (https://trustee.ietf.org/ | Provisions Relating to IETF Documents | |||
| license-info) in effect on the date of publication of this document. | (https://trustee.ietf.org/license-info) in effect on the date of | |||
| Please review these documents carefully, as they describe your rights | publication of this document. Please review these documents | |||
| and restrictions with respect to this document. Code Components | carefully, as they describe your rights and restrictions with respect | |||
| extracted from this document must include Revised BSD License text as | to this document. Code Components extracted from this document must | |||
| described in Section 4.e of the Trust Legal Provisions and are | include Revised BSD License text as described in Section 4.e of the | |||
| provided without warranty as described in the Revised BSD License. | Trust Legal Provisions and are provided without warranty as described | |||
| in the Revised BSD License. | ||||
| Table of Contents | Table of Contents | |||
| 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Introduction | |||
| 1.1. Conventions Used in This Document . . . . . . . . . . . . 4 | 1.1. Conventions Used in This Document | |||
| 2. Unaffiliated BFD Echo Procedures . . . . . . . . . . . . . . 4 | 2. Unaffiliated BFD Echo Procedures | |||
| 3. Updates to RFC 5880 . . . . . . . . . . . . . . . . . . . . . 7 | 3. Updates to RFC 5880 | |||
| 4. Operational Considerations . . . . . . . . . . . . . . . . . 10 | 4. Operational Considerations | |||
| 5. Security Considerations . . . . . . . . . . . . . . . . . . . 10 | 5. Security Considerations | |||
| 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 11 | 6. IANA Considerations | |||
| 7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 11 | 7. References | |||
| 8. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 11 | 7.1. Normative References | |||
| 9. References . . . . . . . . . . . . . . . . . . . . . . . . . 11 | 7.2. Informative References | |||
| 9.1. Normative References . . . . . . . . . . . . . . . . . . 11 | Acknowledgements | |||
| 9.2. Informative References . . . . . . . . . . . . . . . . . 12 | Contributors | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 12 | Authors' Addresses | |||
| 1. Introduction | 1. Introduction | |||
| To minimize the impact of device and link faults on services and to | To minimize the impact of device and link faults on services and to | |||
| improve network availability in single-hop scenarios, a network | improve network availability in single-hop scenarios, a network | |||
| device needs the capability to quickly detect communication faults | device needs the capability to quickly detect communication faults | |||
| with adjacent devices. Prompt detection allows for timely remedial | with adjacent devices. Prompt detection allows for timely remedial | |||
| actions to ensure service continuity. | actions to ensure service continuity. | |||
| BFD [RFC5880] provides a low-overhead, short-interval method for | BFD [RFC5880] provides a low-overhead, short-interval method for | |||
| detecting faults on the communication path between adjacent | detecting faults on the communication path between adjacent | |||
| forwarding engines, which may include interfaces, data links, and the | forwarding engines, which may include interfaces, data links, and the | |||
| forwarding engines themselves. BFD offers a unified mechanism to | forwarding engines themselves. BFD offers a unified mechanism to | |||
| monitor any media and protocol layers in real time. | monitor any media and protocol layers in real time. | |||
| BFD defines two primary modes-Asynchronous mode and Demand mode-to | BFD defines two primary modes -- Asynchronous mode and Demand mode -- | |||
| accommodate various deployment scenarios. Additionally, it supports | to accommodate various deployment scenarios. Additionally, it | |||
| an Echo function that reduces the level of BFD support required in | supports an Echo function that reduces the level of BFD support | |||
| device implementations, as described in Section 3.2 of [RFC5880]. | required in device implementations, as described in Section 3.2 of | |||
| [RFC5880]. When the Echo function is activated, the local system | ||||
| When the Echo function is activated, the local system sends BFD Echo | sends BFD Echo packets, and the remote system loops back the received | |||
| packets, and the remote system loops back the received Echo packets | Echo packets through the forwarding path, as described in Section 5 | |||
| through the forwarding path, as described in Section 5 of [RFC5880] | of [RFC5880] and Section 4 of [RFC5881]. If several consecutive BFD | |||
| and Section 4 of [RFC5881]. If several consecutive BFD Echo packets | Echo packets are not received by the local system, the BFD session is | |||
| are not received by the local system, the BFD session is declared | declared Down. | |||
| Down. | ||||
| There are two typical scenarios when using the BFD Echo function: | There are two typical scenarios when using the BFD Echo function: | |||
| * Full BFD protocol capability with adjunct Echo function | * Full BFD protocol capability with adjunct Echo function | |||
| (Affiliated BFD Echo): This scenario requires both the local | (Affiliated BFD Echo): This scenario requires both the local | |||
| device and the adjacent device to support the full BFD protocol. | device and the adjacent device to support the full BFD protocol. | |||
| This operation remains unchanged from [RFC5880]. | This operation remains unchanged from [RFC5880]. | |||
| * BFD Echo-Only method without full BFD protocol capability | * BFD Echo-Only method without full BFD protocol capability | |||
| (Unaffiliated BFD Echo): This scenario requires only the local | (Unaffiliated BFD Echo): This scenario requires only the local | |||
| skipping to change at page 3, line 35 ¶ | skipping to change at line 123 ¶ | |||
| method requires the local device to send packets with one of its | method requires the local device to send packets with one of its | |||
| own IP addresses as the destination address, upon receipt of which | own IP addresses as the destination address, upon receipt of which | |||
| the adjacent device loops them back to the local device. Also | the adjacent device loops them back to the local device. Also | |||
| note that this method monitors the connectivity to a device over a | note that this method monitors the connectivity to a device over a | |||
| specific interface and does not verify the availability of a | specific interface and does not verify the availability of a | |||
| specific IP address at that device. | specific IP address at that device. | |||
| This document specifies the Unaffiliated BFD Echo scenario. | This document specifies the Unaffiliated BFD Echo scenario. | |||
| Section 5 of [RFC5880] indicates that the payload of an Affiliated | Section 5 of [RFC5880] indicates that the payload of an Affiliated | |||
| BFD Echo packet is a local matter and, therefore, its contents are | BFD Echo packet is a local matter; therefore, its contents are | |||
| outside the scope of that specification. This document, however, | outside the scope of that specification. This document, however, | |||
| specifies the contents of the Unaffiliated BFD Echo packet and the | specifies the contents of the Unaffiliated BFD Echo packet and the | |||
| procedures for handling them. While this may appear to contravene | procedures for handling them. While this may appear to contravene | |||
| Section 5 of [RFC5880], the core behavior in that RFC states that the | Section 5 of [RFC5880], the core behavior in that RFC states that the | |||
| contents of BFD Echo packets are a local matter; this document is | contents of BFD Echo packets are a local matter; this document is | |||
| defining that "local matter". Regarding the selection of IP | defining that "local matter". Regarding the selection of IP | |||
| addresses, the rules stated in Section 4 of [RFC5881] are applicable | addresses, the rules stated in Section 4 of [RFC5881] are applicable | |||
| to the encapsulation of an Unaffiliated BFD Echo packet. | to the encapsulation of an Unaffiliated BFD Echo packet. | |||
| Section 6.2.2 of [BBF-TR-146] describes a use case for the | Section 6.2.2 of [BBF-TR-146] describes a use case for the | |||
| Unaffiliated BFD Echo. | Unaffiliated BFD Echo. | |||
| This document updates [RFC5880] by defining a new method of BFD Echo- | This document updates [RFC5880] by defining a new method of BFD Echo- | |||
| only operation which only impacts the BFD Echo packets sender without | only operation which only impacts the sender of BFD Echo packets | |||
| requiring an implementation to support the BFD protocol at the loop- | without requiring an implementation to support the BFD protocol at | |||
| back device, such that any IP forwarder can loop-back the BFD Echo | the loopback device, such that any IP forwarder can loop back the BFD | |||
| packets. It specifies the use of the Unaffiliated BFD Echo over IPv4 | Echo packets. It specifies the use of the Unaffiliated BFD Echo over | |||
| and IPv6 for a single IP hop. The reason why it cannot be used for | IPv4 and IPv6 for a single IP hop. The reason why it cannot be used | |||
| multihop paths is that the Unaffiliated BFD Echo packets would be | for multihop paths is that the Unaffiliated BFD Echo packets would be | |||
| looped back by the first hop. A full description of the updates to | looped back by the first hop. A full description of the updates to | |||
| [RFC5880] is provided in Section 3. | [RFC5880] is provided in Section 3. | |||
| 1.1. Conventions Used in This Document | 1.1. Conventions Used in This Document | |||
| The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
| "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | |||
| "OPTIONAL" in this document are to be interpreted as described in BCP | "OPTIONAL" in this document are to be interpreted as described in | |||
| 14 [RFC2119] [RFC8174] when, and only when, they appear in all | BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all | |||
| capitals, as shown here. | capitals, as shown here. | |||
| 2. Unaffiliated BFD Echo Procedures | 2. Unaffiliated BFD Echo Procedures | |||
| This section specifies the Unaffiliated BFD Echo procedures. | This section specifies the Unaffiliated BFD Echo procedures. | |||
| Device A Device B | Device A Device B | |||
| +----------------+ +----------------+ | +----------------+ +----------------+ | |||
| | | | | | | | | | | |||
| | |------------| | | | | |------------| | | | |||
| skipping to change at page 4, line 38 ¶ | skipping to change at line 175 ¶ | |||
| | | | Unaffiliated BFD Echo | | | | | | Unaffiliated BFD Echo | | | |||
| | | -------------------------------| BFD | | | | -------------------------------| BFD | | |||
| | | | | packets | | | | | | packets | | |||
| | | <-------------------------------| looped | | | | <-------------------------------| looped | | |||
| | |------------| | | | | |------------| | | | |||
| | | | | | | | | | | |||
| | | | | | | | | | | |||
| +----------------+ +----------------+ | +----------------+ +----------------+ | |||
| BFD supported BFD not supported | BFD supported BFD not supported | |||
| Figure 1: Unaffiliated BFD Echo diagram | Figure 1: Unaffiliated BFD Echo | |||
| As shown in Figure 1, device A supports BFD, whereas device B is a | As shown in Figure 1, device A supports BFD, whereas device B is a | |||
| regular IP forwarder that does not support BFD. Device A would send | regular IP forwarder that does not support BFD. Device A would send | |||
| Unaffiliated BFD Echo packets, and after receiving the Unaffiliated | Unaffiliated BFD Echo packets, and after receiving the Unaffiliated | |||
| BFD Echo packets sent from device A, the one-hop-away BFD peer device | BFD Echo packets sent from device A, the one-hop-away BFD peer device | |||
| B immediately loops them back by normal IP forwarding, this allows | B immediately loops them back by normal IP forwarding. This allows | |||
| device A to rapidly detect a connectivity loss to device B. Note | device A to rapidly detect a connectivity loss to device B. Note | |||
| that device B would not intercept any received Unaffiliated BFD Echo | that device B would not intercept any received Unaffiliated BFD Echo | |||
| packet or parse any BFD protocol field within the Unaffiliated BFD | packet or parse any BFD protocol field within the Unaffiliated BFD | |||
| Echo packet. | Echo packet. | |||
| An Unaffiliated BFD Echo session is not actually a BFD session | An Unaffiliated BFD Echo session is not actually a BFD session | |||
| because there is no coordination of BFD protocol state between the | because there is no coordination of BFD protocol state between the | |||
| two link ends: the remote end does not support BFD and so cannot | two link ends: the remote end does not support BFD and so cannot | |||
| engage in a BFD session. The local end as an initiator may regard | engage in a BFD session. From the standpoint of the local end (as an | |||
| the Unaffiliated BFD Echo session as a BFD session from its own | initiator), the Unaffiliated BFD Echo session may be regarded as a | |||
| standpoint. | BFD session. | |||
| For the Unaffiliated Echo procedure, an Unaffiliated BFD Echo session | For the Unaffiliated Echo procedure, an Unaffiliated BFD Echo session | |||
| is established on device A. The session MUST adhere to the BFD state | is established on device A. The session MUST adhere to the BFD state | |||
| machine specified in Section 6.2 of [RFC5880], with the exception | machine specified in Section 6.2 of [RFC5880], with the exception | |||
| that the received state is not derived from BFD Control packets | that the received state is not derived from BFD Control packets | |||
| originating from the remote system, but rather from packets that are | originating from the remote system, but rather from packets that are | |||
| generated by the local system and looped back from the remote system. | generated by the local system and looped back from the remote system. | |||
| Consequently, the AdminDown state is not utilized in Unaffiliated BFD | Consequently, the AdminDown state is not utilized in Unaffiliated BFD | |||
| Echo. | Echo. | |||
| BFD Control packets are transmitted and received as Unaffiliated BFD | BFD Control packets are transmitted and received as Unaffiliated BFD | |||
| Echo packets, using UDP destination port 3785, as defined in | Echo packets, using UDP destination port 3785, as defined in | |||
| [RFC5881]. The standard procedures for BFD Asynchronous sessions are | [RFC5881]. The standard procedures for BFD Asynchronous sessions are | |||
| applied to the looped BFD Control packets, including packet | applied to the looped BFD Control packets, including packet | |||
| validation and authentication, in accordance with [RFC5880]. | validation and authentication, in accordance with [RFC5880]. | |||
| Once an Unaffiliated BFD Echo session is created on device A, it | Once an Unaffiliated BFD Echo session is created on device A, it | |||
| starts sending Unaffiliated BFD Echo packets. Unaffiliated BFD Echo | starts sending Unaffiliated BFD Echo packets. Unaffiliated BFD Echo | |||
| packets with zeroed "Your Discriminator" field are demultiplexed to | packets with zeroed "Your Discriminator" field are demultiplexed to | |||
| the proper session based on the source IP address or UDP source port, | the proper session based on the source IP address or UDP source port. | |||
| once the remote system loops back the local discriminator, all | After the remote system loops back the local discriminator, all | |||
| further received packets are demultiplexed based on the "Your | further received packets are demultiplexed based on the "Your | |||
| Discriminator" field only, which is conformed to the procedure | Discriminator" field only, which conforms to the procedure specified | |||
| specified in Section 6.3 of [RFC5880]. An Unaffiliated BFD Echo | in Section 6.3 of [RFC5880]. An Unaffiliated BFD Echo packet follows | |||
| packet follows the same encapsulation rules as for a BFD Echo packet | the same encapsulation rules as for a BFD Echo packet as specified in | |||
| as specified in Section 4 of [RFC5881]. All Unaffiliated BFD Echo | Section 4 of [RFC5881]. All Unaffiliated BFD Echo packets for the | |||
| packets for the session MUST be sent with a TTL or Hop Limit value of | session MUST be sent with a TTL or Hop Limit value of 255. Received | |||
| 255. Received packets MUST have a TTL or Hop Limit value of 254 | packets MUST have a TTL or Hop Limit value of 254 (similar to | |||
| (similar to Appendix A of [RFC5082] to verify against a configured | Appendix A of [RFC5082] to verify against a configured number of | |||
| number of hops); otherwise, the received packets MUST be dropped. | hops); otherwise, the received packets MUST be dropped. | |||
| In the context of an Unaffiliated BFD Echo packet, the "Desired Min | In the context of an Unaffiliated BFD Echo packet, the "Desired Min | |||
| TX Interval" and "Required Min RX Interval" fields, as defined in | TX Interval" and "Required Min RX Interval" fields, as defined in | |||
| [RFC5880], MUST be populated with a specific value to prevent the | [RFC5880], MUST be populated with a specific value to prevent the | |||
| potential exposure of uninitialized memory. It is RECOMMENDED that | potential exposure of uninitialized memory. It is RECOMMENDED that | |||
| these fields be set to a value of 1 second (1,000,000 microseconds). | these fields be set to a value of 1 second (1,000,000 microseconds). | |||
| However, upon receipt, these values MUST be ignored and MUST NOT be | However, upon receipt, these values MUST be ignored and MUST NOT be | |||
| used in the calculation of the Detection Time. | used in the calculation of the Detection Time. | |||
| The "Required Min Echo RX Interval" field, as defined in [RFC5880], | The "Required Min Echo RX Interval" field, as defined in [RFC5880], | |||
| skipping to change at page 6, line 21 ¶ | skipping to change at line 252 ¶ | |||
| by default on hosts. The method for provisioning device B to loop | by default on hosts. The method for provisioning device B to loop | |||
| back Unaffiliated BFD Echo packets is outside the scope of this | back Unaffiliated BFD Echo packets is outside the scope of this | |||
| document. | document. | |||
| Similar to what's specified in [RFC5880], the Unaffiliated BFD Echo | Similar to what's specified in [RFC5880], the Unaffiliated BFD Echo | |||
| session begins with the periodic, slow transmission of Unaffiliated | session begins with the periodic, slow transmission of Unaffiliated | |||
| BFD Echo packets. The slow transmission rate should be no greater | BFD Echo packets. The slow transmission rate should be no greater | |||
| than one packet per second, until the session on device A is Up. | than one packet per second, until the session on device A is Up. | |||
| After the session is Up, the provisioned transmission interval is | After the session is Up, the provisioned transmission interval is | |||
| used. When the Unaffiliated BFD Echo session on device A goes Down, | used. When the Unaffiliated BFD Echo session on device A goes Down, | |||
| the slow transmission rate is resumed. The "Detect Mult" defined in | the slow transmission rate is resumed. The "Detect Mult" field | |||
| [RFC5880] MUST be set to a value provisioned on device A. When the | defined in [RFC5880] MUST be set to a value provisioned on device A. | |||
| bfd.SessionState is Up and a "Detect Mult" number of Unaffiliated BFD | When the bfd.SessionState is Up and a "Detect Mult" number of | |||
| Echo packets have not arrived at device A as they should, the device | Unaffiliated BFD Echo packets have not arrived at device A as they | |||
| A "MUST set bfd.SessionState to Down and bfd.LocalDiag to 2 (Echo | should, the device A "MUST set bfd.SessionState to Down and | |||
| Function Failed)", as specified in Section 6.8.5 of [RFC5880]. | bfd.LocalDiag to 2 (Echo Function Failed)", as specified in | |||
| Section 6.8.5 of [RFC5880]. | ||||
| In summary, the Unaffiliated BFD Echo packet reuses the format of the | In summary, the Unaffiliated BFD Echo packet reuses the format of the | |||
| BFD Control packet defined in [RFC5880], and the fields within the | BFD Control packet defined in [RFC5880], and the fields within the | |||
| Unaffiliated BFD Echo packet are populated as follows: | Unaffiliated BFD Echo packet are populated as follows: | |||
| * My Discriminator: MUST be set to the provisioned local | * My Discriminator: MUST be set to the provisioned local | |||
| discriminator. | discriminator. | |||
| * Your Discriminator: MUST initially be set to 0, and then MUST be | * Your Discriminator: MUST initially be set to 0, and then MUST be | |||
| set to the value of "My Discriminator" looped back from the remote | set to the value of "My Discriminator" looped back from the remote | |||
| skipping to change at page 7, line 20 ¶ | skipping to change at line 298 ¶ | |||
| Echo operation, only the local system has the BFD protocol enabled, | Echo operation, only the local system has the BFD protocol enabled, | |||
| while the remote system simply loops back the received BFD Echo | while the remote system simply loops back the received BFD Echo | |||
| packets as ordinary data packets, without engaging in the BFD | packets as ordinary data packets, without engaging in the BFD | |||
| protocol. | protocol. | |||
| This document updates [RFC5880] with respect to its descriptions on | This document updates [RFC5880] with respect to its descriptions on | |||
| the BFD Echo function as follows. | the BFD Echo function as follows. | |||
| The 4th paragraph of Section 3.2 of [RFC5880] is updated as below: | The 4th paragraph of Section 3.2 of [RFC5880] is updated as below: | |||
| OLD TEXT | OLD TEXT | |||
| An adjunct to both modes is the Echo function. | ||||
| NEW TEXT | | An adjunct to both modes is the Echo function. | |||
| An adjunct to both modes is the Echo function, which can also be | ||||
| running independently. | ||||
| OLD TEXT | NEW TEXT | |||
| 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). | ||||
| NEW TEXT | | An adjunct to both modes is the Echo function, which can also be | |||
| Since the Echo function is handling the task of detection, the | | running independently. | |||
| rate of periodic transmission of Control packets may be reduced | ||||
| (in the case of Asynchronous mode) or eliminated completely (in | OLD TEXT | |||
| the case of Demand mode). The Echo function may also be used | ||||
| independently, with neither Asynchronous nor 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). | ||||
| NEW TEXT | ||||
| | 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. | ||||
| The 3rd and 9th paragraphs of Section 6.1 of [RFC5880] are updated as | The 3rd and 9th paragraphs of Section 6.1 of [RFC5880] are updated as | |||
| below: | below: | |||
| OLD TEXT | OLD TEXT | |||
| 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 | ||||
| allow it. The rate of transmission of Control packets is | ||||
| typically kept low when the Echo function is active. | ||||
| NEW TEXT | | Once the BFD session is Up, a system can choose to start the Echo | |||
| When a system is running with Asynchronous or Demand mode, once | | function if it desires and the other system signals that it will | |||
| the BFD session is Up, it can choose to start the Echo function if | | allow it. The rate of transmission of Control packets is | |||
| it desires and the other system signals that it will allow it. | | typically kept low when the Echo function is active. | |||
| The rate of transmission of Control packets is typically kept low | NEW TEXT | |||
| for Asynchronous mode or eliminated completely for Demand mode | ||||
| when the Echo function is active. | ||||
| OLD TEXT | | When a system is running with Asynchronous or Demand mode, once | |||
| If the session goes Down, the transmission of Echo packets (if | | the BFD session is Up, it can choose to start the Echo function if | |||
| any) ceases, and the transmission of Control packets goes back to | | it desires and the other system signals that it will allow it. | |||
| the slow rate. | | The rate of transmission of Control packets is typically kept low | |||
| | for Asynchronous mode or eliminated completely for Demand mode | ||||
| | when the Echo function is active. | ||||
| NEW TEXT | OLD TEXT | |||
| In Asynchronous mode or Demand mode, if the session goes Down, the | ||||
| transmission of Echo packets (if any) ceases, and the transmission | | If the session goes Down, the transmission of Echo packets (if | |||
| of Control packets goes back to the slow rate. | | any) ceases, and the transmission of Control packets goes back to | |||
| | the slow rate. | ||||
| NEW TEXT | ||||
| | In Asynchronous mode or Demand mode, if the session goes Down, the | ||||
| | transmission of Echo packets (if any) ceases, and the transmission | ||||
| | of Control packets goes back to the slow rate. | ||||
| The 2nd paragraph of Section 6.4 of [RFC5880] is updated as below: | The 2nd paragraph of Section 6.4 of [RFC5880] is updated as below: | |||
| OLD TEXT | OLD TEXT | |||
| When a system is using the Echo function, it is advantageous to | ||||
| choose a sedate reception rate for Control packets, since liveness | ||||
| detection is being handled by the Echo packets. This can be | ||||
| controlled by manipulating the Required Min RX Interval field (see | ||||
| section 6.8.3). | ||||
| NEW TEXT | | When a system is using the Echo function, it is advantageous to | |||
| When a system is using the Echo function with Asynchronous mode, | | choose a sedate reception rate for Control packets, since liveness | |||
| it is advantageous to choose a sedate reception rate for Control | | detection is being handled by the Echo packets. This can be | |||
| packets, since liveness detection is being handled by the Echo | | controlled by manipulating the Required Min RX Interval field (see | |||
| packets. This can be controlled by manipulating the Required Min | | section 6.8.3). | |||
| RX Interval field (see section 6.8.3). Note that a system | ||||
| operating in Demand mode would direct the remote system to cease | NEW TEXT | |||
| the periodic transmission of BFD Control packets, by setting the | ||||
| Demand (D) bit in its BFD Control packets. | | When a system is using the Echo function with Asynchronous mode, | |||
| | it is advantageous to choose a sedate reception rate for Control | ||||
| | packets, since liveness detection is being handled by the Echo | ||||
| | packets. This can be controlled by manipulating the Required Min | ||||
| | RX Interval field (see section 6.8.3). Note that a system | ||||
| | operating in Demand mode would direct the remote system to cease | ||||
| | the periodic transmission of BFD Control packets, by setting the | ||||
| | Demand (D) bit in its BFD Control packets. | ||||
| The 2nd paragraph of Section 6.8 of [RFC5880] is updated as below: | The 2nd paragraph of Section 6.8 of [RFC5880] is updated as below: | |||
| OLD TEXT | OLD TEXT | |||
| When a system is said to have "the Echo function active" it means | ||||
| that the system is sending BFD Echo packets, implying that the | ||||
| session is Up and the other system has signaled its willingness to | ||||
| loop back Echo packets. | ||||
| NEW TEXT | | When a system is said to have "the Echo function active" it means | |||
| When a system in Asynchronous or Demand mode is said to have "the | | that the system is sending BFD Echo packets, implying that the | |||
| Echo function active" it means that the system is sending BFD Echo | | session is Up and the other system has signaled its willingness to | |||
| packets, implying that the session is Up and the other system has | | loop back Echo packets. | |||
| signaled its willingness to loop back Echo packets. | ||||
| NEW TEXT | ||||
| | 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 | ||||
| | packets, implying that the session is Up and the other system has | ||||
| | signaled its willingness to loop back Echo packets. | ||||
| The 7th paragraph of Section 6.8.3 of [RFC5880] is updated as below: | The 7th paragraph of Section 6.8.3 of [RFC5880] is updated as below: | |||
| OLD TEXT | OLD TEXT | |||
| When the Echo function is active, a system SHOULD set | ||||
| bfd.RequiredMinRxInterval to a value of not less than one second | ||||
| (1,000,000 microseconds). This is intended to keep received BFD | ||||
| Control traffic at a negligible level, since the actual detection | ||||
| function is being performed using BFD Echo packets. | ||||
| NEW TEXT | | When the Echo function is active, a system SHOULD set | |||
| When the Echo function is active with Asynchronous mode, a system | | bfd.RequiredMinRxInterval to a value of not less than one second | |||
| SHOULD set bfd.RequiredMinRxInterval to a value of not less than | | (1,000,000 microseconds). This is intended to keep received BFD | |||
| one second (1,000,000 microseconds). This is intended to keep | | Control traffic at a negligible level, since the actual detection | |||
| received BFD Control traffic at a negligible level, since the | | function is being performed using BFD Echo packets. | |||
| actual detection function is being performed using BFD Echo | ||||
| packets. A system operating in Demand mode would not receive BFD | NEW TEXT | |||
| Control traffic. | ||||
| | When the Echo function is active with Asynchronous mode, a system | ||||
| | SHOULD set bfd.RequiredMinRxInterval to a value of not less than | ||||
| | one second (1,000,000 microseconds). This is intended to keep | ||||
| | received BFD Control traffic at a negligible level, since the | ||||
| | actual detection function is being performed using BFD Echo | ||||
| | packets. A system operating in Demand mode would not receive BFD | ||||
| | Control traffic. | ||||
| The 1st and 2nd paragraphs of Section 6.8.9 of [RFC5880] are updated | The 1st and 2nd paragraphs of Section 6.8.9 of [RFC5880] are updated | |||
| as below: | as below: | |||
| OLD TEXT | OLD TEXT | |||
| BFD Echo packets MUST NOT be transmitted when bfd.SessionState is | ||||
| not Up. BFD Echo packets MUST NOT be transmitted unless the last | ||||
| BFD Control packet received from the remote system contains a | ||||
| nonzero value in Required Min Echo RX Interval. | ||||
| NEW TEXT | | BFD Echo packets MUST NOT be transmitted when bfd.SessionState is | |||
| When a system is using the Echo function with either Asynchronous | | not Up. BFD Echo packets MUST NOT be transmitted unless the last | |||
| or Demand mode, BFD Echo packets MUST NOT be transmitted when | | BFD Control packet received from the remote system contains a | |||
| bfd.SessionState is not Up, and BFD Echo packets MUST NOT be | | nonzero value in Required Min Echo RX Interval. | |||
| transmitted unless the last BFD Control packet received from the | | | |||
| remote system contains a nonzero value in Required Min Echo RX | | BFD Echo packets MAY be transmitted when bfd.SessionState is Up. | |||
| Interval. | | 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: [...] | ||||
| OLD TEXT | NEW 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 MUST NOT be transmitted when | |||
| or Demand mode, BFD Echo packets MAY be transmitted when | | bfd.SessionState is not Up, and BFD Echo packets MUST NOT be | |||
| bfd.SessionState is Up, and the interval between transmitted BFD | | transmitted unless the last BFD Control packet received from the | |||
| Echo packets MUST NOT be less than the value advertised by the | | remote system contains a nonzero value in Required Min Echo RX | |||
| remote system in Required Min Echo RX Interval... | | Interval. | |||
| | | ||||
| | When a system is using the Echo function with either Asynchronous | ||||
| | or Demand mode, BFD Echo packets MAY be transmitted when | ||||
| | bfd.SessionState is Up, and 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: | ||||
| | [...] | ||||
| 4. Operational Considerations | 4. Operational Considerations | |||
| All Operational Considerations from [RFC5880] apply. Since this | All operational considerations from [RFC5880] apply. Since this | |||
| mechanism leverages existing BFD machinery, particularly periodic | mechanism leverages existing BFD machinery, particularly periodic | |||
| pacing of traffic based on configuration, there's no real possibility | pacing of traffic based on configuration, there's no real possibility | |||
| to create congestion. Moreover, creating congestion would be counter | to create congestion. Moreover, creating congestion would be | |||
| productive to check the bidirectional connectivity. | counterproductive to checking the bidirectional connectivity. | |||
| Some devices that would benefit from the use of BFD may be unable to | Some devices that would benefit from the use of BFD may be unable to | |||
| support the full BFD protocol. Examples of such devices include | support the full BFD protocol. Examples of such devices include | |||
| servers running virtual machines, or Internet of Things (IoT) | servers running virtual machines, or Internet of Things (IoT) | |||
| devices. By using Unaffiliated BFD Echo, these devices only need to | devices. By using Unaffiliated BFD Echo, these devices only need to | |||
| support a basic loopback function. | support a basic loopback function. | |||
| As specified in Section 2 of this document, some configuration is | As specified in Section 2 of this document, some configuration is | |||
| needed to make the Unaffiliated BFD Echo work, although the | needed to make the Unaffiliated BFD Echo work, although the | |||
| configuration won't go beyond the scope of [RFC5880]. At a BFD- | configuration won't go beyond the scope of [RFC5880]. At a BFD- | |||
| enabled local system, the Unaffiliated BFD Echo session can coexist | enabled local system, the Unaffiliated BFD Echo session can coexist | |||
| with other type of BFD session, in which scenario the remote system | with other types of BFD sessions. In that scenario, the remote | |||
| for the Unaffiliated BFD Echo session must be different from the | system for the Unaffiliated BFD Echo session must be different from | |||
| remote system for other type of BFD session, and the local system's | the remote system for any other type of BFD session, and the local | |||
| discriminators for different BFD sessions must be different, at the | system's discriminators for different BFD sessions must be different. | |||
| same time it's not necessary for the local system to differentiate | At the same time, it's not necessary for the local system to | |||
| the Unaffiliated BFD Echo session from other type of BFD session. | differentiate the Unaffiliated BFD Echo session from the other types | |||
| of BFD sessions. | ||||
| 5. Security Considerations | 5. Security Considerations | |||
| All Security Considerations from [RFC5880] and [RFC5881] apply. | All security considerations from [RFC5880] and [RFC5881] apply. | |||
| Unaffiliated BFD Echo requires the remote device to loop Unaffiliated | Unaffiliated BFD Echo requires the remote device to loop Unaffiliated | |||
| BFD Echo packets. In order to provide this service, the remote | BFD Echo packets. In order to provide this service, the remote | |||
| device cannot make use of Unicast Strict Reverse Path Forwarding | device cannot make use of Unicast Strict Reverse Path Forwarding | |||
| (RPF) [RFC3704], otherwise the Unaffiliated BFD Echo packets might | (RPF) [RFC3704], otherwise the Unaffiliated BFD Echo packets might | |||
| not pass the RPF check at the remote device. | not pass the RPF check at the remote device. | |||
| As described in Section 5 of [RFC5880], BFD Echo packets may be | As described in Section 5 of [RFC5880], BFD Echo packets may be | |||
| spoofed. Specifically for Unaffiliated BFD Echo, a DoS attacker may | spoofed. Specifically for Unaffiliated BFD Echo, a DoS attacker may | |||
| send spoofed Unaffiliated BFD Echo packets to the loop-back device, | send spoofed Unaffiliated BFD Echo packets to the loopback device, so | |||
| so some form of authentication SHOULD be included. Considering the | some form of authentication SHOULD be included. Considering the | |||
| Unaffiliated BFD Echo packets in this document are also BFD Control | Unaffiliated BFD Echo packets in this document are also BFD Control | |||
| packets, the "Authentication Section" as defined in [RFC5880] for BFD | packets, the "Authentication Section" as defined in [RFC5880] for a | |||
| Control packet is RECOMMENDED to be included within the Unaffiliated | BFD Control packet is RECOMMENDED to be included within the | |||
| BFD Echo packet. | Unaffiliated BFD Echo packet. | |||
| As stated in Section 2, in order to avoid unset values being a | As stated in Section 2, in order to avoid unset values being a | |||
| potential vector for disclosure of uninitialized memory, all fields | potential vector for disclosure of uninitialized memory, all fields | |||
| of the Unaffiliated BFD Echo packet MUST be populated with a certain | of the Unaffiliated BFD Echo packet MUST be populated with a certain | |||
| value, even if some of the fields are ignored on receipt. | value, even if some of the fields are ignored on receipt. | |||
| 6. IANA Considerations | 6. IANA Considerations | |||
| This document has no IANA action requested. | This document has no IANA actions. | |||
| 7. Acknowledgements | ||||
| The authors would like to acknowledge Ketan Talaulikar, Greg Mirsky, | ||||
| Santosh Pallagatti, Aijun Wang, Eric Vyncke, Adrian Farrel, Tim | ||||
| Wicinski, Dhruv Dhody, Stephen Farrell, Gunter Van de Velde, Gyan | ||||
| Mishra, Brian Trammell, Gorry Fairhurst, Mahesh Jethanandani, John | ||||
| Scudder, Murray Kucherawy, and Zaheduzzaman Sarker for their careful | ||||
| review and very helpful comments. | ||||
| The authors would like to acknowledge Jeff Haas for his guidance, | ||||
| insightful review, and very helpful comments. | ||||
| The authors would like to acknowledge Erik Auerswald for his | ||||
| insightful comments during the discussion of this document. | ||||
| The authors would like to acknowledge Detao Zhao for the very helpful | ||||
| discussion. | ||||
| 8. Contributors | ||||
| Liu Aihua | ||||
| ZTE | ||||
| Email: liu.aihua@zte.com.cn | ||||
| Qian Xin | ||||
| ZTE | ||||
| Email: qian.xin2@zte.com.cn | ||||
| Zhao Yanhua | ||||
| ZTE | ||||
| Email: zhao.yanhua3@zte.com.cn | ||||
| 9. References | 7. References | |||
| 9.1. Normative References | 7.1. Normative References | |||
| [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
| Requirement Levels", BCP 14, RFC 2119, | Requirement Levels", BCP 14, RFC 2119, | |||
| DOI 10.17487/RFC2119, March 1997, | DOI 10.17487/RFC2119, March 1997, | |||
| <https://www.rfc-editor.org/info/rfc2119>. | <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 | [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | |||
| 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | |||
| May 2017, <https://www.rfc-editor.org/info/rfc8174>. | May 2017, <https://www.rfc-editor.org/info/rfc8174>. | |||
| 9.2. Informative References | 7.2. Informative References | |||
| [BBF-TR-146] | [BBF-TR-146] | |||
| Broadband Forum, "BBF Technical Report - Subscriber | Broadband Forum, "TR-146: Subscriber Sessions", Broadband | |||
| Sessions Issue 1", 2013, <https://www.broadband- | Forum Technical Report, TR-146, Issue 1, May 2013, | |||
| forum.org/technical/download/TR-146.pdf>. | <https://www.broadband-forum.org/pdfs/tr-146-1-0-0.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>. | |||
| [RFC5082] Gill, V., Heasley, J., Meyer, D., Savola, P., Ed., and C. | [RFC5082] Gill, V., Heasley, J., Meyer, D., Savola, P., Ed., and C. | |||
| Pignataro, "The Generalized TTL Security Mechanism | Pignataro, "The Generalized TTL Security Mechanism | |||
| (GTSM)", RFC 5082, DOI 10.17487/RFC5082, October 2007, | (GTSM)", RFC 5082, DOI 10.17487/RFC5082, October 2007, | |||
| <https://www.rfc-editor.org/info/rfc5082>. | <https://www.rfc-editor.org/info/rfc5082>. | |||
| Acknowledgements | ||||
| The authors would like to acknowledge Ketan Talaulikar, Greg Mirsky, | ||||
| Santosh Pallagatti, Aijun Wang, Éric Vyncke, Adrian Farrel, Tim | ||||
| Wicinski, Dhruv Dhody, Stephen Farrell, Gunter Van de Velde, Gyan | ||||
| Mishra, Brian Trammell, Gorry Fairhurst, Mahesh Jethanandani, John | ||||
| Scudder, Murray Kucherawy, and Zaheduzzaman Sarker for their careful | ||||
| reviews and very helpful comments. | ||||
| The authors would like to acknowledge Jeff Haas for his guidance, | ||||
| insightful review, and very helpful comments. | ||||
| The authors would like to acknowledge Erik Auerswald for his | ||||
| insightful comments during the discussion of this document. | ||||
| The authors would like to acknowledge Detao Zhao for the very helpful | ||||
| discussion. | ||||
| Contributors | ||||
| Liu Aihua | ||||
| ZTE | ||||
| Email: liu.aihua@zte.com.cn | ||||
| Qian Xin | ||||
| ZTE | ||||
| Email: qian.xin2@zte.com.cn | ||||
| Zhao Yanhua | ||||
| ZTE | ||||
| Email: zhao.yanhua3@zte.com.cn | ||||
| Authors' Addresses | Authors' Addresses | |||
| Weiqiang Cheng | Weiqiang Cheng | |||
| China Mobile | China Mobile | |||
| Beijing | Beijing | |||
| China | China | |||
| Email: chengweiqiang@chinamobile.com | Email: chengweiqiang@chinamobile.com | |||
| Ruixue Wang | Ruixue Wang | |||
| China Mobile | China Mobile | |||
| End of changes. 50 change blocks. | ||||
| 233 lines changed or deleted | 245 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. | ||||