<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE rfc [
<!ENTITY nbsp "&#160;">
<!ENTITY zwsp "&#8203;">
<!ENTITY nbhy "&#8209;">
<!ENTITY wj "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc2629 version 1.5.6 -->
<?rfc toc="yes"?>
<?rfc sortrefs="yes"?>
<?rfc symrefs="yes"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" category="std" docName="draft-ietf-mpls-lspping-norao-05" ipr="trust200902" updates="7506, 8029" obsoletes="" submissionType="IETF" xml:lang="en" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.18.0 -->
  <front>
    <title abbrev="RAO-less LSP Ping">Deprecating the Use of Router Alert in LSP Ping</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-mpls-lspping-norao-05"/>
    <author fullname="Kireeti Kompella" initials="K." surname="Kompella">
      <organization>Juniper Networks</organization>
      <address>
        <postal>
          <street>1133 Innovation Way</street>
          <city>Sunnyvale</city>
          <region>CA</region>
          <code>94089</code>
          <country>United States</country>
        </postal>
        <email>kireeti.ietf@gmail.com</email>
      </address>
    </author>
    <author fullname="Ron Bonica" initials="R." surname="Bonica">
      <organization>Juniper Networks</organization>
      <address>
        <postal>
          <street>1133 Innovation Way</street>
          <city>Sunnyvale</city>
          <region>CA</region>
          <code>94089</code>
          <country>United States</country>
        </postal>
        <email>rbonica@juniper.net</email>
      </address>
    </author>
    <author fullname="Greg Mirsky" initials="G." surname="Mirsky" role="editor">
      <organization>Ericsson</organization>
      <address>
        <email>gregimirsky@gmail.com</email>
      </address>
    </author>
    <date year="2023"/>
    <area>Routing</area>
    <workgroup>MPLS WG</workgroup>
    <keyword>LSP ping, router alert</keyword>
    <abstract>
      <t>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.</t>
      <t>Therefore, this document removes the RAO from LSP ping message
      encapsulations. It updates RFCs 7506 and 8029.</t>
      <t>This document also recommends the use of an IPv6 loopback address
      (::1/128) and discourages the use of an IPv4 loopback address mapped to
      IPv6.</t>
    </abstract>
  </front>
  
  <middle>
    <section anchor="introduction" numbered="true" toc="default">
      <name>Introduction</name>
      <t>RFC 8029 - "Detecting Multiprotocol Label Switched (MPLS) Data-Plane
  Failures" (usually referred to as LSP Ping) <xref target="RFC8029" format="default"/> 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.</t>
      <t>The reader is assumed be familiar with <xref target="RFC8029" format="default"/> and its terminology.</t>
      <t>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 FECs in the
   stack correspond to Implicit Null labels.</t>
      <t>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 <xref target="RFC8029" format="default"/>.
      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.</t>
      <t>The IP header that encapsulates an MPLS echo request message must include
      a Router Alert Option (RAO), while 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, <xref target="RFC6398" format="default"/>
      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.</t>
      <t>Therefore, this document removes the RAO from both LSP ping message
      encapsulations. It updates RFCs 7506 <xref target="RFC7506" format="default"/> and
      8029 <xref target="RFC8029" format="default"/>.</t>
      
        <section numbered="true" toc="default">
        <name>Requirements Language</name>
        <t>
  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 <xref target="RFC2119" format="default"/> <xref target="RFC8174" format="default"/>
   when, and only when, they appear in all capitals, as shown here.
        </t>
      </section>
  
      <section anchor="terminology" numbered="true" toc="default">
        <name>Terminology</name>
        <dl newline="false" spacing="normal">
          <dt>LSP:</dt>
          <dd>Label Switched Path</dd>
          <dt>LSR:</dt>
          <dd>Label Switching Router</dd>
          <dt>RAO:</dt>
          <dd>Router Alert Option</dd>
        </dl>
      </section>
    </section>
    <section anchor="router-alert-for-lsp-ping-rfc-8029" numbered="true" toc="default">
      <name>Router Alert for LSP Ping (RFC 8029)</name>
      <section anchor="echo-request" numbered="true" toc="default">
        <name>MPLS Echo Request</name>
        <t>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 <xref target="RFC8029" format="default"/>:</t>
        <ol spacing="normal" type="1"><li>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.</li>
          <li>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 <xref target="RFC8029" format="default"/>.</li>
          <li>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" <xref target="RFC2113" format="default"/>.
            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 <xref target="RFC7506" format="default"/>.</li>
        </ol>
        <t>Currently, ALL of these are required. However, any one is
        sufficient to prevent forwarding the packet beyond the egress LSR.</t>
        <t>Therefore, this document changes RFC 8029 in that Requirement 3 is
        removed.</t>
        <t>The authors are not aware of any implementation that relies on the
        RAO to prevent packets from being forwarded beyond the egress LSR.</t>
      </section>
      <section anchor="echo-reply" numbered="true" toc="default">
        <name>MPLS Echo Reply</name>
        <t>An LSP ping replies to the MPLS echo request message with an MPLS echo
        reply message. Four reply modes are defined in <xref target="RFC8029" format="default"/>:</t>
        <ol spacing="normal" type="1"><li>Do not reply</li>
          <li>Reply via an IPv4/IPv6 UDP packet</li>
          <li>Reply via an IPv4/IPv6 UDP packet with Router Alert</li>
          <li>Reply via application-level control channel</li>
        </ol>
        <t>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)."</t>
        <t>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 <xref target="RFC8029" format="default"/> in that mode 3 are
        removed.</t>
        <t>The authors are not aware of any implementations of mode 3.</t>
        <t/>
      </section>
    </section>
    <section anchor="update-to-rfc-7506" numbered="true" toc="default">
      <name>Update to RFC 7506</name>
      <t>RFC 7506 defines the IPv6 Router Alert Option for MPLS Operations,
      Administration, and Management. This document reclassifies RFC 7506 as
      Historic.</t>
    </section>
    <section numbered="true" toc="default">
      <name>Update to RFC 8029</name>
      <t><xref target="RFC8029" format="default"/> 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 <xref target="RFC1122" format="default"/> for an IPv4
      loopback addressed packet.</t>
      <t><xref target="RFC4291" format="default"/> defines ::1/128 as the single IPv6 loopback
      address. Considering that this specification updates Section 2.1 of
      <xref target="RFC8029" format="default"/> regarding the selection of an IPv6 destination
      address for an MPLS echo request message:</t>
      <ul spacing="normal">
        <li>For IPv6, the IPv6 loopback address ::1/128 SHOULD be used.</li>
        <li>The sender of an MPLS echo request MAY select the IPv6 destination
          address from the 0:0:0:0:0:FFFF:7F00/104 range.</li>
        <li>To exercise all paths in an ECMP environment, the entropy other
          than the IP destination address SHOULD be used.</li>
      </ul>
      <t>LSP Ping implementations SHOULD ignore RAO options when they arrive
      on incoming MPLS echo request and MPLS echo reply messages.</t>
    </section>
    <section anchor="backwards-compatibility" numbered="true" toc="default">
      <name>Backwards Compatibility</name>
      <t>LSP Ping implementations SHOULD ignore RAO options when they arrive
      on incoming MPLS echo request and MPLS echo reply messages.</t>
      <t>This document requests that the IPv6 RAO value for MPLS OAM (69) in 
      <xref target="IANA-IPV6-RAO" format="default"/> is marked as "Deprecated". It also requests that
      the Reply Mode 3 ("Reply via an IPv4/IPv6 UDP packet with Router Alert") in
      <xref target="IANA-LSP-PING" format="default"/> is marked as "Deprecated".</t>
      <t>We interpret "DEPRECATED" in this context to mean that the deprecated
      values should not be used in new implementations, and that deployed
      implementations that use these values continue to work seamlessly.</t>
    </section>
    <section anchor="iana-considerations" numbered="true" toc="default">
      <name>IANA Considerations</name>
      <t>If this document is approved, mark the IPv6 RAO value of MPLS OAM
      (69) in <xref target="IANA-IPV6-RAO" format="default"/> as "Deprecated".
      <xref target="RFC8126" format="default"/> offers a formal description of the word
      "Deprecated".</t>
      <t>Also, mark Reply Mode 3 ("Reply via an IPv4/IPv6 UDP packet
      with Router Alert") in <xref target="IANA-LSP-PING" format="default"/> as
      "Deprecated".</t>
    </section>
    <section anchor="security-considerations" numbered="true" toc="default">
      <name>Security Considerations</name>
      <t>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.</t>
    </section>
    
          <section numbered="true" toc="default">
      <name>Acknowledgments</name>
      <t>
The authors express their appreciation to Adrian Farrel and Gyan Mishra for for their suggestions that improved the readability of the document.
      </t>
    </section>
    
  </middle>
  <back>
    <references>
      <name>Normative References</name>
      <reference anchor="IANA-IPV6-RAO" target="https://www.iana.org/assignments/ipv6-routeralert-values">
        <front>
          <title>IPv6 Router Alert Option Values</title>
          <author>
            <organization>IANA</organization>
          </author>
          <date>n.d.</date>
        </front>
      </reference>
      <reference anchor="IANA-LSP-PING" target="https://www.iana.org/assignments/mpls-lsp-ping-parameters/mpls-lsp-ping-parameters.xml">
        <front>
          <title>Multiprotocol Label Switching (MPLS) Label Switched Paths
          (LSPs) Ping Parameters</title>
          <author>
            <organization>IANA</organization>
          </author>
          <date>n.d.</date>
        </front>
      </reference>
      <reference anchor="RFC8029" target="https://www.rfc-editor.org/info/rfc8029" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8029.xml">
        <front>
          <title>Detecting Multiprotocol Label Switched (MPLS) Data-Plane Failures</title>
          <author fullname="K. Kompella" initials="K." surname="Kompella"/>
          <author fullname="G. Swallow" initials="G." surname="Swallow"/>
          <author fullname="C. Pignataro" initials="C." role="editor" surname="Pignataro"/>
          <author fullname="N. Kumar" initials="N." surname="Kumar"/>
          <author fullname="S. Aldrin" initials="S." surname="Aldrin"/>
          <author fullname="M. Chen" initials="M." surname="Chen"/>
          <date month="March" year="2017"/>
          <abstract>
            <t>This document describes a simple and efficient mechanism to detect data-plane failures in Multiprotocol Label Switching (MPLS) Label Switched Paths (LSPs). It defines a probe message called an "MPLS echo request" and a response message called an "MPLS echo reply" for returning the result of the probe. The MPLS echo request is intended to contain sufficient information to check correct operation of the data plane and to verify the data plane against the control plane, thereby localizing faults.</t>
            <t>This document obsoletes RFCs 4379, 6424, 6829, and 7537, and updates RFC 1122.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="8029"/>
        <seriesInfo name="DOI" value="10.17487/RFC8029"/>
      </reference>
      <reference anchor="RFC6398" target="https://www.rfc-editor.org/info/rfc6398" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6398.xml">
        <front>
          <title>IP Router Alert Considerations and Usage</title>
          <author fullname="F. Le Faucheur" initials="F." role="editor" surname="Le Faucheur"/>
          <date month="October" year="2011"/>
          <abstract>
            <t>The IP Router Alert Option is an IP option that alerts transit routers to more closely examine the contents of an IP packet. The Resource reSerVation Protocol (RSVP), Pragmatic General Multicast (PGM), the Internet Group Management Protocol (IGMP), Multicast Listener Discovery (MLD), Multicast Router Discovery (MRD), and General Internet Signaling Transport (GIST) are some of the protocols that make use of the IP Router Alert Option. This document discusses security aspects and usage guidelines around the use of the current IP Router Alert Option, thereby updating RFC 2113 and RFC 2711. Specifically, it provides recommendations against using the Router Alert in the end-to-end open Internet and identifies controlled environments where protocols depending on Router Alert can be used safely. It also provides recommendations about protection approaches for service providers. Finally, it provides brief guidelines for Router Alert implementation on routers. This memo documents an Internet Best Current Practice.</t>
          </abstract>
        </front>
        <seriesInfo name="BCP" value="168"/>
        <seriesInfo name="RFC" value="6398"/>
        <seriesInfo name="DOI" value="10.17487/RFC6398"/>
      </reference>
      <reference anchor="RFC7506" target="https://www.rfc-editor.org/info/rfc7506" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7506.xml">
        <front>
          <title>IPv6 Router Alert Option for MPLS Operations, Administration, and Maintenance (OAM)</title>
          <author fullname="K. Raza" initials="K." surname="Raza"/>
          <author fullname="N. Akiya" initials="N." surname="Akiya"/>
          <author fullname="C. Pignataro" initials="C." surname="Pignataro"/>
          <date month="April" year="2015"/>
          <abstract>
            <t>RFC 4379 defines the MPLS Label Switched Path (LSP) Ping/Traceroute mechanism in which the Router Alert Option (RAO) MUST be set in the IP header of the MPLS Echo Request messages and may conditionally be set in the IP header of the MPLS Echo Reply messages depending on the Reply Mode used. While a generic "Router shall examine packet" Option Value is used for the IPv4 RAO, there is no generic RAO value defined for IPv6 that can be used. This document allocates a new, generic IPv6 RAO value that can be used by MPLS Operations, Administration, and Maintenance (OAM) tools, including the MPLS Echo Request and MPLS Echo Reply messages for MPLS in IPv6 environments. Consequently, it updates RFC 4379.</t>
            <t>The initial motivation to request an IPv6 RAO value for MPLS OAM comes from the MPLS LSP Ping/Traceroute. However, this value is applicable to all MPLS OAM and not limited to MPLS LSP Ping/ Traceroute.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="7506"/>
        <seriesInfo name="DOI" value="10.17487/RFC7506"/>
      </reference>
      <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2119" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml">
        <front>
          <title>Key words for use in RFCs to Indicate Requirement Levels</title>
          <author fullname="S. Bradner" initials="S." surname="Bradner"/>
          <date month="March" year="1997"/>
          <abstract>
            <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
          </abstract>
        </front>
        <seriesInfo name="BCP" value="14"/>
        <seriesInfo name="RFC" value="2119"/>
        <seriesInfo name="DOI" value="10.17487/RFC2119"/>
      </reference>
      <reference anchor="RFC8174" target="https://www.rfc-editor.org/info/rfc8174" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml">
        <front>
          <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
          <author fullname="B. Leiba" initials="B." surname="Leiba"/>
          <date month="May" year="2017"/>
          <abstract>
            <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
          </abstract>
        </front>
        <seriesInfo name="BCP" value="14"/>
        <seriesInfo name="RFC" value="8174"/>
        <seriesInfo name="DOI" value="10.17487/RFC8174"/>
      </reference>
      <reference anchor="RFC4291" target="https://www.rfc-editor.org/info/rfc4291" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4291.xml">
        <front>
          <title>IP Version 6 Addressing Architecture</title>
          <author fullname="R. Hinden" initials="R." surname="Hinden"/>
          <author fullname="S. Deering" initials="S." surname="Deering"/>
          <date month="February" year="2006"/>
          <abstract>
            <t>This specification defines the addressing architecture of the IP Version 6 (IPv6) protocol. The document includes the IPv6 addressing model, text representations of IPv6 addresses, definition of IPv6 unicast addresses, anycast addresses, and multicast addresses, and an IPv6 node's required addresses.</t>
            <t>This document obsoletes RFC 3513, "IP Version 6 Addressing Architecture". [STANDARDS-TRACK]</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="4291"/>
        <seriesInfo name="DOI" value="10.17487/RFC4291"/>
      </reference>
      <reference anchor="RFC1122" target="https://www.rfc-editor.org/info/rfc1122" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.1122.xml">
        <front>
          <title>Requirements for Internet Hosts - Communication Layers</title>
          <author fullname="R. Braden" initials="R." role="editor" surname="Braden"/>
          <date month="October" year="1989"/>
          <abstract>
            <t>This RFC is an official specification for the Internet community. It incorporates by reference, amends, corrects, and supplements the primary protocol standards documents relating to hosts. [STANDARDS-TRACK]</t>
          </abstract>
        </front>
        <seriesInfo name="STD" value="3"/>
        <seriesInfo name="RFC" value="1122"/>
        <seriesInfo name="DOI" value="10.17487/RFC1122"/>
      </reference>
      <reference anchor="RFC8126" target="https://www.rfc-editor.org/info/rfc8126" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8126.xml">
        <front>
          <title>Guidelines for Writing an IANA Considerations Section in RFCs</title>
          <author fullname="M. Cotton" initials="M." surname="Cotton"/>
          <author fullname="B. Leiba" initials="B." surname="Leiba"/>
          <author fullname="T. Narten" initials="T." surname="Narten"/>
          <date month="June" year="2017"/>
          <abstract>
            <t>Many protocols make use of points of extensibility that use constants to identify various protocol parameters. To ensure that the values in these fields do not have conflicting uses and to promote interoperability, their allocations are often coordinated by a central record keeper. For IETF protocols, that role is filled by the Internet Assigned Numbers Authority (IANA).</t>
            <t>To make assignments in a given registry prudently, guidance describing the conditions under which new values should be assigned, as well as when and how modifications to existing values can be made, is needed. This document defines a framework for the documentation of these guidelines by specification authors, in order to assure that the provided guidance for the IANA Considerations is clear and addresses the various issues that are likely in the operation of a registry.</t>
            <t>This is the third edition of this document; it obsoletes RFC 5226.</t>
          </abstract>
        </front>
        <seriesInfo name="BCP" value="26"/>
        <seriesInfo name="RFC" value="8126"/>
        <seriesInfo name="DOI" value="10.17487/RFC8126"/>
      </reference>
      <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.2113.xml"/>
    </references>
  </back>
</rfc>
