rfc9780.original | rfc9780.txt | |||
---|---|---|---|---|
MPLS Working Group G. Mirsky | Internet Engineering Task Force (IETF) G. Mirsky | |||
Internet-Draft Ericsson | Request for Comments: 9780 Ericsson | |||
Updates: 8562 (if approved) G. Mishra | Updates: 8562 G. Mishra | |||
Intended status: Standards Track Verizon Inc. | Category: Standards Track Verizon Inc. | |||
Expires: 23 August 2025 D. Eastlake | ISSN: 2070-1721 D. Eastlake 3rd | |||
Independent | Independent | |||
19 February 2025 | May 2025 | |||
Bidirectional Forwarding Detection (BFD) for Multipoint Networks over | Bidirectional Forwarding Detection (BFD) for Multipoint Networks over | |||
Point-to-Multi-Point MPLS Label Switched Path (LSP) | Point-to-Multipoint MPLS Label Switched Paths (LSPs) | |||
draft-ietf-mpls-p2mp-bfd-11 | ||||
Abstract | Abstract | |||
This document describes procedures for using Bidirectional Forwarding | This document describes procedures for using Bidirectional Forwarding | |||
Detection (BFD) for multipoint networks to detect data plane failures | Detection (BFD) for multipoint networks to detect data plane failures | |||
in Multiprotocol Label Switching (MPLS) point-to-multipoint Label | in MPLS point-to-multipoint Label Switched Paths (LSPs) and Segment | |||
Switched Paths (LSPs) and Segment Routing (SR) point-to-multipoint | Routing (SR) point-to-multipoint policies with an SR over MPLS (SR- | |||
policies with SR over MPLS data plane. | MPLS) data plane. | |||
Furthermore, this document also updates RFC 8562 and recommends the | ||||
use of an IPv6 address from the Dummy IPv6 range TBA2/64 | ||||
(Section 7.1) and discourages the use of an IPv4 loopback address | ||||
mapped to IPv6. | ||||
It also describes the applicability of LSP Ping, as in-band, and the | Furthermore, this document updates RFC 8562 by recommending the use | |||
control plane, as out-band, solutions to bootstrap a BFD session. | of an IPv6 address from the Dummy IPv6 Prefix range 100:0:0:1::/64 | |||
and discouraging the use of an IPv4 loopback address mapped to IPv6. | ||||
It also describes the behavior of the active tail for head | In addition, this document describes the applicability of LSP Ping, | |||
notification. | as in-band, and the control plane, as out-of-band, solutions to | |||
bootstrap a BFD session. The document also describes the behavior of | ||||
the active tail for head notification. | ||||
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 23 August 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/rfc9780. | ||||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2025 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 | |||
2. Conventions used in this document . . . . . . . . . . . . . . 3 | 2. Conventions Used in This Document | |||
2.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . 3 | 2.1. Terminology | |||
2.2. Requirements Language . . . . . . . . . . . . . . . . . . 4 | 2.2. Requirements Language | |||
3. Multipoint BFD Encapsulation . . . . . . . . . . . . . . . . 4 | 3. Multipoint BFD Encapsulation | |||
3.1. IP Encapsulation of Multipoint BFD . . . . . . . . . . . 4 | 3.1. IP Encapsulation of Multipoint BFD | |||
3.2. Non-IP Encapsulation of Multipoint BFD . . . . . . . . . 5 | 3.2. Non-IP Encapsulation of Multipoint BFD | |||
4. Bootstrapping Multipoint BFD . . . . . . . . . . . . . . . . 6 | 4. Bootstrapping Multipoint BFD | |||
4.1. LSP Ping . . . . . . . . . . . . . . . . . . . . . . . . 6 | 4.1. LSP Ping | |||
4.2. Control Plane . . . . . . . . . . . . . . . . . . . . . . 7 | 4.2. Control Plane | |||
5. Operation of Multipoint BFD with Active Tail over P2MP MPLS | 5. Operation of Multipoint BFD with Active Tail over P2MP MPLS LSP | |||
LSP . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 | 6. Security Considerations | |||
6. Security Considerations . . . . . . . . . . . . . . . . . . . 9 | 7. IANA Considerations | |||
7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 9 | 7.1. IPv6 Special-Purpose Address | |||
7.1. IPv6 Address Allocation . . . . . . . . . . . . . . . . . 10 | 7.2. MPLS Generalized Associated Channel (G-ACh) Type | |||
7.2. Multipoint BFD over MPLS LSP Associated Channel Type . . 10 | 8. References | |||
8. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 10 | 8.1. Normative References | |||
9. References . . . . . . . . . . . . . . . . . . . . . . . . . 10 | 8.2. Informative References | |||
9.1. Normative References . . . . . . . . . . . . . . . . . . 10 | Acknowledgements | |||
9.2. Informative References . . . . . . . . . . . . . . . . . 12 | Authors' Addresses | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 13 | ||||
1. Introduction | 1. Introduction | |||
[RFC8562] defines a method of using Bidirectional Detection (BFD) | [RFC8562] defines a method of using Bidirectional Forwarding | |||
[RFC5880] to monitor and detect failures between the sender (head) | Detection (BFD) [RFC5880] to monitor and detect failures between the | |||
and one or more receivers (tails) in multipoint or multicast | sender (head) and one or more receivers (tails) in multipoint or | |||
networks. | multicast networks. | |||
[RFC8562] added two BFD session types - MultipointHead and | [RFC8562] added two BFD session types: MultipointHead and | |||
MultipointTail. Throughout this document, MultipointHead and | MultipointTail. Throughout this document, MultipointHead and | |||
MultipointTail refer to the value to which the bfd.SessionType is set | MultipointTail refer to the value to which the bfd.SessionType is set | |||
on a BFD endpoint. | on a BFD endpoint. | |||
This document describes procedures for using such modes of BFD | This document describes procedures for using such modes of the BFD | |||
protocol to detect data plane failures in Multiprotocol Label | protocol to detect data plane failures in MPLS point-to-multipoint | |||
Switching (MPLS) point-to-multipoint (p2mp) Label Switched Paths | (P2MP) Label Switched Paths (LSPs) and Segment Routing (SR) point-to- | |||
(LSPs) and Segment Routing (SR) point-to-multipoint policies with SR | multipoint policies with an SR over MPLS (SR-MPLS) data plane. | |||
over MPLS (SR-MPLS) data plane | ||||
The document also describes the applicability of out-band solutions | The document also describes the applicability of out-of-band | |||
to bootstrap a BFD session in this environment. | solutions to bootstrap a BFD session in this environment. | |||
Historically, an IPv6-mapped IPv4 loopback range | Historically, an IPv6-mapped IPv4 loopback range | |||
address::ffff:127.0.0.1/128 was mandated, although functionally, an | address::ffff:127.0.0.1/128 was mandated, although functionally, an | |||
IPv6 address from that range is not analogous to its IPv4 | IPv6 address from that range is not analogous to its IPv4 | |||
counterpart. Furthermore, using the loopback address as the | counterpart. Furthermore, using the loopback address as the | |||
destination address, even for an inner IP encapsulation of a tunneled | destination address, even for an inner IP encapsulation of a tunneled | |||
packet violates Section 2.5.3 of [RFC4291]. Hence, IANA is requested | packet, violates Section 2.5.3 of [RFC4291]. Hence, IANA has | |||
to allocate TBA2/64 as a new Dummy IPv6 Prefix (Section 7.1) to | allocated 100:0:0:1::/64 as a new Dummy IPv6 Prefix (Section 7.1) to | |||
select destination IPv6 addresses for IP/UDP encapsulation of | select destination IPv6 addresses for IP/UDP encapsulation of | |||
management, control, and OAM packets. A source-only IPv6 dummy | management, control, and Operations, Administration, and Maintenance | |||
address is used as the destination to generate an exception and a | (OAM) packets. A source-only IPv6 dummy address is used as the | |||
reply message to the request message received. This draft starts the | destination to generate an exception and a reply message to the | |||
transition to using the IPv6 addresses from the Dummy IPv6 Prefix | request message received. This document starts the transition to | |||
range TBA2/64 as the IPv6 destination address in the IP/UDP | using the IPv6 addresses from the Dummy IPv6 Prefix range | |||
100:0:0:1::/64 as the IPv6 destination address in the IP/UDP | ||||
encapsulation of active OAM over the MPLS data plane. Thus, this | encapsulation of active OAM over the MPLS data plane. Thus, this | |||
document also updates [RFC8562] and recommends the use of an IPv6 | document updates [RFC8562] by recommending the use of an IPv6 address | |||
address from the Dummy IPv6 Prefix range TBA2/64 (Section 7.1) while | from the Dummy IPv6 Prefix range 100:0:0:1::/64 (Section 7.1) while | |||
acknowledging that an address from ::ffff:127.0.0.1/128 range might | acknowledging that an address from the ::ffff:127.0.0.1/128 range | |||
be used by existing implementations, discourages the use of the | might be used by existing implementations. This document discourages | |||
IPv6-mapped IPv4 loopback range address. | the use of an address in the IPv6-mapped IPv4 loopback range. | |||
It also describes the behavior of the active tail for head | This document also describes the behavior of the active tail for head | |||
notification. | notification. | |||
2. Conventions used in this document | 2. Conventions Used in This Document | |||
2.1. Terminology | 2.1. Terminology | |||
ACH: Associated Channel Header | ACH: Associated Channel Header | |||
BFD: Bidirectional Forwarding Detection | BFD: Bidirectional Forwarding Detection | |||
GAL: G-ACh Label | GAL: G-ACh Label | |||
G-ACh: Generic Associated Channel | G-ACh: Generic Associated Channel | |||
skipping to change at page 4, line 4 ¶ | skipping to change at line 137 ¶ | |||
2.1. Terminology | 2.1. Terminology | |||
ACH: Associated Channel Header | ACH: Associated Channel Header | |||
BFD: Bidirectional Forwarding Detection | BFD: Bidirectional Forwarding Detection | |||
GAL: G-ACh Label | GAL: G-ACh Label | |||
G-ACh: Generic Associated Channel | G-ACh: Generic Associated Channel | |||
LSP: Label Switched Path | LSP: Label Switched Path | |||
LSR: Label Switching Router | LSR: Label Switching Router | |||
MPLS: Multiprotocol Label Switching | MPLS: Multiprotocol Label Switching | |||
p2mp: Point-to-Multipoint | P2MP: Point-to-Multipoint | |||
PW: Pseudowire (PW) | ||||
SR: Segment Routing | SR: Segment Routing | |||
SR-MPLS: SR over MPLS | SR-MPLS: SR over MPLS | |||
2.2. Requirements Language | 2.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. | |||
3. Multipoint BFD Encapsulation | 3. Multipoint BFD Encapsulation | |||
[RFC8562] uses BFD in the Demand mode from the very start of a point- | [RFC8562] uses BFD in Demand mode from the very start of a point-to- | |||
to-multipoint (p2mp) BFD session. Because the head doesn't receive | multipoint (P2MP) BFD session. Because the head doesn't receive any | |||
any BFD Control packet from a tail, the head of the p2mp BFD session | BFD Control packets from a tail, the head of the P2MP BFD session | |||
transmits all BFD Control packets with the value of Your | transmits all BFD Control packets with the value of the Your | |||
Discriminator field set to zero. As a result, a tail cannot | Discriminator field set to zero. As a result, a tail cannot | |||
demultiplex BFD sessions using Your Discriminator, as defined in | demultiplex BFD sessions using Your Discriminator, as defined in | |||
[RFC5880]. [RFC8562] requires that to demultiplex BFD sessions, the | [RFC5880]. To demultiplex BFD sessions, [RFC8562] requires that the | |||
tail uses the source IP address, My Discriminator, and the identity | tail use the source IP address, My Discriminator, and the identity of | |||
of the multipoint tree from which the BFD Control packet was | the multipoint tree from which the BFD Control packet was received. | |||
received. If the BFD Control packet is encapsulated in IP/UDP, then | If the BFD Control packet is encapsulated in IP/UDP, then the source | |||
the source IP address MUST be used to demultiplex the received BFD | IP address MUST be used to demultiplex the received BFD Control | |||
Control packet as described in Section 3.1. The non-IP encapsulation | packet as described in Section 3.1. The non-IP encapsulation case is | |||
case is described in Section 3.2. | described in Section 3.2. | |||
3.1. IP Encapsulation of Multipoint BFD | 3.1. IP Encapsulation of Multipoint BFD | |||
[RFC8562] defines IP/UDP encapsulation for multipoint BFD over p2mp | [RFC8562] defines IP/UDP encapsulation for multipoint BFD over P2MP | |||
MPLS LSP. This document updates Section 5.8 of [RFC8562] regarding | MPLS LSP. This document updates Section 5.8 of [RFC8562] regarding | |||
the selection of the IPv6 destination address: | the selection of the IPv6 destination address as follows: | |||
* The sender of an MPLS echo request SHOULD use an address from the | * The sender of an MPLS echo request SHOULD use an address from the | |||
Dummy IPv6 Prefix range TBA2/64 Section 7.1. | Dummy IPv6 Prefix range 100:0:0:1::/64 (see Section 7.1). | |||
* The sender of an MPLS echo request MAY select the IPv6 destination | * The sender of an MPLS echo request MAY select the IPv6 destination | |||
address from the ::ffff:7f00/104 range. | address from the ::ffff:7f00/104 range. | |||
The Motivation section [RFC6790] lists several advantages of | Section 1.2 of [RFC6790] lists several advantages of generating the | |||
generating the entropy value by an ingress Label Switching Router | entropy value by an ingress Label Switching Router (LSR) compared to | |||
(LSR) compared to when a transit LSR infers entropy using the | when a transit LSR infers entropy using the information in the MPLS | |||
information in the MPLS label stack or payload. Thus, this | label stack or payload. This specification further clarifies that: | |||
specification further clarifies that: | ||||
if multiple alternative paths for the given p2mp LSP Forwarding | * if multiple alternative paths for the given P2MP LSP Forwarding | |||
Equivalence Class (FEC) exist, the MultipointHead SHOULD use the | Equivalence Class (FEC) exist, the MultipointHead SHOULD use the | |||
Entropy Label [RFC6790] used for LSP Ping [RFC8029] to exercise | Entropy Label [RFC6790] used for LSP Ping [RFC8029] to exercise | |||
those particular alternative paths; | those particular alternative paths; | |||
or the MultipointHead MAY use the UDP port number to possibly | * or the MultipointHead MAY use the UDP port number to possibly | |||
exercise those particular alternate paths. | exercise those particular alternate paths. | |||
3.2. Non-IP Encapsulation of Multipoint BFD | 3.2. Non-IP Encapsulation of Multipoint BFD | |||
In some environments, the overhead of extra IP/UDP encapsulations may | In some environments, the overhead of extra IP/UDP encapsulations may | |||
be considered burdensome, making the use of more compact Generic | be considered burdensome, which makes the use of more compact Generic | |||
Associated Channel (G-ACh) ([RFC5586]) encapsulation attractive. | Associated Channel (G-ACh) [RFC5586] encapsulation attractive. Also, | |||
Also, the validation of the IP/UDP encapsulation of a BFD Control | the validation of the IP/UDP encapsulation of a BFD Control packet in | |||
packet in a p2mp BFD session may fail because of a problem related to | a P2MP BFD session may fail because of a problem related to neither | |||
neither the MPLS label stack nor to BFD. Avoiding unnecessary | the MPLS label stack nor BFD. Avoiding unnecessary encapsulation of | |||
encapsulation of p2mp BFD over an MPLS LSP improves the accuracy of | P2MP BFD over an MPLS LSP improves the accuracy of the correlation of | |||
the correlation of the detected failure and defect in MPLS LSP. | the detected failure and defect in MPLS LSP. | |||
If a BFD Control packet in PW-ACH encapsulation (without IP/UDP | If a BFD Control packet in PW-ACH encapsulation (without IP/UDP | |||
Headers) is to be used in ACH, an implementation would not be able to | Headers) is to be used in ACH, an implementation would not be able to | |||
verify the identity of the MultipointHead and, as a result, will not | verify the identity of the MultipointHead and, as a result, will not | |||
properly demultiplex BFD packets. Hence, a new channel type value is | properly demultiplex BFD packets. Hence, a new channel type value is | |||
needed. | needed. | |||
Non-IP encapsulation for multipoint BFD over p2mp MPLS LSP (shown in | Non-IP encapsulation for multipoint BFD over P2MP MPLS LSP (shown in | |||
Figure 1) MUST use G-ACh Label (GAL) (see [RFC5586]) at the bottom of | Figure 1) MUST use the G-ACh Label (GAL) [RFC5586] at the bottom of | |||
the label stack followed by an Associated Channel Header (ACH). If a | the label stack followed by an Associated Channel Header (ACH). If a | |||
BFD Control packet in PW-ACH encapsulation (without IP/UDP Headers) | BFD Control packet in PW-ACH encapsulation (without IP/UDP Headers) | |||
is to be used in ACH, an implementation would not be able to verify | is to be used in ACH, an implementation would not be able to verify | |||
the identity of the MultipointHead and, as a result, will not | the identity of the MultipointHead and, as a result, will not | |||
properly demultiplex BFD packets. Hence, a new channel type value is | properly demultiplex BFD packets. Hence, a new channel type value is | |||
needed. The Channel Type field in ACH MUST be set to Multipoint BFD | needed. The Channel Type field in ACH MUST be set to Multipoint BFD | |||
Session (TBA1) value (Section 7.2). To provide the identity of the | Session (0x0013) (see Section 7.2). To provide the identity of the | |||
MultipointHead for the particular multipoint BFD session, a Source | MultipointHead for the particular multipoint BFD session, a Source | |||
Address TLV, as defined in Section 4.1 of [RFC7212], MUST immediately | Address TLV, as defined in Section 4.1 of [RFC7212], MUST immediately | |||
follow a BFD Control message. The use of other TLVs is outside the | follow a BFD Control message. The use of other TLVs is outside the | |||
scope of this document. | scope of this document. | |||
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 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| LSP Label | TC |S| TTL | | | LSP Label | TC |S| TTL | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| GAL | TC |1| TTL | | | GAL | TC |1| TTL | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
|0 0 0 1|Version| Flags | Channel Type = TBA1 | | |0 0 0 1|Version| Flags | Channel Type = 0x0013 | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
~ BFD Control Message ~ | ~ BFD Control Message ~ | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Type=0 | Reserved | Length | | | Type=0 | Reserved | Length | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Reserved | Address Family | | | Reserved | Address Family | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
~ Address ~ | ~ Address ~ | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
Figure 1: Non-IP Encapsulation for Multipoint BFD Over a | Figure 1: Non-IP Encapsulation for Multipoint BFD over a | |||
Multicast MPLS LSP | Multicast MPLS LSP | |||
Fields in Figure 1 are interpreted as follows: | The fields in Figure 1 are interpreted as follows: | |||
* the top three four-octet words as defined in [RFC5586]; | * The top three four-octet words are defined in [RFC5586]. | |||
* the BFD Control Message field is as defined in [RFC5880]; | * The BFD Control Message field is defined in [RFC5880]. | |||
* all the remaining fields are as defined in Section 4.1 of | * All the remaining fields are defined in Section 4.1 of [RFC7212]. | |||
[RFC7212]. | ||||
4. Bootstrapping Multipoint BFD | 4. Bootstrapping Multipoint BFD | |||
4.1. LSP Ping | 4.1. LSP Ping | |||
LSP Ping is the part of the on-demand OAM toolset used to detect and | LSP Ping is the part of the on-demand OAM toolset used to detect and | |||
localize defects in the data plane and verify the control plane | localize defects in the data plane and verify the control plane | |||
against the data plane by ensuring that the LSP is mapped to the same | against the data plane by ensuring that the LSP is mapped to the same | |||
FEC at both egress and ingress endpoints. | FEC at both egress and ingress endpoints. | |||
LSP Ping, as defined in [RFC6425], MAY be used to bootstrap | LSP Ping, as defined in [RFC6425], MAY be used to bootstrap | |||
MultipointTail. If LSP Ping is used, it MUST include the Target FEC | MultipointTail. If LSP Ping is used, it MUST include the Target FEC | |||
TLV and the BFD Discriminator TLV defined in [RFC5884]. For the case | TLV and the BFD Discriminator TLV defined in [RFC5884]. For the case | |||
of p2mp MPLS LSP, the Target FEC TLV MUST use sub-TLVs defined in | of P2MP MPLS LSP, the Target FEC TLV MUST use sub-TLVs defined in | |||
Section 3.1 [RFC6425]. For the case of p2mp SR policy with SR-MPLS | Section 3.1 of [RFC6425]. For the case of P2MP SR policy with an SR- | |||
data plane, an implementation of this specification MUST follow | MPLS data plane, an implementation of this specification MUST follow | |||
procedures defined in [RFC8287]. Setting the value of Reply Mode | the procedures defined in [RFC8287]. Setting the value of the Reply | |||
field to "Do not reply" [RFC8029] for the LSP Ping to bootstrap | Mode field to "Do not reply" [RFC8029] for the LSP Ping to bootstrap | |||
MultipointTail of the p2mp BFD session is RECOMMENDED. Indeed, | the MultipointTail of the P2MP BFD session is RECOMMENDED. Indeed, | |||
because BFD over a multipoint network uses BFD Demand mode, the MPLS | because BFD over a multipoint network uses BFD Demand mode, the MPLS | |||
echo reply from a tail has no useful information to convey to the | echo reply from a tail has no useful information to convey to the | |||
head, unlike in the case of the BFD over a p2p MPLS LSP [RFC5884]. A | head, unlike in the case of BFD over a P2P MPLS LSP [RFC5884]. A | |||
MultipointTail that receives an LSP Ping that includes the BFD | MultipointTail that receives an LSP Ping that includes the BFD | |||
Discriminator TLV: | Discriminator TLV: | |||
* MUST validate the LSP Ping; | * MUST validate the LSP Ping; | |||
* MUST associate the received BFD Discriminator value with the p2mp | * MUST associate the received BFD Discriminator value with the P2MP | |||
LSP; | LSP; | |||
* MUST create a p2mp BFD session and set bfd.SessionType = | * MUST create a P2MP BFD session and set bfd.SessionType = | |||
MultipointTail as described in [RFC8562]; | MultipointTail as described in [RFC8562]; and | |||
* MUST use the source IP address of LSP Ping, the value of BFD | * MUST use the source IP address of the LSP Ping, the value of BFD | |||
Discriminator from the BFD Discriminator TLV, and the identity of | Discriminator from the BFD Discriminator TLV, and the identity of | |||
the p2mp LSP to properly demultiplex BFD sessions. | the P2MP LSP to properly demultiplex BFD sessions. | |||
Besides bootstrapping a BFD session over a p2mp LSP, LSP Ping SHOULD | Besides bootstrapping a BFD session over a P2MP LSP, LSP Ping SHOULD | |||
be used to verify the control plane against the data plane | be used to verify the control plane against the data plane | |||
periodically by checking that the p2mp LSP is mapped to the same FEC | periodically by checking that the P2MP LSP is mapped to the same FEC | |||
at the MultipointHead and all active MultipointTails. The rate of | at the MultipointHead and all active MultipointTails. The rate of | |||
generation of these LSP Ping Echo request messages SHOULD be | generation of these LSP Ping Echo request messages SHOULD be | |||
significantly less than the rate of generation of the BFD Control | significantly less than the rate of generation of the BFD Control | |||
packets because LSP Ping requires more processing to validate the | packets because LSP Ping requires more processing to validate the | |||
consistency between the data plane and the control plane. An | consistency between the data plane and the control plane. An | |||
implementation MAY provide configuration options to control the rate | implementation MAY provide configuration options to control the rate | |||
of generation of the periodic LSP Ping Echo request messages. | of generation of the periodic LSP Ping Echo request messages. | |||
4.2. Control Plane | 4.2. Control Plane | |||
The BFD Discriminator Attribute MAY be used to bootstrap a multipoint | The BFD Discriminator attribute MAY be used to bootstrap a multipoint | |||
BFD session on a tail, following the format and procedures given in | BFD session on a tail, following the format and procedures given in | |||
Section 3.1.6 of [RFC9026]. | Section 3.1.6 of [RFC9026]. | |||
5. Operation of Multipoint BFD with Active Tail over P2MP MPLS LSP | 5. Operation of Multipoint BFD with Active Tail over P2MP MPLS LSP | |||
[RFC8562] defined how the BFD Demand mode can be used in multipoint | [RFC8562] defines how BFD Demand mode can be used in multipoint | |||
networks. When applied in MPLS, procedures specified in [RFC8562] | networks. When applied in MPLS, the procedures specified in | |||
allow an egress LSR to detect a failure of the part of the MPLS p2mp | [RFC8562] allow an egress LSR to detect a failure in the part of the | |||
LSP from the ingress LSR to that egress LSR. The ingress LSR is not | MPLS P2MP LSP from the ingress LSR to that egress LSR. The ingress | |||
aware of the state of the p2mp LSP. [RFC8563], using mechanisms | LSR is not aware of the state of the P2MP LSP. [RFC8563], using | |||
defined in [RFC8562], defined an "active tail" behavior. An active | mechanisms defined in [RFC8562], defines the behavior of an active | |||
tail might notify the head of the detected failure and responds to a | tail. An active tail might notify the head of the detected failure | |||
poll sequence initiated by the head. The first method, referred to | and respond to a poll sequence initiated by the head. The first | |||
as Head Notification without Polling, is mentioned in Section 5.2.1 | method, referred to as "Head Notification without Polling", is | |||
[RFC8563], is the simplest of all described in [RFC8563]. The use of | mentioned in Section 5.2.1 of [RFC8563]) and is the simplest of the | |||
this method in BFD over MPLS p2mp LSP is discussed in this document. | methods described in [RFC8563]. The use of this method in BFD over | |||
MPLS P2MP LSP is discussed in this document. Analysis of other | ||||
Analysis of other methods of a head learning of the state of an MPLS | methods for a head to learn of the state of an MPLS P2MP LSP is | |||
p2mp LSP is outside the scope of this document. | outside the scope of this document. | |||
As specified in [RFC8563] for the active tail mode, BFD variables | As specified in [RFC8563], BFD variables MUST be as follows for the | |||
MUST be as follows: | active tail mode: | |||
On an ingress LSR: | * On an ingress LSR: | |||
* bfd.SessionType is MultipointHead; | - bfd.SessionType is MultipointHead. | |||
* bfd.RequiredMinRxInterval is set to nonzero, allowing egress LSRs | - bfd.RequiredMinRxInterval is nonzero, allowing egress LSRs to | |||
to send BFD Control packets. | send BFD Control packets. | |||
On an egress LSR: | * On an egress LSR: | |||
* bfd.SessionType is MultipointTail; | - bfd.SessionType is MultipointTail. | |||
* bfd.SilentTail is set to zero. | - bfd.SilentTail is set to zero. | |||
In Section 5.2.1 [RFC8563] is noted that "the tail sends unsolicited | Section 5.2.1 of [RFC8563] notes that "the tail sends unsolicited BFD | |||
BFD packets in response to the detection of a multipoint path | packets in response to the detection of a multipoint path failure" | |||
failure" but without the specifics on the information in the packet | but does not provide specifics about the information in the packets | |||
and frequency of transmissions. This document defines below the | or the frequency of transmissions. The procedure for an active tail | |||
procedure of an active tail with unsolicited notifications for p2mp | with unsolicited notifications for P2MP MPLS LSP is defined below. | |||
MPLS LSP. | ||||
Upon detecting the failure of the p2mp MPLS LSP, an egress LSR sends | Upon detecting the failure of the P2MP MPLS LSP, an egress LSR sends | |||
BFD Control packet with the following settings: | a BFD Control packet with the following settings: | |||
* the Poll (P) bit is set; | * The Poll (P) bit is set. | |||
* the Status (Sta) field set to Down value; | * The Status (Sta) field is set to the Down value. | |||
* the Diagnostic (Diag) field set to Control Detection Time Expired | * The Diagnostic (Diag) field is set to the Control Detection Time | |||
value; | Expired value. | |||
* the value of the Your Discriminator field is set to the value the | * The value of the Your Discriminator field is set to the value the | |||
egress LSR has been using to demultiplex that BFD multipoint | egress LSR has been using to demultiplex that BFD multipoint | |||
session; | session. | |||
* BFD Control packet MAY be encapsulated in IP/UDP with the | * The BFD Control packet MAY be encapsulated in IP/UDP with the | |||
destination IP address of the ingress LSR and the UDP destination | destination IP address of the ingress LSR and the UDP destination | |||
port number set to 4784 per [RFC5883]. If non-IP encapsulation is | port number set to 4784 per [RFC5883]. If non-IP encapsulation is | |||
used, then a BFD Control packet is encapsulated using PW-ACH | used, then a BFD Control packet is encapsulated using PW-ACH | |||
encapsulation (without IP/UDP Headers) with Channel Type 0x0007 | encapsulation (without IP/UDP Headers) with Channel Type 0x0007 | |||
[RFC5885]; | [RFC5885]. | |||
* these BFD Control packets are transmitted at the rate of one per | * The BFD Control packets are transmitted at the rate of one per | |||
second until either it receives a control packet valid for this | second until either 1) it receives a control packet valid for this | |||
BFD session with the Final (F) bit set from the ingress LSR or the | BFD session with the Final (F) bit set from the ingress LSR or 2) | |||
defect condition clears. However, to improve the likelihood of | the defect condition clears. However, to improve the likelihood | |||
notifying the ingress LSR of the failure of the p2mp MPLS LSP, the | of notifying the ingress LSR of the failure of the P2MP MPLS LSP, | |||
egress LSR SHOULD initially transmit three BFD Control packets | the egress LSR SHOULD initially transmit three BFD Control packets | |||
defined above in short succession. The actual transmission of the | defined above in short succession. The actual transmission of the | |||
periodic BFD Control message MUST be jittered by up to 25% within | periodic BFD Control message MUST be jittered by up to 25% within | |||
one-second intervals. Thus, the interval MUST be reduced by a | one-second intervals. Thus, the interval MUST be reduced by a | |||
random value of 0 to 25%, to reduce the possibility of congestion | random value of 0 to 25%, to reduce the possibility of congestion | |||
on the ingress LSR's data and control planes. | on the ingress LSR's data and control planes. | |||
As described above, an ingress LSR that has received the BFD Control | As described above, an ingress LSR that has received the BFD Control | |||
packet sends the unicast IP/UDP encapsulated BFD Control packet with | packet sends the unicast IP/UDP encapsulated BFD Control packet with | |||
the Final (F) bit set to the egress LSR. In some scenarios, e.g., | the Final (F) bit set to the egress LSR. In some scenarios (e.g., | |||
when a p2mp LSP is broken close to its root, and the number of egress | when a P2MP LSP is broken close to its root and the number of egress | |||
LSRs is significantly large, the root might receive a large number of | LSRs is significantly large), the root might receive a large number | |||
notifications. The notifications from leaves to the root will not | of notifications. The notifications from leaves to the root will not | |||
use resources allocated for the monitored multicast flow and, as a | use resources allocated for the monitored multicast flow and, as a | |||
result, will not congest that particular flow, although they may | result, will not congest that particular flow, although they may | |||
negatively affect other flows. However, the control plane of the | negatively affect other flows. However, the control plane of the | |||
ingress LSR might be congested by the BFD Control packets transmitted | ingress LSR might be congested by the BFD Control packets transmitted | |||
by egress LSRs and the process of generating unicast BFD Control | by egress LSRs and the process of generating unicast BFD Control | |||
packets, as noted above. To mitigate that, a BFD implementation that | packets, as noted above. To mitigate that, a BFD implementation that | |||
supports this specification is RECOMMENDED to use a rate limiter of | supports this specification is RECOMMENDED to use a rate limiter of | |||
received BFD Control packets passed to the ingress LSR’s control | received BFD Control packets passed to the ingress LSR's control | |||
plane for processing. | plane for processing. | |||
6. Security Considerations | 6. Security Considerations | |||
This document does not introduce new security considerations but | This document does not introduce new security considerations but | |||
inherits all security considerations from [RFC5880], [RFC5884], | inherits all security considerations from [RFC5880], [RFC5884], | |||
[RFC7726], [RFC8562], [RFC8029], and [RFC6425]. | [RFC7726], [RFC8562], [RFC8029], and [RFC6425]. | |||
Also, BFD for p2mp MPLS LSP MUST follow the requirements listed in | Also, BFD for P2MP MPLS LSPs MUST follow the requirements listed in | |||
section 4.1 [RFC4687] to avoid congestion in the control plane or the | Section 4.1 of [RFC4687] to avoid congestion in the control plane or | |||
data plane caused by the rate of generating BFD Control packets. An | the data plane caused by the rate of generating BFD Control packets. | |||
operator SHOULD consider the amount of extra traffic generated by | An operator SHOULD consider the amount of extra traffic generated by | |||
p2mp BFD when selecting the interval at which the MultipointHead will | P2MP BFD when selecting the interval at which the MultipointHead will | |||
transmit BFD Control packets. The operator MAY consider the size of | transmit BFD Control packets. The operator MAY consider the size of | |||
the packet the MultipointHead transmits periodically as using IP/UDP | the packet the MultipointHead transmits periodically as using IP/UDP | |||
encapsulation, which adds up to 28 octets, more than 50% of the BFD | encapsulation, which adds up to 28 octets (more than 50% of the BFD | |||
Control packet length, comparing to G-ACh encapsulation. | Control packet length) compared to G-ACh encapsulation. | |||
7. IANA Considerations | 7. IANA Considerations | |||
7.1. IPv6 Address Allocation | ||||
IANA is requested to allocate an IPv6 TBA2/64 prefix as Dummy IPv6 | 7.1. IPv6 Special-Purpose Address | |||
Prefix in the "IANA IPv6 Special Purpose Address Registry" | ||||
[IANA-IPv6-Special-Purpose-Address-Registry] as in Table 1. | ||||
+=======+======+=============+==========+===========+======+===========+===========+=========+=========+ | ||||
|Address|Name |RFC |Allocation|Termination|Source|Destination|Forwardable|Globally |Reserved-| | ||||
|Block | | |Date |Date | | | |Reachable|by- | | ||||
| | | | | | | | | |Protocol | | ||||
+=======+======+=============+==========+===========+======+===========+===========+=========+=========+ | ||||
|TBA2 |Dummy |This document|The date |N/A |True |False |False |False |False | | ||||
| |IPv6 | |of | | | | | | | | ||||
| |Prefix| |allocation| | | | | | | | ||||
+-------+------+-------------+----------+-----------+------+-----------+-----------+---------+---------+ | ||||
Table 1: Dummy IPv6 Address Prefix | ||||
7.2. Multipoint BFD over MPLS LSP Associated Channel Type | IANA has allocated the following in the "IANA IPv6 Special-Purpose | |||
Address Registry" [IANA-IPv6-REG]: | ||||
IANA is requested to allocate value (TBA1) from its MPLS Generalized | Address Block: 100:0:0:1::/64 | |||
Associated Channel (G-ACh) Types registry. | Name: Dummy IPv6 Prefix | |||
RFC: RFC 9780 | ||||
Allocation Date: 2025-04 | ||||
Termination Date: N/A | ||||
Source: True | ||||
Destination: False | ||||
Forwardable: False | ||||
Globally Reachable: False | ||||
Reserved-by-Protocol: False | ||||
+=======+========================+===============+ | 7.2. MPLS Generalized Associated Channel (G-ACh) Type | |||
| Value | Description | Reference | | ||||
+=======+========================+===============+ | ||||
| TBA1 | Multipoint BFD Session | This document | | ||||
+-------+------------------------+---------------+ | ||||
Table 2: Multipoint BFD Session G-ACh Type | IANA has allocated the following value in the "MPLS Generalized | |||
Associated Channel (G-ACh) Types" registry. | ||||
8. Acknowledgements | +========+========================+===========+ | |||
| Value | Description | Reference | | ||||
+========+========================+===========+ | ||||
| 0x0013 | Multipoint BFD Session | RFC 9780 | | ||||
+--------+------------------------+-----------+ | ||||
The authors sincerely appreciate the comments received from Andrew | Table 1: Multipoint BFD Session G-ACh Type | |||
Malis, Italo Busi, Shraddha Hegde, and thought stimulating questions | ||||
from Carlos Pignataro. | ||||
9. References | 8. References | |||
9.1. Normative References | 8.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>. | |||
[RFC5586] Bocci, M., Ed., Vigoureux, M., Ed., and S. Bryant, Ed., | [RFC5586] Bocci, M., Ed., Vigoureux, M., Ed., and S. Bryant, Ed., | |||
"MPLS Generic Associated Channel", RFC 5586, | "MPLS Generic Associated Channel", RFC 5586, | |||
DOI 10.17487/RFC5586, June 2009, | DOI 10.17487/RFC5586, June 2009, | |||
<https://www.rfc-editor.org/info/rfc5586>. | <https://www.rfc-editor.org/info/rfc5586>. | |||
skipping to change at page 12, line 37 ¶ | skipping to change at line 536 ¶ | |||
[RFC8563] Katz, D., Ward, D., Pallagatti, S., Ed., and G. Mirsky, | [RFC8563] Katz, D., Ward, D., Pallagatti, S., Ed., and G. Mirsky, | |||
Ed., "Bidirectional Forwarding Detection (BFD) Multipoint | Ed., "Bidirectional Forwarding Detection (BFD) Multipoint | |||
Active Tails", RFC 8563, DOI 10.17487/RFC8563, April 2019, | Active Tails", RFC 8563, DOI 10.17487/RFC8563, April 2019, | |||
<https://www.rfc-editor.org/info/rfc8563>. | <https://www.rfc-editor.org/info/rfc8563>. | |||
[RFC9026] Morin, T., Ed., Kebler, R., Ed., and G. Mirsky, Ed., | [RFC9026] Morin, T., Ed., Kebler, R., Ed., and G. Mirsky, Ed., | |||
"Multicast VPN Fast Upstream Failover", RFC 9026, | "Multicast VPN Fast Upstream Failover", RFC 9026, | |||
DOI 10.17487/RFC9026, April 2021, | DOI 10.17487/RFC9026, April 2021, | |||
<https://www.rfc-editor.org/info/rfc9026>. | <https://www.rfc-editor.org/info/rfc9026>. | |||
9.2. Informative References | 8.2. Informative References | |||
[IANA-IPv6-Special-Purpose-Address-Registry] | [IANA-IPv6-REG] | |||
IANA, "IANA IPv6 Special-Purpose Address Registry", | IANA, "IANA IPv6 Special-Purpose Address Registry", | |||
<https://www.iana.org/assignments/iana-ipv6-special- | <https://www.iana.org/assignments/iana-ipv6-special- | |||
registry/iana-ipv6-special-registry.xhtml>. | registry>. | |||
[RFC4291] Hinden, R. and S. Deering, "IP Version 6 Addressing | [RFC4291] Hinden, R. and S. Deering, "IP Version 6 Addressing | |||
Architecture", RFC 4291, DOI 10.17487/RFC4291, February | Architecture", RFC 4291, DOI 10.17487/RFC4291, February | |||
2006, <https://www.rfc-editor.org/info/rfc4291>. | 2006, <https://www.rfc-editor.org/info/rfc4291>. | |||
[RFC4687] Yasukawa, S., Farrel, A., King, D., and T. Nadeau, | [RFC4687] Yasukawa, S., Farrel, A., King, D., and T. Nadeau, | |||
"Operations and Management (OAM) Requirements for Point- | "Operations and Management (OAM) Requirements for Point- | |||
to-Multipoint MPLS Networks", RFC 4687, | to-Multipoint MPLS Networks", RFC 4687, | |||
DOI 10.17487/RFC4687, September 2006, | DOI 10.17487/RFC4687, September 2006, | |||
<https://www.rfc-editor.org/info/rfc4687>. | <https://www.rfc-editor.org/info/rfc4687>. | |||
Acknowledgements | ||||
The authors sincerely appreciate the comments received from Andrew | ||||
Malis, Italo Busi, and Shraddha Hegde. The authors also appreciate | ||||
the thought-stimulating questions from Carlos Pignataro. | ||||
Authors' Addresses | Authors' Addresses | |||
Greg Mirsky | Greg Mirsky | |||
Ericsson | Ericsson | |||
Email: gregimirsky@gmail.com | Email: gregimirsky@gmail.com | |||
Gyan Mishra | Gyan Mishra | |||
Verizon Inc. | Verizon Inc. | |||
Email: gyan.s.mishra@verizon.com | Email: gyan.s.mishra@verizon.com | |||
Donald Eastlake, 3rd | Donald Eastlake 3rd | |||
Independent | Independent | |||
2386 Panoramic Circle | 2386 Panoramic Circle | |||
Apopka, FL 32703 | Apopka, FL 32703 | |||
United States of America | United States of America | |||
Email: d3e3e3@gmail.com | Email: d3e3e3@gmail.com | |||
End of changes. 87 change blocks. | ||||
251 lines changed or deleted | 244 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. |