MPLS WG K. Kompella Internet-Draft R. Bonica Updates: 7506, 8029 (if approved) Juniper Networks Intended status: Standards Track G. Mirsky, Ed. Expires: 9 May 2024 Ericsson 6 November 2023 Deprecating the Use of Router Alert in LSP Ping draft-ietf-mpls-lspping-norao-06 Abstract The MPLS echo request and MPLS echo response messages, defined in RFC 8029 "Detecting Multiprotocol Label Switched (MPLS) Data-Plane Failures" (usually referred to as LSP ping messages), are encapsulated in IP headers that include a Router Alert Option (RAO). The rationale for using an RAO as the exception mechanism is questionable. Furthermore, RFC 6398 identifies security vulnerabilities associated with the RAO in non-controlled environments, e.g., the case of using the MPLS echo request/reply as inter-area OAM, and recommends against its use outside of controlled environments. Therefore, this document retires the RAO for MPLS Operations, Administration, and Maintenance (OAM). It reclassifies RFC 7506 as Historic and updates RFC 8029 to remove the RAO from LSP ping message encapsulations. This document also recommends the use of an IPv6 loopback address (::1/128) and not the use of an IPv4 loopback address mapped to IPv6. Status of This Memo This Internet-Draft is submitted in full conformance with the 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 and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress." This Internet-Draft will expire on 9 May 2024. Kompella, et al. Expires 9 May 2024 [Page 1] Internet-Draft RAO-less LSP Ping November 2023 Copyright Notice Copyright (c) 2023 IETF Trust and the persons identified as the document authors. All rights reserved. This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/ license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Revised BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Revised BSD License. Table of Contents 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 1.1. Requirements Language . . . . . . . . . . . . . . . . . . 3 2. Router Alert for LSP Ping (RFC 8029) . . . . . . . . . . . . 3 2.1. MPLS Echo Request . . . . . . . . . . . . . . . . . . . . 3 2.2. MPLS Echo Reply . . . . . . . . . . . . . . . . . . . . . 4 3. Update to RFC 7506 . . . . . . . . . . . . . . . . . . . . . 5 4. Update to RFC 8029 . . . . . . . . . . . . . . . . . . . . . 5 5. Backwards Compatibility . . . . . . . . . . . . . . . . . . . 7 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 7 7. Security Considerations . . . . . . . . . . . . . . . . . . . 7 8. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 7 9. Normative References . . . . . . . . . . . . . . . . . . . . 7 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 9 1. Introduction RFC 8029 - "Detecting Multiprotocol Label Switched (MPLS) Data-Plane Failures" (usually referred to as LSP Ping) [RFC8029] detects data- plane failures in MPLS Label Switched Paths (LSPs). It can operate in "ping mode" or "traceroute mode". When operating in ping mode, it checks LSP connectivity. When operating in traceroute mode, it can trace an LSP and localize failures to a particular node along an LSP. The reader is assumed be familiar with [RFC8029] and its terminology. LSP ping defines a probe message called the "MPLS echo request". It also defines a response message called the "MPLS echo reply". Both messages are encapsulated in UDP and IP. The MPLS echo request message is further encapsulated in an MPLS label stack, except when all of the Forwarding Equivalency Classes in the stack correspond to Implicit Null labels. Kompella, et al. Expires 9 May 2024 [Page 2] Internet-Draft RAO-less LSP Ping November 2023 When operating in ping mode, LSP ping sends a single MPLS echo request message, with the MPLS TTL set to 255. This message is intended to reach the egress Label Switching Router (LSR). When operating in traceroute mode, MPLS ping sends multiple MPLS echo request messages as defined in Section 4.3 of [RFC8029]. It manipulates the MPLS TTL so that the first message expires on the first LSR along the path and subsequent messages expire on subsequent LSRs. According to [RFC8029], the IP header that encapsulates an MPLS echo request message must include a Router Alert Option (RAO). Furthermore, [RFC8029] also says that the IP header that encapsulates an MPLS echo reply message must include an RAO if the value of the Reply Mode in the corresponding MPLS echo request message is "Reply via an IPv4/IPv6 UDP packet with Router Alert". In both cases, the rationale for including an RAO is questionable. Furthermore, [RFC6398] identifies security vulnerabilities associated with the RAO in non-controlled environments, e.g., the case of using the MPLS echo request/reply as inter-domain OAM over the public Internet, and recommends against its use outside of controlled environments, e.g., outside a single administrative domain. Therefore, this document updates RFC 8029 [RFC8029] to retire the RAO from both LSP ping message encapsulations and reclassifies RFC 7506 [RFC7506] as Historic. 1.1. Requirements Language The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here. 2. Router Alert for LSP Ping (RFC 8029) 2.1. MPLS Echo Request While the MPLS echo request message must traverse every node in the LSP under test, it must not traverse any other node. Specifically, the message must not be forwarded beyond the egress Label Switching Router (LSR). To achieve this, a set of the mechanisms that are used concurrently to prevent leaking MPLS echo request messages has been defined in [RFC8029]: Kompella, et al. Expires 9 May 2024 [Page 3] Internet-Draft RAO-less LSP Ping November 2023 1. When the MPLS echo request message is encapsulated in IPv4, the IPv4 destination address must be chosen from the subnet 127/8. When the MPLS echo request message is encapsulated in IPv6, the IPv6 destination address must be chosen from the subnet 0:0:0:0:0:FFFF:7F00:0/104. 2. When the MPLS echo request message is encapsulated in IPv4, the IPv4 TTL must be equal to 1. When the MPLS echo request message is encapsulated in IPv6, the IPv6 Hop Limit must be equal to 1. For further information on the encoding of the TTL/Hop Limit in an MPLS echo request message, see Section 4.3 of [RFC8029]. 3. When the MPLS echo request message is encapsulated in IPv4, the IPv4 header must include an RAO with the option value set to "Router shall examine packet" [RFC2113]. When the MPLS echo request message is encapsulated in IPv6, the IPv6 header chain must include a Hop-by-hop extension header and the Hop-by-hop extension header must include an RAO with the option value set to MPLS OAM [RFC7506]. Currently, ALL of these are required. However, any one is sufficient to prevent forwarding the packet beyond the egress LSR. Therefore, this document changes RFC 8029 in that Requirement 3 is removed. No implementation that relies on the RAO to prevent packets from being forwarded beyond the egress LSR have been reported to the MPLS working group. 2.2. MPLS Echo Reply An LSP ping replies to the MPLS echo request message with an MPLS echo reply message. Four reply modes are defined in [RFC8029]: 1. Do not reply 2. Reply via an IPv4/IPv6 UDP packet 3. Reply via an IPv4/IPv6 UDP packet with Router Alert 4. Reply via application-level control channel The rationale for mode 3 is questionable, if not wholly misguided. According to RFC 8029, "If the normal IP return path is deemed unreliable, one may use 3 (Reply via an IPv4/IPv6 UDP packet with Router Alert)." Kompella, et al. Expires 9 May 2024 [Page 4] Internet-Draft RAO-less LSP Ping November 2023 However, it is not clear that the use of the RAO increases the reliability of the return path. In fact, one can argue it decreases the reliability in many instances, due to the additional burden of processing the RAO. This document changes RFC 8029 [RFC8029] in that mode 3 is removed. No implementations of mode 3 have been reported to the MPLS working group. 3. Update to RFC 7506 RFC 7506 defines the IPv6 Router Alert Option for MPLS Operations, Administration, and Management. This document reclassifies RFC 7506 as Historic. 4. Update to RFC 8029 [RFC8029] requires that the IPv6 Destination Address used in IP/UDP encapsulation of an MPLS echo request packet is selected from the IPv4 loopback address range mapped to IPv6. Such packets do not have the same behavior as prescribed in [RFC1122] for an IPv4 loopback addressed packet. [RFC4291] defines ::1/128 as the single IPv6 loopback address. Considering that, this specification updates Section 2.1 of [RFC8029] regarding the selection of an IPv6 destination address for an MPLS echo request message as follows: OLD The 127/8 range for IPv4 and that same range embedded in an IPv4-mapped IPv6 address for IPv6 was chosen for a number of reasons. RFC 1122 allocates the 127/8 as the "Internal host loopback address" and states: "Addresses of this form MUST NOT appear outside a host." Thus, the default behavior of hosts is to discard such packets. This helps to ensure that if a diagnostic packet is misdirected to a host, it will be silently discarded. RFC 1812 [RFC1812] states: * A router SHOULD NOT forward, except over a loopback interface, any packet that has a destination address on network 127. A router MAY have a switch that allows the network manager to disable these checks. If such a switch is provided, it MUST default to performing the checks. Kompella, et al. Expires 9 May 2024 [Page 5] Internet-Draft RAO-less LSP Ping November 2023 This helps to ensure that diagnostic packets are never IP forwarded. The 127/8 address range provides 16M addresses allowing wide flexibility in varying addresses to exercise ECMP paths. Finally, as an implementation optimization, the 127/8 range provides an easy means of identifying possible LSP packets. NEW The 127/8 range for IPv4 was chosen for a number of reasons. RFC 1122 allocates the 127/8 as the "Internal host loopback address" and states: "Addresses of this form MUST NOT appear outside a host." Thus, the default behavior of hosts is to discard such packets. This helps to ensure that if a diagnostic packet is misdirected to a host, it will be silently discarded. RFC 1812 [RFC1812] states: * A router SHOULD NOT forward, except over a loopback interface, any packet that has a destination address on network 127. A router MAY have a switch that allows the network manager to disable these checks. If such a switch is provided, it MUST default to performing the checks. This helps to ensure that diagnostic packets are never IP forwarded. The 127/8 address range provides 16M addresses allowing wide flexibility in varying addresses to exercise ECMP paths. Finally, as an implementation optimization, the 127/8 range provides an easy means of identifying possible LSP packets. The IPv6 destination address for an MPLS echo request message is selected as follows: * For IPv6, the IPv6 loopback address ::1/128 SHOULD be used. * The sender of an MPLS echo request MAY select the IPv6 destination address from the 0:0:0:0:0:FFFF:7F00/104 range. * To exercise all paths in an ECMP environment, the entropy other than the IP destination address SHOULD be used. END Additionally, this specification updates Section 2.2 of [RFC8029] to replace the whole of the section with the following text: Kompella, et al. Expires 9 May 2024 [Page 6] Internet-Draft RAO-less LSP Ping November 2023 LSP Ping implementations SHOULD ignore RAO options when they arrive on incoming MPLS echo request and MPLS echo reply messages. 5. Backwards Compatibility LSP Ping implementations that conform to this specification SHOULD ignore RAO options when they arrive on incoming MPLS echo request and MPLS echo reply messages. However, this will not harm backwards compatibility because other mechanisms will also be in use by all legacy implementations in the messages they send and receive. Section 6 of this document deprecates the IPv6 RAO value for MPLS OAM (69) in [IANA-IPV6-RAO] and the Reply Mode 3 ("Reply via an IPv4/IPv6 UDP packet with Router Alert") in [IANA-LSP-PING]. [RFC8126] offers a formal description of the word "Deprecated". In this context, "Deprecated" means that the deprecated values SHOULD NOT be used in new implementations, and that deployed implementations that already use these values continue to work seamlessly. 6. IANA Considerations IANA is requested to mark the IPv6 RAO value of MPLS OAM (69) in [IANA-IPV6-RAO] as "Deprecated". IANA is also requested to mark Reply Mode 3 ("Reply via an IPv4/IPv6 UDP packet with Router Alert") in [IANA-LSP-PING] as "Deprecated". 7. Security Considerations The recommendations this document makes do not compromise security. In case of using IPv6 loopback address ::1/128 strengthens security for LSP Ping by using the standardized loopback address with well- defined behavior. 8. Acknowledgments The authors express their appreciation to Adrian Farrel and Gyan Mishra for for their suggestions that improved the readability of the document. 9. Normative References [IANA-IPV6-RAO] IANA, "IPv6 Router Alert Option Values", n.d., . Kompella, et al. Expires 9 May 2024 [Page 7] Internet-Draft RAO-less LSP Ping November 2023 [IANA-LSP-PING] IANA, "Multiprotocol Label Switching (MPLS) Label Switched Paths (LSPs) Ping Parameters", n.d., . [RFC1122] Braden, R., Ed., "Requirements for Internet Hosts - Communication Layers", STD 3, RFC 1122, DOI 10.17487/RFC1122, October 1989, . [RFC1812] Baker, F., Ed., "Requirements for IP Version 4 Routers", RFC 1812, DOI 10.17487/RFC1812, June 1995, . [RFC2113] Katz, D., "IP Router Alert Option", RFC 2113, DOI 10.17487/RFC2113, February 1997, . [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/RFC2119, March 1997, . [RFC4291] Hinden, R. and S. Deering, "IP Version 6 Addressing Architecture", RFC 4291, DOI 10.17487/RFC4291, February 2006, . [RFC6398] Le Faucheur, F., Ed., "IP Router Alert Considerations and Usage", BCP 168, RFC 6398, DOI 10.17487/RFC6398, October 2011, . [RFC7506] Raza, K., Akiya, N., and C. Pignataro, "IPv6 Router Alert Option for MPLS Operations, Administration, and Maintenance (OAM)", RFC 7506, DOI 10.17487/RFC7506, April 2015, . [RFC8029] Kompella, K., Swallow, G., Pignataro, C., Ed., Kumar, N., Aldrin, S., and M. Chen, "Detecting Multiprotocol Label Switched (MPLS) Data-Plane Failures", RFC 8029, DOI 10.17487/RFC8029, March 2017, . [RFC8126] Cotton, M., Leiba, B., and T. Narten, "Guidelines for Writing an IANA Considerations Section in RFCs", BCP 26, RFC 8126, DOI 10.17487/RFC8126, June 2017, . Kompella, et al. Expires 9 May 2024 [Page 8] Internet-Draft RAO-less LSP Ping November 2023 [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, May 2017, . Authors' Addresses Kireeti Kompella Juniper Networks 1133 Innovation Way Sunnyvale, CA 94089 United States Email: kireeti.ietf@gmail.com Ron Bonica Juniper Networks 1133 Innovation Way Sunnyvale, CA 94089 United States Email: rbonica@juniper.net Greg Mirsky (editor) Ericsson Email: gregimirsky@gmail.com Kompella, et al. Expires 9 May 2024 [Page 9]