<?xml version="1.0"encoding="US-ASCII"?> <!-- This template is for creating an Internet Draft using xml2rfc, which is available here: http://xml.resource.org. -->encoding="UTF-8"?> <!DOCTYPE rfcSYSTEM "rfc2629.dtd"[<!-- One method to get references from the online citation libraries. There has to be one entity for each item to be referenced. An alternate method (rfc include) is described in the references. --> <!ENTITY RFC2119 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml"> <!ENTITY RFC8174 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml"> <!ENTITY RFC7799 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.7799.xml"><!ENTITYRFC5475 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.5475.xml">nbsp " "> <!ENTITYRFC7014 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.7014.xml">zwsp "​"> <!ENTITYRFC6291 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.6291.xml">nbhy "‑"> <!ENTITYRFC9197 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.9197.xml"> <!ENTITY RFC6724 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.6724.xml"> <!ENTITY I-D.spiegel-ippm-ioam-rawexport SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml-ids/reference.I-D.spiegel-ippm-ioam-rawexport.xml"> <!ENTITY I-D.ietf-sfc-ioam-nsh SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml-ids/reference.I-D.ietf-sfc-ioam-nsh.xml"> <!ENTITY I-D.ietf-ippm-ioam-ipv6-options SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml-ids/reference.I-D.ietf-ippm-ioam-ipv6-options.xml"> <!ENTITY AFI SYSTEM "http://www.iana.org/assignments/address-family-numbers/address-family-numbers.xml">wj "⁠"> ]><?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?> <?rfc strict="yes" ?> <?rfc toc="yes"?> <?rfc tocdepth="4"?> <?rfc symrefs="yes"?> <?rfc sortrefs="yes" ?> <?rfc compact="yes" ?> <?rfc subcompact="no" ?><rfc xmlns:xi="http://www.w3.org/2001/XInclude" submissionType="IETF" category="std" consensus="true" docName="draft-ietf-ippm-ioam-flags-10"ipr="trust200902">number="9322" ipr="trust200902" obsoletes="" updates="" xml:lang="en" tocInclude="true" tocDepth="4" symRefs="true" sortRefs="true" version="3"> <!-- xml2rfc v2v3 conversion 3.14.2 --> <front> <title abbrev="IOAMFlags">In-situ OAMFlags">In Situ Operations, Administration, and Maintenance (IOAM) Loopback and Active Flags</title> <seriesInfo name="RFC" value="9322"/> <author fullname="Tal Mizrahi" initials="T." surname="Mizrahi"> <organization abbrev="">Huawei</organization> <address> <postal> <street/> <city/> <code/> <country>Israel</country> </postal> <email>tal.mizrahi.phd@gmail.com</email> </address> </author> <author fullname="Frank Brockners" initials="F." surname="Brockners"> <organization abbrev="Cisco">Cisco Systems, Inc.</organization> <address> <postal> <extaddr>3rd Floor</extaddr> <street>Hansaallee249, 3rd Floor</street> <!-- Reorder these if your country does things differently --> <city>DUESSELDORF</city> <region>NORDRHEIN-WESTFALEN</region>249</street> <city>Duesseldorf</city> <code>40549</code> <country>Germany</country> </postal> <email>fbrockne@cisco.com</email><!-- uri and facsimile elements may also be added --></address> </author> <author fullname="Shwetha Bhandari" initials="S." surname="Bhandari"> <organization abbrev="Thoughtspot">Thoughtspot</organization> <address> <postal><street>3rd Floor, Indiqube Orion, 24th<extaddr>3rd Floor</extaddr> <extaddr>Indiqube Orion</extaddr> <extaddr>Garden Layout</extaddr> <extaddr>HSR Layout</extaddr> <street>24th MainRd, Garden Layout, HSR Layout</street> <city>Bangalore, KARNATAKA 560 102</city>Rd</street> <city>Bangalore</city> <region>Karnataka</region> <code>560 102</code> <country>India</country> </postal> <email>shwetha.bhandari@thoughtspot.com</email> </address> </author> <author fullname="Barak Gafni" initials="B." surname="Gafni"> <organization abbrev="">Nvidia</organization> <address> <postal> <extaddr>Suite 100</extaddr> <street>350 OakmeadParkway, Suite 100</street> <city>Sunnyvale, CA</city>Parkway</street> <city>Sunnyvale</city> <region>CA</region> <code>94085</code><country>U.S.A.</country><country>United States of America</country> </postal> <email>gbarak@nvidia.com</email> </address> </author> <author fullname="Mickey Spiegel" initials="M." surname="Spiegel"> <organizationabbrev="">Barefootabbrev="Barefoot Networks">Barefoot Networks, an Intel company</organization> <address> <postal> <street>4750 Patrick Henry Drive</street> <city>SantaClara, CA</city>Clara</city> <region>CA</region> <code>95054</code><country>US</country><country>United States of America</country> </postal> <email>mickey.spiegel@intel.com</email> </address> </author> <dateyear="2022"/>year="2022" month="November" /> <area>TSV</area> <workgroup>IPPM</workgroup><!-- WG name at the upperleft corner of the doc, IETF is fine for individual submissions. If this element is not present, the default is "Network Working Group", which is used by the RFC Editor as a nod to the history of the IETF. --><keyword>IOAM</keyword> <keyword>Telemetry</keyword><!-- Keywords will be incorporated into HTML output files in a meta tag but they have no effect on text or nroff output. If you submit your draft to the RFC Editor, the keywords will be used for the search engine. --><abstract><t>In-situ<t>In situ Operations, Administration, and Maintenance (IOAM) collects operational and telemetry information in packets while they traverse a path between two points in the network. This document defines two new flags in the IOAM Trace Option headers, specifically the Loopback and Active flags.</t> </abstract> </front> <middle> <sectiontitle="Introduction" toc="default">toc="default" numbered="true"> <name>Introduction</name> <t>IOAM <xreftarget="RFC9197"/>target="RFC9197" format="default"/> is used for monitoring traffic in the network by incorporating IOAM data fields into in-flight data packets.</t> <t>IOAM data may be represented in one of four possible IOAM options: Pre-allocatedTrace Option,Trace, IncrementalTrace Option,Trace, Proof of Transit(POT) Option,(POT), andEdge-to-Edge Option.Edge-to-Edge. This document defines two new flags in the Pre-allocated and Incremental Trace options: the Loopback and Active flags.</t> <t>The Loopback flag is used to request that each transit device along the path loops back a truncated copy of the data packet to the sender. The Active flag indicates that a packet is used for active measurement. The termactive measurement"active measurement" in the context of this document is as defined in <xreftarget="RFC7799"/>.</t>target="RFC7799" format="default"/>.</t> </section> <section anchor="Conventions"title="Conventions">numbered="true" toc="default"> <name>Conventions</name> <sectiontitle="Requirements Language"> <t>Thenumbered="true" toc="default"> <name>Requirements Language</name> <t> The key words"MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY","<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"OPTIONAL""<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as described inBCP 14BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they appear in all capitals, as shownhere.</t>here. </t> </section> <sectiontitle="Terminology">numbered="true" toc="default"> <name>Terminology</name> <t>Abbreviations used in this document:</t><t><list hangIndent="11" style="hanging"> <t hangText="IOAM:">In-situ<dl newline="false" spacing="normal" indent="8"> <dt>IOAM:</dt> <dd>In situ Operations, Administration, andMaintenance</t> <t hangText="OAM:">Operations,Maintenance</dd> <dt>OAM:</dt> <dd>Operations, Administration, and Maintenance <xreftarget="RFC6291"/></t> </list></t>target="RFC6291" format="default"/></dd> </dl> </section> </section> <sectiontitle="Newnumbered="true" toc="default"> <name>New IOAM Trace OptionFlags">Flags</name> <tanchor="TraceFlags" hangText="Flags">Thisanchor="TraceFlags">This document defines two new flags in the Pre-allocated and Incremental Trace options:<list style="hanging"> <t hangText="Bit 1">"Loopback" (L-bit). When</t> <dl newline="false" spacing="normal"> <dt>Bit 1 "Loopback" (L-bit):</dt> <dd>When set, the Loopback flag triggers the sending of a copy of a packet back towards the source, as further described in <xreftarget="LoopbackSec"/>.</t> <t hangText="Bit 2">"Active" (A-bit). Whentarget="LoopbackSec" format="default"/>.</dd> <dt>Bit 2 "Active" (A-bit):</dt> <dd>When set, the Active flag indicates that a packet is an active measurement packet rather than a data packet, where "active" is used in the sense defined in <xreftarget="RFC7799"/>.target="RFC7799" format="default"/>. The packet may be an IOAM probepacket,packet or a replicated data packet (the second and third use cases of <xreftarget="UseCaseSec"/>).</t> </list></t>target="UseCaseSec" format="default"/>).</dd> </dl> </section> <section anchor="LoopbackSec"title="Loopbacknumbered="true" toc="default"> <name>Loopback inIOAM">IOAM</name> <t>The Loopback flag is used to request that each transit device along the path loops back a truncated copy of the data packet to the sender. Loopback allows an IOAM encapsulating node to trace the path to a givendestination,destination and to receive per-hop data about both the forward andthereturnpath.paths. Loopback is intended to provide an accelerated alternative toTraceroute,Traceroute that allows the encapsulating node to receive responses from multiple transit nodes along the path in lessthenthan oneround-trip-time,round-trip time (RTT) and by sending a single packet.</t> <t>As illustrated in <xreftarget="LoopbackFig"/>,target="LoopbackFig" format="default"/>, an IOAM encapsulating node can push an IOAM encapsulation that includes the Loopback flag onto some or all of the packets itforwards,forwards using one of the IOAM encapsulation types, e.g., <xreftarget="I-D.ietf-sfc-ioam-nsh"/>,target="I-D.ietf-sfc-ioam-nsh" format="default"/> or <xreftarget="I-D.ietf-ippm-ioam-ipv6-options"/>.target="I-D.ietf-ippm-ioam-ipv6-options" format="default"/>. The IOAM transit node and the decapsulating node bothcreatescreate copies of the packet and loop them back to the encapsulating node. The decapsulating node also terminates the IOAMencapsulation,encapsulation and then forwards the packet towards the destination. The two IOAMlooped backlooped-back copies are terminated by the encapsulating node.</t> <figurealign="center" anchor="LoopbackFig" title="Loopbackanchor="LoopbackFig"> <name>Loopback inIOAM.">IOAM</name> <artworkalign="left"><![CDATA[align="left" name="" type="" alt=""><![CDATA[ +--------+ +--------+ +--------+ +--------+ +--------+ | | | IOAM |.....| IOAM |.....| IOAM | | | +--------+ +--------+ +--------+ +--------+ +--------+ | L2/L3 |<===>| L2/L3 |<===>| L2/L3 |<===>| L2/L3 |<===>| L2/L3 | +--------+ +--------+ +--------+ +--------+ +--------+ Source Encapsulating Transit Decapsulating Destination Node Node Node <------------IOAM domainIOAM-Domain -----------> IOAM encap. with Loopback flag Data packet ------->============================>-----------> | | IOAM looped back | | <=============+ | IOAM looped back| <===========================+ ]]></artwork> </figure> <t>Loopback can be used only if a return path from transit nodes and destination nodes towards the source (encapsulating node) exists. Specifically, loopback is only applicable in encapsulations in which the identity of the encapsulating node is available in the encapsulation header. If an encapsulating node receives alooped backlooped-back packet that was not originated from the current encapsulating node, the packet is dropped.</t> <sectiontitle="Loopback:numbered="true" toc="default"> <name>Loopback: Encapsulating NodeFunctionality">Functionality</name> <t>The encapsulating node either generates synthetic packets with an IOAM trace option that has the Loopback flagset,set or sets theloopackLoopback flag in a subset of the in-transit data packets. Loopback is used either proactively or on-demand, i.e., when a failure is detected. The encapsulating node also needs to ensure that sufficient space is available in the IOAM header for loopback operation, which includes transit nodes adding trace data on the original path andthenagain on the return path.</t> <t>An IOAM trace option that has the Loopback flag setMUST<bcp14>MUST</bcp14> have the value '1' in the most significant bit ofIOAM-Trace-Type,IOAM-Trace-Type and '0' in the rest of the bits of IOAM-Trace-Type. Thus, every transit node that processes this trace option only adds a single data field, which is the Hop_Lim and node_id data field. A transit node that receives a packet with an IOAM trace option that has the Loopback flag set and the IOAM-Trace-Type is not equal to '1' in the most significant bit and '0' in the rest of thebits, MUST NOTbits <bcp14>MUST NOT</bcp14> loop back a copy of the packet. The reason for allowing only a single data field per hop is to minimize the impact of amplification attacks.</t> <t>IOAM encapsulating nodesMUST NOT<bcp14>MUST NOT</bcp14> push an IOAM encapsulation with the Loopback flag onto data packets that already include an IOAM encapsulation. This requirement is intended to prevent IOAM Loopbacknesting,nesting wherelooped backlooped-back packets may be subject to loopback in a nestedIOAM domain.</t>IOAM-Domain.</t> <section anchor="SelectSec"title="Loopbacknumbered="true" toc="default"> <name>Loopback PacketSelection">Selection</name> <t>If an IOAM encapsulating node incorporates the Loopback flag into all the traffic itforwardsforwards, it may lead to an excessive amount of looped back packets, which may overload the network and the encapsulating node. Therefore, an IOAM encapsulating node that supports the Loopback flagMUST<bcp14>MUST</bcp14> support the ability to incorporate the Loopback flag selectively into a subset of the packets that are forwarded by it.</t> <t>Various methods of packet selection and sampling have been previously defined, such as <xreftarget="RFC7014"/>target="RFC7014" format="default"/> and <xreftarget="RFC5475"/>.target="RFC5475" format="default"/>. Similar techniques can be applied by an IOAM encapsulating node to applyLoopbackloopback to a subset of the forwarded traffic.</t> <t>The subset of traffic that is forwarded or transmitted with a Loopback flagSHOULD NOT<bcp14>SHOULD NOT</bcp14> exceed 1/N of the interface capacity on any of the IOAM encapsulating node's interfaces. This requirement applies to the total traffic that incorporates a Loopback flag, including traffic that is forwarded by the IOAM encapsulating node and probe packets that are generated by the IOAM encapsulating node. In thiscontextcontext, N is a parameter that can be configurable by network operators. If there is an upper bound, M, on the number of IOAM transit nodes in any path in the network, then configuring N such that N >> M (i.e., N is much greater than M) isRECOMMENDED.<bcp14>RECOMMENDED</bcp14>. The rationale is that a packet that includes the Loopback flag triggers alooped backlooped-back packet from each IOAM transit node along the path for a total of Mlooped backlooped-back packets. Thus, if N >>MM, then the number oflooped backlooped-back packets is significantly lower than the number of data packets forwarded by the IOAM encapsulating node. It isRECOMMENDED<bcp14>RECOMMENDED</bcp14> that the default value of N satisfiesN>100,N>100 to be used in the absence of explicit operator configuration or if there is no prior knowledge about the network topology or size.</t> <t>AnIOAM domainIOAM-Domain in which the Loopback flag is usedMUST<bcp14>MUST</bcp14> be configured such that there is expected to be a return path from each of the IOAM transit and IOAM decapsulating nodes; if this expectation does not apply, or if the encapsulating node's identity is not available in the encapsulation header, then configurationMUST NOT<bcp14>MUST NOT</bcp14> enable the Loopback flag to be set.</t> </section> </section> <section anchor="ReceiveSec"title="Receivingnumbered="true" toc="default"> <name>Receiving and ProcessingLoopback">Loopback</name> <t>A Loopback flag that is set indicates to the transit nodes processing this option that they are to create a copy of the received packet and send the copy back to the source of the packet. In thiscontextcontext, the source is the IOAM encapsulatingnode,node and it is assumed that the source address is available in the encapsulation header. Thus, the source address of the original packet is used as the destination address in the copied packet. If IOAM is used over an encapsulation that does not include the address of the encapsulating node, then the transit/decapsulating node does not loop back a copy of the original packet. The address of the node performing the copy operation is used as the source address; the specific method of source address assignment is encapsulation specific, e.g., if an IPv6 encapsulation is used, then the source address can be assigned as specified in <xreftarget="RFC6724"/>.target="RFC6724" format="default"/>. The copy is also truncated, i.e., any payload that resides after the IOAM option(s) is removed before transmitting thelooped backlooped-back packet back towards the encapsulating node. Creating the copy that is looped back, and specifically the truncation, may require some encapsulation-specific updates in the encapsulation header. The original packet continues towards its destination. The L-bitMUST<bcp14>MUST</bcp14> be cleared in the copy of the packet that a node sends back towards the source.</t> <t>An IOAM node that supports the reception and processing of the Loopback flagMUST<bcp14>MUST</bcp14> support the ability to limit the rate of thelooped backlooped-back packets. The rate oflooped backlooped-back packetsSHOULD<bcp14>SHOULD</bcp14> be limited so that the number oflooped backlooped-back packets is significantly lower than the number of packets that are forwarded by the device. Thelooped backlooped-back data rateSHOULD NOT<bcp14>SHOULD NOT</bcp14> exceed 1/N of the interface capacity on any of the IOAM node's interfaces. Using N>100 isRECOMMENDED.<bcp14>RECOMMENDED</bcp14>. Depending on the IOAM node's architecture considerations, the loopback response rate may be limited to a lower number in order to avoid overloading the IOAM node.</t> </section> <sectiontitle="Loopbacknumbered="true" toc="default"> <name>Loopback on the ReturnPath">Path</name> <t>On its way back towards the source, the copied packet is processed like any other packet with IOAM information, including adding requested data at each transit node (assuming there is sufficient space).</t> </section> <sectiontitle="Terminatingnumbered="true" toc="default"> <name>Terminating aLooped Back Packet">Looped-Back Packet</name> <t>Once the return packet reaches theIOAM domainIOAM-Domain boundary, IOAM decapsulation occurs as with any other packet containing IOAM information. Note that thelooped backlooped-back packet does not have the L-bit set. The IOAM encapsulating node that initiated the original loopback packet recognizes a received packet as an IOAM looped-back packet by checking the Node ID in the Hop_Lim/node_id field that corresponds to the first hop. If the Node ID and IOAM-Namespace match the current IOAM node, it indicates that this is alooped backlooped-back packet that was initiated by the current IOAMnode,node and processed accordingly. If there is no match in the Node ID, the packet is processed like a conventional IOAM-encapsulated packet.</t> <t>Note that an IOAM encapsulating node mayeitherbe either an endpoint (such as an IPv6host),host) or a switch/router that pushes a tunnel encapsulation onto data packets. In both cases, the functionality that was described above avoids IOAM data leaks from theIOAM domain.IOAM-Domain. Specifically, if an IOAM looped-back packet reaches an IOAM boundary node that is not the IOAM node that initiated the loopback, the node does not process the packet as a loopback; the IOAM encapsulation is removed, preventing IOAM information from leaking out from theIOAM domain, and sinceIOAM-Domain. Since the packet does not have anypayloadpayload, it is terminated.</t> </section> </section> <section anchor="UseCaseSec"title="Activenumbered="true" toc="default"> <name>Active Measurement withIOAM">IOAM</name> <t>Active measurement methods <xreftarget="RFC7799"/>target="RFC7799" format="default"/> make use of synthetically generated packets in order to facilitate measurement. This section presents use cases of active measurement using the IOAM Active flag.</t> <t>The Active flag indicates that a packet is used for active measurement. An IOAM decapsulating node that receives a packet with the Active flag set in one of its Trace options must terminate the packet. The Active flag is intended to simplify the implementation of decapsulating nodes by indicating that the packet should not be forwarded further. It is not intended as a replacement for existing active OAM protocols, which may run in higher layers and make use of the Active flag.</t> <t>An example of an IOAM deployment scenario is illustrated in <xreftarget="NetworkFig"/>.target="NetworkFig" format="default"/>. The figure depicts twoendpoints,endpoints: a source and a destination. The data traffic from the source to the destination is forwarded through a set of network devices, including an IOAM encapsulatingnode, whichnode (which incorporates one or more IOAMoptions,options), a decapsulatingnode, whichnode (which removes the IOAMoptions,options), and optionally one or more transit nodes. The IOAM options are encapsulated in one of the IOAM encapsulation types, e.g., <xreftarget="I-D.ietf-sfc-ioam-nsh"/>,target="I-D.ietf-sfc-ioam-nsh" format="default"/> or <xreftarget="I-D.ietf-ippm-ioam-ipv6-options"/>.</t>target="I-D.ietf-ippm-ioam-ipv6-options" format="default"/>.</t> <figurealign="center" anchor="NetworkFig" title="Network using IOAM.">anchor="NetworkFig"> <name>Network Using IOAM</name> <artworkalign="left"><![CDATA[align="left" name="" type="" alt=""><![CDATA[ +--------+ +--------+ +--------+ +--------+ +--------+ | | | IOAM |.....| IOAM |.....| IOAM | | | +--------+ +--------+ +--------+ +--------+ +--------+ | L2/L3 |<===>| L2/L3 |<===>| L2/L3 |<===>| L2/L3 |<===>| L2/L3 | +--------+ +--------+ +--------+ +--------+ +--------+ Source Encapsulating Transit Decapsulating Destination Node Node Node <------------IOAM domainIOAM-Domain -----------> ]]></artwork> </figure> <t>This document focuses on three possible use cases of active measurement using IOAM. These use cases are described using the example of <xreftarget="NetworkFig"/>.</t> <t><list style="symbols"> <t>Endpointtarget="NetworkFig" format="default"/>.</t> <dl newline="true" spacing="normal"> <dt>Endpoint activemeasurement: syntheticmeasurement:</dt> <dd>synthetic probe packets are sent between the source and destination, traversing theIOAM domain.IOAM-Domain. Since the probe packets are sent between the endpoints, these packets are treated as data packets by theIOAM domain,IOAM-Domain and do not require special treatment at the IOAM layer. Specifically, the Active flag is not used in thiscase,case and the IOAM layer does not need to be aware that an active measurement mechanism is used at a higherlayer.</t> <t>IOAMlayer.</dd> <dt>IOAM active measurement using probe packets within theIOAM domain: probeIOAM-Domain:</dt> <dd>probe packets are generated and transmitted by the IOAM encapsulatingnode,node and are expected to be terminated by the decapsulating node. IOAM data related to probe packets may be exported by one or more nodes along itspath,path by an exporting protocol that is outside the scope of this document (e.g., <xreftarget="I-D.spiegel-ippm-ioam-rawexport"/>).target="I-D.spiegel-ippm-ioam-rawexport" format="default"/>). Probe packets include a Trace Optionwhichthat has its Active flag set, indicating that the decapsulating node must terminate them. The specification of these probe packets and the processing of these packets by the encapsulating and decapsulating nodes is outside the scope of thisdocument.</t> <t>IOAMdocument.</dd> <dt>IOAM active measurement using replicated datapackets: probepackets:</dt> <dd>probe packets are created by the encapsulating node by selecting some or all of the en route data packets and replicating them. A selected datapacket,packet and its (possibly truncated) copy is forwarded with one or more IOAMoptions,options while the original packet is forwardednormally,normally without IOAM options. To the extent possible, the original data packet and its replica are forwarded through the same path. The replica includes a Trace Option that has its Active flag set, indicating that the decapsulating node should terminate it. The current document defines the role of the Active flag in allowing the decapsulating node to terminate the packet, but the replication functionality and the functionality of the decapsulating node in this context is outside the scope of thisdocument.</t> </list></t>document.</dd> </dl> <t>If the volume of traffic that incorporates the Active flag is large, it may overload the network and the IOAM node(s) that process the active measurement packet. Thus, the rate of the traffic that includes the Active flagSHOULD NOT<bcp14>SHOULD NOT</bcp14> exceed 1/N of the interface capacity on any of the IOAM node's interfaces. Using N>100 isRECOMMENDED.<bcp14>RECOMMENDED</bcp14>. Depending on the IOAM node's architecture considerations, the rate of Active-enabled IOAM packets may be limited to a lower number in order to avoid overloading the IOAM node.</t> </section> <section anchor="IANA"title="IANA Considerations">numbered="true" toc="default"> <name>IANA Considerations</name> <t>IANAis requested to allocatehas allocated the following bits in the "IOAMTrace Flags Registry"Trace-Flags" registry as follows:</t><t><list style="hanging"> <t hangText="Bit 1">"Loopback" (L-bit)</t> <t hangText="Bit 2">"Active" (A-bit)</t> </list></t> <t>The "Reference"<dl newline="false" spacing="normal"> <dt>Bit 1</dt> <dd>"Loopback" (L-bit)</dd> <dt>Bit 2</dt> <dd>"Active" (A-bit)</dd> </dl> <t>This document is specified as the "Reference" in the registry for bothbits should be the current document.</t>bits.</t> <t>Note that bit 0 is the most significant bit in theFlags Registry."IOAM Trace-Flags" registry. This bit was allocated by <xreftarget="RFC9197"/>target="RFC9197" format="default"/> as the 'Overflow' bit.</t> </section> <section anchor="Performance"title="Performance Considerations">numbered="true" toc="default"> <name>Performance Considerations</name> <t>Each of the flags that are defined in this document may have performance implications. When using the loopbackmechanismmechanism, a copy of the data packet is sent back to thesender, thussender (thus, generating more traffic than originally sent by theendpoints.endpoints). Using active measurement with the Active flag requires the use of synthetic (overhead) traffic.</t> <t>Each of the mechanisms that use the flags above has a cost in terms of the networkbandwidth,bandwidth and may potentially load the node that analyzes the data. Therefore, itMUST<bcp14>MUST</bcp14> be possible to use each of the mechanisms on a subset of the data traffic; an encapsulating node needs to be able to set the Loopback and Activeflag selectively,flags selectively in a way that considers the effect on the network performance, as further discussed in Sections <xreftarget="SelectSec"/>target="SelectSec" format="counter"/> and <xreftarget="UseCaseSec"/>.</t>target="UseCaseSec" format="counter"/>.</t> <t>Transit and decapsulating nodes that supportLoopbackloopback need to be able to limit thelooped backlooped-back packets(<xref target="ReceiveSec"/>)(as discussed in <xref target="ReceiveSec" format="default"/>) so as to ensure that the mechanisms are used at a rate that does not significantly affect the networkbandwidth,bandwidth and does not overload the source node in the case of loopback.</t> </section> <section anchor="Security"title="Security Considerations">numbered="true" toc="default"> <name>Security Considerations</name> <t>The security considerations of IOAM in general are discussed in <xreftarget="RFC9197"/>.target="RFC9197" format="default"/>. Specifically, an attacker may try to use the functionality that is defined in this document to attack the network.</t> <t>IOAM is assumed to be deployed in a restricted administrative domain, thus limiting the scope of the threats above and their effect. This is a fundamental assumption with respect to the security aspects ofIOAM,IOAM as further discussed in <xreftarget="RFC9197"/>.target="RFC9197" format="default"/>. However, even given this limited scope, security threats should still be considered and mitigated. Specifically, an attacker may attempt to overload network devices by injecting synthetic packets that include an IOAM Trace Option with one or more of the flags defined in this document. Similarly, an on-path attacker may maliciously set one or more of the flags of transit packets.</t><t><list style="symbols"> <t>Loopback flag: an<dl newline="true" spacing="normal"> <dt>Loopback flag:</dt> <dd>an attacker that sets this flag, either in synthetic packets or transitpacket,packets, can potentially cause anamplification,amplification since each device along the path creates a copy of the data packet and sends it back to the source. The attacker can potentially leverage the Loopback flag for aDistributed Denial of Service (DDoS) attack,DDoS attack as multiple devices send looped-back copies of a packet to a singlevictim.</t> <t>Active flag: thevictim.</dd> <dt>Active flag:</dt> <dd>the impact of synthetic packets with the Active flag is no worse than synthetic data packets in which the Active flag is not set. By setting the Active flag in en routepacketspackets, an attacker can prevent these packets from reaching theirdestination,destination since the packet is terminated by the decapsulatingdevice; however,device. However, note that an on-path attacker may achieve the same goal by changing the destination address of a packet. Another potential threat is amplification; if an attacker causes transit switches to replicate more packets than they are intended toreplicate, eitherreplicate (either by setting the Active flag or by sending syntheticpackets,packets), then traffic is amplified, causing bandwidthdegredation.degradation. As mentioned in <xreftarget="UseCaseSec"/>,target="UseCaseSec" format="default"/>, the specification of the replication mechanism is not within the scope of this document. A specification that defines the replication functionality should also address the security aspects of thismechanism.</t> </list></t>mechanism.</dd> </dl> <t>Some of the security threats that were discussed in this document may be worse in a wide area network in which there are nestedIOAM domains.IOAM-Domains. For example, if there are two nestedIOAM domainsIOAM-Domains that use loopback, then a looped-back copy in the outerIOAM domainIOAM-Domain may be forwarded through another (inner)IOAM domainIOAM-Domain and may be subject to loopback in that (inner)IOAM domain,IOAM-Domain, causing the amplification to be worse than in the conventional case.</t> <t>In order to mitigate the performance-related attacks describedabove, as describedin <xreftarget="Performance"/>target="Performance" format="default"/>, it should be possible for IOAM-enabled devices to selectively apply the mechanisms that use the flags defined in this document to a subset of thetraffic,traffic and to limit the performance of synthetically generated packets to a configurable rate. Specifically, IOAM nodes should be able to:</t><t><list style="symbols"> <t>Limit<ul spacing="normal"> <li>Limit the rate of IOAM packets with the Loopback flag (IOAM encapsulatingnodes),nodes) as discussed in <xreftarget="SelectSec"/>.</t> <t>Limittarget="SelectSec" format="default"/>.</li> <li>Limit the rate of looped back packets (IOAM transit and decapsulatingnodes),nodes) as discussed in <xreftarget="ReceiveSec"/>.</t> <t>Limittarget="ReceiveSec" format="default"/>.</li> <li>Limit the rate of IOAM packets with the Active flag (IOAM encapsulatingnodes),nodes) as discussed in <xreftarget="UseCaseSec"/>.</t> </list></t>target="UseCaseSec" format="default"/>.</li> </ul> <t>As defined in <xreftarget="LoopbackSec"/>,target="LoopbackSec" format="default"/>, transit nodes that process a packet with the Loopback flag only add a single datafield,field and truncate any payload that follows the IOAM option(s), thussignificanlysignificantly limiting the possible impact of an amplification attack.</t> </section> </middle> <back> <displayreference target="I-D.spiegel-ippm-ioam-rawexport" to="IOAM-RAWEXPORT"/> <displayreference target="I-D.ietf-ippm-ioam-ipv6-options" to="IOAM-IPV6-OPTIONS"/> <displayreference target="I-D.ietf-sfc-ioam-nsh" to="IOAM-NSH"/> <references> <name>References</name> <references> <name>Normative References</name> <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml"/> <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml"/> <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9197.xml"/> </references> <references> <name>Informative References</name> <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7799.xml"/> <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6291.xml"/> <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5475.xml"/> <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7014.xml"/> <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6724.xml"/> <!-- draft-spiegel-ippm-ioam-rawexport-06: I-D Exists; expired--> <xi:include href="https://datatracker.ietf.org/doc/bibxml3/reference.I-D.spiegel-ippm-ioam-rawexport.xml"/> <reference anchor="I-D.ietf-ippm-ioam-ipv6-options"> <front> <title>In-situ OAM IPv6 Options</title> <author fullname="Shwetha Bhandari" role="editor"> <organization>Thoughtspot</organization> </author> <author fullname="Frank Brockners" role="editor"> <organization>Cisco Systems, Inc.</organization> </author> <date month="October" day="11" year="2022"/> </front> <seriesInfo name="Internet-Draft" value="draft-ietf-ippm-ioam-ipv6-options-09"/> <format type="TXT" target="https://www.ietf.org/archive/id/draft-ietf-ippm-ioam-ipv6-options-09.txt"/> </reference> <reference anchor="I-D.ietf-sfc-ioam-nsh"> <front> <title> Network Service Header (NSH) Encapsulation for In-situ OAM (IOAM) Data </title> <author fullname="Frank Brockners" role="editor"> <organization>Cisco Systems, Inc.</organization> </author> <author fullname="Shwetha Bhandari" role="editor"> <organization>Thoughtspot</organization> </author> <date month="September" day="30" year="2022"/> </front> <seriesInfo name="Internet-Draft" value="draft-ietf-sfc-ioam-nsh-11"/> <format type="TXT" target="https://www.ietf.org/archive/id/draft-ietf-sfc-ioam-nsh-11.txt"/> </reference> </references> </references> <section anchor="Acknowledgments"title="Acknowledgments">numbered="false" toc="default"> <name>Acknowledgments</name> <t>The authors thankMartin Duke, Tommy Pauly, Donald Eastlake, Paul Kyzivat, Bernard Aboba, Greg Mirsky,<contact fullname="Martin Duke"/>, <contact fullname="Tommy Pauly"/>, <contact fullname="Donald Eastlake"/>, <contact fullname="Paul Kyzivat"/>, <contact fullname="Bernard Aboba"/>, <contact fullname="Greg Mirsky"/>, and other members of the IPPM working group for many helpful comments.</t> </section></middle> <back> <references title="Normative References"> &RFC2119; &RFC8174; &RFC9197; </references> <references title="Informative References"> &RFC7799; &RFC6291; &RFC5475; &RFC7014; &RFC6724; &I-D.spiegel-ippm-ioam-rawexport; &I-D.ietf-ippm-ioam-ipv6-options; &I-D.ietf-sfc-ioam-nsh; </references><section numbered="false"title="Contributors"toc="default"> <name>Contributors</name> <t>The Editors would like to recognize the contributions of the following individuals to this document.</t><t> <figure> <artwork><![CDATA[ Ramesh Sivakolundu Cisco<contact fullname="Ramesh Sivakolundu"> <organization>Cisco Systems,Inc. 170Inc.</organization> <address> <postal> <street>170 West TasmanDr. SAN JOSE, CA 95134 U.S.A. Email: sramesh@cisco.com Carlos Pignataro CiscoDr.</street> <city>San Jose</city> <region>CA</region><code>95134</code> <country>United States of America</country> </postal> <email>sramesh@cisco.com</email> </address> </contact> <contact fullname="Carlos Pignataro"> <organization>Cisco Systems,Inc. 7200-11Inc.</organization> <address> <postal> <street>7200-11 Kit CreekRoad ResearchRoad</street> <city>Research TrianglePark, NC 27709 UnitedPark</city> <region>NC</region><code>27709</code> <country>United StatesEmail: cpignata@cisco.com Aviv Kfir Nvidia Email: avivk@nvidia.com Jennifer Lemon Broadcom 270of America</country> </postal> <email>cpignata@cisco.com</email> </address> </contact> <contact fullname="Aviv Kfir"> <organization>Nvidia</organization> <address> <email>avivk@nvidia.com</email> </address> </contact> <contact fullname="Jennifer Lemon"> <organization>Broadcom</organization> <address> <postal> <street>270 InnovationDrive San Jose, CA 95134 US Email: jennifer.lemon@broadcom.com ]]></artwork> </figure> </t>Drive</street> <city>San Jose</city> <region>CA</region><code>95134</code> <country>United States of America</country> </postal> <email>jennifer.lemon@broadcom.com</email> </address> </contact> </section> </back> </rfc>