<?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-rfc version 1.7.17 (Ruby 3.0.2) -->
<?rfc tocompact="yes"?>
<?rfc tocindent="yes"?>
<?rfc compact="yes"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-bonica-intarea-icmp-op-exp-00" category="info" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.21.0 -->
  <front>
    <title abbrev="ICMP Operational Experience">Internet Control Message Protocol (ICMP): Standards and Operational Experience</title>
    <seriesInfo name="Internet-Draft" value="draft-bonica-intarea-icmp-op-exp-00"/>
    <author initials="R." surname="Bonica" fullname="Ron Bonica">
      <organization>Juniper Networks</organization>
      <address>
        <postal>
          <city>Herndon</city>
          <region>Virginia</region>
          <country>USA</country>
        </postal>
        <email>rbonica@juniper.net</email>
      </address>
    </author>
    <author initials="C." surname="Pignataro" fullname="Carlos Pignataro">
      <organization>Blue Fern Consulting</organization>
      <address>
        <postal>
          <city>Raleigh</city>
          <region>NC</region>
          <country>USA</country>
        </postal>
        <email>cpignata@gmail.com</email>
      </address>
    </author>
    <author initials="D." surname="Wing" fullname="Dan Wing">
      <organization abbrev="Cloud Software Group">Cloud Software Group Holdings, Inc.</organization>
      <address>
        <email>danwing@gmail.com</email>
      </address>
    </author>
    <author initials="X." surname="Min" fullname="Xiao Min">
      <organization>ZTE Corp.</organization>
      <address>
        <postal>
          <city>Nanjing</city>
          <country>China</country>
        </postal>
        <email>xiao.min2@zte.com.cn</email>
      </address>
    </author>
    <date year="2024" month="June" day="19"/>
    <area>Internet</area>
    <workgroup>INTAREA Working Group</workgroup>
    <keyword>ICMP operations</keyword>
    <abstract>
      <?line 89?>

<t>The Internet Control Message Protocol (ICMP) can be used to exchange control information between hosts. This document summarizes ICMP standards and operational experience. The purpose of this document is to be used as a reference. A document that mentions ICMP can reference this document rather than repeating portions of its content.</t>
    </abstract>
  </front>
  <middle>
    <?line 93?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>The Internet Control Message Protocol (ICMP) can be used to exchange control information between hosts. ICMPv4 <xref target="RFC0792"/> exchanges control information between IPv4 <xref target="RFC0791"/> hosts while ICMPv6 <xref target="RFC4443"/> exchanges control information between IPv6 <xref target="RFC8200"/> hosts.</t>
      <t>This document summarizes ICMP standards and operational experience. The purpose of this document is to be used as a reference. A document that mentions ICMP can reference this document rather than repeating portions of its content.</t>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</name>
      <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
      <?line -18?>

</section>
    <section anchor="icmp-message-types">
      <name>ICMP Message Types</name>
      <t><xref target="RFC1122"/> and <xref target="RFC4443"/> make a distintion between ICMP error messages and ICMP information messages. An ICMP error messages indicates that a downstream node recieved a packet that it could not process. <xref target="RFC0792"/> refers to the unprocessed packet as the "original data datagram", while <xref target="RFC4443"/> refers to the unprocessed packet as the "invoking packet". In this document, we will adopt <xref target="RFC4443"/> terminology and call the unprocessed packet the "invoking packet".</t>
      <t>Having received an invoking packet, the downstream node can send an ICMP error message to its originator. The ICMP error message indicates why the packet could not be processed. It also includes as much of the invoking packet as possible, without violating the ICMP message length limitations mentioned in (<xref target="length"/>).</t>
      <t>In ICMPv6, error messages are identified as such by a zero in the high-order bit of their message Type field values.  Thus, ICMPv6 error messages have message types from 0 to 127. ICMPv6 informational messages have message types from 128 to 255.</t>
      <t>In ICMPv4, error messages cannot be identified as such by a zero in the high-order bit of their message Type field values.</t>
      <t>The Internet Assigned Numbers Authority (IANA) maintains one registy of ICMPv4 message types <xref target="V4MSG"/> and another registry of ICMPv6 message types <xref target="V6MSG"/>. Many ICMPv4 message types have been deprecated.</t>
      <section anchor="message-processing">
        <name>Message Processing</name>
        <section anchor="known-icmp-message-types">
          <name>Known ICMP Message Types</name>
          <t>According to <xref target="RFC1122"/> and <xref target="RFC4443"/>, when a node receives an ICMP error message, it must examine the message to determine:</t>
          <ul spacing="normal">
            <li>
              <t>whether the invoking packet originated on the local node</t>
            </li>
            <li>
              <t>which local application or transport-layer protocol originated the invoking packet</t>
            </li>
          </ul>
          <t>If the invoking packet originated on the local node, the ICMP error message must be delivered to the application or transport-layer prototcol that originated it (if possible). If the originating transport-layer protocol was the User Datagram Protocol (UDP) <xref target="RFC0768"/>, UDP must, in turn, deliver the ICMP error message to the application that caused the invoking packet to be sent.</t>
          <t>When a node receives an ICMP information message, the  message must be delivered to the application that caused it to be sent (if possible).</t>
        </section>
        <section anchor="unknown-icmp-message-types">
          <name>Unknown ICMP Message Types</name>
          <t>According to <xref target="RFC1122"/>, if an ICMPv4 message of unknown type is received, it must be silently discarded.</t>
          <t>According to <xref target="RFC4443"/>, if an ICMPv6 error message of unknown type is received, it must be passed to the upper-layer process that originated the invoking packet (if possible). However, if an ICMP informatonal message of unknown type is received, it must be silently discarded.</t>
        </section>
      </section>
    </section>
    <section anchor="icmp-restrictions">
      <name>ICMP Restrictions</name>
      <t>According to <xref target="RFC1122"/>, an ICMPv4 error message must not be sent as the result of receiving:</t>
      <ul spacing="normal">
        <li>
          <t>an ICMP error message</t>
        </li>
        <li>
          <t>a datagram destined to an IP broadcast or IP multicast address</t>
        </li>
        <li>
          <t>a datagram sent as a link-layer broadcast</t>
        </li>
        <li>
          <t>a non-initial fragment</t>
        </li>
        <li>
          <t>a datagram whose source address does not define a single host (e.g., a zero address, a broadcast address, a multicast address)</t>
        </li>
      </ul>
      <t>According to <xref target="RFC4443"/>, an ICMPv4 error message must not be sent as the result of receiving:</t>
      <ul spacing="normal">
        <li>
          <t>An ICMPv6 error message</t>
        </li>
        <li>
          <t>An ICMPv6 redirect message</t>
        </li>
        <li>
          <t>A packet destined to an IPv6 multicast address.</t>
        </li>
        <li>
          <t>A packet sent as a link-layer multicast</t>
        </li>
        <li>
          <t>A packet sent as a link-layer broadcast</t>
        </li>
        <li>
          <t>A packet whose source address does not uniquely identify a single node e.g., the IPv6 Unspecified Address, an IPv6 multicast address, or an address known by the ICMP message originator to be an IPv6 anycast address)</t>
        </li>
      </ul>
      <t>The following are exceptions to the IPv6 multicast, link-layer multicast, and link_layer broadcast rules above:</t>
      <ul spacing="normal">
        <li>
          <t>The Packet Too Big Message can be sent to allow Path MTU discovery to work for IPv6 multicast</t>
        </li>
        <li>
          <t>The Parameter Problem Message, reporting an unrecognized IPv6 option that has the Option Type highest-order two bits set to 10 can be sent</t>
        </li>
      </ul>
    </section>
    <section anchor="extensibility">
      <name>Extensibility:</name>
      <t>Some ICMP messages are extensible <xref target="RFC4884"/>. However, the extension header <bcp14>MUST</bcp14> not cause the ICMP message to violate the length restrictions mentioned below. IANA maintains a registry of <eref target="https://www.iana.org/assignments/icmp-parameters/icmp-parameters.xhtml#icmp-parameters-ext-classes">ICMP Extension Object Classes and Class Sub-types</eref>.</t>
    </section>
    <section anchor="acceptable-uses">
      <name>Acceptable Uses</name>
      <t><xref target="RFC7279"/> defines accpetable uses for ICMP. The following are acceptable uses:</t>
      <ul spacing="normal">
        <li>
          <t>to inform a datagram's originator that a forwarding plane anomaly has been encountered downstream.  The datagram originator must be able to determine whether or not the datagram was discarded by examining the ICMP message.</t>
        </li>
        <li>
          <t>to discover and convey dynamic information about a node (other than information usually carried in routing protocols), to discover and convey network-specific parameters, and to discover on-link routers and hosts.</t>
        </li>
      </ul>
      <t>Normally, ICMP <bcp14>SHOULD NOT</bcp14> be used to implement a general-purpose routing or network management protocol.  However, ICMP does have a role to play in conveying dynamic information about a network, which would belong in the second catagory,  above.</t>
    </section>
    <section anchor="management-applications">
      <name>Management Applications</name>
      <t>The following management applications rely on ICMP:</t>
      <ul spacing="normal">
        <li>
          <t>PING <xref target="RFC2151"/></t>
        </li>
        <li>
          <t>Traceroute <xref target="RFC2151"/></t>
        </li>
        <li>
          <t>Traceroute with extensions for Multiprotocol Label Switching (MPLS) <xref target="RFC4950"/></t>
        </li>
        <li>
          <t>Traceroute with extensions for Interface and Next-Hop Identification <xref target="RFC5837"/></t>
        </li>
        <li>
          <t>PROBE <xref target="RFC8335"/></t>
        </li>
      </ul>
    </section>
    <section anchor="general-issues">
      <name>General Issues</name>
      <section anchor="transport">
        <name>Transport</name>
        <t>ICMP messages can be lost in transport. Therefore, the originator of an ICMP message cannot rely on the message arriving at its intended destination.</t>
      </section>
      <section anchor="rate-limits">
        <name>Rate Limits</name>
        <t>As per <xref target="RFC1812"/> and <xref target="RFC4443"/>, nodes must rate limit ICMP messages that they originate. Neither RFC specifies how strict that rate limit must be. However, the rate limit <bcp14>MUST</bcp14> be strict enough to prevent a node from congesting one of its own interfaces with outbound ICMP messages.</t>
      </section>
      <section anchor="forgery">
        <name>Forgery</name>
        <t>ICMP messages are easily forged. <xref target="RFC5927"/> describes how forged ICMP messages can be used to attack TCP <xref target="RFC0793"/>. It also decribes mitigations against these attacks.</t>
      </section>
      <section anchor="length">
        <name>Message Length</name>
        <t>As per <xref target="RFC1812"/>, an ICMPv4 message must not exceed 576 bytes. <xref target="RFC4443"/> specifies no limit for ICMPv6 messages. However, to avoid fragmentation, ICMPv6 messages <bcp14>SHOULD</bcp14> not exceed the IPv6 minimum required MTU <xref target="RFC8200"/> (i.e., 1280 bytes).</t>
      </section>
      <section anchor="source-address-selection">
        <name>Source Address Selection</name>
        <t><xref target="RFC1812"/> offers the following guidance regarding ICMPv4 source address selection:</t>
        <ul empty="true">
          <li>
            <t>Except where this document specifies otherwise, the IP source address in an ICMP message originated by the router <bcp14>MUST</bcp14> be one of the IP addresses associated with the physical interface over which the ICMP message is transmitted.  If the interface has no IP addresses associated with it, the router's router-id is used instead.</t>
          </li>
        </ul>
        <t>However <xref target="RFC4443"/> offer different guidance regarding ICMPv6 source address selection:</t>
        <ul empty="true">
          <li>
            <t>If the message is a response to a message sent to one of the node's unicast addresses, the Source Address of the reply <bcp14>MUST</bcp14> be that same address.</t>
          </li>
        </ul>
        <ul empty="true">
          <li>
            <t>If the message is a response to a message sent to any other address, the Source Address of the ICMPv6 packet <bcp14>MUST</bcp14> be a unicast address belonging to the node.  The address <bcp14>SHOULD</bcp14> be chosen according to the rules that would be used to select the source address for any other packet originated by the node, given the destination address of the packet.  However, it <bcp14>MAY</bcp14> be selected in an alternative way if this would lead to a more informative choice of address reachable from the destination of the ICMPv6 packet.</t>
          </li>
        </ul>
      </section>
      <section anchor="path-selection">
        <name>Path Selection</name>
        <t>ICMP messages are typically path independent. This means that the IP layer determines the first-hop through which the ICMP message is forwarded. ICMP does not influence the IP layer's first hop selection.</t>
        <t>In at least one case, ICMP messages are not path independent. <xref target="RFC9359"/> describes a situation in which an ICMP message must be forwarded through a specific interface. That is, the ICMP message must be forwarded through the interface upon which the packet that caused it to be sent arrived.</t>
      </section>
    </section>
    <section anchor="translation-considerations">
      <name>Translation Considerations</name>
      <t>IPv4 hosts will often communicate with an IPv4 host through an
IPv4/IPv4 translator <xref target="RFC5508"/> which may be located at the customer
premise, ISP, or the server's datacenter.</t>
      <t>IPv6-only hosts may communicate with IPv4-only hosts through an
IPv6/IPv4 translator which might be stateless (<xref target="RFC7915"/>,
<xref target="RFC6791"/>) or stateful (<xref target="RFC6146"/>), and may be located at the
customer premise or ISP (as a NAT64 service). Because of this
translation, a received ICMP message will refer to the IPv4 host.</t>
      <t>IPv4 traffic may communicate with IPv6-only hosts through an
IPv6/IPv4 translator located at the datacenter <xref target="RFC7755"/>. This
requires no special handling for the IPv4 host.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document does not make any requests of IANA</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>As this document does not introduce any new protocols or operational procedures, it does not introduce any new security considerations</t>
    </section>
    <section anchor="acknowledgements">
      <name>Acknowledgements</name>
      <t>The authors wish to acknowledge Joe Touch for his review and hekpful comments.</t>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC0768">
          <front>
            <title>User Datagram Protocol</title>
            <author fullname="J. Postel" initials="J." surname="Postel"/>
            <date month="August" year="1980"/>
          </front>
          <seriesInfo name="STD" value="6"/>
          <seriesInfo name="RFC" value="768"/>
          <seriesInfo name="DOI" value="10.17487/RFC0768"/>
        </reference>
        <reference anchor="RFC0791">
          <front>
            <title>Internet Protocol</title>
            <author fullname="J. Postel" initials="J." surname="Postel"/>
            <date month="September" year="1981"/>
          </front>
          <seriesInfo name="STD" value="5"/>
          <seriesInfo name="RFC" value="791"/>
          <seriesInfo name="DOI" value="10.17487/RFC0791"/>
        </reference>
        <reference anchor="RFC0792">
          <front>
            <title>Internet Control Message Protocol</title>
            <author fullname="J. Postel" initials="J." surname="Postel"/>
            <date month="September" year="1981"/>
          </front>
          <seriesInfo name="STD" value="5"/>
          <seriesInfo name="RFC" value="792"/>
          <seriesInfo name="DOI" value="10.17487/RFC0792"/>
        </reference>
        <reference anchor="RFC0793">
          <front>
            <title>Transmission Control Protocol</title>
            <author fullname="J. Postel" initials="J." surname="Postel"/>
            <date month="September" year="1981"/>
          </front>
          <seriesInfo name="RFC" value="793"/>
          <seriesInfo name="DOI" value="10.17487/RFC0793"/>
        </reference>
        <reference anchor="RFC1122">
          <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="RFC1812">
          <front>
            <title>Requirements for IP Version 4 Routers</title>
            <author fullname="F. Baker" initials="F." role="editor" surname="Baker"/>
            <date month="June" year="1995"/>
            <abstract>
              <t>This memo defines and discusses requirements for devices that perform the network layer forwarding function of the Internet protocol suite. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="1812"/>
          <seriesInfo name="DOI" value="10.17487/RFC1812"/>
        </reference>
        <reference anchor="RFC4443">
          <front>
            <title>Internet Control Message Protocol (ICMPv6) for the Internet Protocol Version 6 (IPv6) Specification</title>
            <author fullname="A. Conta" initials="A." surname="Conta"/>
            <author fullname="S. Deering" initials="S." surname="Deering"/>
            <author fullname="M. Gupta" initials="M." role="editor" surname="Gupta"/>
            <date month="March" year="2006"/>
            <abstract>
              <t>This document describes the format of a set of control messages used in ICMPv6 (Internet Control Message Protocol). ICMPv6 is the Internet Control Message Protocol for Internet Protocol version 6 (IPv6). [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="89"/>
          <seriesInfo name="RFC" value="4443"/>
          <seriesInfo name="DOI" value="10.17487/RFC4443"/>
        </reference>
        <reference anchor="RFC4884">
          <front>
            <title>Extended ICMP to Support Multi-Part Messages</title>
            <author fullname="R. Bonica" initials="R." surname="Bonica"/>
            <author fullname="D. Gan" initials="D." surname="Gan"/>
            <author fullname="D. Tappan" initials="D." surname="Tappan"/>
            <author fullname="C. Pignataro" initials="C." surname="Pignataro"/>
            <date month="April" year="2007"/>
            <abstract>
              <t>This document redefines selected ICMP messages to support multi-part operation. A multi-part ICMP message carries all of the information that ICMP messages carried previously, as well as additional information that applications may require.</t>
              <t>Multi-part messages are supported by an ICMP extension structure. The extension structure is situated at the end of the ICMP message. It includes an extension header followed by one or more extension objects. Each extension object contains an object header and object payload. All object headers share a common format.</t>
              <t>This document further redefines the above mentioned ICMP messages by specifying a length attribute. All of the currently defined ICMP messages to which an extension structure can be appended include an "original datagram" field. The "original datagram" field contains the initial octets of the datagram that elicited the ICMP error message. Although the original datagram field is of variable length, the ICMP message does not include a field that specifies its length. Therefore, in order to facilitate message parsing, this document allocates eight previously reserved bits to reflect the length of the "original datagram" field.</t>
              <t>The proposed modifications change the requirements for ICMP compliance. The impact of these changes on compliant implementations is discussed, and new requirements for future implementations are presented.</t>
              <t>This memo updates RFC 792 and RFC 4443. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4884"/>
          <seriesInfo name="DOI" value="10.17487/RFC4884"/>
        </reference>
        <reference anchor="RFC5927">
          <front>
            <title>ICMP Attacks against TCP</title>
            <author fullname="F. Gont" initials="F." surname="Gont"/>
            <date month="July" year="2010"/>
            <abstract>
              <t>This document discusses the use of the Internet Control Message Protocol (ICMP) to perform a variety of attacks against the Transmission Control Protocol (TCP). Additionally, this document describes a number of widely implemented modifications to TCP's handling of ICMP error messages that help to mitigate these issues. This document is not an Internet Standards Track specification; it is published for informational purposes.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5927"/>
          <seriesInfo name="DOI" value="10.17487/RFC5927"/>
        </reference>
        <reference anchor="RFC7279">
          <front>
            <title>An Acceptable Use Policy for New ICMP Types and Codes</title>
            <author fullname="M. Shore" initials="M." surname="Shore"/>
            <author fullname="C. Pignataro" initials="C." surname="Pignataro"/>
            <date month="May" year="2014"/>
            <abstract>
              <t>In this document we provide a basic description of ICMP's role in the IP stack and some guidelines for future use.</t>
              <t>This document is motivated by concerns about lack of clarity concerning when to add new Internet Control Message Protocol (ICMP) types and/or codes. These concerns have highlighted a need to describe policies for when adding new features to ICMP is desirable and when it is not.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="189"/>
          <seriesInfo name="RFC" value="7279"/>
          <seriesInfo name="DOI" value="10.17487/RFC7279"/>
        </reference>
        <reference anchor="RFC8200">
          <front>
            <title>Internet Protocol, Version 6 (IPv6) Specification</title>
            <author fullname="S. Deering" initials="S." surname="Deering"/>
            <author fullname="R. Hinden" initials="R." surname="Hinden"/>
            <date month="July" year="2017"/>
            <abstract>
              <t>This document specifies version 6 of the Internet Protocol (IPv6). It obsoletes RFC 2460.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="86"/>
          <seriesInfo name="RFC" value="8200"/>
          <seriesInfo name="DOI" value="10.17487/RFC8200"/>
        </reference>
        <reference anchor="RFC2119">
          <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">
          <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>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC2151">
          <front>
            <title>A Primer On Internet and TCP/IP Tools and Utilities</title>
            <author fullname="G. Kessler" initials="G." surname="Kessler"/>
            <author fullname="S. Shepard" initials="S." surname="Shepard"/>
            <date month="June" year="1997"/>
            <abstract>
              <t>This memo is an introductory guide to many of the most commonly- available TCP/IP and Internet tools and utilities. It also describes discussion lists accessible from the Internet, ways to obtain Internet and TCP/IP documents, and some resources that help users weave their way through the Internet. This memo provides information for the Internet community. This memo does not specify an Internet standard of any kind.</t>
            </abstract>
          </front>
          <seriesInfo name="FYI" value="30"/>
          <seriesInfo name="RFC" value="2151"/>
          <seriesInfo name="DOI" value="10.17487/RFC2151"/>
        </reference>
        <reference anchor="RFC4950">
          <front>
            <title>ICMP Extensions for Multiprotocol Label Switching</title>
            <author fullname="R. Bonica" initials="R." surname="Bonica"/>
            <author fullname="D. Gan" initials="D." surname="Gan"/>
            <author fullname="D. Tappan" initials="D." surname="Tappan"/>
            <author fullname="C. Pignataro" initials="C." surname="Pignataro"/>
            <date month="August" year="2007"/>
            <abstract>
              <t>This memo defines an extension object that can be appended to selected multi-part ICMP messages. This extension permits Label Switching Routers to append MPLS information to ICMP messages, and has already been widely deployed. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4950"/>
          <seriesInfo name="DOI" value="10.17487/RFC4950"/>
        </reference>
        <reference anchor="RFC5837">
          <front>
            <title>Extending ICMP for Interface and Next-Hop Identification</title>
            <author fullname="A. Atlas" initials="A." role="editor" surname="Atlas"/>
            <author fullname="R. Bonica" initials="R." role="editor" surname="Bonica"/>
            <author fullname="C. Pignataro" initials="C." role="editor" surname="Pignataro"/>
            <author fullname="N. Shen" initials="N." surname="Shen"/>
            <author fullname="JR. Rivers" initials="JR." surname="Rivers"/>
            <date month="April" year="2010"/>
            <abstract>
              <t>This memo defines a data structure that can be appended to selected ICMP messages. The ICMP extension defined herein can be used to identify any combination of the following: the IP interface upon which a datagram arrived, the sub-IP component of an IP interface upon which a datagram arrived, the IP interface through which the datagram would have been forwarded had it been forwardable, and the IP next hop to which the datagram would have been forwarded.</t>
              <t>Devices can use this ICMP extension to identify interfaces and their components by any combination of the following: ifIndex, IPv4 address, IPv6 address, name, and MTU. ICMP-aware devices can use these extensions to identify both numbered and unnumbered interfaces. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5837"/>
          <seriesInfo name="DOI" value="10.17487/RFC5837"/>
        </reference>
        <reference anchor="RFC8335">
          <front>
            <title>PROBE: A Utility for Probing Interfaces</title>
            <author fullname="R. Bonica" initials="R." surname="Bonica"/>
            <author fullname="R. Thomas" initials="R." surname="Thomas"/>
            <author fullname="J. Linkova" initials="J." surname="Linkova"/>
            <author fullname="C. Lenart" initials="C." surname="Lenart"/>
            <author fullname="M. Boucadair" initials="M." surname="Boucadair"/>
            <date month="February" year="2018"/>
            <abstract>
              <t>This document describes a network diagnostic tool called PROBE. PROBE is similar to PING in that it can be used to query the status of a probed interface, but it differs from PING in that it does not require bidirectional connectivity between the probing and probed interfaces. Instead, PROBE requires bidirectional connectivity between the probing interface and a proxy interface. The proxy interface can reside on the same node as the probed interface, or it can reside on a node to which the probed interface is directly connected. This document updates RFC 4884.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8335"/>
          <seriesInfo name="DOI" value="10.17487/RFC8335"/>
        </reference>
        <reference anchor="RFC5508">
          <front>
            <title>NAT Behavioral Requirements for ICMP</title>
            <author fullname="P. Srisuresh" initials="P." surname="Srisuresh"/>
            <author fullname="B. Ford" initials="B." surname="Ford"/>
            <author fullname="S. Sivakumar" initials="S." surname="Sivakumar"/>
            <author fullname="S. Guha" initials="S." surname="Guha"/>
            <date month="April" year="2009"/>
            <abstract>
              <t>This document specifies the behavioral properties required of the Network Address Translator (NAT) devices in conjunction with the Internet Control Message Protocol (ICMP). The objective of this memo is to make NAT devices more predictable and compatible with diverse application protocols that traverse the devices. Companion documents provide behavioral recommendations specific to TCP, UDP, and other protocols. 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="148"/>
          <seriesInfo name="RFC" value="5508"/>
          <seriesInfo name="DOI" value="10.17487/RFC5508"/>
        </reference>
        <reference anchor="RFC7915">
          <front>
            <title>IP/ICMP Translation Algorithm</title>
            <author fullname="C. Bao" initials="C." surname="Bao"/>
            <author fullname="X. Li" initials="X." surname="Li"/>
            <author fullname="F. Baker" initials="F." surname="Baker"/>
            <author fullname="T. Anderson" initials="T." surname="Anderson"/>
            <author fullname="F. Gont" initials="F." surname="Gont"/>
            <date month="June" year="2016"/>
            <abstract>
              <t>This document describes the Stateless IP/ICMP Translation Algorithm (SIIT), which translates between IPv4 and IPv6 packet headers (including ICMP headers). This document obsoletes RFC 6145.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7915"/>
          <seriesInfo name="DOI" value="10.17487/RFC7915"/>
        </reference>
        <reference anchor="RFC9359">
          <front>
            <title>Echo Request/Reply for Enabled In Situ OAM (IOAM) Capabilities</title>
            <author fullname="X. Min" initials="X." surname="Min"/>
            <author fullname="G. Mirsky" initials="G." surname="Mirsky"/>
            <author fullname="L. Bo" initials="L." surname="Bo"/>
            <date month="April" year="2023"/>
            <abstract>
              <t>This document describes a generic format for use in echo request/reply mechanisms, which can be used within an IOAM-Domain, allowing the IOAM encapsulating node to discover the enabled IOAM capabilities of each IOAM transit and IOAM decapsulating node. The generic format is intended to be used with a variety of data planes such as IPv6, MPLS, Service Function Chain (SFC), and Bit Index Explicit Replication (BIER).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9359"/>
          <seriesInfo name="DOI" value="10.17487/RFC9359"/>
        </reference>
        <reference anchor="V4MSG">
          <front>
            <title>Internet Control Message Protocol (ICMP) Parameters</title>
            <author>
              <organization>Internet Assigned Numbers Authority (IANA)</organization>
            </author>
            <date/>
          </front>
          <seriesInfo name="Web" value="https://www.iana.org/assignments/icmp-parameters"/>
        </reference>
        <reference anchor="V6MSG">
          <front>
            <title>Internet Control Message Protocol version 6 (ICMPv6) Parameters</title>
            <author>
              <organization>Internet Assigned Numbers Authority (IANA)</organization>
            </author>
            <date/>
          </front>
          <seriesInfo name="Web" value="https://www.iana.org/assignments/icmpv6-parameters"/>
        </reference>
        <reference anchor="RFC6791">
          <front>
            <title>Stateless Source Address Mapping for ICMPv6 Packets</title>
            <author fullname="X. Li" initials="X." surname="Li"/>
            <author fullname="C. Bao" initials="C." surname="Bao"/>
            <author fullname="D. Wing" initials="D." surname="Wing"/>
            <author fullname="R. Vaithianathan" initials="R." surname="Vaithianathan"/>
            <author fullname="G. Huston" initials="G." surname="Huston"/>
            <date month="November" year="2012"/>
            <abstract>
              <t>A stateless IPv4/IPv6 translator may receive ICMPv6 packets containing non-IPv4-translatable addresses as the source. These packets should be passed across the translator as ICMP packets directed to the IPv4 destination. This document presents recommendations for source address translation in ICMPv6 headers to handle such cases. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6791"/>
          <seriesInfo name="DOI" value="10.17487/RFC6791"/>
        </reference>
        <reference anchor="RFC6146">
          <front>
            <title>Stateful NAT64: Network Address and Protocol Translation from IPv6 Clients to IPv4 Servers</title>
            <author fullname="M. Bagnulo" initials="M." surname="Bagnulo"/>
            <author fullname="P. Matthews" initials="P." surname="Matthews"/>
            <author fullname="I. van Beijnum" initials="I." surname="van Beijnum"/>
            <date month="April" year="2011"/>
          </front>
          <seriesInfo name="RFC" value="6146"/>
          <seriesInfo name="DOI" value="10.17487/RFC6146"/>
        </reference>
        <reference anchor="RFC7755">
          <front>
            <title>SIIT-DC: Stateless IP/ICMP Translation for IPv6 Data Center Environments</title>
            <author fullname="T. Anderson" initials="T." surname="Anderson"/>
            <date month="February" year="2016"/>
            <abstract>
              <t>This document describes the use of the Stateless IP/ICMP Translation Algorithm (SIIT) in an IPv6 Internet Data Center (IDC). In this deployment model, traffic from legacy IPv4-only clients on the Internet is translated to IPv6 upon reaching the IDC operator's network infrastructure. From that point on, it may be treated the same as traffic from native IPv6 end users. The IPv6 endpoints may be numbered using arbitrary (non-IPv4-translatable) IPv6 addresses. This facilitates a single-stack IPv6-only network infrastructure, as well as efficient utilization of public IPv4 addresses.</t>
              <t>The primary audience is IDC operators who are deploying IPv6, running out of available IPv4 addresses, and/or feeling that dual stack causes undesirable operational complexity.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7755"/>
          <seriesInfo name="DOI" value="10.17487/RFC7755"/>
        </reference>
      </references>
    </references>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA+Va23IbOZJ9r6/A2g8tT5C0KOvKmOhuWla3NWNdVpfp6eno
mACLIIl2EeAUqkTTDv/LfMt+2Z5MAHUhKbW9u7OxEesHq1gFJPKeJ7Oq2+0m
qR1rMx2Isph0j+tfritdqnWSFLrI1EB8c24KlRtViFNritxm4kI5J6dKXOe2
sClu7JyfXly/GIjbQpqxzMdO4K+4WqhcFtoamYmzD/ihlUnVN4kcjXL1MBC0
6ZFFydimRs5x+jiXk6I7skansqtNIXOFv+l80bWLrvqw6GayUK5IUvyZ2nw1
ENpMbOLK0Vw7B7rFagEy52d3PySJI/7+LjNrcGulXLLQA/ELZOgIEmS+kGnB
l9qMlcGls3mRq4nD1WruL8KyX5NEL/KBKPLSFXu7uye7ewnxhqOCupIltHl+
eTe8ORuKn2z+HuoVP+a2XCTvl0F6G6V3SSLLYmbzQdJNBP5p4wbipides+R8
yyvkxprmzVQXkPktThxbw3dyNQXBgfiLzqfaaL/M5mDmT6XROFBcqmIJfpwn
YEtYFTTub4d8Q82lzgYi9zr//je/qUcSNVg77YlrPTUSBrEN7k5lnlm39sjz
eCMzpaezFo+XpzV3r7NSiR8gCPmZK7MC+nqSw3ThT/l+Sr97MEyTwTc98VOk
4Hl7I019C0dKoz+y8sF2ZsuxuLWTYgkjeiuJtzajkIDNz03a413Rdbetb7I2
lmaJrds5+2tPXGjTYOyvWtrqllfWpTS/NVgdiL/dnUEv+aLXVsnpTBvZPPkD
aPXm2ux9/7FQdHIvNUlibD6HqA9qgLU3P5zuHh0eV5cn/fpyr758FS77/b14
t3/cj5f7+/txwf7x8X64PDjZOwqXR3tHJ+HyGPExQLwgMNts7PUP4tn7Jwe7
kcjxq0jk+NWrg3j3YDeyDI7j3ZNXBzgF13/Zv7j9ccCaCHnrS9OWuJY5zIDF
PiBiHAr+1/Xqr4gNkVSmRo3FZTkfYYsY8nIYDeSGl8MXvG+MbDQQE5k5xb8d
5TVHCoh0f1KjgZgVxcINXr5cLpc9LY3s4ayXkk+YI/+4l5zoFjV/JOjh1wv6
gL3wc3HoRX44/D8v9MNhS+yk2+0i+FyRI/Umyd1Mfbl5U4T9SKGugf/CCvUh
nUmDdWnYV7mlpXXFUikjZtYVrifuZtoJlKKSGBOunM9lrj8q55O3a1U72yhk
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

-->

</rfc>
