<?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.5 (Ruby 3.2.2) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-fenner-intarea-extended-icmp-hostid-00" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.19.2 -->
  <front>
    <title abbrev="ICMP System ID">Extending ICMP for System Identification</title>
    <seriesInfo name="Internet-Draft" value="draft-fenner-intarea-extended-icmp-hostid-00"/>
    <author initials="B." surname="Fenner" fullname="Bill Fenner">
      <organization>Arista Networks</organization>
      <address>
        <postal>
          <street>5453 Great America Parkway</street>
          <city>Santa Clara</city>
          <region>California</region>
          <code>95054</code>
          <country>USA</country>
        </postal>
        <email>fenner@fenron.com</email>
      </address>
    </author>
    <date year="2024" month="February" day="09"/>
    <area>Internet</area>
    <workgroup>Internet Area Working Group</workgroup>
    <keyword>ICMP</keyword>
    <keyword>IPv6 nexthops</keyword>
    <keyword>Host identification</keyword>
    <abstract>
      <?line 45?>

<t>RFC5837 describes a mechanism for Extending ICMP for Interface and Next-Hop Identification,
which allows providing additional information in an ICMP error that helps identify
interfaces participating in the path.  This is especially useful in environments
where each interface may not have a unique IP address to respond to, e.g., a traceroute.</t>
      <t>This document introduces a similar ICMP extension for Node identification.
It allows providing a unique IP address or a textual name for the node, in
the case where each node may not have a unique IP address (e.g., the
IPv6 nexthop deployment case described in draft-chroboczek-intarea-v4-via-v6).</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://fenner.github.io/icmp-node-id/draft-fenner-intarea-extended-icmp-hostid.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-fenner-intarea-extended-icmp-hostid/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        Internet Area Working Group Working Group mailing list (<eref target="mailto:int-area@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/int-area/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/int-area/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/fenner/icmp-node-id"/>.</t>
    </note>
  </front>
  <middle>
    <?line 57?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>In addition to adding incoming interface information to a traceroute
using the mechanisms described in <xref target="RFC5837"/>, a network operator
may be interested in adding information to identify nodes themselves.
<xref target="I-D.chroboczek-intarea-v4-via-v6"/> describes a scenario in which individual
nodes do not have unique IPv4 addresses to use to reply to an IPv4
traceroute, so additional information is needed.</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 BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
      <?line -18?>

</section>
    <section anchor="node-identification-object">
      <name>Node Identification Object</name>
      <t>This section defines the Node Identification Object, an ICMP Extension
Object with a Class-Num (Object Class Value) of TBD that can be appended
to the following messages:</t>
      <ul spacing="normal">
        <li>
          <t>ICMPv4 Time Exceeded</t>
        </li>
        <li>
          <t>ICMPv4 Destination Unreachable</t>
        </li>
        <li>
          <t>ICMPv4 Parameter Problem</t>
        </li>
        <li>
          <t>ICMPv6 Time Exceeded</t>
        </li>
        <li>
          <t>ICMPv6 Destination Unreachable</t>
        </li>
      </ul>
      <t>For reasons described in <xref target="RFC4884"/>, this extension cannot be appended
to any of the currently defined ICMPv4 or ICMPv6 messages other than
those listed above.</t>
      <t>The extension defined herein <bcp14>MAY</bcp14> be appended to any of the above
listed messages and <bcp14>SHOULD</bcp14> be appended whenever required to identify
the node and when local policy or security
considerations do not supersede this requirement.</t>
      <section anchor="c-type-meaning-in-a-node-identification-object">
        <name>C-Type Meaning in a Node Identification Object</name>
        <t>C-Type values in a Node Identification Object include:</t>
        <ul spacing="normal">
          <li>
            <t>1: Identifies Node by Name</t>
          </li>
        </ul>
        <t>If the Node Identification Object identifies the node
by name, the Object Payload contains the configured node name.
It is presumed that the operator configures a unique node name
for each system that is identified in this manner.
If the Object Payload would not otherwise
terminate on a 32-bit boundary, it <bcp14>MUST</bcp14> be padded with ASCII NULL
characters.</t>
        <ul spacing="normal">
          <li>
            <t>2: Identifies Node by Address</t>
          </li>
        </ul>
        <t>If the Node Identification Object identifies the node by
address, the Object Payload contains an address sufficient
to identify the node within the appropriate scope - global
or as otherwise configured - as depicted in <xref target="addrFig"/>.</t>
        <figure anchor="addrFig">
          <name>Node Identification Object - C-Type 2 Payload</name>
          <artwork><![CDATA[
 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|              AFI              |            Reserved           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                           Address...
]]></artwork>
        </figure>
        <t>Payload fields are defined as follows:</t>
        <ul spacing="normal">
          <li>
            <t>Address Family Identifier (AFI): This 16-bit field identifies
the type of address represented by the Address field.
Values for this field represent a subset of values
found in the IANA registry of Address Family Numbers (available
from  <xref target="IANA.address-family-numbers"/>).  Valid values are 1 (representing a
32-bit IPv4 address) and 2 (representing a 128-bit IPv6 address).</t>
          </li>
          <li>
            <t>Reserved: This field <bcp14>MUST</bcp14> be set to 0 and ignored upon
receipt.</t>
          </li>
          <li>
            <t>Address: This variable-length field represents an address
of appropriate scope (global, if none other defined) that
can be used to identify the node.</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>It may not be desirable to allow this information to be sent to
an arbitrary receiver.  The addition of this information <bcp14>SHOULD</bcp14>
be configurable, and <bcp14>MUST</bcp14> default to off.  An implementation
<bcp14>SHOULD</bcp14> determine what objects may be appended to a given message
based on the destination IP address of the ICMP message that will
contain the objects.</t>
      <t>The intended field of use for the extensions defined in this document
is administrative debugging and troubleshooting.  The extensions
herein defined supply additional information in ICMP responses.
These mechanisms are not intended to be used in non-debugging
applications.</t>
      <t>This document does not specify an authentication mechanism for the
extension that it defines.  Application developers should be aware
that ICMP messages and their contents are easily spoofed.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document will ask IANA to allocate an ICMP Extension
Object Class referred to as TBD above.  But for now this
document is just for discussion.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-normative-references">
      <name>Normative References</name>
      <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="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="I-D.chroboczek-intarea-v4-via-v6">
        <front>
          <title>IPv4 routes with an IPv6 next hop</title>
          <author fullname="Juliusz Chroboczek" initials="J." surname="Chroboczek">
            <organization>IRIF, University of Paris</organization>
          </author>
          <author fullname="Warren &quot;Ace&quot; Kumari" initials="W. A." surname="Kumari">
            <organization>Google, LLC</organization>
          </author>
          <author fullname="Toke Høiland-Jørgensen" initials="T." surname="Høiland-Jørgensen">
            <organization>Red Hat</organization>
          </author>
          <date day="21" month="January" year="2024"/>
          <abstract>
            <t>   We propose "v4-via-v6" routing, a technique that uses IPv6 next-hop
   addresses for routing IPv4 packets, thus making it possible to route
   IPv4 packets across a network where routers have not been assigned
   IPv4 addresses.  We describe the technique, and discuss its
   operational implications.

   { Editor note: This document was originally published as draft-
   chroboczek-int-v4-via-v6, and later renamed to draft-chroboczek-
   intarea-v4-via-v6 . }

            </t>
          </abstract>
        </front>
        <seriesInfo name="Internet-Draft" value="draft-chroboczek-intarea-v4-via-v6-00"/>
      </reference>
      <reference anchor="IANA.address-family-numbers" target="http://www.iana.org/assignments/address-family-numbers">
        <front>
          <title>Address Family Numbers</title>
          <author>
            <organization>IANA</organization>
          </author>
        </front>
      </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>
    <?line 191?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>This document derives text heavily from <xref target="RFC5837"/>, since the
underlying mechanism is identical, and only the content of the
messages differ.</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA61Y2XLjuBV9x1cgmgfbE1NueWuPaja1l2lXtZe07UlNpfIA
kqCEMQloAFJuxXG+Jd+SL8u5AEmRsts9WewHkeC9Fxfn7oiiiJWqzOWYD04/
lVKnSk/5+fHFNc+M5TdLV8qCn6dSlypTiSiV0QMm4tjKBVg8YUN0MmAgkFNj
l2PuypSx1CRaFJCdWpGVUSa1ljZSuhRWikj6/WQaqaSYRzPjSpVGb94wV8WF
cg47lcs5mM9Pb8+YropY2jFLscOYJUY7qV3lxry0lWTQZY+RUNJJl9JqWQ7Y
g7H3U2uqeWeVT0DF/4wvdNCf6OuA3cslaNMx45E/u/+9XhxyDR1nZu5o4T0U
5KqHBFtIXUEdzn/XNpyHAw2erRdC5VgHMhGd4kcly2xo7JS+CZvM8G1WlnM3
3tkhUlpSCzlsyHZoYSe25sHJnUbIDjFPVTmrYrAH7Hc81NqkMlIpfc8Bpys7
4gPdMPANlelx7PxuOw5nZZEPGBMV8IPZIh4c4Z3Kc37m+bE7VB8DKeVKwS9l
SfYC1PAdKyWUOtg/2ANGUgDOQlqAzq+FvX8QSxAlqoSb3QgowY+BiKA1qDnm
G98cvDnY38C7lVNYacyPRa7gzloFokqX5KJ3NxO8yoB9ONOP+LFGDxNTMKaN
LWDmhTfwx7Pj/aOj/frx4GjvLT2eRyfDZGZNbJK/yfsWkcV+tFD4OfQ0k8vJ
UKSplc5FmShUvoyCN7sxY0pnq20Yi6KIixgAiKRkrN6Jp9IlVsXSccELmcyE
Vq7wAfpCzHoXzEQiudApYP1URu/NfC2Gt9nDTCUzLvIcTsPn1iyUFwNFFRGI
nLeqGY1nSAt7SGuxSzmDVWYyn7smJpY4S70zBApbqkTNwQ2h4C5nEovlbMj5
7UyByXHp5jJR0GDJKyezinbkUi8ULFBApIOO0kouBRRtZSNWllwbbC4WOCKv
tPqtkghXXmPMSwPDu7nB6UuzzeVwOtwGIWEqEXClHDLmdUB6qmgjEm5NWiUe
YKcKirD6sIQvpSIP7SX8ay0FDNl5+QKKL6gFfigBgRWwpWjwIgkXiq5tKMHo
JRFO8s7B6eOXz7wZTgkBrJu44Dnz3Cz9Ib3gxpNSwjpE82v+uzUMLlmoNM0l
Y1+Rd3mofPpj57p1GIKdnr25ET/hoTFa15eIsGMNVjmipbO3vu36ij4+1pHw
9ESW1CFVcDOXVpTGMoInlmE7pLPA1CrT27lxVo+ro10LJ/OFdEP2+PilcH56
6oWiS6QWVhnaLYSTQizCBWBhFuSnZmW31mqL/cZu0nsrvD847RyhQOhoT8RW
GG1zZz4bmg6ASOTfIdnn2OgFnRAF0sf/icyU9myOvF5y1DpOxc7xwcXdze1g
O/zyyyv//PH0T3fnH09P6Pnm/eTDh/aB1RQ376/uPpysnlacx1cXF6eXJ4EZ
q7y3xAYXk1/whbQaXF3fnl9dTj4MQm7oBiMgJxAae86tJIMKx3ou8e74+l//
HO3DNf4A39gdjb6BccLL0ejtPl4QQzrsZjRwDa+w95KJ+VwiwMlHUI0SMVel
yB1oHXcz86A5RR/Q/PovhMxfx/zbOJmP9r+vF+jAvcUGs96ix+z5yjPmAOIL
Sy9s06LZW19Duq/v5Jfee4N7Z/HbH3KlJY9GRz98z8iFfJbrlwt+Ff8qqSL5
vOmkD3/EAnwrBNErTNtt5ThtkikLX/gDugzuyzdK42VV8M36g1/hP4u8klvc
ZPz23UmoOAlkwTPIgtRyMDgK7Z4ZysAU7gWiSkwlldbQyyHYbhWS7emnxEdJ
Z/0EuULpoOudtpRuRUxprqVAu4FEDS/k18gKuSzab4efkXr4ealnSPd4dRSa
z9MbdReU3nwwrMoODkwJZO3MQi8JFl8vKmuBOjw8mCNtdDe20ajBhBsw+NJN
pcYg6+TKZ0sRm0WoirKzdSOPogFawpW6avC+Gl4Eq+W1G1L01d7cZaVYlAtJ
cPxWKRuEtW1EUxI9N5Hy3CRIenOTq2RJ54IDVhb9n58DwGdFSHh1tnUVCoOD
WQKY9SaUXChFIkdGt+jD+YVErQndiXjV6Wv6Bbmj+xI5Vb+8SqV3wNG4JQKn
Z4qX/BI+hdqZfSFw2k6jDjHChIGdegefyRq6a7HMjUjR2aJgKR2o8ZKpaUXg
ejCJyzcrihoV6ZBs0xBTRN2U0hWbW/UZLT+jjsV3JS7MfJ5fuZWmaZvPC+EH
ieaYa6o+mCpPvbG8Tz4oJxnCrKDAgTYE8d5uFCt4Ptr1VNglGqSS+/QbUyeZ
ej+i/DG5OT4/55d3qFCINGqcYXzqW/jui+hPQun9Lw0ACawu3q/bQOi2OXNV
BskKsli3A2lF0jHqFhkhYs3cKkLBJbAKBs9pbmI0FNQ/uhVcXQNH9AWtnkrK
JqPQ3mdq+vQEJB7HYzRk5P9PDOJLk5icb0zOzsejw+2P0km7kCk919AMh8Px
3u4G+HZavn/gj/E3/Pnf6IW13RfW9oh9hE97fJ8f8EP+lh/xb/6TNfbH6H/8
Z3/v6wQM+gu97w003e//fx36CrUWCIg/jvlXtSm5v6f5buMVf42a1Lbb+OPG
E2ONa8KPc7R91F81qR1uE0on1cuvm935mZ9SV8Fj+SaQ2hqH0W106APTi+uE
CF1vwIPpioOKQuP86GrxCyJsFwenb7bxEobg+zlk1jAPqfrDipNa7Sp2siS5
IQuDKaPE0IyWNGT7cR+js69Ja0e5DAM33xQLuj+hegwJ1hQcsfLKhP70tDX0
+qm0yf+E34hvttr5eQ/S6nzVbe+3fAnbXSfmo92jhvawpaWGs3W5GuoARJP1
CAEkkDdeqppqQ7FfYdD1Vx2JVPNy2DFjLWOBEYUOHOVST5Ev18DtZiq6ksle
yEGbIQUhBWfIWGgWQyNRe9GWLwN0sxKaM4wzvYLeJjo/oNzUtZsmlU7tZlSa
mjE39oOqsqS27zPIRYNrrI1zHhVNsDA6hgWqFsUiwIEOw183yNWQ6ruVNTGh
QWHxKqXSvmF08NDjnKLKPfYmyyBygqmrmOe+pQgXgXWTk8pQxGiCR2U0Piwd
r+fTXuvEp9BPN60SiwWhZoI3p50WsnuDEAqW76VrvlCBH1Ses7ryhHIeNq5b
Opqj/L7B9BBDE2dz+9A2fK5NC+szGcOzSHEuCi9/VwXSuJpOvTvTPQumVGCG
6cmQi9eorySzuodsNkCHRrPu5y+b/BnDLY6j2RziXO9+gKKQXKU9W3AG73vg
h5dGrYo08OV1qnTPLn9Sg6D2bSNdR8FdyZEqIAPnrdNr/86NLllWXXJogcpm
GCLvWO2G1YXMqbnyoyX1POQHD9CeecauLUO7DOnKt2FlCE5/D+QohwEMk9Vj
vs936xHUPxc5BRL8faCto4gu6D8/j4Wxy8pM2ropR4Gg2SsMCJy/q0oPga7D
ka2u0Bz/tXLha6pcUvkL/GF9pRmL5J7UniT3YM1lOg0XfI/jkGdl+t0gwwwu
B0/PzCMt/M35mzOMImJBUPjM3bsVcmi7pTcNqoK0+TIMg43d2h41oTTWXgrU
jTJBXUcXa42RqiyjBvbfK/jqtCMZAAA=

-->

</rfc>
