IPv6 Query for Enabled In-situ OAM Capabilities ZTE Corp.NanjingChina+86 25 88013062xiao.min2@zte.com.cnEricssonUnited States of Americagregimirsky@gmail.com
Internet
6MAN Working GroupRequest for CommentsRFCInternet DraftI-D This document describes the IPv6 Node IOAM Information Query functionality, which uses the IPv6 Node Information messages,
allowing the IOAM encapsulating node to discover the enabled IOAM capabilities of each IOAM transit and decapsulating node. This document updates RFCs 4620 and 4884. IPv6 encapsulation for In-situ OAM (IOAM) data is defined in , which uses
IPv6 hop-by-hop and destination options to carry IOAM data. As specified in , echo request/reply can be used for the IOAM encapsulating
node to discover the enabled IOAM capabilities at IOAM transit and decapsulating nodes. As specified in , the Internet Control Message Protocol for IPv6 (ICMPv6) is an integral part of
IPv6, and the base protocol MUST be fully implemented by every IPv6 node. ICMPv6 messages include error messages and informational
messages, and the latter are referred to as ICMPv6 Echo Request/Reply messages. defines ICMPv6 Extension
Structure by which multi-part ICMPv6 error messages are supported. defines ICMPv6 Extended Echo
Request/Reply messages, and the ICMPv6 Extended Echo Request contains an ICMPv6 Extension Structure customized for this message.
Both and provide sound principles and examples on how to extend ICMPv6 error
messages and echo request/reply messages. As specified in , two types of IPv6 Node Information messages, the Node Information Query (or NI
Query) and the Node Information Reply (or NI Reply), are carried in ICMPv6 packets, used for a Querier node to query information
of a Responder node. This document describes the IPv6 Node IOAM Information Query functionality, which uses the IPv6 Node Information messages,
allowing the IOAM encapsulating node to discover the enabled IOAM capabilities of each IOAM transit and decapsulating node. The IOAM encapsulating node sends a NI Query to each IOAM transit and decapsulating node, then each receiving node executes
access control procedures, and if access is granted, each receiving node returns a NI Reply which indicates the enabled IOAM
capabilities of the receiving node. The NI Reply contains an ICMPv6 Extension Structure exactly customized to this message, and
the ICMPv6 Extension Structure contains one or more IOAM Capabilities Objects. Note that before the IOAM encapsulating node sends the NI Query, it needs to know the IPv6 address of each node along the
transport path of a data packet to which IOAM data would be added. That can be achieved by executing ICMPv6/UDP traceroute or
provisioning explicit path at the IOAM encapsulating node. 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 when, and only when, they appear
in all capitals, as shown here. The Node IOAM Information Query message is encapsulated in an IPv6 header ,
like any ICMPv6 message. The Node IOAM Information Query message has the following format:IPv6 Header fields:Source Address: The Source Address identifies the IOAM encapsulating node.
It MUST be a valid IPv6 unicast address.Destination Address: The Destination Address identifies the IOAM transit or
decapsulating node. It MUST be a valid IPv6 unicast address.ICMPv6 fields:Type: NI Query. The value is 139 as allocated for .Code: The value is (TBD1) the Data field contains a List of IOAM Namespace-IDs which is the
Subject of this Query.Checksum: The ICMPv6 checksum.Qtype: The value is TBD2, which indicates the NI Query is a node IOAM capabilities query.Flags: The same as defined in . Flags are Qtype-specific, the NI Query
Qtype used in this document has no defined flags.Nonce: The same as defined in .Following the NI Query header, the Data field is a List of IOAM Namespace-IDs, which is
also called IOAM Capabilities Query Container Payload in Section 3.1 of
. The Node IOAM Information Reply message is encapsulated in an IPv6 header ,
like any ICMPv6 message. The Node IOAM Information Reply message has the following format:IPv6 Header fields:Source Address: Copied from the Destination Address field of the
invoking Node IOAM Information Query packet.Destination Address: Copied from the Source Address field of the
invoking Node IOAM Information Query packet.ICMPv6 fields:Type: NI Reply. The value is 140 as allocated for .Code: The values are (TBD3) No Matched Namespace-ID, and (TBD4) Exceed the minimum IPv6 MTU. See
for details.Checksum: The ICMPv6 checksum.Qtype: Copied from the Qtype field of the invoking Node IOAM Information Query.Flags: The same as defined in . Flags are Qtype-specific, the NI Reply
Qtype used in this document has no defined flags.Nonce: Copied from the Nonce field of the invoking Node IOAM Information Query.Following the NI Reply header, the Data field is a List of IOAM Capabilities Objects, which is
also called IOAM Capabilities Response Container Payload in Section 3.2 of .
Section 7 of defines the ICMP Extension Structure. As per RFC 4884, the Extension Structure
contains exactly one Extension Header followed by one or more objects. When applied to the Node IOAM Information Reply
message, the ICMP Extension Structure MUST contain one or more IOAM Capabilities Objects. All ICMPv6 IOAM Capabilities Objects are encapsulated in a Node IOAM Information Reply message. Each ICMPv6 IOAM Capabilities Object has the following format:Object fields:Class-Num: IOAM Capabilities Objects. The values are listed as the following:C-Type: Values are listed as the following:Length: Length of the object, measured in octets, including the
Object Header and Object Payload.Following the IOAM Capabilities Object Header, it's the IOAM Capabilities Object Payload,
which is defined respectively in Section 3.2.1, Section 3.2.2, Section 3.2.3, Section 3.2.4,
Section 3.2.5 and Section 3.2.6 of . The format of Node IOAM Information Reply can vary from deployment to deployment. In a deployment where only the default Namespace-ID is used, the IOAM Pre-allocated Tracing
Capabilities and IOAM Proof-of-Transit Capabilities are enabled at the IOAM transit node that received
Node IOAM Information Query, the Node IOAM Information Reply is depicted as the following: In a deployment where two Namespace-IDs (Namespace-ID1 and Namespace-ID2) are used, for both
Namespace-ID1 and Namespace-ID2 the IOAM Pre-allocated Tracing Capabilities and IOAM Proof-of-Transit
Capabilities are enabled at the IOAM transit node that received Node IOAM Information Query, the
Node IOAM Information Reply is depicted as the following: In a deployment where only the default Namespace-ID is used, the IOAM Pre-allocated Tracing Capabilities,
IOAM Proof-of-Transit Capabilities and IOAM Edge-to-Edge Capabilities are enabled at the IOAM decapsulating
node that received Node IOAM Information Query, the Node IOAM Information Reply is depicted as the following: Note that when a Node IOAM Information Query or Node IOAM Information Reply is received, the Payload Length
field of IPv6 Header indicates the message length.The Code field in the Node IOAM Information Reply MUST be set to (TBD3) No Matched Namespace-ID if any of the
following conditions apply:The Node IOAM Information Query does not include any Namespace-ID.None of the contained list of IOAM Namespace-IDs is recognized.None of the contained list of IOAM Namespace-IDs is enabled.The Code field in the Node IOAM Information Reply MUST be set to (TBD4) Exceed the minimum IPv6 MTU if the formatted
NI Reply packet exceeds the minimum IPv6 MTU (i.e., 1280 octets). In this case, all objects MUST be stripped before
forwarding the Node IOAM Information Reply to its destination. Section 4.6 of provides a list of extensible ICMP messages
(i.e., messages that can carry the ICMP Extension Structure). This document adds the IPv6
Node Information Query message and the IPv6 Node Information Reply message to that list. This document requests the following IANA actions:
Add the following Code to the "Type 139 - ICMP Node Information Query" sub-registry:
(TBD1) The Data field contains a List of IOAM Namespace-IDs which is the Subject of this Query Add the following to the "Qtypes" registry:
TBD2 Node IOAM Capabilities Add the following Codes to the "Type 140 - ICMP Node Information Response" sub-registry:
(TBD3) No Matched Namespace-ID (TBD4) Exceed the minimum IPv6 MTU Add the following to the "ICMP Extension Object Classes and Class
Sub-types" registry:
(TBD5) IOAM Tracing Capabilities Object Add the following C-types to the "Sub-types - Class TBD5 -
IOAM Tracing Capabilities Object" sub-registry:
(0) Reserved (1) Pre-allocated Tracing (2) Incremental Tracing Add the following to the "ICMP Extension Object Classes and Class
Sub-types" registry:
(TBD6) IOAM Proof-of-Transit Capabilities Object Add the following C-types to the "Sub-types - Class TBD6 -
IOAM Proof-of-Transit Capabilities Object" sub-registry:
(0) Reserved Add the following to the "ICMP Extension Object Classes and Class
Sub-types" registry:
(TBD7) IOAM Edge-to-Edge Capabilities Object Add the following C-types to the "Sub-types - Class TBD7 -
IOAM Edge-to-Edge Capabilities Object" sub-registry:
(0) Reserved Add the following to the "ICMP Extension Object Classes and Class
Sub-types" registry:
(TBD8) IOAM DEX Capabilities Object Add the following C-types to the "Sub-types - Class TBD8 -
IOAM DEX Capabilities Object" sub-registry:
(0) Reserved Add the following to the "ICMP Extension Object Classes and Class
Sub-types" registry:
(TBD9) IOAM End-of-Domain Object Add the following C-types to the "Sub-types - Class TBD9 -
IOAM End-of-Domain Object" sub-registry:
(0) ReservedAll codes mentioned above are assigned on a First Come First Serve (FCFS) basis with a range of 0-255. Securiy issues discussed in and apply
to this document. This document recommends using IP Authentication Header or IP Encapsulating Security
Payload Header to provide integrity protection for IOAM information. This document recommends using IP Encapsulating Security Payload Header to provide
privacy protection for IOAM information. This document recommends that the network operators establish policies that restrict access to IPv6 Node IOAM
Information Query functionality. In order to enforce these policies, nodes that support IPv6 Node IOAM Information
Query functionality MUST support the following configuration options:Enable/disable IPv6 Node IOAM Information Query functionality. By default, IPv6 Node IOAM Information Query
functionality is disabled.Define enabled Namespace-IDs. By default, all Namespace-IDs except the default one (i.e., Namespace-ID
0x0000) are disabled.For each enabled Namespace-ID, define the prefixes from which Node IOAM Information Query messages are
permitted.In order to protect local resources, implementations SHOULD rate-limit incoming Node IOAM Information Query messages. The authors would like to acknowledge Eric Vyncke and Erik Kline for their valuable suggestions on using IPv6 Node
Information Queries as the basis. The authors would like to acknowledge Bob Hinden for his valuable suggestions on the ICMPv6 message format.