rfc9612.original | rfc9612.txt | |||
---|---|---|---|---|
MPLS Working Group G. Mirsky | Internet Engineering Task Force (IETF) G. Mirsky | |||
Internet-Draft Ericsson | Request for Comments: 9612 Ericsson | |||
Intended status: Experimental J. Tantsura | Category: Experimental J. Tantsura | |||
Expires: 14 November 2024 NVIDIA | ISSN: 2070-1721 NVIDIA | |||
I. Varlashkin | I. Varlashkin | |||
M. Chen | M. Chen | |||
Huawei | Huawei | |||
13 May 2024 | July 2024 | |||
Bidirectional Forwarding Detection (BFD) Directed Return Path for MPLS | Bidirectional Forwarding Detection (BFD) Reverse Path for MPLS Label | |||
Label Switched Paths (LSPs) | Switched Paths (LSPs) | |||
draft-ietf-mpls-bfd-directed-31 | ||||
Abstract | Abstract | |||
Bidirectional Forwarding Detection (BFD) is expected to be able to | Bidirectional Forwarding Detection (BFD) is expected to be able to | |||
monitor a wide variety of encapsulations of paths between systems. | monitor a wide variety of encapsulations of paths between systems. | |||
When a BFD session monitors an explicitly routed unidirectional path | When a BFD session monitors an explicitly routed unidirectional path, | |||
there may be a need to direct the egress BFD peer to use a specific | there may be a need to direct the egress BFD peer to use a specific | |||
path for the reverse direction of the BFD session. This document | path for the reverse direction of the BFD session. This document | |||
describes an extension to the MPLS Label Switched Path (LSP) echo | describes an extension to the MPLS Label Switched Path (LSP) echo | |||
request that allows a BFD system to request that the remote BFD peer | request that allows a BFD system to request that the remote BFD peer | |||
transmits BFD control packets over the specified LSP. | transmit BFD control packets over the specified LSP. | |||
Status of This Memo | Status of This Memo | |||
This Internet-Draft is submitted in full conformance with the | This document is not an Internet Standards Track specification; it is | |||
provisions of BCP 78 and BCP 79. | published for examination, experimental implementation, and | |||
evaluation. | ||||
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 defines an Experimental Protocol for the Internet | |||
and may be updated, replaced, or obsoleted by other documents at any | community. This document is a product of the Internet Engineering | |||
time. It is inappropriate to use Internet-Drafts as reference | Task Force (IETF). It represents the consensus of the IETF | |||
material or to cite them other than as "work in progress." | community. It has received public review and has been approved for | |||
publication by the Internet Engineering Steering Group (IESG). Not | ||||
all documents approved by the IESG are candidates for any level of | ||||
Internet Standard; see Section 2 of RFC 7841. | ||||
This Internet-Draft will expire on 14 November 2024. | 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/rfc9612. | ||||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2024 IETF Trust and the persons identified as the | Copyright (c) 2024 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 . . . . . . . . . . . . 3 | 1.1. Conventions Used in This document | |||
1.1.1. Terminology . . . . . . . . . . . . . . . . . . . . . 3 | 1.1.1. Terminology | |||
1.1.2. Requirements Language . . . . . . . . . . . . . . . . 3 | 1.1.2. Requirements Language | |||
2. Problem Statement . . . . . . . . . . . . . . . . . . . . . . 3 | 2. Problem Statement | |||
3. Control of the Reverse BFD Path . . . . . . . . . . . . . . . 4 | 3. Control of the BFD Reverse Path | |||
3.1. BFD Reverse Path TLV . . . . . . . . . . . . . . . . . . 4 | 3.1. BFD Reverse Path TLV | |||
3.2. Return Codes . . . . . . . . . . . . . . . . . . . . . . 6 | 3.2. Return Codes | |||
3.3. Failure Characterization . . . . . . . . . . . . . . . . 6 | 3.3. Failure Characterization | |||
4. Use Case Scenario . . . . . . . . . . . . . . . . . . . . . . 7 | 4. Use Case Scenario | |||
5. Operational Considerations . . . . . . . . . . . . . . . . . 7 | 5. Operational Considerations | |||
6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 8 | 6. IANA Considerations | |||
6.1. BFD Reverse Path TLV . . . . . . . . . . . . . . . . . . 8 | 6.1. BFD Reverse Path TLV | |||
6.2. Return Code . . . . . . . . . . . . . . . . . . . . . . . 8 | 6.2. Return Codes | |||
7. Implementation Status . . . . . . . . . . . . . . . . . . . . 9 | 7. Security Considerations | |||
8. Security Considerations . . . . . . . . . . . . . . . . . . . 10 | 8. Normative References | |||
9. Normative References . . . . . . . . . . . . . . . . . . . . 10 | Acknowledgments | |||
10. Informative References . . . . . . . . . . . . . . . . . . . 11 | Authors' Addresses | |||
Appendix A. Acknowledgments . . . . . . . . . . . . . . . . . . 11 | ||||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 11 | ||||
1. Introduction | 1. Introduction | |||
[RFC5880], [RFC5881], and [RFC5883] established the Bidirectional | [RFC5880], [RFC5881], and [RFC5883] established the Bidirectional | |||
Forwarding Detection (BFD) protocol for IP networks. [RFC5884] and | Forwarding Detection (BFD) protocol for IP networks. [RFC5884] and | |||
[RFC7726] set rules for using BFD Asynchronous mode over MPLS Label | [RFC7726] set rules for using BFD Asynchronous mode over MPLS Label | |||
Switched Paths (LSPs), while not defining means to control the path | Switched Paths (LSPs), while not defining means to control the path | |||
an egress BFD system uses to send BFD control packets towards the | that an egress BFD system uses to send BFD control packets towards | |||
ingress BFD system. | the ingress BFD system. | |||
When BFD is used to detect defects of the traffic-engineered LSP, the | When BFD is used to detect defects of the traffic-engineered LSP, the | |||
path of the BFD control packets transmitted by the egress BFD system | path of the BFD control packets transmitted by the egress BFD system | |||
toward the ingress may be disjoint from the monitored LSP in the | toward the ingress may be disjoint from the monitored LSP in the | |||
forward direction. The fact that BFD control packets are not | forward direction. The fact that BFD control packets are not | |||
guaranteed to follow the same links and nodes in both forward and | guaranteed to follow the same links and nodes in both forward and | |||
reverse directions may be one of the factors contributing to | reverse directions may be one of the factors contributing to false | |||
producing false positive defect notifications, i.e., false alarms, at | positive defect notifications (i.e., false alarms) at the ingress BFD | |||
the ingress BFD peer. Ensuring that both directions of the BFD | peer. Ensuring that both directions of the BFD session use co-routed | |||
session use co-routed paths may, in some environments, improve the | paths may, in some environments, improve the determinism of the | |||
determinism of the failure detection and localization. | failure detection and localization. | |||
This document defines the BFD Reverse Path TLV as an extension to LSP | This document defines the BFD Reverse Path TLV as an extension to LSP | |||
Ping [RFC8029] and proposes that it is to be used to instruct the | ping [RFC8029] and proposes that it be used to instruct the egress | |||
egress BFD system to use an explicit path for its BFD control packets | BFD system to use an explicit path for its BFD control packets | |||
associated with a particular BFD session. The TLV will be allocated | associated with a particular BFD session. IANA has registered this | |||
from the TLV and sub-TLV registry defined in [RFC8029]. As a special | TLV in the "TLVs" registry defined by [RFC8029] (see Section 6.1). | |||
case, forward and reverse directions of the BFD session can form a | As a special case, forward and reverse directions of the BFD session | |||
bi-directional co-routed associated channel. | can form a bidirectional co-routed associated channel. | |||
The LSP ping extension, described in this document, was developed and | The LSP ping extension described in this document was developed and | |||
implemented resulting from the operational experiment. The lessons | implemented as a result of an operational experiment. The lessons | |||
learned from the operational experiment enabled the use between | learned from the operational experiment enabled the use of this | |||
systems conforming to this specification. More implementations are | extension between systems conforming to this specification. Further | |||
encouraged to understand better the operational impact of the | implementation is encouraged to better understand the operational | |||
mechanism described in the document. | impact of the mechanism described in the document. | |||
1.1. Conventions used in this document | 1.1. Conventions Used in This document | |||
1.1.1. Terminology | 1.1.1. Terminology | |||
BFD: Bidirectional Forwarding Detection | BFD: Bidirectional Forwarding Detection | |||
FEC: Forwarding Equivalency Class | FEC: Forwarding Equivalence Class | |||
LSP: Label Switched Path | LSP: Label Switched Path | |||
LSR: Label-Switching router | LSR: Label Switching Router | |||
1.1.2. Requirements Language | 1.1.2. Requirements Language | |||
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. Problem Statement | 2. Problem Statement | |||
When BFD is used to monitor an explicitly routed unidirectional path, | When BFD is used to monitor an explicitly routed unidirectional path | |||
e.g., MPLS-TE LSP, BFD control packets in the forward direction would | (e.g., MPLS-TE LSP), BFD control packets in the forward direction | |||
be in-band using the mechanism defined in [RFC5884]. However, the | would be in-band using the mechanism defined in [RFC5884]. However, | |||
reverse direction of the BFD session would follow the shortest path | the reverse direction of the BFD session would follow the shortest | |||
route, which could be completely or partially disjoint from the | path route, which could be completely or partially disjoint from the | |||
forward path. This creates the potential for the failure of a | forward path. This creates the potential for the failure of a | |||
disjoint resource on the reverse path to trigger a BFD failure | disjoint resource on the reverse path to trigger a BFD failure | |||
detection, even though the forward path is unaffected. | detection, even though the forward path is unaffected. | |||
If the reverse path is congruent with the forward path, the potential | If the reverse path is congruent with the forward path, the potential | |||
for such false positives is greatly reduced. For this purpose, this | for such false positives is greatly reduced. For this purpose, this | |||
specification provides a means for the egress BFD peer to be | specification provides a means for the egress BFD peer to be | |||
instructed to use a specific path for BFD control packets. | instructed to use a specific path for BFD control packets. | |||
3. Control of the Reverse BFD Path | 3. Control of the BFD Reverse Path | |||
To bootstrap a BFD session over an MPLS LSP, LSP ping, defined in | To bootstrap a BFD session over an MPLS LSP, LSP ping [RFC8029] MUST | |||
[RFC8029], MUST be used with BFD Discriminator TLV [RFC5884]. This | be used with the BFD Discriminator TLV [RFC5884]. This document | |||
document defines a new TLV, BFD Reverse Path TLV, that MAY contain | defines a new TLV, the BFD Reverse Path TLV, that can be used to | |||
none, one or more sub-TLVs that can be used to carry information | carry information about the reverse path for the BFD session that is | |||
about the reverse path for the BFD session that is specified by the | specified by the value in the BFD Discriminator TLV. The BFD Reverse | |||
value in BFD Discriminator TLV. | Path TLV MAY contain zero or more sub-TLVs. | |||
3.1. BFD Reverse Path TLV | 3.1. BFD Reverse Path TLV | |||
The BFD Reverse Path TLV is an optional TLV within the LSP ping | The BFD Reverse Path TLV is an optional TLV within the LSP ping | |||
[RFC8029]. However, if used, the BFD Discriminator TLV MUST be | [RFC8029]. However, if used, the BFD Discriminator TLV MUST be | |||
included in an Echo Request message as well. If the BFD | included in an echo request message as well. If the BFD | |||
Discriminator TLV is not present when the BFD Reverse Path TLV is | Discriminator TLV is not present when the BFD Reverse Path TLV is | |||
included; then it MUST be treated as malformed Echo Request, as | included, then it MUST be treated as a malformed echo request, as | |||
described in [RFC8029]. | described in [RFC8029]. | |||
The BFD Reverse Path TLV carries information about the path onto | The BFD Reverse Path TLV carries information about the path onto | |||
which the egress BFD peer of the BFD session referenced by the BFD | which the egress BFD peer of the BFD session referenced by the BFD | |||
Discriminator TLV MUST transmit BFD control packets. The format of | Discriminator TLV MUST transmit BFD control packets. The format of | |||
the BFD Reverse Path TLV is as presented in Figure 1. | the BFD Reverse Path TLV is presented in Figure 1. | |||
0 1 2 3 | 0 1 2 3 | |||
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| BFD Reverse Path TLV Type | Length | | | BFD Reverse Path TLV Type | Length | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Reverse Path | | | Reverse Path | | |||
~ ~ | ~ ~ | |||
| | | | | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
Figure 1: BFD Reverse Path TLV | Figure 1: BFD Reverse Path TLV | |||
BFD Reverse Path TLV Type is two octets in length and has a value of | BFD Reverse Path TLV Type: | |||
TBD1 (to be assigned by IANA as requested in Section 6). | This two-octet field has a value of 16384 (see Section 6). | |||
Length field is two octets long and defines the length in octets of | Length: | |||
the Reverse Path field. | This two-octet field defines the length in octets of the Reverse | |||
Path field. | ||||
Reverse Path field contains none, one, or more sub-TLVs. Only non- | Reverse Path: | |||
multicast Target FEC Stack sub-TLVs (already defined, or to be | This field contains zero or more sub-TLVs. Only non-multicast | |||
defined in the future) for TLV Types 1, 16, and 21 of MPLS LSP Ping | Target FEC Stack sub-TLVs (already defined or to be defined in the | |||
Parameters registry are permitted to be used in this field. Any | future) for TLV Types 1, 16, and 21 in the "Multiprotocol Label | |||
other sub-TLV MUST NOT be used. (This implies that Multicast Target | Switching (MPLS) Label Switched Paths (LSPs) Ping Parameters" | |||
FEC Stack sub-TLVs, i.e., p2mp and mp2mp, are not permitted in the | registry are permitted to be used in this field. Other sub-TLVs | |||
Reverse Path field.) If the egress Label-Switching Router (LSR) | MUST NOT be used. (This implies that multicast Target FEC Stack | |||
finds multicast Target Stack sub-TLV, it MUST send echo reply with | sub-TLVs, e.g., the Multicast P2MP LDP FEC Stack sub-TLV and the | |||
the received Reverse Path TLV, BFD Discriminator TLV and set the | Multicast MP2MP LDP FEC Stack sub-TLV, are not permitted in the | |||
Return Code to "Inappropriate Target FEC Stack sub-TLV present" | Reverse Path field.) | |||
(Section 3.2). The BFD Reverse Path TLV includes none, one or more | ||||
sub-TLVs. However, the number of sub-TLVs in the Reverse Path field | ||||
MUST be limited. The default limit is 128 sub-TLV entries, but an | ||||
implementation MAY be able to control that limit. An empty BFD | ||||
Reverse Path TLV, i.e., no sub-TLVs present, is used as withdrawal of | ||||
any previously set reverse path for the BFD session identified in the | ||||
BFD Discriminator TLV. If no sub-TLVs are found in the BFD Reverse | ||||
Path TLV, the egress BFD peer MUST revert to using the local policy- | ||||
based decision as described in Section 7 of [RFC5884], i.e., routed | ||||
over IP network. | ||||
If the egress peer LSR cannot find the path specified in the Reverse | If the egress LSR finds a multicast Target FEC Stack sub-TLV, it MUST | |||
Path TLV, it MUST send Echo Reply with the received BFD Discriminator | send an echo reply with the received BFD Reverse Path TLV and BFD | |||
TLV, Reverse Path TLV, and set the Return Code to "Failed to | Discriminator TLV and set the Return Code to 192 ("Inappropriate | |||
establish the BFD session. The specified reverse path was not found" | Target FEC Stack sub-TLV present") (see Section 3.2). The BFD | |||
(Section 3.2). If an implementation provides additional | Reverse Path TLV includes zero or more sub-TLVs. However, the number | |||
configuration options, these can control actions at the egress BFD | of sub-TLVs in the Reverse Path field MUST be limited. The default | |||
peer, including when the path specified in the Reverse Path TLV | limit is 128 sub-TLV entries, but an implementation MAY be able to | |||
cannot be found. For example, optionally, if the egress peer LSR | control that limit. An empty BFD Reverse Path TLV (i.e., a BFD | |||
cannot find the path specified in the Reverse Path TLV, it MAY | Reverse Path TLV with no sub-TLVs) is used to withdraw any previously | |||
establish the BFD session over an IP network, as defined in | set reverse path for the BFD session identified in the BFD | |||
[RFC5884]. Note that the return code required by the MUST clause | Discriminator TLV. If no sub-TLVs are found in the BFD Reverse Path | |||
does not preclude the session from being established over a different | TLV, the egress BFD peer MUST revert to using the decision based on | |||
path as discussed in the MAY clause. | local policy, i.e., routing over an IP network, as described in | |||
Section 7 of [RFC5884]. | ||||
The BFD Reverse Path TLV MAY be used in the bootstrapping of a BFD | If the egress peer LSR cannot find the path specified in the BFD | |||
session process described in Section 6 of [RFC5884]. A system that | Reverse Path TLV, it MUST send an echo reply with the received BFD | |||
supports this specification MUST support using the BFD Reverse Path | Discriminator TLV and BFD Reverse Path TLV and set the Return Code to | |||
TLV after the BFD session has been established. If a system that | 193 ("Failed to establish the BFD session. The specified reverse | |||
supports this specification receives an LSP Ping with the BFD | path was not found.") (see Section 3.2). If an implementation | |||
provides additional configuration options, these can control actions | ||||
at the egress BFD peer, including when the path specified in the BFD | ||||
Reverse Path TLV cannot be found. For example, if the egress peer | ||||
LSR cannot find the path specified in the BFD Reverse Path TLV, it | ||||
MAY establish the BFD session over an IP network, as defined in | ||||
[RFC5884]. Note that the Return Code required by the "MUST" clause | ||||
in this paragraph does not preclude the session from being | ||||
established over a different path as discussed in the "MAY" clause. | ||||
The BFD Reverse Path TLV MAY be used in the process of bootstrapping | ||||
the BFD session as described in Section 6 of [RFC5884]. A system | ||||
that supports this specification MUST support using the BFD Reverse | ||||
Path TLV after the BFD session has been established. If a system | ||||
that supports this specification receives an LSP ping with the BFD | ||||
Discriminator TLV and no BFD Reverse Path TLV even though the reverse | Discriminator TLV and no BFD Reverse Path TLV even though the reverse | |||
path for the specified BFD session has been established according to | path for the specified BFD session was established according to the | |||
the previously received BFD Reverse Path TLV, the egress BFD peer | previously received BFD Reverse Path TLV, the egress BFD peer MUST | |||
MUST transition to transmitting periodic BFD Control messages as | transition to transmitting periodic BFD Control messages as described | |||
defined in Section 7 of [RFC5884]. If a BFD system that received an | in Section 7 of [RFC5884]. If a BFD system that received an LSP ping | |||
LSP Ping with the BFD Reverse Path TLV does not support this | with the BFD Reverse Path TLV does not support this specification, it | |||
specification, it will "result in the Return Code of 2 ("One or more | will result in an echo response with the Return Code set to 2 ("One | |||
of the TLVs was not understood") being sent in the echo response" | or more of the TLVs was not understood"), as described in Section 3 | |||
(Section 3 of [RFC8029]). | of [RFC8029]. | |||
3.2. Return Codes | 3.2. Return Codes | |||
This document defines the following Return Codes for MPLS LSP Echo | This document defines the following Return Codes for the MPLS LSP | |||
Reply: | echo reply: | |||
* "Inappropriate Target FEC Stack sub-TLV present" (TBD3). When | "Inappropriate Target FEC Stack sub-TLV present" (192): | |||
multicast Target FEC Stack sub-TLV found in the received Echo | When a multicast Target FEC Stack sub-TLV is found in the received | |||
Request, the egress BFD peer sends an Echo Reply with the return | echo request, the egress BFD peer sends an echo reply with the | |||
code set to "Inappropriate Target FEC Stack sub-TLV present" to | Return Code set to 192 ("Inappropriate Target FEC Stack sub-TLV | |||
the ingress BFD peer Section 3.1. | present") to the ingress BFD peer, as described in Section 3.1. | |||
* "Failed to establish the BFD session. The specified reverse path | "Failed to establish the BFD session. The specified reverse path | |||
was not found" (TBD4). When a specified reverse path is | was not found." (193): | |||
unavailable, the egress BFD peer sends an Echo Reply with the | When a specified reverse path is unavailable, the egress BFD peer | |||
return code set to "Failed to establish the BFD session. The | sends an echo reply with the Return Code set to 193 ("Failed to | |||
specified reverse path was not found" to the ingress BFD peer | establish the BFD session. The specified reverse path was not | |||
Section 3.1. | found.") to the ingress BFD peer, as described in Section 3.1. | |||
3.3. Failure Characterization | 3.3. Failure Characterization | |||
A failure detected by a BFD session that uses the BFD Reverse Path | A failure detected by a BFD session that uses the BFD Reverse Path | |||
TLV could be due to a change in the FEC used in the BFD Reverse Path | TLV could be due to a change in the FEC used in the BFD Reverse Path | |||
TLV. The ingress BFD peer, upon detection of the network failure, | TLV. Upon detection of the network failure, the ingress BFD peer | |||
MUST transmit the LSP Ping Echo request with Return Path TLV to | MUST transmit the LSP ping echo request with the Reply Path TLV | |||
verify whether the FEC is still valid. If the failure was caused by | [RFC7110] to verify whether the FEC is still valid. If the failure | |||
the change in the FEC used for the reverse direction of the BFD | was caused by a change in the FEC used for the reverse direction of | |||
session, the ingress BFD peer MUST re-direct the reverse path of the | the BFD session, the ingress BFD peer MUST redirect the reverse path | |||
BFD session using another FEC in BFD Reverse Path TLV, and notify an | of the BFD session using another FEC in the BFD Reverse Path TLV and | |||
operator. | notify an operator. | |||
4. Use Case Scenario | 4. Use Case Scenario | |||
In the network presented in Figure 2, ingress LSR peer A monitors two | In the network presented in Figure 2, ingress LSR peer A monitors two | |||
tunnels to the egress LSR peer H: A-B-C-D-G-H and A-B-E-F-G-H. To | tunnels to egress LSR peer H: A-B-C-D-G-H and A-B-E-F-G-H. To | |||
bootstrap a BFD session to monitor the first tunnel, the ingress LSR | bootstrap a BFD session to monitor the first tunnel, ingress LSR peer | |||
peer A includes a BFD Discriminator TLV with Discriminator value | A includes a BFD Discriminator TLV with a Discriminator value (e.g., | |||
(e.g., foobar-1). Peer A includes a BFD Reverse Path TLV referencing | foobar-1) [RFC7726]. Ingress LSR peer A includes a BFD Reverse Path | |||
the H-G-D-C-B-A tunnel to control the path from the egress LSR. To | TLV referencing the H-G-D-C-B-A tunnel to control the path from the | |||
bootstrap a BFD session to monitor the second tunnel, ingress LSR | egress LSR. To bootstrap a BFD session to monitor the second tunnel, | |||
peer A, includes a BFD Discriminator TLV with a different | ingress LSR peer A includes a BFD Discriminator TLV with a different | |||
Discriminator value (e.g., foobar-2) [RFC7726] and a BFD Reverse Path | Discriminator value (e.g., foobar-2) and a BFD Reverse Path TLV that | |||
TLV that references the H-G-F-E-B-A tunnel. | references the H-G-F-E-B-A tunnel. | |||
C---------D | C---------D | |||
| | | | | | |||
A-------B G-----H | A-------B G-----H | |||
| | | | | | |||
E---------F | E---------F | |||
Figure 2: Use Case for BFD Reverse Path TLV | Figure 2: Use Case for BFD Reverse Path TLV | |||
If an operator needs egress LSR peer H to monitor a path to the | If an operator needs egress LSR peer H to monitor a path to ingress | |||
ingress LSR peer A, e.g., H-G-D-C-B-A tunnel, then by looking up the | LSR peer A, e.g., the H-G-D-C-B-A tunnel, then by looking up the list | |||
list of known Reverse Paths, it MAY find and use the existing BFD | of known reverse paths, it MAY find and use the existing BFD session. | |||
session. | ||||
5. Operational Considerations | 5. Operational Considerations | |||
When an explicit path is set either as Static or RSVP-TE LSP, | When an explicit path is set as either Static or RSVP-TE LSP, | |||
corresponding sub-TLVs, defined in [RFC7110], MAY be used to identify | corresponding sub-TLVs (defined in [RFC7110]) MAY be used to identify | |||
the explicit reverse path for the BFD session. If a particular set | the explicit reverse path for the BFD session. If a particular set | |||
of sub-TLVs composes the Return Path TLV [RFC7110] and does not | of sub-TLVs composes the Reply Path TLV [RFC7110] and does not | |||
increase the length of the Maximum Transmission Unit for the given | increase the length of the Maximum Transmission Unit for the given | |||
LSP, that set can be safely used in the BFD Reverse Path TLV. If any | LSP, that set can be safely used in the BFD Reverse Path TLV. If any | |||
of defined in [RFC7110] sub-TLVs used in BFD Reverse Path TLV, then | of the sub-TLVs defined in [RFC7110] are used in the BFD Reverse Path | |||
the periodic verification of the control plane against the data | TLV, then the periodic verification of the control plane against the | |||
plane, as recommended in Section 4 of [RFC5884], MUST use the Return | data plane, as recommended in Section 4 of [RFC5884], MUST use the | |||
Path TLV, as per [RFC7110], with that sub-TLV. By using the LSP Ping | Reply Path TLV, as per [RFC7110], with that sub-TLV. By using the | |||
with Return Path TLV, an operator monitors whether at the egress BFD | LSP ping with the Reply Path TLV, an operator monitors whether the | |||
node the reverse LSP is mapped to the same FEC as the BFD session. | reverse LSP is mapped to the same FEC as the BFD session at the | |||
Selection and control of the rate of LSP Ping with Return Path TLV | egress BFD node. Selection and control of the rate of the LSP ping | |||
follows the recommendation of [RFC5884]: "The rate of generation of | with the Reply Path TLV follows the recommendation in [RFC5884]: | |||
these LSP Ping Echo request messages SHOULD be significantly less | ||||
than the rate of generation of the BFD Control packets. An | ||||
implementation MAY provide configuration options to control the rate | ||||
of generation of the periodic LSP Ping Echo request messages." | ||||
Suppose an operator planned network maintenance activity that | ||||
possibly affects FEC used in the BFD Reverse Path TLV. In that case, | ||||
the operator can avoid the unnecessary disruption by using the LSP | ||||
Ping with a new FEC in the BFD Reverse Path TLV. But in some | ||||
scenarios, proactive measures cannot be taken. Because the frequency | ||||
of LSP Ping messages will be lower than the defect detection time | ||||
provided by the BFD session. As a result, a change in the reverse- | ||||
path FEC will first be detected as the BFD session's failure. An | ||||
operator will be notified as described in Section 3.3. | ||||
6. IANA Considerations | ||||
6.1. BFD Reverse Path TLV | ||||
The IANA is requested to assign a new value for BFD Reverse Path TLV | ||||
from the 16384-31739 range in the "TLVs" registry of "Multiprotocol | ||||
Label Switching Architecture (MPLS) Label Switched Paths (LSPs) Ping | ||||
Parameters" registry. | ||||
+=======+=======+=============+====================================+ | ||||
|Type |TLV |Reference | Sub-TLV Registry | | ||||
| |Name | | | | ||||
+=======+=======+=============+====================================+ | ||||
| (TBD1)|BFD |This document| Only non-multicast sub-TLV | | ||||
| |Reverse| | (already defined or to be defined | | ||||
| |Path | | in the future) at | | ||||
| |TLV | | [https://www.iana.org/assignments/ | | ||||
| | | | mpls-lsp-ping-parameters/mpls-lsp- | | ||||
| | | | ping-parameters.xml#sub-tlv- | | ||||
| | | | 1-16-21] | | ||||
| | | | (https://www.iana.org/assignments/ | | ||||
| | | | mpls-lsp-ping-parameters/mpls-lsp- | | ||||
| | | | ping-parameters.xml#sub-tlv- | | ||||
| | | | 1-16-21) are permitted to be used | | ||||
| | | | in this field. Any other sub-TLV | | ||||
| | | | MUST NOT be used. | | ||||
+-------+-------+-------------+------------------------------------+ | ||||
Table 1: New BFD Reverse Type TLV | ||||
6.2. Return Code | ||||
The IANA is requested to assign new Return Code values from the range | ||||
192-247 of the "Return Codes" registry of the "Multi-Protocol Label | ||||
Switching (MPLS) Label Switched Paths (LSPs) Ping Parameters", as in | ||||
Table 2. | ||||
+=========+=============================+===============+ | ||||
| Value | Description | Reference | | ||||
+=========+=============================+===============+ | ||||
| (TBD3) | Inappropriate Target FEC | This document | | ||||
| | Stack sub-TLV present. | | | ||||
+---------+-----------------------------+---------------+ | ||||
| (TBD4) | Failed to establish the BFD | This document | | ||||
| | session. The specified | | | ||||
| | reverse path was not found. | | | ||||
+---------+-----------------------------+---------------+ | ||||
Table 2: New Return Code | ||||
7. Implementation Status | ||||
Note to RFC Editor: This section MUST be removed before publication | ||||
of the document. | ||||
This section records the status of known implementations of the | ||||
protocol defined by this specification at the time of posting of this | ||||
Internet-Draft, and is based on a proposal described in [RFC7942]. | ||||
The description of implementations in this section is intended to | ||||
assist the IETF in its decision processes in progressing drafts to | ||||
RFCs. Please note that the listing of any individual implementation | ||||
here does not imply endorsement by the IETF. Furthermore, no effort | ||||
has been spent to verify the information presented here that was | ||||
supplied by IETF contributors. This is not intended as, and must not | ||||
be construed to be, a catalog of available implementations or their | ||||
features. Readers are advised to note that other implementations may | ||||
exist. | ||||
According to [RFC7942], "this will allow reviewers and working groups | | The rate of generation of these LSP Ping Echo request messages | |||
to assign due consideration to documents that have the benefit of | | SHOULD be significantly less than the rate of generation of the | |||
running code, which may serve as evidence of valuable experimentation | | BFD Control packets. An implementation MAY provide configuration | |||
and feedback that have made the implemented protocols more mature. | | options to control the rate of generation of the periodic LSP Ping | |||
It is up to the individual working groups to use this information as | | Echo request messages. | |||
they see fit". | ||||
- The organization responsible for the implementation: ZTE | Suppose an operator planned a network maintenance activity that | |||
Corporation. | possibly affects the FEC used in the BFD Reverse Path TLV. In that | |||
case, the operator can avoid unnecessary disruption by using the LSP | ||||
ping with a new FEC in the BFD Reverse Path TLV. But in some | ||||
scenarios, proactive measures cannot be taken because the frequency | ||||
of LSP ping messages is lower than the defect detection time provided | ||||
by the BFD session. As a result, a change in the reverse-path FEC | ||||
will first be detected as the BFD session's failure. An operator | ||||
will be notified as described in Section 3.3. | ||||
- The implementation's name ROSng empowers commonly used routers, | 6. IANA Considerations | |||
e.g., ZXCTN 6000. | ||||
- A brief general description: A Return Path can be specified for a | 6.1. BFD Reverse Path TLV | |||
BFD session over RSVP tunnel or LSP. The same can be specified for a | ||||
backup RSVP tunnel/LSP. | ||||
The implementation's level of maturity: production. | IANA has assigned the following value for the BFD Reverse Path TLV | |||
from the 16384-31739 range in the "TLVs" subregistry within the | ||||
"Multiprotocol Label Switching (MPLS) Label Switched Paths (LSPs) | ||||
Ping Parameters" registry. | ||||
- Coverage: RSVP LSP (no support for Static LSP) | +=======+=========+===========+====================================+ | |||
| Type | TLV | Reference | Sub-TLV Registry | | ||||
| | Name | | | | ||||
+=======+=========+===========+====================================+ | ||||
| 16384 | BFD | RFC 9612 | Only non-multicast sub-TLVs | | ||||
| | Reverse | | (already defined or to be defined | | ||||
| | Path | | in the future) in the "Sub-TLVs | | ||||
| | | | for TLV Types 1, 16, and 21" | | ||||
| | | | registry at | | ||||
| | | | <https://www.iana.org/assignments/ | | ||||
| | | | mpls-lsp-ping-parameters/mpls-lsp- | | ||||
| | | | ping-parameters.xml#sub-tlv- | | ||||
| | | | 1-16-21> are permitted to be used | | ||||
| | | | in this field. Other sub-TLVs | | ||||
| | | | MUST NOT be used. | | ||||
+-------+---------+-----------+------------------------------------+ | ||||
- Version compatibility: draft-ietf-mpls-bfd-directed-10. | Table 1: New BFD Reverse Path TLV | |||
- Licensing: proprietary. | 6.2. Return Codes | |||
- Implementation experience: simple once you support RFC 7110. | IANA has assigned the following Return Code values from the 192-247 | |||
range in the "Return Codes" subregistry within the "Multiprotocol | ||||
Label Switching (MPLS) Label Switched Paths (LSPs) Ping Parameters" | ||||
registry. | ||||
- Contact information: Qian Xin qian.xin2@zte.com.cn | +=======+===========================================+===========+ | |||
| Value | Meaning | Reference | | ||||
+=======+===========================================+===========+ | ||||
| 192 | Inappropriate Target FEC Stack sub-TLV | RFC 9612 | | ||||
| | present | | | ||||
+-------+-------------------------------------------+-----------+ | ||||
| 193 | Failed to establish the BFD session. The | RFC 9612 | | ||||
| | specified reverse path was not found. | | | ||||
+-------+-------------------------------------------+-----------+ | ||||
- The date when information about this particular implementation was | Table 2: New Return Codes | |||
last updated: 12/16/2019 | ||||
8. Security Considerations | 7. Security Considerations | |||
Security considerations discussed in [RFC5880], [RFC5884], [RFC7726], | Security considerations discussed in [RFC5880], [RFC5884], [RFC7726], | |||
[RFC8029], and [RFC7110] apply to this document. | [RFC8029], and [RFC7110] apply to this document. | |||
BFD Reverse Path TLV may be exploited as an attack vector by | The BFD Reverse Path TLV may be exploited as an attack vector by | |||
inflating the number of included sub-TLVs. The number of sub-TLVs | inflating the number of included sub-TLVs. The number of sub-TLVs | |||
MUST be limited to mitigate that threat. The default limit for the | MUST be limited to mitigate that threat. The default limit for the | |||
number of sub-TLVs is set in Section 3.1 to 128. An implementation | number of sub-TLVs is set to 128 (see Section 3.1). An | |||
MAY use a mechanism to control that limit. | implementation MAY use a mechanism to control that limit. | |||
9. Normative References | 8. 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>. | |||
skipping to change at page 11, line 31 ¶ | skipping to change at line 440 ¶ | |||
[RFC8029] Kompella, K., Swallow, G., Pignataro, C., Ed., Kumar, N., | [RFC8029] Kompella, K., Swallow, G., Pignataro, C., Ed., Kumar, N., | |||
Aldrin, S., and M. Chen, "Detecting Multiprotocol Label | Aldrin, S., and M. Chen, "Detecting Multiprotocol Label | |||
Switched (MPLS) Data-Plane Failures", RFC 8029, | Switched (MPLS) Data-Plane Failures", RFC 8029, | |||
DOI 10.17487/RFC8029, March 2017, | DOI 10.17487/RFC8029, March 2017, | |||
<https://www.rfc-editor.org/info/rfc8029>. | <https://www.rfc-editor.org/info/rfc8029>. | |||
[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>. | |||
10. Informative References | Acknowledgments | |||
[RFC7942] Sheffer, Y. and A. Farrel, "Improving Awareness of Running | ||||
Code: The Implementation Status Section", BCP 205, | ||||
RFC 7942, DOI 10.17487/RFC7942, July 2016, | ||||
<https://www.rfc-editor.org/info/rfc7942>. | ||||
Appendix A. Acknowledgments | ||||
The authors greatly appreciate a thorough review and the most helpful | The authors greatly appreciate the thorough reviews and helpful | |||
comments from Eric Gray and Carlos Pignataro. The authors much | comments from Eric Gray and Carlos Pignataro. The authors much | |||
appreciate the help of Qian Xin, who provided information about the | appreciate the help of Qian Xin, who provided information about the | |||
implementation of this specification. | implementation of this specification. | |||
Authors' Addresses | Authors' Addresses | |||
Greg Mirsky | Greg Mirsky | |||
Ericsson | Ericsson | |||
Email: gregimirsky@gmail.com | Email: gregimirsky@gmail.com | |||
Jeff Tantsura | Jeff Tantsura | |||
NVIDIA | NVIDIA | |||
Email: jefftant.ietf@gmail.com | Email: jefftant.ietf@gmail.com | |||
Ilya Varlashkin | Ilya Varlashkin | |||
Email: imv@google.com | Email: imv@google.com | |||
Mach(Guoyi) Chen | Mach(Guoyi) Chen | |||
Huawei | Huawei | |||
End of changes. 59 change blocks. | ||||
300 lines changed or deleted | 248 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. |