RFC 9486 PROPOSED STANDARD IPV6 · TELEMETRY · OAM

IPv6 IOAM options: IPv6 Options for In Situ Operations, Administration, and Maintenance (IOAM)

How IPv6 packets carry in-band telemetry notes in hop-by-hop and destination options.

On rfc-editor.org ↗
PUBLISHED
September 2023
AUTHORS
S. Bhandari, F. Brockners
STREAM
IETF
TRACE AND POT OPTION-TYPE
0x31
E2E OPTION-TYPE
0x11
MAXIMUM OPTION LENGTH
255 octets
ALIGNMENT
Multiples of 4 bytes
RESERVED FIELD
8 bits, MUST be zero
DOI
10.17487/RFC9486

RFC text

Contents
Original text · RFC Editor View on rfc-editor.org ↗
Internet Engineering Task Force (IETF)                  S. Bhandari, Ed.
Request for Comments: 9486                                   Thoughtspot
Category: Standards Track                              F. Brockners, Ed.
ISSN: 2070-1721                                                    Cisco
                                                          September 2023


  IPv6 Options for In Situ Operations, Administration, and Maintenance
                                 (IOAM)

Abstract

   In situ Operations, Administration, and Maintenance (IOAM) records
   operational and telemetry information in the packet while the packet
   traverses a path between two points in the network.  This document
   outlines how IOAM Data-Fields are encapsulated in IPv6.

Status of This Memo

   This is an Internet Standards Track document.

   This document is a product of the Internet Engineering Task Force
   (IETF).  It represents the consensus of the IETF community.  It has
   received public review and has been approved for publication by the
   Internet Engineering Steering Group (IESG).  Further information on
   Internet Standards is available in Section 2 of RFC 7841.

   Information about the current status of this document, any errata,
   and how to provide feedback on it may be obtained at
   https://www.rfc-editor.org/info/rfc9486.

Copyright Notice

   Copyright (c) 2023 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.

Table of Contents

   1.  Introduction
   2.  Conventions
     2.1.  Requirements Language
     2.2.  Abbreviations
   3.  In situ OAM Metadata Transport in IPv6
   4.  IOAM Deployment in IPv6 Networks
     4.1.  Considerations for IOAM Deployment and Implementation in
           IPv6 Networks
     4.2.  IOAM-Domains Bounded by Hosts
     4.3.  IOAM-Domains Bounded by Network Devices
   5.  Security Considerations
     5.1.  Applicability of Authentication Header (AH)
   6.  IANA Considerations
   7.  References
     7.1.  Normative References
     7.2.  Informative References
   Acknowledgements
   Contributors
   Authors' Addresses

1.  Introduction

   In situ Operations, Administration, and Maintenance (IOAM) records
   operational and telemetry information in the packet while the packet
   traverses a path between two points in the network.  IOAM concepts
   and associated nomenclature as well as IOAM Data-Fields are defined
   in [RFC9197].  This document outlines how IOAM Data-Fields are
   encapsulated in IPv6 [RFC8200] and discusses deployment requirements
   for networks that use IPv6-encapsulated IOAM Data-Fields.

   The terms "encapsulation" and "decapsulation" are used in this
   document in the same way as in [RFC9197]: An IOAM encapsulating node
   incorporates one or more IOAM Option-Types into packets that IOAM is
   enabled for.

2.  Conventions

2.1.  Requirements Language

   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.

2.2.  Abbreviations

   Abbreviations used in this document:

   E2E:       Edge-to-Edge

   IOAM:      In situ Operations, Administration, and Maintenance as
              defined in [RFC9197]

   OAM:       Operations, Administration, and Maintenance

   POT:       Proof of Transit

3.  In situ OAM Metadata Transport in IPv6

   IOAM in IPv6 is used to enhance diagnostics of IPv6 networks.  It
   complements other mechanisms designed to enhance diagnostics of IPv6
   networks, such as the "IPv6 Performance and Diagnostic Metrics (PDM)
   Destination Option" described in [RFC8250].

   At the time this document was written, several implementations of
   IOAM for IPv6 exist, e.g., IOAM for IPv6 in the Linux Kernel
   (supported from Kernel version 5.15 onward, IPv6 IOAM in Linux Kernel
   (https://github.com/torvalds/linux/
   commit/7c804e91df523a37c29e183ea2b10ac73c3a4f3d)) and IOAM for IPv6
   in Vector Packet Processing (VPP) (https://docs.fd.io/vpp/17.04/
   ioam_ipv6_doc.html).

   IOAM Data-Fields can be encapsulated with two types of extension
   headers in IPv6 packets -- either the hop-by-hop options header or
   the destination options header.  Multiple options with the same
   option type MAY appear in the same hop-by-hop options or destination
   options header with distinct content.

   An IPv6 packet carrying IOAM data in an extension header can have
   other extension headers, compliant with [RFC8200].

   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |  Option-Type  |  Opt Data Len |   Reserved    | IOAM Opt-Type |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+<-+
   |                                                               |  |
   .                                                               .  I
   .                                                               .  O
   .                                                               .  A
   .                                                               .  M
   .                                                               .  .
   .                          Option Data                          .  O
   .                                                               .  P
   .                                                               .  T
   .                                                               .  I
   .                                                               .  O
   .                                                               .  N
   |                                                               |  |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+<-+

        Figure 1: IPv6 Hop-by-Hop and Destination Option Format for
                         Carrying IOAM Data- Fields

   Option-Type:  8-bit option type identifier as defined in Section 6.

   Opt Data Len:  8-bit unsigned integer.  Length of this option, in
      octets, not including the first 2 octets.

   Reserved:  8-bit field MUST be set to zero by the source.

   IOAM Option-Type:  Abbreviated to "IOAM Opt-Type" in the diagram
      above: 8-bit field as defined in Section 4.1 of [RFC9197].

   Option Data:  Variable-length field.  The data is specific to the
      Option-Type, as detailed below.

      Pre-allocated Trace Option:  The IOAM Pre-allocated Trace Option-
         Type, defined in Section 4.4 of [RFC9197], is represented as an
         IPv6 option in the hop-by-hop extension header:

         Option-Type:  0x31 (8-bit identifier of the IPv6 Option-Type
            for IOAM).

         IOAM Type:  IOAM Pre-allocated Trace Option-Type.

      Proof of Transit Option-Type:  The IOAM POT Option-Type, defined
         in Section 4.5 of [RFC9197], is represented as an IPv6 option
         in the hop-by-hop extension header:

         Option-Type:  0x31 (8-bit identifier of the IPv6 Option-Type
            for IOAM).

         IOAM Type:  IOAM POT Option-Type.

      Edge-to-Edge Option:  The IOAM E2E Option, defined in Section 4.6
         of [RFC9197], is represented as an IPv6 option in destination
         extension header:

         Option-Type:  0x11 (8-bit identifier of the IPv6 Option-Type
            for IOAM).

         IOAM Type:  IOAM E2E Option-Type.

      Direct Export (DEX) Option:  The IOAM Direct Export Option-Type,
         defined in Section 3.2 of [RFC9326], is represented as an IPv6
         option in the hop-by-hop extension header:

         Option-Type:  0x11 (8-bit identifier of the IPv6 Option-Type
            for IOAM).

         IOAM Type:  IOAM Direct Export (DEX) Option-Type.

   All the IOAM IPv6 options defined here have alignment requirements.
   Specifically, they all require alignment on multiples of 4 bytes.
   This ensures that fields specified in [RFC9197] are aligned at a
   multiple-of-4 offset from the start of the hop-by-hop and destination
   options header.

   IPv6 options can have a maximum length of 255 octets.  Consequently,
   the total length of IOAM Option-Types including all data fields is
   also limited to 255 octets when encapsulated into IPv6.

4.  IOAM Deployment in IPv6 Networks

4.1.  Considerations for IOAM Deployment and Implementation in IPv6
      Networks

   IOAM deployments in IPv6 networks MUST take the following
   considerations and requirements into account.

   C1:  IOAM MUST be deployed in an IOAM-Domain.  An IOAM-Domain is a
        set of nodes that use IOAM.  An IOAM-Domain is bounded by its
        perimeter or edge.  The set of nodes forming an IOAM-Domain may
        be connected to the same physical infrastructure (e.g., a
        service provider's network).  They may also be remotely
        connected to each other (e.g., an enterprise VPN or an overlay).
        It is expected that all nodes in an IOAM-Domain are managed by
        the same administrative entity.  Please refer to [RFC9197] for
        more details on IOAM-Domains.

   C2:  Implementations of IOAM MUST ensure that the addition of IOAM
        Data-Fields does not alter the way routers forward packets or
        the forwarding decisions they make.  Packets with added IOAM
        information must follow the same path within the domain as an
        identical packet without IOAM information would, even in the
        presence of Equal-Cost Multipath (ECMP).  This behavior is
        important for deployments where IOAM Data-Fields are only added
        "on-demand".  Implementations of IOAM MUST ensure that ECMP
        behavior for packets with and without IOAM Data-Fields is the
        same.  In order for IOAM to work in IPv6 networks, IOAM MUST be
        explicitly enabled per interface on every node within the IOAM-
        Domain.  Unless a particular interface is explicitly enabled
        (i.e., explicitly configured) for IOAM, a router MUST ignore
        IOAM Options.

   C3:  In order to maintain the integrity of packets in an IOAM-Domain,
        the Maximum Transmission Unit (MTU) of transit routers and
        switches must be configured to a value that does not lead to an
        "ICMP Packet Too Big" error message being sent to the originator
        and the packet being dropped.  The PMTU tolerance range must be
        identified, and IOAM encapsulation operations or data field
        insertion must not exceed this range.  Control of the MTU is
        critical to the proper operation of IOAM.  The PMTU tolerance
        must be identified through configuration, and IOAM operations
        must not exceed the packet size beyond PMTU.

   C4:  [RFC8200] precludes insertion of IOAM data directly into the
        original IPv6 header of in-flight packets.  IOAM deployments
        that do not encapsulate/decapsulate IOAM on the host but desire
        to encapsulate/decapsulate IOAM on transit nodes MUST add an
        additional IPv6 header to the original packet.  IOAM data is
        added to this additional IPv6 header.

4.2.  IOAM-Domains Bounded by Hosts

   For deployments where the IOAM-Domain is bounded by hosts, hosts will
   perform the operation of IOAM Data-Field encapsulation and
   decapsulation, i.e., hosts will place the IOAM Data-Fields directly
   in the IPv6 header or remove the IOAM Data-Fields directly from the
   IPv6 header.  IOAM data is carried in IPv6 packets as hop-by-hop or
   destination options as specified in this document.

4.3.  IOAM-Domains Bounded by Network Devices

   For deployments where the IOAM-Domain is bounded by network devices,
   network devices such as routers form the edge of an IOAM-Domain.
   Network devices will perform the operation of IOAM Data-Field
   encapsulation and decapsulation.  Network devices will encapsulate
   IOAM Data-Fields in an additional, outer, IPv6 header that carries
   the IOAM Data-Fields.

5.  Security Considerations

   This document describes the encapsulation of IOAM Data-Fields in
   IPv6.  For general IOAM security considerations, see [RFC9197].
   Security considerations of the specific IOAM Data-Fields for each
   case (i.e., Trace, POT, and E2E) are also described and defined in
   [RFC9197].

   As this document describes new options for IPv6, the security
   considerations of [RFC8200] and [RFC8250] apply.

   From a network-protection perspective, there is an assumed trust
   model such that any node that adds IOAM to a packet, removes IOAM
   from a packet, or modifies IOAM Data-Fields of a packet is assumed to
   be allowed to do so.  By default, packets that include IPv6 extension
   headers with IOAM information MUST NOT be leaked through the
   boundaries of the IOAM-Domain.

   IOAM-Domain boundary routers MUST filter any incoming traffic from
   outside the IOAM-Domain that contains IPv6 extension headers with
   IOAM information.  IOAM-Domain boundary routers MUST also filter any
   outgoing traffic leaving the IOAM-Domain that contains IPv6 extension
   headers with IOAM information.

   In the general case, an IOAM node only adds, removes, or modifies an
   IPv6 extension header with IOAM information, if the directive to do
   so comes from a trusted source and the directive is validated.

   Problems may occur if the above behaviors are not implemented or if
   the assumed trust model is violated (e.g., through a security
   breach).  In addition to the security considerations discussed in
   [RFC9197], the security considerations associated with IPv6 extension
   headers listed in [RFC9098] apply.

5.1.  Applicability of Authentication Header (AH)

   The network devices in an IOAM-Domain are trusted to add, update, and
   remove IOAM options according to the constraints specified in
   [RFC8200].  IOAM-Domain does not rely on the AH as defined in
   [RFC4302] to secure IOAM options.  The use of IOAM options with AH
   and its processing are not defined in this document.  Future
   documents may define the use of IOAM with AH and its processing.

6.  IANA Considerations

   IANA has assigned the IPv6 Option-Types from the "Destination Options
   and Hop-by-Hop Options" subregistry of "Internet Protocol Version 6
   (IPv6) Parameters" <https://www.iana.org/assignments/
   ipv6-parameters/>.

       +=======+===================+===================+===========+
       | Hex   | Binary Value      | Description       | Reference |
       | Value +=====+=====+=======+                   |           |
       |       | act | chg | rest  |                   |           |
       +=======+=====+=====+=======+===================+===========+
       | 0x11  | 00  | 0   | 10001 | IOAM Destination  | RFC 9486  |
       |       |     |     |       | Option and IOAM   |           |
       |       |     |     |       | Hop-by-Hop Option |           |
       +-------+-----+-----+-------+-------------------+-----------+
       | 0x31  | 00  | 1   | 10001 | IOAM Destination  | RFC 9486  |
       |       |     |     |       | Option and IOAM   |           |
       |       |     |     |       | Hop-by-Hop Option |           |
       +-------+-----+-----+-------+-------------------+-----------+

                                  Table 1

7.  References

7.1.  Normative References

   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", BCP 14, RFC 2119,
              DOI 10.17487/RFC2119, March 1997,
              <https://www.rfc-editor.org/info/rfc2119>.

   [RFC8174]  Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
              2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
              May 2017, <https://www.rfc-editor.org/info/rfc8174>.

   [RFC9197]  Brockners, F., Ed., Bhandari, S., Ed., and T. Mizrahi,
              Ed., "Data Fields for In Situ Operations, Administration,
              and Maintenance (IOAM)", RFC 9197, DOI 10.17487/RFC9197,
              May 2022, <https://www.rfc-editor.org/info/rfc9197>.

   [RFC9326]  Song, H., Gafni, B., Brockners, F., Bhandari, S., and T.
              Mizrahi, "In Situ Operations, Administration, and
              Maintenance (IOAM) Direct Exporting", RFC 9326,
              DOI 10.17487/RFC9326, November 2022,
              <https://www.rfc-editor.org/info/rfc9326>.

7.2.  Informative References

   [IPV6-RECORD-ROUTE]
              Kitamura, H., "Record Route for IPv6 (RR6) Hop-by-Hop
              Option Extension", Work in Progress, Internet-Draft,
              draft-kitamura-ipv6-record-route-00, 17 November 2000,
              <https://datatracker.ietf.org/doc/html/draft-kitamura-
              ipv6-record-route-00>.

   [RFC4302]  Kent, S., "IP Authentication Header", RFC 4302,
              DOI 10.17487/RFC4302, December 2005,
              <https://www.rfc-editor.org/info/rfc4302>.

   [RFC8200]  Deering, S. and R. Hinden, "Internet Protocol, Version 6
              (IPv6) Specification", STD 86, RFC 8200,
              DOI 10.17487/RFC8200, July 2017,
              <https://www.rfc-editor.org/info/rfc8200>.

   [RFC8250]  Elkins, N., Hamilton, R., and M. Ackermann, "IPv6
              Performance and Diagnostic Metrics (PDM) Destination
              Option", RFC 8250, DOI 10.17487/RFC8250, September 2017,
              <https://www.rfc-editor.org/info/rfc8250>.

   [RFC9098]  Gont, F., Hilliard, N., Doering, G., Kumari, W., Huston,
              G., and W. Liu, "Operational Implications of IPv6 Packets
              with Extension Headers", RFC 9098, DOI 10.17487/RFC9098,
              September 2021, <https://www.rfc-editor.org/info/rfc9098>.

Acknowledgements

   The authors would like to thank Tom Herbert, Éric Vyncke, Nalini
   Elkins, Srihari Raghavan, Ranganathan T S, Karthik Babu Harichandra
   Babu, Akshaya Nadahalli, Stefano Previdi, Hemant Singh, Erik
   Nordmark, LJ Wobker, Mark Smith, Andrew Yourtchenko, and Justin
   Iurman for the comments and advice.  For the IPv6 encapsulation, this
   document leverages concepts described in [IPV6-RECORD-ROUTE].  The
   authors would like to acknowledge the work done by the author Hiroshi
   Kitamura and people involved in writing it.

Contributors

   This document was the collective effort of several authors.  The text
   and content were contributed by the editors and the coauthors listed
   below.

   Carlos Pignataro
   Cisco Systems, Inc.
   7200-11 Kit Creek Road
   Research Triangle Park, NC 27709
   United States of America
   Email: cpignata@cisco.com


   Hannes Gredler
   RtBrick Inc.
   Email: hannes@rtbrick.com


   John Leddy
   Email: john@leddy.net


   Stephen Youell
   JP Morgan Chase
   25 Bank Street
   London
   E14 5JP
   United Kingdom
   Email: stephen.youell@jpmorgan.com


   Tal Mizrahi
   Huawei Network.IO Innovation Lab
   Israel
   Email: tal.mizrahi.phd@gmail.com


   Aviv Kfir
   Mellanox Technologies, Inc.
   350 Oakmead Parkway, Suite 100
   Sunnyvale, CA 94085
   United States of America
   Email: avivk@mellanox.com


   Barak Gafni
   Mellanox Technologies, Inc.
   350 Oakmead Parkway, Suite 100
   Sunnyvale, CA 94085
   United States of America
   Email: gbarak@mellanox.com


   Petr Lapukhov
   Facebook
   1 Hacker Way
   Menlo Park, CA 94025
   United States of America
   Email: petr@fb.com


   Mickey Spiegel
   Barefoot Networks, an Intel company
   4750 Patrick Henry Drive
   Santa Clara, CA 95054
   United States of America
   Email: mickey.spiegel@intel.com


   Suresh Krishnan
   Kaloom
   Email: suresh@kaloom.com


   Rajiv Asati
   Cisco Systems, Inc.
   7200 Kit Creek Road
   Research Triangle Park, NC 27709
   United States of America
   Email: rajiva@cisco.com


   Mark Smith
   PO BOX 521
   Heidelberg VIC 3084
   Australia
   Email: markzzzsmith+id@gmail.com


Authors' Addresses

   Shwetha Bhandari (editor)
   Thoughtspot
   3rd Floor, Indiqube Orion
   24th Main Rd, Garden Layout, HSR Layout
   Bangalore 560 102
   Karnataka
   India
   Email: shwetha.bhandari@thoughtspot.com


   Frank Brockners (editor)
   Cisco Systems, Inc.
   Hansaallee 249, 3rd Floor
   40549 Duesseldorf
   Germany
   Email: fbrockne@cisco.com

AI ELI5

On this page
PROBLEMIn situ OAM (IOAM) records telemetry in the packet itself as it crosses a path, but IPv6 needs a defined place and format to carry those IOAM data fields.
MECHANISMRFC 9486 puts the IOAM data fields in IPv6 options: Option-Type 0x31 (hop-by-hop) and 0x11 (destination) with an IOAM Opt-Type byte that says which IOAM option follows. It also sets deployment rules for IOAM-Domains.
WHY IT MATTERSOperators get a standard way to carry IOAM in IPv6 inside a controlled domain, with rules to stop the data leaking out. It is a Proposed Standard and has not been obsoleted.

§1What This RFC Adds to IOAM

In situ Operations, Administration, and Maintenance (IOAM) records operational and telemetry information in the packet while it travels between two points in the network. The concepts and the IOAM Data-Fields themselves are defined in RFC 9197.

RFC 9486 covers one narrow job: how those data fields are encapsulated in IPv6 (RFC 8200), and what a network must do to deploy IPv6-encapsulated IOAM safely. It says IOAM in IPv6 is used to enhance diagnostics and complements other mechanisms such as the IPv6 Performance and Diagnostic Metrics (PDM) Destination Option in RFC 8250.

The big rulebook already says what notes a packet can carry. This short RFC only says where in an IPv6 packet those notes get pinned.

§2The IOAM Option Format

IOAM data is carried in IPv6 extension headers, either the hop-by-hop options header or the destination options header. Several options with the same option type MAY appear in one such header, as long as their content is distinct. A packet with IOAM can also carry other extension headers that comply with RFC 8200.

The option has an 8-bit Option-Type, an 8-bit Opt Data Len (the option length in octets, not counting the first 2 octets), an 8-bit Reserved field that MUST be zero when sent by the source, an 8-bit IOAM Opt-Type taken from RFC 9197, and then variable-length Option Data specific to the option type.

All of these options must be aligned on multiples of 4 bytes, so the fields from RFC 9197 sit at a multiple-of-4 offset from the start of the options header. Because an IPv6 option can be at most 255 octets long, the total IOAM data in one option is also limited to 255 octets.

The note area has a label that says what kind of note it is and how long it is. The notes must start on neat boundaries, and the whole pile cannot be longer than 255 bytes.

IPV6 IOAM OPTION HEADER (RFC 9486, FIGURE 1)
IOAM option in an IPv6 options header
FieldNameSizeValueDescription
OPTION-TYPEOption-Type1 byteIPv6 option type identifier for IOAM.
OPT-DATA-LENOpt Data Len1 byteLength of the option in octets, not including the first 2 octets.
RESERVEDReserved1 byteMUST be set to zero by the source.
IOAM-OPT-TYPEIOAM Opt-Type1 byteWhich IOAM option this is, as defined in RFC 9197.

§3Which IOAM Option Types Map Where

Four IOAM option types are mapped onto IPv6. The Pre-allocated Trace Option (RFC 9197 Section 4.4) and the Proof of Transit (POT) option (Section 4.5) are carried as IPv6 options in the hop-by-hop header, with Option-Type 0x31.

The Edge-to-Edge (E2E) option (RFC 9197 Section 4.6) is carried in the destination options header, with Option-Type 0x11. The Direct Export (DEX) option from RFC 9326 is described as a hop-by-hop option, also written with Option-Type 0x11 in the text. In each case, the IOAM Opt-Type field says which of the four options it is.

There are four kinds of notes. Some are read by every stop along the way, and one kind is only read at the very end of the trip.

IOAM OPTION TYPES IN IPV6 (RFC 9486, SECTION 3)
IOAM optionOption-TypeHeader
Pre-allocated Trace0x31Hop-by-hop
Proof of Transit (POT)0x31Hop-by-hop
Edge-to-Edge (E2E)0x11Destination
Direct Export (DEX)0x11Hop-by-hop

§4Deployment Rules for IOAM-Domains

Four numbered considerations (C1 to C4) apply. C1: IOAM MUST be deployed in an IOAM-Domain, a set of nodes that use IOAM, bounded by its edge and expected to be managed by one administrative entity. C2: adding IOAM data MUST NOT change how routers forward packets, including under Equal-Cost Multipath (ECMP). IOAM MUST be explicitly enabled per interface on every node in the domain, and a router MUST ignore IOAM options on an interface that is not enabled.

C3: the MTU of transit routers and switches must be set so that adding IOAM data never triggers an ICMP Packet Too Big message and a dropped packet, and IOAM must not grow packets beyond the path MTU tolerance. C4: RFC 8200 precludes inserting IOAM data into the original IPv6 header of in-flight packets, so a transit node that adds IOAM MUST add an additional IPv6 header and put the IOAM data there.

Telemetry stickers may only be used inside your own club. Adding them must not send the packet down a different road, and the packet must not become too big to fit through the doors.

§5Domains Bounded by Hosts or by Routers

Where the IOAM-Domain edge is at the hosts, the hosts themselves add and remove the IOAM data fields, placing them directly in the IPv6 packet as hop-by-hop or destination options.

Where the edge is at network devices such as routers, those devices add and remove the data. They encapsulate the IOAM Data-Fields in an additional, outer IPv6 header, which fits the C4 rule above.

Either the sender and receiver themselves put on and take off the stickers, or the post offices at the edge wrap the letter in an extra envelope and put the stickers on that.

§6Security and Trust

The RFC assumes a trust model: any node that adds, removes or modifies IOAM data is assumed to be allowed to. By default, packets with IOAM extension headers MUST NOT leak across the domain boundary, and boundary routers MUST filter both incoming and outgoing traffic that carries IPv6 extension headers with IOAM information. A node should only change IOAM headers on a validated directive from a trusted source.

The security considerations of RFC 9197, RFC 8200, RFC 8250 and RFC 9098 also apply. The IOAM-Domain does not rely on the IP Authentication Header (RFC 4302) to protect IOAM options, and using IOAM with AH is not defined here; future documents may define it.

Everyone inside the club is trusted to write on the stickers, so guards at the door must stop sticker-covered packets from going out or coming in.

§7IANA Option-Type Assignments

IANA assigned two IPv6 Option-Types in the "Destination Options and Hop-by-Hop Options" subregistry. Both are described as "IOAM Destination Option and IOAM Hop-by-Hop Option".

Value 0x11 has act bits 00, chg bit 0 and rest 10001. Value 0x31 has act bits 00, chg bit 1 and rest 10001.

The official numbering office handed out two ID numbers so that routers can recognise IOAM notes.

§8References