| rfc9326xml2.original.xml | rfc9326.xml | |||
|---|---|---|---|---|
| <?xml version="1.0" encoding="US-ASCII"?> | <?xml version="1.0" encoding="UTF-8"?> | |||
| <!-- This template is for creating an Internet Draft using xml2rfc, | ||||
| which is available here: http://xml.resource.org. --> | <!DOCTYPE rfc [ | |||
| <!DOCTYPE rfc SYSTEM "rfc2629.dtd" [ | <!ENTITY nbsp " "> | |||
| <!-- One method to get references from the online citation libraries. | <!ENTITY zwsp "​"> | |||
| There has to be one entity for each item to be referenced. | <!ENTITY nbhy "‑"> | |||
| An alternate method (rfc include) is described in the references. --> | <!ENTITY wj "⁠"> | |||
| <!ENTITY RFC2119 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/referen | ||||
| ce.RFC.2119.xml"> | ||||
| <!ENTITY RFC8174 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/referen | ||||
| ce.RFC.8174.xml"> | ||||
| <!ENTITY RFC7799 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/referen | ||||
| ce.RFC.7799.xml"> | ||||
| <!ENTITY RFC8126 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/referen | ||||
| ce.RFC.8126.xml"> | ||||
| <!ENTITY RFC5475 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/referen | ||||
| ce.RFC.5475.xml"> | ||||
| <!ENTITY RFC7014 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/referen | ||||
| ce.RFC.7014.xml"> | ||||
| <!ENTITY RFC6291 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/referen | ||||
| ce.RFC.6291.xml"> | ||||
| <!ENTITY RFC9197 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/referen | ||||
| ce.RFC.9197.xml"> | ||||
| <!ENTITY I-D.spiegel-ippm-ioam-rawexport SYSTEM "http://xml2rfc.tools.ietf.org/p | ||||
| ublic/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/p | ||||
| ublic/rfc/bibxml-ids/reference.I-D.ietf-ippm-ioam-ipv6-options.xml"> | ||||
| <!ENTITY I-D.ietf-ippm-ioam-data-integrity SYSTEM "http://xml2rfc.tools.ietf.org | ||||
| /public/rfc/bibxml-ids/reference.I-D.ietf-ippm-ioam-data-integrity.xml"> | ||||
| <!ENTITY I-D.song-ippm-postcard-based-telemetry SYSTEM "http://xml2rfc.tools.iet | ||||
| f.org/public/rfc/bibxml-ids/reference.I-D.song-ippm-postcard-based-telemetry.xml | ||||
| "> | ||||
| <!ENTITY I-D.ietf-ippm-ioam-flags SYSTEM "http://xml2rfc.tools.ietf.org/public/r | ||||
| fc/bibxml-ids/reference.I-D.ietf-ippm-ioam-flags.xml"> | ||||
| <!ENTITY AFI SYSTEM "http://www.iana.org/assignments/address-family-numbers/addr | ||||
| ess-family-numbers.xml"> | ||||
| ]> | ]> | |||
| <?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?> | ||||
| <?rfc strict="yes" ?> | <rfc xmlns:xi="http://www.w3.org/2001/XInclude" submissionType="IETF" category=" | |||
| <?rfc toc="yes"?> | std" consensus="true" docName="draft-ietf-ippm-ioam-direct-export-11" number="93 | |||
| <?rfc tocdepth="4"?> | 26" ipr="trust200902" obsoletes="" updates="" xml:lang="en" tocInclude="true" to | |||
| <?rfc symrefs="yes"?> | cDepth="4" symRefs="true" sortRefs="true" version="3"> | |||
| <?rfc sortrefs="yes" ?> | ||||
| <?rfc compact="yes" ?> | <!-- xml2rfc v2v3 conversion 3.15.0 --> | |||
| <?rfc subcompact="no" ?> | ||||
| <rfc category="std" docName="draft-ietf-ippm-ioam-direct-export-11" | ||||
| ipr="trust200902"> | ||||
| <front> | <front> | |||
| <title abbrev="IOAM Direct Exporting">In-situ OAM Direct Exporting</title> | <title abbrev="IOAM Direct Exporting">In Situ Operations, Administration, an d Maintenance (IOAM) Direct Exporting</title> | |||
| <seriesInfo name="RFC" value="9326"/> | ||||
| <author fullname="Haoyu Song" initials="H." surname="Song"> | <author fullname="Haoyu Song" initials="H." surname="Song"> | |||
| <organization abbrev="">Futurewei</organization> | <organization abbrev="">Futurewei</organization> | |||
| <address> | <address> | |||
| <postal> | <postal> | |||
| <street>2330 Central Expressway</street> | <street>2330 Central Expressway</street> | |||
| <city>Santa Clara</city> | <city>Santa Clara</city> | |||
| <code>95050</code> | <code>95050</code> | |||
| <country>United States of America</country> | ||||
| <country>USA</country> | ||||
| </postal> | </postal> | |||
| <email>haoyu.song@futurewei.com</email> | <email>haoyu.song@futurewei.com</email> | |||
| </address> | </address> | |||
| </author> | </author> | |||
| <author fullname="Barak Gafni" initials="B." surname="Gafni"> | <author fullname="Barak Gafni" initials="B." surname="Gafni"> | |||
| <organization abbrev="">Nvidia</organization> | <organization abbrev="">Nvidia</organization> | |||
| <address> | <address> | |||
| <postal> | <postal> | |||
| <street>350 Oakmead Parkway, Suite 100</street> | <extaddr>Suite 100</extaddr> | |||
| <street>350 Oakmead Parkway</street> | ||||
| <city>Sunnyvale, CA</city> | <city>Sunnyvale</city> | |||
| <region>CA</region> | ||||
| <code>94085</code> | <code>94085</code> | |||
| <country>United States of America</country> | ||||
| <country>U.S.A.</country> | ||||
| </postal> | </postal> | |||
| <email>gbarak@nvidia.com</email> | <email>gbarak@nvidia.com</email> | |||
| </address> | </address> | |||
| </author> | </author> | |||
| <author fullname="Frank Brockners" initials="F." surname="Brockners"> | <author fullname="Frank Brockners" initials="F." surname="Brockners"> | |||
| <organization abbrev="Cisco">Cisco Systems, Inc.</organization> | <organization abbrev="Cisco">Cisco Systems, Inc.</organization> | |||
| <address> | <address> | |||
| <postal> | <postal> | |||
| <street>Hansaallee 249, 3rd Floor</street> | <street>Hansaallee 249</street> | |||
| <city>Duesseldorf</city> | ||||
| <!-- Reorder these if your country does things differently --> | ||||
| <city>DUESSELDORF</city> | ||||
| <region>NORDRHEIN-WESTFALEN</region> | ||||
| <code>40549</code> | <code>40549</code> | |||
| <country>Germany</country> | <country>Germany</country> | |||
| </postal> | </postal> | |||
| <email>fbrockne@cisco.com</email> | <email>fbrockne@cisco.com</email> | |||
| <!-- uri and facsimile elements may also be added --> | ||||
| </address> | </address> | |||
| </author> | </author> | |||
| <author fullname="Shwetha Bhandari" initials="S." surname="Bhandari"> | <author fullname="Shwetha Bhandari" initials="S." surname="Bhandari"> | |||
| <organization abbrev="Thoughtspot">Thoughtspot</organization> | <organization abbrev="Thoughtspot">Thoughtspot</organization> | |||
| <address> | <address> | |||
| <postal> | <postal> | |||
| <street>3rd Floor, Indiqube Orion, 24th Main Rd, Garden Layout, HSR | <extaddr>3rd Floor, Indiqube Orion, Garden Layout, HSR Layout</extaddr> | |||
| Layout</street> | <street>24th Main Rd</street> | |||
| <city>Bangalore</city> | ||||
| <city>Bangalore, KARNATAKA 560 102</city> | <region>Karnataka</region> | |||
| <code>560 102</code> | ||||
| <country>India</country> | <country>India</country> | |||
| </postal> | </postal> | |||
| <email>shwetha.bhandari@thoughtspot.com</email> | <email>shwetha.bhandari@thoughtspot.com</email> | |||
| </address> | </address> | |||
| </author> | </author> | |||
| <author fullname="Tal Mizrahi" initials="T." surname="Mizrahi"> | <author fullname="Tal Mizrahi" initials="T." surname="Mizrahi"> | |||
| <organization abbrev="">Huawei</organization> | <organization abbrev="">Huawei</organization> | |||
| <address> | <address> | |||
| <postal> | <postal> | |||
| <street>8-2 Matam</street> | <street>8-2 Matam</street> | |||
| <city>Haifa</city> | <city>Haifa</city> | |||
| <code>3190501</code> | <code>3190501</code> | |||
| <country>Israel</country> | <country>Israel</country> | |||
| </postal> | </postal> | |||
| <email>tal.mizrahi.phd@gmail.com</email> | <email>tal.mizrahi.phd@gmail.com</email> | |||
| </address> | </address> | |||
| </author> | </author> | |||
| <date year="2022" month="October" /> | ||||
| <date year="2022"/> | <area>tsv</area> | |||
| <workgroup>ippm</workgroup> | ||||
| <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>IOAM</keyword> | |||
| <keyword>Telemetry</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> | <abstract> | |||
| <t>In-situ Operations, Administration, and Maintenance (IOAM) is used | <t>In situ Operations, Administration, and Maintenance (IOAM) is used | |||
| for recording and collecting operational and telemetry information. | for recording and collecting operational and telemetry information. | |||
| Specifically, IOAM allows telemetry data to be pushed into data packets | Specifically, IOAM allows telemetry data to be pushed into data packets | |||
| while they traverse the network. This document introduces a new IOAM | while they traverse the network. This document introduces a new IOAM | |||
| option type (denoted IOAM-Option-Type) called the Direct Export (DEX) | option type (denoted IOAM-Option-Type) called the "IOAM Direct Export (DEX | |||
| Option-Type, which is used as a trigger for IOAM data to be directly | ) Option-Type". This Option-Type is used as a trigger for IOAM data to be direct | |||
| ly | ||||
| exported or locally aggregated without being pushed into in-flight data | exported or locally aggregated without being pushed into in-flight data | |||
| packets. The exporting method and format are outside the scope of this | packets. The exporting method and format are outside the scope of this | |||
| document.</t> | document.</t> | |||
| </abstract> | </abstract> | |||
| </front> | ||||
| </front> | ||||
| <middle> | <middle> | |||
| <section title="Introduction" toc="default"> | <section toc="default" numbered="true"> | |||
| <t>IOAM <xref target="RFC9197"/> is used for monitoring traffic in the | <name>Introduction</name> | |||
| network, and for incorporating IOAM data fields (denoted | <t>IOAM <xref target="RFC9197" format="default"/> is used for monitoring t | |||
| raffic in the | ||||
| network and for incorporating IOAM data fields (denoted | ||||
| IOAM-Data-Fields) into in-flight data packets.</t> | IOAM-Data-Fields) into in-flight data packets.</t> | |||
| <t>IOAM makes use of four possible IOAM-Option-Types, defined in <xref tar | ||||
| <t>IOAM makes use of four possible IOAM-Option-Types, defined in <xref | get="RFC9197" format="default"/>: Pre-allocated Trace, Incremental Trace, Proof | |||
| target="RFC9197"/>: Pre-allocated Trace Option-Type, Incremental Trace | of Transit (POT), and Edge-to-Edge.</t> | |||
| Option-Type, Proof of Transit (POT) Option-Type, and Edge-to-Edge | <t>This document defines a new IOAM-Option-Type called the "IOAM Direct Ex | |||
| Option-Type.</t> | port (DEX) | |||
| Option-Type". This Option-Type is used as a trigger for IOAM nodes | ||||
| <t>This document defines a new IOAM-Option-Type called the Direct Export | to locally aggregate and process IOAM data and/or to export it to a | |||
| (DEX) Option-Type. This Option-Type is used as a trigger for IOAM nodes | receiving entity (or entities). Throughout the document, this | |||
| to locally aggregate and process IOAM data, and/or to export it to a | functionality is referred to as "collection" and/or "exporting". In this c | |||
| receiving entity (or entities). Throughout the document this | ontext, a | |||
| functionality is referred to as collection and/or exporting. A | "receiving entity" is an entity | |||
| "receiving entity" in this context is an entity | ||||
| that resides within the IOAM domain such as a collector, analyzer, | that resides within the IOAM domain such as a collector, analyzer, | |||
| controller, decapsulating node, or a software module in one of the IOAM | controller, decapsulating node, or software module in one of the IOAM n | |||
| nodes.</t> | odes.</t> | |||
| <t>Note that even though the IOAM-Option-Type is called "Direct Export", | <t>Note that even though the IOAM-Option-Type is called "Direct Export", | |||
| it depends on the deployment whether the receipt of a packet with DEX | it depends on the deployment whether the receipt of a packet with a DEX | |||
| Option-Type leads to the creation of another packet. Some deployments | Option-Type leads to the creation of another packet. Some deployments | |||
| might simply use the packet with the DEX Option-Type to trigger local | might simply use the packet with the DEX Option-Type to trigger local | |||
| processing of OAM data. The functionality of this local processing is | processing of Operations, Administration, and Maintenance (OAM) data. The functionality of this local processing is | |||
| not within the scope of this document.</t> | not within the scope of this document.</t> | |||
| </section> | </section> | |||
| <section anchor="Conventions" numbered="true" toc="default"> | ||||
| <section anchor="Conventions" title="Conventions"> | <name>Conventions</name> | |||
| <section title="Requirement Language"> | <section numbered="true" toc="default"> | |||
| <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | <name>Requirements Language</name> | |||
| "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | <t> | |||
| "OPTIONAL" in this document are to be interpreted as described in BCP | The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQU | |||
| 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only | IRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL | |||
| when, they appear in all capitals, as shown here.</t> | NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14> | |||
| RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>", | ||||
| "<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to | ||||
| be interpreted as | ||||
| described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> | ||||
| when, and only when, they appear in all capitals, as shown here. | ||||
| </t> | ||||
| </section> | </section> | |||
| <section numbered="true" toc="default"> | ||||
| <section title="Terminology"> | <name>Terminology</name> | |||
| <t>Abbreviations used in this document:</t> | <t>Abbreviations used in this document:</t> | |||
| <dl newline="false" spacing="normal" indent="8"> | ||||
| <t><list hangIndent="11" style="hanging"> | <dt>IOAM:</dt> | |||
| <t hangText="IOAM:">In-situ Operations, Administration, and | <dd>In situ Operations, Administration, and | |||
| Maintenance</t> | Maintenance</dd> | |||
| <dt>OAM:</dt> | ||||
| <t hangText="OAM:">Operations, Administration, and Maintenance | <dd>Operations, Administration, and Maintenance | |||
| <xref target="RFC6291"/></t> | <xref target="RFC6291" format="default"/></dd> | |||
| <dt>DEX:</dt> | ||||
| <t hangText="DEX:">Direct EXporting</t> | <dd>Direct Exporting</dd> | |||
| </list></t> | </dl> | |||
| </section> | </section> | |||
| </section> | </section> | |||
| <section anchor="OptionTypeSec" numbered="true" toc="default"> | ||||
| <section anchor="OptionTypeSec" | <name>The Direct Exporting (DEX) IOAM-Option-Type</name> | |||
| title="The Direct Exporting (DEX) IOAM-Option-Type"> | <section numbered="true" toc="default"> | |||
| <section title="Overview"> | <name>Overview</name> | |||
| <t>The DEX Option-Type is used as a trigger for collecting IOAM data | <t>The DEX Option-Type is used as a trigger for collecting IOAM data | |||
| locally or for exporting it to a receiving entity (or entities). | locally or exporting it to a receiving entity (or entities). | |||
| Specifically, the DEX Option-Type can be used as a trigger for | Specifically, the DEX Option-Type can be used as a trigger for | |||
| collecting IOAM data by an IOAM node and locally aggregating it; thus, | collecting IOAM data by an IOAM node and locally aggregating it; thus, | |||
| this aggregated data can be periodically pushed to a receiving entity, | this aggregated data can be periodically pushed to a receiving entity | |||
| or pulled by a receiving entity on-demand.</t> | or pulled by a receiving entity on-demand.</t> | |||
| <t>This Option-Type is incorporated into data packets by an IOAM | <t>This Option-Type is incorporated into data packets by an IOAM | |||
| encapsulating node, and removed by an IOAM decapsulating node, as | encapsulating node and removed by an IOAM decapsulating node, as | |||
| illustrated in <xref target="DEXArch"/>. The Option-Type can be read | illustrated in <xref target="DEXArch" format="default"/>. The Option-Typ | |||
| but not modified by transit nodes. Note: the terms IOAM encapsulating, | e can be read, | |||
| decapsulating and transit nodes are as defined in <xref | but not modified, by transit nodes. Note that the terms "IOAM encapsulat | |||
| target="RFC9197"/>.</t> | ing node", | |||
| "IOAM decapsulating node", and "IOAM transit node" are as defined in <xr | ||||
| <figure align="center" anchor="DEXArch" title="DEX Architecture"> | ef target="RFC9197" format="default"/>.</t> | |||
| <artwork align="left"><![CDATA[ | <figure anchor="DEXArch"> | |||
| <name>DEX Architecture</name> | ||||
| <artwork align="left" name="" type="" alt=""><![CDATA[ | ||||
| ^ | ^ | |||
| |Exported IOAM data | |Exported IOAM data | |||
| | | | | |||
| | | | | |||
| | | | | |||
| +--------------+------+-------+--------------+ | +--------------+------+-------+--------------+ | |||
| | | | | | | | | | | |||
| | | | | | | | | | | |||
| User +---+----+ +---+----+ +---+----+ +---+----+ | User +---+----+ +---+----+ +---+----+ +---+----+ | |||
| packets |Encapsu-| | Transit| | Transit| |Decapsu-| | packets |Encapsu-| | Transit| | Transit| |Decapsu-| | |||
| --------->|lating |====>| Node |====>| Node |====>|lating |----> | --------->|lating |====>| Node |====>| Node |====>|lating |----> | |||
| |Node | | A | | B | |Node | | |Node | | A | | B | |Node | | |||
| +--------+ +--------+ +--------+ +--------+ | +--------+ +--------+ +--------+ +--------+ | |||
| Insert DEX Export Export Remove DEX | Insert DEX Export Export Remove DEX | |||
| option and IOAM data IOAM data option and | option and IOAM data IOAM data option and | |||
| export data export data | export data export data]]></artwork> | |||
| ]]></artwork> | ||||
| </figure> | </figure> | |||
| <t>The DEX Option-Type is used as a trigger to collect and/or export | <t>The DEX Option-Type is used as a trigger to collect and/or export | |||
| IOAM data. The trigger applies to transit nodes, the decapsulating | IOAM data. The trigger applies to transit nodes, the decapsulating | |||
| node, and the encapsulating node:</t> | node, and the encapsulating node:</t> | |||
| <t><list style="symbols"> | <ul spacing="normal"> | |||
| <t>An IOAM encapsulating node configured to incorporate the DEX | <li> An IOAM encapsulating node configured to incorporate the DEX | |||
| Option-Type encapsulates (possibly a subset of) the packets it | Option-Type encapsulates the packets (or possibly a subset of the | |||
| forwards with the DEX Option-Type, and MAY export and/or collect | packets) it forwards with the DEX Option-Type and <bcp14>MAY</bcp14> export and/ | |||
| or collect | ||||
| the requested IOAM data immediately. Only IOAM encapsulating nodes | the requested IOAM data immediately. Only IOAM encapsulating nodes | |||
| are allowed to add the DEX Option-Type to a packet. An IOAM | are allowed to add the DEX Option-Type to a packet. An IOAM | |||
| encapsulating node can generate probe packets that incorporate the | encapsulating node can generate probe packets that incorporate the | |||
| DEX Option-Type. These probe packets can be generated periodically | DEX Option-Type. These probe packets can be generated periodically | |||
| or on-demand (for example triggered by the management plane). The | or on-demand (for example, triggered by the management plane). The | |||
| specification of such probe packets is outside the scope of this | specification of such probe packets is outside the scope of this | |||
| document.</t> | document.</li> | |||
| <li>A transit node that processes a packet with the DEX Option-Type | ||||
| <t>A transit node that processes a packet with the DEX Option-Type | <bcp14>MAY</bcp14> export and/or collect the requested IOAM data.</l | |||
| MAY export and/or collect the requested IOAM data.</t> | i> | |||
| <li>An IOAM decapsulating node that processes a packet with the DEX | ||||
| <t>An IOAM decapsulating node that processes a packet with the DEX | Option-Type <bcp14>MAY</bcp14> export and/or collect the requested I | |||
| Option-Type MAY export and/or collect the requested IOAM data, and | OAM data and | |||
| MUST decapsulate the IOAM header.</t> | <bcp14>MUST</bcp14> decapsulate the IOAM header.</li> | |||
| </list></t> | </ul> | |||
| <t>As in <xref target="RFC9197" format="default"/>, the DEX Option-Type | ||||
| <t>As in <xref target="RFC9197"/>, the DEX Option-Type can be | can be | |||
| incorporated into all or a subset of the traffic that is forwarded by | incorporated into all or a subset of the traffic that is forwarded by | |||
| the encapsulating node, as further discussed in <xref | the encapsulating node, as further discussed in <xref target="SelectionS | |||
| target="SelectionSec"/> below. Moreover, IOAM nodes respond to the DEX | ec" format="default"/>. Moreover, IOAM nodes respond to the DEX | |||
| trigger by exporting and/or collecting IOAM data either for all | trigger by exporting and/or collecting IOAM data either for all | |||
| traversing packets that carry the DEX Option-Type, or selectively only | traversing packets that carry the DEX Option-Type or selectively only | |||
| for a subset of these packets, as further discussed in <xref | for a subset of these packets, as further discussed in <xref target="Exp | |||
| target="ExportSec"/> below.</t> | ortSec" format="default"/>.</t> | |||
| <section anchor="SelectionSec" numbered="true" toc="default"> | ||||
| <section anchor="SelectionSec" title="DEX Packet Selection"> | <name>DEX Packet Selection</name> | |||
| <t>If an IOAM encapsulating node incorporates the DEX Option-Type | <t>If an IOAM encapsulating node incorporates the DEX Option-Type | |||
| into all the traffic it forwards it may lead to an excessive amount | into all the traffic it forwards, it may lead to an excessive amount | |||
| of exported data, which may overload the network and the receiving | of exported data, which may overload the network and the receiving | |||
| entity. Therefore, an IOAM encapsulating node that supports the DEX | entity. Therefore, an IOAM encapsulating node that supports the DEX | |||
| Option-Type MUST support the ability to incorporate the DEX | Option-Type <bcp14>MUST</bcp14> support the ability to incorporate the DEX | |||
| Option-Type selectively into a subset of the packets that are | Option-Type selectively into a subset of the packets that are | |||
| forwarded by it.</t> | forwarded by the IOAM encapsulating node.</t> | |||
| <t>Various methods of packet selection and sampling have been | <t>Various methods of packet selection and sampling have been | |||
| previously defined, such as <xref target="RFC7014"/> and <xref | previously defined, such as <xref target="RFC7014" format="default"/> | |||
| target="RFC5475"/>. Similar techniques can be applied by an IOAM | and <xref target="RFC5475" format="default"/>. Similar techniques can be applied | |||
| by an IOAM | ||||
| encapsulating node to apply DEX to a subset of the forwarded | encapsulating node to apply DEX to a subset of the forwarded | |||
| traffic.</t> | traffic.</t> | |||
| <t>The subset of traffic that is forwarded or transmitted with a DEX | <t>The subset of traffic that is forwarded or transmitted with a DEX | |||
| Option-Type SHOULD NOT exceed 1/N of the interface capacity on any | Option-Type <bcp14>SHOULD NOT</bcp14> exceed 1/N of the interface capa city on any | |||
| of the IOAM encapsulating node's interfaces. It is noted that this | of the IOAM encapsulating node's interfaces. It is noted that this | |||
| requirement applies to the total traffic that incorporates a DEX | requirement applies to the total traffic that incorporates a DEX | |||
| Option-Type, including traffic that is forwarded by the IOAM | Option-Type, including traffic that is forwarded by the IOAM | |||
| encapsulating node and probe packets that are generated by the IOAM | encapsulating node and probe packets that are generated by the IOAM | |||
| encapsulating node. In this context N is a parameter that can be | encapsulating node. In this context, N is a parameter that can be | |||
| configurable by network operators. If there is an upper bound, M, on | 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 it | the number of IOAM transit nodes in any path in the network, then it | |||
| is RECOMMENDED to use an N such that N >> M (i.e., N is much gre ater | is <bcp14>RECOMMENDED</bcp14> to use an N such that N >> M (i.e. , N is much greater | |||
| than M). The rationale is | than M). The rationale is | |||
| that a packet that includes a DEX Option-Type may trigger an | that a packet that includes a DEX Option-Type may trigger an | |||
| exported packet from each IOAM transit node along the path for a | exported packet from each IOAM transit node along the path for a | |||
| total of M exported packets. Thus, if N >> M then the number | total of M exported packets. Thus, if N >> M, then the number | |||
| of exported packets is significantly lower than the number of data | of exported packets is significantly lower than the number of data | |||
| packets forwarded by the IOAM encapsulating node. If there is no | packets forwarded by the IOAM encapsulating node. If there is no | |||
| prior knowledge about the network topology or size, it is | prior knowledge about the network topology or size, it is | |||
| RECOMMENDED to use N>100.</t> | <bcp14>RECOMMENDED</bcp14> to use N>100.</t> | |||
| </section> | </section> | |||
| <section anchor="ExportSec" numbered="true" toc="default"> | ||||
| <section anchor="ExportSec" title="Responding to the DEX Trigger"> | <name>Responding to the DEX Trigger</name> | |||
| <t>The DEX Option-Type specifies which IOAM-Data-Fields should be | <t>The DEX Option-Type specifies which IOAM-Data-Fields should be | |||
| exported and/or collected, as specified in <xref | exported and/or collected, as specified in <xref target="OptionSec" fo | |||
| target="OptionSec"/>. As mentioned above, the data can be locally | rmat="default"/>. As mentioned above, the data can be locally collected, aggreg | |||
| collected, and optionally can be aggregated and exported to a | ated, and/or | |||
| receiving entity, either proactively or on-demand. If IOAM data is | exported to a receiving entity proactively or on-demand. If IOAM data is | |||
| exported, the format and encapsulation of the packet that contains | exported, the format and encapsulation of the packet that contains | |||
| the exported data is not within the scope of the current document. | the exported data is not within the scope of the current document. | |||
| For example, the export format can be based on <xref | For example, the export format can be based on <xref target="I-D.spieg | |||
| target="I-D.spiegel-ippm-ioam-rawexport"/>.</t> | el-ippm-ioam-rawexport" format="default"/>.</t> | |||
| <t>An IOAM node that performs DEX-triggered exporting <bcp14>MUST</bcp | ||||
| <t>An IOAM node that performs DEX-triggered exporting MUST support | 14> support | |||
| the ability to limit the rate of the exported packets. The rate of | the ability to limit the rate of the exported packets. The rate of | |||
| exported packets SHOULD be limited so that the number of exported | exported packets <bcp14>SHOULD</bcp14> be limited so that the number o f exported | |||
| packets is significantly lower than the number of packets that are | packets is significantly lower than the number of packets that are | |||
| forwarded by the device. The exported data rate SHOULD NOT exceed | forwarded by the device. The exported data rate <bcp14>SHOULD NOT</bcp 14> exceed | |||
| 1/N of the interface capacity on any of the IOAM node's interfaces. | 1/N of the interface capacity on any of the IOAM node's interfaces. | |||
| It is RECOMMENDED to use N>100. Depending on the IOAM node's | It is <bcp14>RECOMMENDED</bcp14> to use N>100. Depending on the IOA M node's | |||
| architecture considerations, the export rate may be limited to a | architecture considerations, the export rate may be limited to a | |||
| lower number in order to avoid loading the IOAM node. An IOAM node | lower number in order to avoid loading the IOAM node. An IOAM node | |||
| MAY maintain a counter or a set of counters that count the events in | <bcp14>MAY</bcp14> maintain a counter or a set of counters that count the events in | |||
| which the IOAM node receives a packet with the DEX Option-Type and | which the IOAM node receives a packet with the DEX Option-Type and | |||
| does not collect and/or export data due to the rate limits.</t> | does not collect and/or export data due to the rate limits.</t> | |||
| <t>IOAM nodes <bcp14>SHOULD NOT</bcp14> be configured to export packet | ||||
| <t>IOAM nodes SHOULD NOT be configured to export packets | s | |||
| over a path or a tunnel | over a path or a tunnel | |||
| that is subject to IOAM direct exporting. Furthermore, IOAM | that is subject to IOAM direct exporting. Furthermore, IOAM | |||
| encapsulating nodes that can identify a packet as an IOAM exported | encapsulating nodes that can identify a packet as an IOAM exported | |||
| packet MUST NOT push a DEX Option-Type into such a packet. This | packet <bcp14>MUST NOT</bcp14> push a DEX Option-Type into such a pack et. This | |||
| requirement is intended to prevent nested exporting and/or exporting | requirement is intended to prevent nested exporting and/or exporting | |||
| loops.</t> | loops.</t> | |||
| <t>A transit or decapsulating IOAM node that receives an unknown | <t>A transit or decapsulating IOAM node that receives an unknown | |||
| IOAM-Option-Type ignores it (as defined in <xref | IOAM-Option-Type ignores it (as defined in <xref target="RFC9197" form | |||
| target="RFC9197"/>), and specifically nodes that do not support the | at="default"/>); specifically, nodes that do not support the | |||
| DEX Option-Type ignore it. Note that as per <xref target="RFC9197"/> | DEX Option-Type ignore it. As per <xref target="RFC9197" format="defau | |||
| lt"/>, note that | ||||
| a decapsulating node removes the IOAM encapsulation and all its | a decapsulating node removes the IOAM encapsulation and all its | |||
| IOAM-Option-Types. Specifically, this applies to the case where one of these | IOAM-Option-Types. Specifically, this applies to the case where one of these | |||
| options is a (possibly unknown) DEX Option-Type. The ability to skip | options is a (possibly unknown) DEX Option-Type. The ability to skip | |||
| over a (possibly unknown) DEX Option-Type in the parsing or in the | over a (possibly unknown) DEX Option-Type in the parsing or in the | |||
| decapsulation procedure is dependent on the specific encapsulation, | decapsulation procedure is dependent on the specific encapsulation, | |||
| which is outside the scope of this document. For example, when IOAM | which is outside the scope of this document. For example, when IOAM | |||
| is encapsulated in IPv6 <xref | is encapsulated in IPv6 <xref target="I-D.ietf-ippm-ioam-ipv6-options" | |||
| target="I-D.ietf-ippm-ioam-ipv6-options"/> the DEX Option-Type is | format="default"/>, the DEX Option-Type is | |||
| incorporated either in a Hop-by-Hop options header or in a | incorporated either in a Hop-by-Hop options header or in a | |||
| Destination options header, and thus can be skipped using the length | Destination options header; thus, it can be skipped using the length | |||
| field in the options header.</t> | field in the options header.</t> | |||
| </section> | </section> | |||
| </section> | </section> | |||
| <section anchor="OptionSec" numbered="true" toc="default"> | ||||
| <section anchor="OptionSec" title="The DEX Option-Type Format"> | <name>The DEX Option-Type Format</name> | |||
| <t>The format of the DEX Option-Type is depicted in <xref | <t>The format of the DEX Option-Type is depicted in <xref target="Option | |||
| target="OptionFormat"/>. The length of the DEX Option-Type is at least | Format" format="default"/>. The length of the DEX Option-Type is at least | |||
| 8 octets. The DEX Option-Type MAY include one or more optional fields. | 8 octets. The DEX Option-Type <bcp14>MAY</bcp14> include one or more opt | |||
| ional fields. | ||||
| The existence of the optional fields is indicated by the corresponding | The existence of the optional fields is indicated by the corresponding | |||
| flags in the Extension-Flags field. Two optional fields are defined in | flags in the Extension-Flags field. Two optional fields are defined in | |||
| this document, the Flow ID and the Sequence Number fields. Every | this document: the Flow ID and Sequence Number fields. Every | |||
| optional field MUST be exactly 4 octets long. Thus, the | optional field <bcp14>MUST</bcp14> be exactly 4 octets long. Thus, the | |||
| Extension-Flags field explicitly indicates the length of the DEX | Extension-Flags field explicitly indicates the length of the DEX | |||
| Option-Type. Defining a new optional field requires an allocation of a | Option-Type. Defining a new optional field requires an allocation of a | |||
| corresponding flag in the Extension-Flags field, as specified in <xref | corresponding flag in the Extension-Flags field, as specified in <xref t | |||
| target="IANAflags"/>.</t> | arget="IANAflags" format="default"/>.</t> | |||
| <figure anchor="OptionFormat"> | ||||
| <figure align="center" anchor="OptionFormat" | <name>DEX Option-Type Format</name> | |||
| title="DEX Option-Type Format"> | <artwork align="left" name="" type="" alt=""><![CDATA[ | |||
| <artwork align="left"><![CDATA[ | ||||
| 0 1 2 3 | 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 | 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 | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Namespace-ID | Flags |Extension-Flags| | | Namespace-ID | Flags |Extension-Flags| | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | IOAM-Trace-Type | Reserved | | | IOAM-Trace-Type | Reserved | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Flow ID (optional) | | | Flow ID (Optional) | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Sequence Number (Optional) | | | Sequence Number (Optional) | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+]]></artwork | |||
| ]]></artwork> | > | |||
| </figure> | </figure> | |||
| <t><list hangIndent="16" style="hanging"> | <dl newline="true" spacing="normal"> | |||
| <t hangText="Namespace-ID">A 16-bit identifier of the IOAM | <dt>Namespace-ID:</dt> | |||
| namespace, as defined in <xref target="RFC9197"/>.</t> | <dd>A 16-bit identifier of the IOAM | |||
| namespace, as defined in <xref target="RFC9197" format="default"/>.< | ||||
| <t hangText="Flags">An 8-bit field, comprised of 8 one-bit | /dd> | |||
| subfields. Flags are allocated by IANA, as defined in <xref | <dt>Flags:</dt> | |||
| target="IANAflags"/>.</t> | <dd>An 8-bit field, comprised of 8 1-bit | |||
| subfields. Flags are allocated by IANA, as defined in <xref target=" | ||||
| <t hangText="Extension-Flags">An 8-bit field, comprised of 8 | IANAflags" format="default"/>.</dd> | |||
| one-bit subfields. Extension-Flags are allocated by IANA, as | <dt>Extension-Flags:</dt> | |||
| defined in <xref target="IANAExtensionflags"/>. Every bit in the | <dd>An 8-bit field, comprised of 8 | |||
| 1-bit subfields. Extension-Flags are allocated by IANA, as | ||||
| defined in <xref target="IANAExtensionflags" format="default"/>. Eve | ||||
| ry bit in the | ||||
| Extension-Flag field that is set to 1 indicates the existence of a | Extension-Flag field that is set to 1 indicates the existence of a | |||
| corresponding optional 4-octet field. An IOAM node that receives a | corresponding optional 4-octet field. An IOAM node that receives a | |||
| DEX Option-Type with an unknown flag set to 1 MUST ignore the | DEX Option-Type with an unknown flag set to 1 <bcp14>MUST</bcp14> ig | |||
| corresponding optional field.</t> | nore the | |||
| corresponding optional field.</dd> | ||||
| <t hangText="IOAM-Trace-Type">A 24-bit identifier which specifies | <dt>IOAM-Trace-Type:</dt> | |||
| <dd>A 24-bit identifier that specifies | ||||
| which IOAM-Data-Fields should be exported. The format of this | which IOAM-Data-Fields should be exported. The format of this | |||
| field is as defined in <xref target="RFC9197"/>. Specifically, the | field is as defined in <xref target="RFC9197" format="default"/>. Sp ecifically, the | |||
| bit that corresponds to the Checksum Complement IOAM-Data-Field | bit that corresponds to the Checksum Complement IOAM-Data-Field | |||
| SHOULD be assigned to be zero by the IOAM encapsulating node, and | <bcp14>SHOULD</bcp14> be assigned to be zero by the IOAM encapsulati ng node and | |||
| ignored by transit and decapsulating nodes. The reason for this is | ignored by transit and decapsulating nodes. The reason for this is | |||
| that the Checksum Complement is intended for in-flight packet | that the Checksum Complement is intended for in-flight packet | |||
| modifications and is not relevant for direct exporting.</t> | modifications and is not relevant for direct exporting.</dd> | |||
| <dt>Reserved:</dt> | ||||
| <t hangText="Reserved">This field MUST be ignored by the | <dd>This field <bcp14>MUST</bcp14> be ignored by the | |||
| receiver.</t> | receiver.</dd> | |||
| <dt>Optional fields:</dt> | ||||
| <t hangText="Optional fields">The optional fields, if present, | <dd><t>The optional fields, if present, | |||
| reside after the Reserved field. The order of the optional fields | reside after the Reserved field. The order of the optional fields | |||
| is according to the order of the respective bits, starting from | is according to the order of the respective bits, starting from | |||
| the most significant bit, that are enabled in the | the most significant bit, that are enabled in the | |||
| Extension-Flags field. Each optional field is 4 octets long.</t> | Extension-Flags field. Each optional field is 4 octets lo | |||
| ng.</t> | ||||
| <t hangText="Flow ID">An optional 32-bit field representing the | <dl spacing="normal" newline="true"> | |||
| <dt>Flow ID:</dt> | ||||
| <dd>An optional 32-bit field representing the | ||||
| flow identifier. If the actual Flow ID is shorter than 32 bits, it | flow identifier. If the actual Flow ID is shorter than 32 bits, it | |||
| is zero padded in its most significant bits. The field is set at | is zero padded in its most significant bits. The field is set at | |||
| the encapsulating node. The Flow ID can be used to correlate the | the encapsulating node. The Flow ID can be used to correlate the | |||
| exported data of the same flow from multiple nodes and from | exported data of the same flow from multiple nodes and from | |||
| multiple packets. Flow ID values are expected to be allocated in a | multiple packets. Flow ID values are expected to be allocated in a | |||
| way that avoids collisions. For example, random assignment of Flow | way that avoids collisions. For example, random assignment of Flow | |||
| ID values can be subject to collisions, while | ID values can be subject to collisions, while | |||
| centralized allocation can avoid this problem. The specification | centralized allocation can avoid this problem. The specification | |||
| of the Flow ID allocation method is not within the scope of this | of the Flow ID allocation method is not within the scope of this | |||
| document.</t> | document.</dd> | |||
| <dt>Sequence Number:</dt> | ||||
| <t hangText="Sequence Number">An optional 32-bit sequence number | <dd>An optional 32-bit sequence number | |||
| starting from 0 and incremented by 1 for each | starting from 0 and incremented by 1 for each | |||
| packet from the same flow at the encapsulating node that includes | packet from the same flow at the encapsulating node that includes | |||
| the DEX option. The Sequence | the DEX option. The Sequence | |||
| Number, when combined with the Flow ID, provides a convenient | Number, when combined with the Flow ID, provides a convenient | |||
| approach to correlate the exported data from the same user | approach to correlate the exported data from the same user | |||
| packet.</t> | packet.</dd> | |||
| </list></t> | </dl> | |||
| </dd> | ||||
| </dl> | ||||
| </section> | </section> | |||
| </section> | </section> | |||
| <section anchor="IANA" numbered="true" toc="default"> | ||||
| <section anchor="IANA" title="IANA Considerations"> | <name>IANA Considerations</name> | |||
| <section anchor="IANAtype" title="IOAM Type"> | <section anchor="IANAtype" numbered="true" toc="default"> | |||
| <t>The "IOAM Option-Type Registry" was defined in Section 7.1 of <xref | <name>IOAM Type</name> | |||
| target="RFC9197"/>. IANA is requested to allocate the following code | <t>The "IOAM Option-Type" registry is defined in <xref target="RFC9197" | |||
| point from the "IOAM Option-Type Registry" as follows:</t> | sectionFormat="of" section="7.1"/>. IANA has allocated the following code | |||
| point from the "IOAM Option-Type" registry as follows:</t> | ||||
| <t><list hangIndent="11" style="hanging"> | <dl newline="false" spacing="normal"> | |||
| <t hangText="TBD-type">IOAM Direct Export (DEX) Option-Type</t> | <dt>Code Point:</dt><dd>4</dd> | |||
| </list></t> | <dt>Name</dt><dd>IOAM Direct Export (DEX) Option-Type</dd> | |||
| <dt>Description:</dt><dd>Direct exporting</dd> | ||||
| <t>If possible, IANA is requested to allocate code point 4 | <dt>Reference:</dt><dd>This document</dd> | |||
| (TBD-type). The "Description" for the new option should be | </dl> | |||
| "Direct exporting" and the "Reference" should be the current docu | ||||
| ment. | ||||
| </t> | ||||
| </section> | </section> | |||
| <section anchor="IANAflags" numbered="true" toc="default"> | ||||
| <section anchor="IANAflags" title="IOAM DEX Flags"> | <name>IOAM DEX Flags</name> | |||
| <t>IANA is requested to define an "IOAM DEX Flags" registry. This | <t>IANA has created the "IOAM DEX Flags" registry. This | |||
| registry includes 8 flag bits. Allocation is based on the "IETF | registry includes 8 flag bits. Allocation is based on the "IETF | |||
| Review" procedure, as defined in <xref target="RFC8126"/>.</t> | Review" procedure defined in <xref target="RFC8126" format="default"/>.< | |||
| /t> | ||||
| <t>New registration requests MUST use the following template:</t> | <t>New registration requests <bcp14>MUST</bcp14> use the following templ | |||
| ate:</t> | ||||
| <t><list style="hanging"> | <dl newline="false" spacing="normal"> | |||
| <t hangText="Bit:">Desired bit to be allocated in the 8 bit Flags | <dt>Bit:</dt> | |||
| field of the DEX Option-Type.</t> | <dd>Desired bit to be allocated in the 8-bit Flags | |||
| field of the DEX Option-Type.</dd> | ||||
| <t hangText="Description:">Brief description of the newly | <dt>Description:</dt> | |||
| registered bit.</t> | <dd>Brief description of the newly | |||
| registered bit.</dd> | ||||
| <t hangText="Reference:">Reference to the document that defines | <dt>Reference:</dt> | |||
| the new bit.</t> | <dd>Reference to the document that defines | |||
| </list></t> | the new bit.</dd> | |||
| </dl> | ||||
| </section> | </section> | |||
| <section anchor="IANAExtensionflags" numbered="true" toc="default"> | ||||
| <section anchor="IANAExtensionflags" title="IOAM DEX Extension-Flags"> | <name>IOAM DEX Extension-Flags</name> | |||
| <t>IANA is requested to define an "IOAM DEX Extension-Flags" registry. | <t>IANA has created the "IOAM DEX Extension-Flags" registry. | |||
| This registry includes 8 flag bits. Bit 0 (the most significant bit) | This registry includes 8 flag bits. Bit 0 (the most significant bit) | |||
| and bit 1 in the registry are allocated by this document, and | and bit 1 in the registry are allocated by this document and | |||
| described in <xref target="OptionSec"/>. Allocation of the other bits | described in <xref target="OptionSec" format="default"/>. Allocation of | |||
| should be performed based on the "IETF Review" procedure, as defined | the other bits | |||
| in <xref target="RFC8126"/>.</t> | should be performed based on the "IETF Review" procedure defined | |||
| in <xref target="RFC8126" format="default"/>.</t> | ||||
| <t><list style="hanging"> | <dl newline="false" spacing="normal"> | |||
| <t hangText="Bit 0">"Flow ID [RFC XXXX] [RFC Editor: please | <dt>Bit 0:</dt> | |||
| replace with the RFC number of the current document]"</t> | <dd>"Flow ID [RFC9326]"</dd> | |||
| <dt>Bit 1:</dt> | ||||
| <t hangText="Bit 1">"Sequence Number [RFC XXXX] [RFC Editor: | <dd>"Sequence Number [RFC9326]"</dd> | |||
| please replace with the RFC number of the current document]"</t> | </dl> | |||
| </list></t> | <t>New registration requests <bcp14>MUST</bcp14> use the following templ | |||
| ate:</t> | ||||
| <t>New registration requests MUST use the following template:</t> | <dl newline="false" spacing="normal"> | |||
| <dt>Bit:</dt> | ||||
| <t><list style="hanging"> | <dd>Desired bit to be allocated in the 8-bit | |||
| <t hangText="Bit:">Desired bit to be allocated in the 8 bit | Extension-Flags field of the DEX Option-Type.</dd> | |||
| Extension-Flags field of the DEX Option-Type.</t> | <dt>Description:</dt> | |||
| <dd>Brief description of the newly | ||||
| <t hangText="Description:">Brief description of the newly | registered bit.</dd> | |||
| registered bit.</t> | <dt>Reference:</dt> | |||
| <dd>Reference to the document that defines | ||||
| <t hangText="Reference:">Reference to the document that defines | the new bit.</dd> | |||
| the new bit.</t> | </dl> | |||
| </list></t> | ||||
| </section> | </section> | |||
| </section> | </section> | |||
| <section anchor="Performance" numbered="true" toc="default"> | ||||
| <section anchor="Performance" title="Performance Considerations"> | <name>Performance Considerations</name> | |||
| <t>The DEX Option-Type triggers IOAM data to be collected and/or | <t>The DEX Option-Type triggers IOAM data to be collected and/or | |||
| exported packets to be exported to a receiving entity (or entities). In | exported packets to be exported to a receiving entity (or entities). In | |||
| some cases this may impact the receiving entity's performance, or the | some cases, this may impact the receiving entity's performance or the | |||
| performance along the paths leading to it.</t> | performance along the paths leading to it.</t> | |||
| <t>Therefore, the performance impact of these exported packets is | <t>Therefore, the performance impact of these exported packets is | |||
| limited by taking two measures: at the encapsulating nodes, by selective | limited by taking two measures: at the encapsulating nodes by selective | |||
| DEX encapsulation (<xref target="SelectionSec"/>), and at the transit | DEX encapsulation (<xref target="SelectionSec" format="default"/>) and at | |||
| nodes, by limiting exporting rate (<xref target="ExportSec"/>). These | the transit | |||
| nodes by limiting exporting rate (<xref target="ExportSec" format="default | ||||
| "/>). These | ||||
| two measures ensure that direct exporting is used at a rate that does | two measures ensure that direct exporting is used at a rate that does | |||
| not significantly affect the network bandwidth, and does not overload | not significantly affect the network bandwidth and does not overload | |||
| the receiving entity. Moreover, it is possible to load balance the | the receiving entity. Moreover, it is possible to load balance the | |||
| exported data among multiple receiving entities, although the exporting | exported data among multiple receiving entities, although the exporting | |||
| method is not within the scope of this document.</t> | method is not within the scope of this document.</t> | |||
| <t>It should be noted that, in some networks, DEX data may be exported | ||||
| <t>It should be noted that in some networks DEX data may be exported | over an out-of-band network in which a large volume of exported traffic | |||
| over an out-of-band network, in which a large volume of exported traffic | does not compromise user traffic. In this case, an operator may choose to | |||
| does not compromise user traffic. In this case an operator may choose to | ||||
| disable the exporting rate limiting.</t> | disable the exporting rate limiting.</t> | |||
| </section> | </section> | |||
| <section anchor="Security" numbered="true" toc="default"> | ||||
| <section anchor="Security" title="Security Considerations"> | <name>Security Considerations</name> | |||
| <t>The security considerations of IOAM in general are discussed in <xref | <t>The security considerations of IOAM in general are discussed in <xref t | |||
| target="RFC9197"/>. Specifically, an attacker may try to use the | arget="RFC9197" format="default"/>. Specifically, an attacker may try to use the | |||
| functionality that is defined in this document to attack the | functionality that is defined in this document to attack the | |||
| network.</t> | network.</t> | |||
| <t>An attacker may attempt to overload network devices by injecting | <t>An attacker may attempt to overload network devices by injecting | |||
| synthetic packets that include the DEX Option-Type. Similarly, an | synthetic packets that include the DEX Option-Type. Similarly, an | |||
| on-path attacker may maliciously incorporate the DEX Option-Type into | on-path attacker may maliciously incorporate the DEX Option-Type into | |||
| transit packets, or maliciously remove it from packets in which it is | transit packets or maliciously remove it from packets in which it is | |||
| incorporated.</t> | incorporated.</t> | |||
| <t>Forcing DEX, either in synthetic packets or in transit packets, may | ||||
| <t>Forcing DEX, either in synthetic packets or in transit packets may | ||||
| overload the IOAM nodes and/or the receiving entity (or entities). Since | overload the IOAM nodes and/or the receiving entity (or entities). Since | |||
| this mechanism affects multiple devices along the network path, it | this mechanism affects multiple devices along the network path, it | |||
| potentially amplifies the effect on the network bandwidth, on the | potentially amplifies the effect on the network bandwidth, the | |||
| storage of the devices that collect the data, and on the receiving | storage of the devices that collect the data, and the receiving | |||
| entity's load.</t> | entity's load.</t> | |||
| <t>The amplification effect of DEX may be worse in wide area networks in | <t>The amplification effect of DEX may be worse in wide area networks in | |||
| which there are multiple IOAM domains. For example, if DEX is used in | which there are multiple IOAM-Domains. For example, if DEX is used in | |||
| IOAM domain 1 for exporting IOAM data to a receiving entity, then the | IOAM-Domain 1 for exporting IOAM data to a receiving entity, then the | |||
| exported packets of domain 1 can be forwarded through IOAM domain 2, in | exported packets of IOAM-Domain 1 can be forwarded through IOAM-Domain 2, | |||
| which they are subject to DEX. The exported packets of domain 2 may in | in | |||
| turn be forwarded through another IOAM domain (or through domain 1), and | which they are subject to DEX. In turn, the exported packets of IOAM-Domai | |||
| theoretically this recursive amplification may continue infinitely.</t> | n 2 may be forwarded through another IOAM domain (or through IOAM-Domain 1); | |||
| theoretically, this recursive amplification may continue infinitely.</t> | ||||
| <t>In order to mitigate the attacks described above, the following | <t>In order to mitigate the attacks described above, the following | |||
| requirements (<xref target="OptionTypeSec"/>) have been defined:</t> | requirements (<xref target="OptionTypeSec" format="default"/>) have been d | |||
| efined:</t> | ||||
| <t><list style="symbols"> | <ul spacing="normal"> | |||
| <t>Selective DEX (<xref target="SelectionSec"/>) is applied by IOAM | <li>Selective DEX (<xref target="SelectionSec" format="default"/>) is ap | |||
| plied by IOAM | ||||
| encapsulating nodes in order to limit the potential impact of DEX | encapsulating nodes in order to limit the potential impact of DEX | |||
| attacks to a small fraction of the traffic.</t> | attacks to a small fraction of the traffic.</li> | |||
| <li>Rate limiting of exported traffic (<xref target="ExportSec" format=" | ||||
| <t>Rate limiting of exported traffic (<xref target="ExportSec"/>) is | default"/>) is | |||
| applied by IOAM nodes in order to prevent overloading attacks and in | applied by IOAM nodes in order to prevent overloading attacks and | |||
| order to significantly limit the scale of amplification attacks.</t> | to significantly limit the scale of amplification attacks.</li> | |||
| <li>IOAM encapsulating nodes are required to avoid pushing the DEX | ||||
| <t>IOAM encapsulating nodes are required to avoid pushing the DEX | Option-Type into IOAM exported packets (<xref target="ExportSec" forma | |||
| Option-Type into IOAM exported packets (<xref target="ExportSec"/>), | t="default"/>), | |||
| thus preventing some of the amplification and export loop | thus preventing some of the amplification and export loop | |||
| scenarios.</t> | scenarios.</li> | |||
| </list></t> | </ul> | |||
| <t>Although the exporting method is not within the scope of this | <t>Although the exporting method is not within the scope of this | |||
| document, any exporting method MUST secure the exported data from the | document, any exporting method <bcp14>MUST</bcp14> secure the exported dat | |||
| IOAM node to the receiving entity, in order to protect the | a from the | |||
| IOAM node to the receiving entity in order to protect the | ||||
| confidentiality and guarantee the integrity of the exported data. | confidentiality and guarantee the integrity of the exported data. | |||
| Specifically, an IOAM node that | Specifically, an IOAM node that | |||
| performs DEX exporting MUST send the exported data to a pre-configured | performs DEX exporting <bcp14>MUST</bcp14> send the exported data to a pre | |||
| trusted receiving entity that is in the same IOAM domain as the exporting | -configured | |||
| trusted receiving entity that is in the same IOAM-Domain as the exporting | ||||
| IOAM node. | IOAM node. | |||
| Furthermore, an IOAM node MUST gain explicit | Furthermore, an IOAM node <bcp14>MUST</bcp14> gain explicit | |||
| consent to export data to a receiving entity before starting to send | consent to export data to a receiving entity before starting to send | |||
| exported data.</t> | exported data.</t> | |||
| <t>An attacker may keep track of the information sent in DEX headers as | <t>An attacker may keep track of the information sent in DEX headers as | |||
| a means of reconnaissance. This form of recon can be mitigated to some | a means of reconnaissance. This form of recon can be mitigated to some | |||
| extent by careful allocation of the Flow ID and Sequence Number space, | extent by careful allocation of the Flow ID and Sequence Number space | |||
| in a way that does not compromise privacy aspects such as customer | in a way that does not compromise privacy aspects, such as customer | |||
| identities.</t> | identities.</t> | |||
| <t>The integrity of the DEX Option-Type can be protected through a | <t>The integrity of the DEX Option-Type can be protected through a | |||
| mechanism of the encapsulating protocol. While <xref | mechanism of the encapsulating protocol. While <xref target="I-D.ietf-ippm | |||
| target="I-D.ietf-ippm-ioam-data-integrity"/> introduces an integrity | -ioam-data-integrity" format="default"/> introduces an integrity | |||
| protection mechanism that protects the integrity of IOAM-Data-Fields, | protection mechanism that protects the integrity of IOAM-Data-Fields, | |||
| the DEX Option-Type does not include IOAM-Data-Fields, and therefore | the DEX Option-Type does not include IOAM-Data-Fields; therefore, | |||
| these integrity protection mechanisms are not applicable to the DEX | these integrity protection mechanisms are not applicable to the DEX | |||
| Option-Type. As discussed in the threat analysis of <xref | Option-Type. As discussed in the threat analysis of <xref target="I-D.ietf | |||
| target="I-D.ietf-ippm-ioam-data-integrity"/>, injection or modification | -ippm-ioam-data-integrity" format="default"/>, injection or modification | |||
| of IOAM-Option-Type headers are threats that are not addressed in | of IOAM-Option-Type headers are threats that are not addressed in | |||
| IOAM.</t> | IOAM.</t> | |||
| <t>IOAM is assumed to be deployed in a restricted administrative domain, | <t>IOAM is assumed to be deployed in a restricted administrative domain, | |||
| thus limiting the scope of the threats above and their affect. This is a | thus limiting the scope of the threats above and their effect. This is a | |||
| fundamental assumption with respect to the security aspects of IOAM, as | fundamental assumption with respect to the security aspects of IOAM, as | |||
| further discussed in <xref target="RFC9197"/>.</t> | further discussed in <xref target="RFC9197" format="default"/>.</t> | |||
| </section> | ||||
| <section anchor="Acknowledgments" title="Acknowledgments"> | ||||
| <t>The authors thank Martin Duke, Tommy Pauly, Meral Shirazipour, Colin | ||||
| Perkins, Stephen Farrell, Linda Dunbar, Justin Iurman, Greg Mirsky, and | ||||
| other members of the IPPM working group for many helpful comments.</t> | ||||
| </section> | </section> | |||
| </middle> | </middle> | |||
| <back> | <back> | |||
| <references title="Normative References"> | ||||
| &RFC2119; | ||||
| &RFC8174; | <displayreference target="I-D.spiegel-ippm-ioam-rawexport" to="IOAM-RAWEXPORT"/> | |||
| <displayreference target="I-D.song-ippm-postcard-based-telemetry" to="POSTCARD-B | ||||
| ASED-TELEMETRY"/> | ||||
| <displayreference target="I-D.ietf-ippm-ioam-data-integrity" to="IOAM-DATA-INTEG | ||||
| RITY"/> | ||||
| <displayreference target="I-D.ietf-ippm-ioam-ipv6-options" to="IOAM-IPV6-OPTIONS | ||||
| "/> | ||||
| &RFC9197; | <references> | |||
| </references> | <name>References</name> | |||
| <references> | ||||
| <name>Normative References</name> | ||||
| <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2 | ||||
| 119.xml"/> | ||||
| <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8 | ||||
| 174.xml"/> | ||||
| <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9 | ||||
| 197.xml"/> | ||||
| </references> | ||||
| <references> | ||||
| <name>Informative References</name> | ||||
| <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6 | ||||
| 291.xml"/> | ||||
| <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8 | ||||
| 126.xml"/> | ||||
| <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5 | ||||
| 475.xml"/> | ||||
| <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7 | ||||
| 014.xml"/> | ||||
| <references title="Informative References"> | <!-- [I-D.spiegel-ippm-ioam-rawexport] IESG state Expired --> | |||
| &RFC6291; | ||||
| &RFC8126; | <xi:include href="https://datatracker.ietf.org/doc/bibxml3/reference.I-D .spiegel-ippm-ioam-rawexport.xml"/> | |||
| &RFC5475; | <!-- [I-D.song-ippm-postcard-based-telemetry] IESG state I-D Exists --> | |||
| &RFC7014; | <xi:include href="https://datatracker.ietf.org/doc/bibxml3/reference.I-D .song-ippm-postcard-based-telemetry.xml"/> | |||
| &I-D.spiegel-ippm-ioam-rawexport; | <!-- [I-D.ietf-ippm-ioam-flags] in AUTH48 state as of 09/30/22 as RFC 9322; conf irm publication --> | |||
| &I-D.song-ippm-postcard-based-telemetry; | <reference anchor='RFC9322' target='https://www.rfc-editor.org/info/rfc9322'> | |||
| <front> | ||||
| <title>In Situ Operations, Administration, and Maintanence (IOAM) Loopback and | ||||
| Active Flags</title> | ||||
| <author initials='T' surname='Mizrahi' fullname='Tal Mizrahi'> | ||||
| <organization /> | ||||
| </author> | ||||
| <author initials='F' surname='Brockners' fullname='Frank Brockners'> | ||||
| <organization /> | ||||
| </author> | ||||
| <author initials='S' surname='Bhandari' fullname='Shwetha Bhandari'> | ||||
| <organization /> | ||||
| </author> | ||||
| <author initials='B' surname='Gafni' fullname='Barak Gafni'> | ||||
| <organization /> | ||||
| </author> | ||||
| <author initials='M' surname='Spiegel' fullname='Mickey Spiegel'> | ||||
| <organization /> | ||||
| </author> | ||||
| <date year='2022' month='November'/> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="9322"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC9322"/> | ||||
| </reference> | ||||
| &I-D.ietf-ippm-ioam-flags; | <!-- [I-D.ietf-ippm-ioam-data-integrity] IESG state I-D Exists --> | |||
| &I-D.ietf-ippm-ioam-data-integrity; | <xi:include href="https://datatracker.ietf.org/doc/bibxml3/reference.I-D .ietf-ippm-ioam-data-integrity.xml"/> | |||
| &I-D.ietf-ippm-ioam-ipv6-options; | <!-- [I-D.ietf-ippm-ioam-ipv6-options] IESG state Waiting for AD Go-Ahead::Revis | |||
| </references> | ed I-D Needed --> | |||
| <section anchor="appendix" title="Notes About the History of this Document"> | <xi:include href="https://datatracker.ietf.org/doc/bibxml3/reference.I-D | |||
| .ietf-ippm-ioam-ipv6-options.xml"/> | ||||
| </references> | ||||
| </references> | ||||
| <section anchor="appendix" numbered="true" toc="default"> | ||||
| <name>Notes about the History of This Document</name> | ||||
| <t>This document evolved from combining some of the concepts of PBT-I | <t>This document evolved from combining some of the concepts of PBT-I | |||
| from <xref target="I-D.song-ippm-postcard-based-telemetry"/> with | from <xref target="I-D.song-ippm-postcard-based-telemetry" format="default "/> with | |||
| immediate exporting from early versions of | immediate exporting from early versions of | |||
| <xref target="I-D.ietf-ippm-ioam-flags"/>.</t> | <xref target="RFC9322" format="default"/>.</t> | |||
| <t>In order to help correlate and order the exported packets, it is | ||||
| <t>In order to help correlate and order the exported packets, it is | ||||
| possible to include the Hop_Lim/Node_ID IOAM-Data-Field in exported | possible to include the Hop_Lim/Node_ID IOAM-Data-Field in exported | |||
| packets; if the IOAM-Trace-Type <xref target="RFC9197"/> has the | packets. If the IOAM-Trace-Type <xref target="RFC9197" format="default"/> has the | |||
| Hop_Lim/Node_ID bit set, then exported packets include the | Hop_Lim/Node_ID bit set, then exported packets include the | |||
| Hop_Lim/Node_ID IOAM-Data-Field, which contains the TTL/Hop Limit value | Hop_Lim/Node_ID IOAM-Data-Field, which contains the TTL/Hop Limit value | |||
| from a lower layer protocol. | from a lower layer protocol. | |||
| An alternative approach was considered during the design of this | An alternative approach was considered during the design of this | |||
| document, according to which a 1-octet Hop Count field would be included | document, according to which a 1-octet Hop Count field would be included | |||
| in the DEX header (presumably by claiming some space from the Flags | in the DEX header (presumably by claiming some space from the Flags | |||
| field). The Hop Limit would starts from 0 at the encapsulating node and | field). The Hop Limit would start from 0 at the encapsulating node and | |||
| be incremented by each IOAM transit node that supports the DEX | be incremented by each IOAM transit node that supports the DEX | |||
| Option-Type. In this approach the Hop Count field value would also be | Option-Type. In this approach, the Hop Count field value would also be | |||
| included in the exported packet.</t> | included in the exported packet.</t> | |||
| </section> | </section> | |||
| <section anchor="Acknowledgments" numbered="false" toc="default"> | ||||
| <name>Acknowledgments</name> | ||||
| <t>The authors thank <contact fullname="Martin Duke"/>, <contact | ||||
| fullname="Tommy Pauly"/>, <contact fullname="Meral Shirazipour"/>, | ||||
| <contact fullname="Colin Perkin"/>s, <contact fullname="Stephen | ||||
| Farrell"/>, <contact fullname="Linda Dunbar"/>, <contact | ||||
| fullname="Justin Iurman"/>, <contact fullname="Greg Mirsky"/>, and other m | ||||
| embers of the IPPM | ||||
| working group for many helpful comments.</t> | ||||
| </section> | ||||
| <section numbered="false" title="Contributors" toc="default"> | <section numbered="false" toc="default"> | |||
| <name>Contributors</name> | ||||
| <t>The Editors would like to recognize the contributions of the | <t>The Editors would like to recognize the contributions of the | |||
| following individuals to this document.</t> | following individuals to this document.</t> | |||
| <contact fullname="Tianran Zhou"> | ||||
| <organization>Huawei</organization> | ||||
| <address> | ||||
| <postal> | ||||
| <street>156 Beiqing Rd.</street> | ||||
| <city>Beijing</city> | ||||
| <region></region><code>100095</code> | ||||
| <country>China</country> | ||||
| </postal> | ||||
| <email>zhoutianran@huawei.com</email> | ||||
| </address> | ||||
| </contact> | ||||
| <t> | <contact fullname="Zhenbin Li"> | |||
| <figure> | <organization>Huawei</organization> | |||
| <artwork><![CDATA[ | <address> | |||
| Tianran Zhou | <postal> | |||
| Huawei | <street>156 Beiqing Rd.</street> | |||
| 156 Beiqing Rd. | <city>Beijing</city> | |||
| Beijing 100095 | <region></region><code>100095</code> | |||
| China | <country>China</country> | |||
| </postal> | ||||
| Email: zhoutianran@huawei.com | <email>lizhenbin@huawei.com</email> | |||
| </address> | ||||
| Zhenbin Li | </contact> | |||
| Huawei | ||||
| 156 Beiqing Rd. | ||||
| Beijing 100095 | ||||
| China | ||||
| Email: lizhenbin@huawei.com | ||||
| Ramesh Sivakolundu | ||||
| Cisco Systems, Inc. | ||||
| 170 West Tasman Dr. | ||||
| SAN JOSE, CA 95134 | ||||
| U.S.A. | ||||
| Email: sramesh@cisco.com | ||||
| ]]></artwork> | <contact fullname="Ramesh Sivakolundu"> | |||
| </figure> | <organization>Cisco Systems, Inc.</organization> | |||
| </t> | <address> | |||
| <postal> | ||||
| <street>170 West Tasman Dr.</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> | ||||
| </section> | </section> | |||
| </back> | </back> | |||
| </rfc> | </rfc> | |||
| End of changes. 150 change blocks. | ||||
| 468 lines changed or deleted | 453 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. | ||||