| Internet-Draft | ICMP Underlay Info Extension | February 2026 |
| Rajamanickam, et al. | Expires 28 August 2026 | [Page] |
Network operators managing overlay networks require visibility into underlay network hops during traceroute operations from overlay endpoints. This document defines an ICMP extension object, the Underlay Information Object (UIO), which allows underlay head-end nodes to encapsulate underlay error information within ICMP error messages. This mechanism provides overlay operators with crucial visibility into underlay network paths for troubleshooting.¶
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 28 August 2026.¶
Copyright (c) 2026 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.¶
The mechanism for ICMP messages to carry additional information is defined in [RFC4884]. ICMP message extensions that enable ICMP messages to carry additional information about the system where an error occurred are defined in [RFC5837], [RFC8335], and [RFC8883]. These extensions transmit enhanced diagnostic information to the source node.¶
Network operators who manage both overlay and underlay networks, such as those operating VPN segments connected through an SRv6 core network, require the ability to trace paths through the underlay infrastructure. Currently, when performing traceroute operations from an overlay endpoint, operators lack visibility into the underlay path and cannot identify the specific underlay node where a failure occurred. For instance, imagine a VPN service (overlay) running over an SRv6 network (underlay). If a packet gets dropped within the SRv6 network, the VPN operator currently has no direct way to pinpoint the exact underlay node causing the issue.¶
The Underlay Information Object (UIO) defined in this document addresses this operational requirement by enabling underlay head-end nodes to include underlay-specific diagnostic information in ICMP error messages sent to overlay endpoints, thereby providing crucial visibility for troubleshooting.¶
The mechanism described in this document, where an underlay head-end node encapsulates underlay error information into a new ICMP error message destined for an overlay endpoint, deviates from existing ICMP error message origination rules. Specifically, [RFC4443], Section 2.4, Rule (e.1) states that "An ICMPv6 error message MUST NOT be originated as a result of receiving the following: (e.1) An ICMPv6 error message." A similar restriction exists for ICMPv4 in [RFC792].¶
This document defines a specific exception to this rule for the purpose of the Underlay Information Object (UIO). The UIO mechanism is designed to provide critical diagnostic visibility into underlay network failures for overlay operators, a function not adequately served by existing ICMP mechanisms. The underlay head-end node acts as an intermediary, translating an underlay error into a new error message containing encapsulated UIO information for the overlay, rather than simply forwarding the original error message. This controlled origination of a new ICMP error message, triggered by an underlay ICMP error message, is essential for the UIO's intended troubleshooting workflow. Therefore, this document updates [RFC4443] to accommodate this specific behavior.¶
However, permitting this exception introduces new challenges that must be carefully addressed. Because UIO creates an intentional pathway for underlay diagnostic information to cross into the overlay domain, it raises the following concerns:¶
To mitigate these risks, this document defines strict content restrictions (Section 3.3) that constrain which ICMP message types and extension objects may be encapsulated within a UIO, enforce message size limits, prevent loops and recursion, and ensure each UIO originates from a single underlay source. These restrictions are essential to making the error origination exception safe for deployment.¶
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.¶
This document uses the following terms:¶
This section defines a new ICMP extension object called Underlay Information Object (UIO) that is encoded as part of ICMP extension message. A new Class-Num value TBA (To Be Assigned) is assigned to identify the UIO. As per [RFC4884], this object MAY be appended to one of the following ICMP messages:¶
The UIO ICMP extension object has the following format:¶
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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Length | Class-Num=TBA | C-Type | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ~ ~ ~ Object-Payload (Other ICMP Extension Objects...) ~ ~ ~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
This ICMP extension object acts as an envelope to carry other ICMP extension objects related to the underlay. Primarily, the UIO ICMP extension object is encoded in the ICMP extension message by the underlay head-end when it receives an ICMP error message from one of its intermediate nodes.¶
This UIO ICMP extension object can encapsulate one or more relevant ICMP extension objects that are related to the underlay node. When the underlay head-end encodes its ICMP extension object, the first object MUST contain the ICMP extension object that carries IP address or the hostname of the node where the initial ICMP error was generated. The ICMP extension objects encoded within the UIO ICMP extension objects can belong to any address family, irrespective of the address family of the source node that decapsulates the UIO ICMP extension objects, as opposed to what is stated in Section 4.2 of [RFC5837].¶
If the node decoding the ICMP extension header does not recognize the UIO ICMP extension object, it SHOULD ignore this object and continue processing the other objects.¶
When an underlay head-end node receives an ICMP error message from an underlay node and needs to forward information about this error to an overlay endpoint, it follows this process:¶
Implementations SHOULD provide configuration options to control which underlay information is included in UIO objects, considering security and privacy implications discussed in Section 4.¶
The Underlay Information Object crosses administrative domain boundaries between overlay and underlay networks. To prevent confusion, information leakage, and potential abuse, strict restrictions apply to the content that can be encapsulated within a UIO.¶
An underlay head-end node MUST only encapsulate ICMP error messages that indicate packet forwarding failures in the underlay network.¶
The following ICMP message types MAY be encapsulated:¶
Other ICMP messages MUST NOT be included under UIO envelope. The overlay host that receives the UIO messages other than the listed above MUST be dropped.¶
The UIO object payload SHOULD contain only ICMP extension objects that provide diagnostic information about the underlay node that generated the original ICMP error message.¶
The following extension object classes are RECOMMENDED for inclusion:¶
Future IETF standards-track ICMP extension objects with diagnostic purpose MAY be included, subject to the restrictions below.¶
Other ICMP extension objects MUST NOT be included under UIO envelope. The overlay host that receives the UIO messages other than the listed above MUST be dropped.¶
The total size of an ICMP message containing a UIO object MUST NOT exceed the minimum reassembly buffer size for the IP version being used:¶
To ensure sufficient space for the ICMP header, original packet excerpt (128 octets as per [RFC4884]), and potential additional extension objects outside the UIO, implementations SHOULD limit the UIO object payload to a maximum of 512 octets.¶
If the underlay ICMP error message contains extension objects that would cause the UIO payload to exceed this limit, the underlay head-end node SHOULD:¶
An underlay head-end node MUST NOT generate an ICMP error message in response to receiving an ICMP error message that contains a UIO object in its extension structure.¶
This applies regardless of whether the underlay head-end node would normally generate an error (e.g., due to TTL expiration, routing failure, etc.). The packet MUST be silently discarded.¶
Additionally, as specified in Section 3.3.2, nested UIO objects (a UIO containing another UIO in its payload) MUST NOT be created.¶
Each UIO object MUST contain ICMP extension objects from exactly one underlay node (the node that generated the original ICMP error message received by the underlay head-end).¶
An underlay head-end node MUST NOT aggregate ICMP extension objects from multiple underlay nodes into a single UIO object, even if multiple errors were encountered for related packets.¶
If the underlay head-end needs to communicate errors from multiple underlay nodes, it MUST generate separate ICMP messages, each with its own UIO object.¶
The UIO extension introduces several security considerations that implementations and operators must address:¶
The UIO extension reveals information about the underlay network topology and addressing to overlay endpoints. In many deployments, the overlay and underlay networks are operated by different administrative entities, and underlay topology information may be considered sensitive.¶
Implementations MUST provide configuration options to control the generation of UIO extensions. The default configuration MUST disable UIO generation. Operators SHOULD enable UIO only for authenticated and authorized overlay endpoints or networks. The specific mechanisms for such authentication and authorization are outside the scope of this document but are crucial for secure deployment.¶
Underlay information may reveal details about network architecture, capacity, and routing that could be exploited for reconnaissance or targeted attacks. Operators SHOULD carefully consider which underlay information to expose through UIO extensions.¶
Including UIO extensions increases ICMP message size. Implementations MUST enforce the message size limits specified in Section 3.2 to prevent fragmentation issues and potential amplification attacks.¶
As with all ICMP messages, UIO extensions are subject to spoofing attacks. The authenticity and integrity of UIO information cannot be guaranteed without additional security mechanisms. Implementations and operators SHOULD NOT use UIO information for security-critical decisions.¶
The extensions defined in this document are intended exclusively for administrative debugging and troubleshooting purposes. They provide diagnostic information in ICMP responses and are not designed for use in production protocols, automation systems, or non-debugging applications.¶
Implementations SHOULD apply rate limiting to the generation of ICMP messages containing UIO extensions to prevent resource exhaustion and potential denial-of-service conditions.¶
The UIO mechanism crosses administrative domain boundaries between overlay and underlay networks. This "crossing of streams" creates potential security and operational risks if content is not carefully filtered.¶
Including inappropriate ICMP message types or extension objects in UIO could disclose:¶
The content restrictions in Section 3.3 are designed to limit information disclosure to what is necessary for diagnosing forwarding failures. Implementations MUST enforce these restrictions as security boundaries.¶
Operators SHOULD NOT enable UIO for destinations outside their administrative control without careful consideration of what information will be disclosed.¶
Without content and rate restrictions, UIO could be abused for:¶
The following mechanisms mitigate these risks:¶
Implementations MUST enforce these protections and MUST NOT provide configuration options that bypass them (e.g., removing size limits or allowing nested UIO).¶
Network operators deploying UIO should:¶
In multi-tenant environments, operators should carefully consider whether underlay diagnostic information should be visible to all tenants or restricted based on tenant relationships and SLAs.¶
IANA is requested to assign a new value from the "ICMP Extension Object Classes and Class Sub-types" registry (https://www.iana.org/assignments/icmp-parameters/) for the Underlay Information Object (UIO) as follows:¶
| Class Value | Class Name | Reference |
|---|---|---|
| TBA | Underlay Information Object | [This RFC] |
IANA is requested to establish a new sub-registry titled "Underlay Information Object C-Types" under the "ICMP Extension Object Classes and Class Sub-types" registry.¶
Initial values for this registry are as follows:¶
| C-Type Value | Description | Reference |
|---|---|---|
| 0 | Reserved/Unspecified | [This RFC] |
| 1-246 | Unassigned | |
| 247-255 | Reserved for Private or Experimental Use | [This RFC] |
The registration procedure for values 1-246 is Standards Action or IESG Approval as defined in [RFC8126].¶
Operators SHOULD carefully configure which overlay endpoints or networks are authorized to receive UIO information. To effectively manage the security and operational aspects of UIO, implementations SHOULD provide configuration options, including but not limited to:¶
The intended use case for UIO is as follows:¶
Implementations SHOULD be tested for interoperability, particularly when overlay and underlay equipment are from different vendors.¶
This section lists examples of UIO encoding.¶
In this example, a host receives an IPv4 ICMPv4 Time Exceeded error message in response to an ICMP Echo Request as part of the traceroute application. It also contains a UIO ICMP extension object with IPv6 interface address information as follows.¶
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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ~ ~ ~ IPv4 Header ~ ~ ~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type=11 | Code=0 | Checksum | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Unused | Length=32 | Unused | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ~ ~ ~ Part of Original Datagram (128 bytes) ~ ~ ~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Ver=2 | Unused | Checksum | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Length=28 | Class-Num=TBA | C-Type=0 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Length=24 | Class-Num=2 | C-Type=4 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | AFI=2 | Reserved | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ~ ~ ~ IPv6 Address (Original Error Device) ~ ~ ~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
The traceroute application displays the IPv6 Address in the UIO to allow an administrator to trace the underlay path of the route being traced.¶
In this example, a host receives an IPv6 ICMPv6 Time Exceeded error message in response to an ICMP Echo Request as part of the traceroute application. It contains a UIO ICMP extension object with IPv4 interface address information as follows.¶
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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ~ ~ ~ IPv6 Header ~ ~ ~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type=3 | Code=0 | Checksum | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Length=32 | Unused | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ~ ~ ~ Part of Original Datagram (128 bytes) ~ ~ ~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Ver=2 | Unused | Checksum | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Length=16 | Class-Num=TBA | C-Type=0 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Length=12 | Class-Num=2 | C-Type=4 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | AFI=1 | Reserved | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | IPv4 Address (Original Error Device) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
The traceroute application displays the IPv4 Address in the UIO to allow an administrator to trace the underlay path of the route being traced.¶
The authors thank the contributors listed below for their substantial input and review.¶
The following individuals contributed to this document:¶