| 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 point-to-multipoint MPLS 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 | Furthermore, this document updates RFC 8562 by recommending the use | |||
| use of an IPv6 address from the Dummy IPv6 range TBA2/64 | of an IPv6 address from the Dummy IPv6 Prefix address block | |||
| (Section 7.1) and discourages the use of an IPv4 loopback address | 100:0:0:1::/64 and discouraging the use of an IPv4 loopback address | |||
| mapped to IPv6. | mapped to IPv6. | |||
| It also describes the applicability of LSP Ping, as in-band, and the | In addition, this document describes the applicability of LSP Ping | |||
| control plane, as out-band, solutions to bootstrap a BFD session. | (as an in-band solution) and the control plane (as an out-of-band | |||
| solution) to bootstrap a BFD session. The document also describes | ||||
| It also describes the behavior of the active tail for head | the behavior of the active tail for head notification. | |||
| 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 point-to-multipoint (P2MP) | |||
| Switching (MPLS) point-to-multipoint (p2mp) Label Switched Paths | MPLS 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 LSP Ping (an in-band | |||
| to bootstrap a BFD session in this environment. | solution) and out-of-band solutions to bootstrap a BFD session in | |||
| this environment. | ||||
| Historically, an IPv6-mapped IPv4 loopback range | Historically, an address in the IPv6-mapped IPv4 loopback address | |||
| address::ffff:127.0.0.1/128 was mandated, although functionally, an | block ::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 address block 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) for | |||
| select destination IPv6 addresses for IP/UDP encapsulation of | destination IPv6 addresses used for IP/UDP encapsulation of | |||
| management, control, and OAM packets. A source-only IPv6 dummy | management, control, and OAM (Operations, Administration, and | |||
| address is used as the destination to generate an exception and a | Maintenance) packets. A source-only IPv6 dummy address is used as | |||
| reply message to the request message received. This draft starts the | 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 address block | |||
| 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 address block 100:0:0:1::/64 (Section 7.1) | |||
| acknowledging that an address from ::ffff:127.0.0.1/128 range might | while acknowledging that an address from the ::ffff:127.0.0.1/128 | |||
| be used by existing implementations, discourages the use of the | address block might be used by existing implementations. This | |||
| IPv6-mapped IPv4 loopback range address. | document discourages the use of an address in the IPv6-mapped IPv4 | |||
| loopback address block. | ||||
| 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 140 ¶ | |||
| 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 5.7 of [RFC8562]. The non-IP | |||
| case is described in Section 3.2. | encapsulation case is 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 address block 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 address block. | |||
| 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 the | |||
| specification further clarifies that: | following if multiple alternative paths for the given P2MP LSP | |||
| Forwarding Equivalence Class (FEC) exist: | ||||
| if multiple alternative paths for the given p2mp LSP Forwarding | * The MultipointHead SHOULD use the Entropy Label [RFC6790] used for | |||
| Equivalence Class (FEC) exist, the MultipointHead SHOULD use the | LSP Ping [RFC8029] to exercise those particular alternative paths; | |||
| Entropy Label [RFC6790] used for LSP Ping [RFC8029] to exercise | or | |||
| those particular alternative paths; | ||||
| or the MultipointHead MAY use the UDP port number to possibly | * 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 | ||||
| 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 | ||||
| properly demultiplex BFD packets. Hence, a new channel type value is | ||||
| 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 packet. 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 Packet ~ | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | 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 Packet 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 | Stack TLV [RFC8029] and the BFD Discriminator TLV [RFC5884]. For the | |||
| of p2mp MPLS LSP, the Target FEC TLV MUST use sub-TLVs defined in | case of P2MP MPLS LSP, the Target FEC Stack TLV MUST use sub-TLVs | |||
| Section 3.1 [RFC6425]. For the case of p2mp SR policy with SR-MPLS | defined in Section 3.1 of [RFC6425]. For the case of P2MP SR policy | |||
| data plane, an implementation of this specification MUST follow | with an SR-MPLS data plane, an implementation of this specification | |||
| procedures defined in [RFC8287]. Setting the value of Reply Mode | MUST follow the procedures defined in [RFC8287]. Setting the value | |||
| field to "Do not reply" [RFC8029] for the LSP Ping to bootstrap | of the Reply Mode field to "Do not reply" [RFC8029] for the LSP Ping | |||
| MultipointTail of the p2mp BFD session is RECOMMENDED. Indeed, | to bootstrap the MultipointTail of the P2MP BFD session is | |||
| because BFD over a multipoint network uses BFD Demand mode, the MPLS | RECOMMENDED. Indeed, because BFD over a multipoint network uses BFD | |||
| echo reply from a tail has no useful information to convey to the | Demand mode, the MPLS echo reply from a tail has no useful | |||
| head, unlike in the case of the BFD over a p2p MPLS LSP [RFC5884]. A | information to convey to the head, unlike in the case of BFD over a | |||
| MultipointTail that receives an LSP Ping that includes the BFD | P2P MPLS LSP [RFC5884]. A MultipointTail that receives an LSP Ping | |||
| Discriminator TLV: | that includes the BFD Discriminator TLV MUST do the following: | |||
| * MUST validate the LSP Ping; | * validate the LSP Ping; | |||
| * MUST associate the received BFD Discriminator value with the p2mp | * associate the received BFD Discriminator value with the P2MP LSP; | |||
| LSP; | ||||
| * MUST create a p2mp BFD session and set bfd.SessionType = | * create a P2MP BFD session and set bfd.SessionType = MultipointTail | |||
| MultipointTail as described in [RFC8562]; | as described in [RFC8562]; and | |||
| * MUST use the source IP address of LSP Ping, the value of BFD | * 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 | P2MP MPLS 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 | |||
| P2MP MPLS 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 P2MP MPLS 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 | |||
| second until either it receives a control packet valid for this | until either 1) the egress LSA receives a control packet from the | |||
| BFD session with the Final (F) bit set from the ingress LSR or the | ingress LSR that is valid for this BFD session and has the Final (F) | |||
| defect condition clears. However, to improve the likelihood of | bit set or 2) the defect condition clears. However, to improve the | |||
| notifying the ingress LSR of the failure of the p2mp MPLS LSP, the | likelihood of notifying the ingress LSR of the failure of the P2MP | |||
| egress LSR SHOULD initially transmit three BFD Control packets | MPLS LSP, the egress LSR SHOULD initially transmit three BFD Control | |||
| defined above in short succession. The actual transmission of the | packets (as defined above) in short succession. The actual | |||
| periodic BFD Control message MUST be jittered by up to 25% within | transmission of the periodic BFD Control packet MUST be jittered by | |||
| one-second intervals. Thus, the interval MUST be reduced by a | up to 25% within one-second intervals. Thus, the interval MUST be | |||
| random value of 0 to 25%, to reduce the possibility of congestion | reduced by a random value of 0 to 25%, to reduce the possibility of | |||
| on the ingress LSR's data and control planes. | congestion 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 | ||||
| Prefix in the "IANA IPv6 Special Purpose Address Registry" | ||||
| [IANA-IPv6-Special-Purpose-Address-Registry] as in Table 1. | ||||
| +=======+======+=============+==========+===========+======+===========+===========+=========+=========+ | 7.1. IPv6 Special-Purpose Address | |||
| |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 [IANA-G-ACh-TYPES]. | ||||
| 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 533 ¶ | |||
| [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-G-ACh-TYPES] | |||
| IANA, "MPLS Generalized Associated Channel (G-ACh) Types", | ||||
| <https://www.iana.org/assignments/g-ach-parameters>. | ||||
| [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. 90 change blocks. | ||||
| 283 lines changed or deleted | 277 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. | ||||