rfc9322.original   rfc9322.txt 
IPPM T. Mizrahi Internet Engineering Task Force (IETF) T. Mizrahi
Internet-Draft Huawei Request for Comments: 9322 Huawei
Intended status: Standards Track F. Brockners Category: Standards Track F. Brockners
Expires: 19 February 2023 Cisco ISSN: 2070-1721 Cisco
S. Bhandari S. Bhandari
Thoughtspot Thoughtspot
B. Gafni B. Gafni
Nvidia Nvidia
M. Spiegel M. Spiegel
Barefoot Networks, an Intel company Barefoot Networks
18 August 2022 November 2022
In-situ OAM Loopback and Active Flags In Situ Operations, Administration, and Maintenance (IOAM) Loopback and
draft-ietf-ippm-ioam-flags-10 Active Flags
Abstract Abstract
In-situ Operations, Administration, and Maintenance (IOAM) collects In situ Operations, Administration, and Maintenance (IOAM) collects
operational and telemetry information in packets while they traverse operational and telemetry information in packets while they traverse
a path between two points in the network. This document defines two a path between two points in the network. This document defines two
new flags in the IOAM Trace Option headers, specifically the Loopback new flags in the IOAM Trace Option headers, specifically the Loopback
and Active flags. and Active flags.
Status of This Memo Status of This Memo
This Internet-Draft is submitted in full conformance with the This is an Internet Standards Track document.
provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet-
Drafts is at https://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months This document is a product of the Internet Engineering Task Force
and may be updated, replaced, or obsoleted by other documents at any (IETF). It represents the consensus of the IETF community. It has
time. It is inappropriate to use Internet-Drafts as reference received public review and has been approved for publication by the
material or to cite them other than as "work in progress." Internet Engineering Steering Group (IESG). Further information on
Internet Standards is available in Section 2 of RFC 7841.
This Internet-Draft will expire on 19 February 2023. Information about the current status of this document, any errata,
and how to provide feedback on it may be obtained at
https://www.rfc-editor.org/info/rfc9322.
Copyright Notice Copyright Notice
Copyright (c) 2022 IETF Trust and the persons identified as the Copyright (c) 2022 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents (https://trustee.ietf.org/ Provisions Relating to IETF Documents
license-info) in effect on the date of publication of this document. (https://trustee.ietf.org/license-info) in effect on the date of
Please review these documents carefully, as they describe your rights publication of this document. Please review these documents
and restrictions with respect to this document. Code Components carefully, as they describe your rights and restrictions with respect
extracted from this document must include Revised BSD License text as to this document. Code Components extracted from this document must
described in Section 4.e of the Trust Legal Provisions and are include Revised BSD License text as described in Section 4.e of the
provided without warranty as described in the Revised BSD License. Trust Legal Provisions and are provided without warranty as described
in the Revised BSD License.
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 1. Introduction
2. Conventions . . . . . . . . . . . . . . . . . . . . . . . . . 3 2. Conventions
2.1. Requirements Language . . . . . . . . . . . . . . . . . . 3 2.1. Requirements Language
2.2. Terminology . . . . . . . . . . . . . . . . . . . . . . . 3 2.2. Terminology
3. New IOAM Trace Option Flags . . . . . . . . . . . . . . . . . 3 3. New IOAM Trace Option Flags
4. Loopback in IOAM . . . . . . . . . . . . . . . . . . . . . . 3 4. Loopback in IOAM
4.1. Loopback: Encapsulating Node Functionality . . . . . . . 5 4.1. Loopback: Encapsulating Node Functionality
4.1.1. Loopback Packet Selection . . . . . . . . . . . . . . 5 4.1.1. Loopback Packet Selection
4.2. Receiving and Processing Loopback . . . . . . . . . . . . 6 4.2. Receiving and Processing Loopback
4.3. Loopback on the Return Path . . . . . . . . . . . . . . . 7 4.3. Loopback on the Return Path
4.4. Terminating a Looped Back Packet . . . . . . . . . . . . 7 4.4. Terminating a Looped-Back Packet
5. Active Measurement with IOAM . . . . . . . . . . . . . . . . 7 5. Active Measurement with IOAM
6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 9 6. IANA Considerations
7. Performance Considerations . . . . . . . . . . . . . . . . . 10 7. Performance Considerations
8. Security Considerations . . . . . . . . . . . . . . . . . . . 10 8. Security Considerations
9. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 12 9. References
10. References . . . . . . . . . . . . . . . . . . . . . . . . . 12 9.1. Normative References
10.1. Normative References . . . . . . . . . . . . . . . . . . 12 9.2. Informative References
10.2. Informative References . . . . . . . . . . . . . . . . . 12 Acknowledgments
Contributors . . . . . . . . . . . . . . . . . . . . . . . . . . 13 Contributors
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 14 Authors' Addresses
1. Introduction 1. Introduction
IOAM [RFC9197] is used for monitoring traffic in the network by IOAM [RFC9197] is used for monitoring traffic in the network by
incorporating IOAM data fields into in-flight data packets. incorporating IOAM data fields into in-flight data packets.
IOAM data may be represented in one of four possible IOAM options: IOAM data may be represented in one of four possible IOAM options:
Pre-allocated Trace Option, Incremental Trace Option, Proof of Pre-allocated Trace, Incremental Trace, Proof of Transit (POT), and
Transit (POT) Option, and Edge-to-Edge Option. This document defines Edge-to-Edge. This document defines two new flags in the Pre-
two new flags in the Pre-allocated and Incremental Trace options: the allocated and Incremental Trace options: the Loopback and Active
Loopback and Active flags. flags.
The Loopback flag is used to request that each transit device along 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 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 sender. The Active flag indicates that a packet is used for active
measurement. The term active measurement in the context of this measurement. The term "active measurement" in the context of this
document is as defined in [RFC7799]. document is as defined in [RFC7799].
2. Conventions 2. Conventions
2.1. Requirements Language 2.1. Requirements Language
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
"OPTIONAL" in this document are to be interpreted as described in BCP "OPTIONAL" in this document are to be interpreted as described in
14 [RFC2119] [RFC8174] when, and only when, they appear in all BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all
capitals, as shown here. capitals, as shown here.
2.2. Terminology 2.2. Terminology
Abbreviations used in this document: Abbreviations used in this document:
IOAM: In-situ Operations, Administration, and Maintenance IOAM: In situ Operations, Administration, and Maintenance
OAM: Operations, Administration, and Maintenance [RFC6291] OAM: Operations, Administration, and Maintenance [RFC6291]
3. New IOAM Trace Option Flags 3. New IOAM Trace Option Flags
This document defines two new flags in the Pre-allocated and This document defines two new flags in the Pre-allocated and
Incremental Trace options: Incremental Trace options:
Bit 1 "Loopback" (L-bit). When set, the Loopback flag triggers Bit 1 "Loopback" (L-bit): When set, the Loopback flag triggers the
sending a copy of a packet back towards the source, as further sending of a copy of a packet back towards the source, as further
described in Section 4. described in Section 4.
Bit 2 "Active" (A-bit). When set, the Active flag indicates that a Bit 2 "Active" (A-bit): When set, the Active flag indicates that a
packet is an active measurement packet rather than a data packet, packet is an active measurement packet rather than a data packet,
where "active" is used in the sense defined in [RFC7799]. The where "active" is used in the sense defined in [RFC7799]. The
packet may be an IOAM probe packet, or a replicated data packet packet may be an IOAM probe packet or a replicated data packet
(the second and third use cases of Section 5). (the second and third use cases of Section 5).
4. Loopback in IOAM 4. Loopback in IOAM
The Loopback flag is used to request that each transit device along 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 the path loops back a truncated copy of the data packet to the
sender. Loopback allows an IOAM encapsulating node to trace the path sender. Loopback allows an IOAM encapsulating node to trace the path
to a given destination, and to receive per-hop data about both the to a given destination and to receive per-hop data about both the
forward and the return path. Loopback is intended to provide an forward and return paths. Loopback is intended to provide an
accelerated alternative to Traceroute, that allows the encapsulating accelerated alternative to Traceroute that allows the encapsulating
node to receive responses from multiple transit nodes along the path node to receive responses from multiple transit nodes along the path
in less then one round-trip-time, and by sending a single packet. in less than one round-trip time (RTT) and by sending a single
packet.
As illustrated in Figure 1, an IOAM encapsulating node can push an As illustrated in Figure 1, an IOAM encapsulating node can push an
IOAM encapsulation that includes the Loopback flag onto some or all IOAM encapsulation that includes the Loopback flag onto some or all
of the packets it forwards, using one of the IOAM encapsulation of the packets it forwards using one of the IOAM encapsulation types,
types, e.g., [I-D.ietf-sfc-ioam-nsh], or e.g., [IOAM-NSH] or [IOAM-IPV6-OPTIONS]. The IOAM transit node and
[I-D.ietf-ippm-ioam-ipv6-options]. The IOAM transit node and the the decapsulating node both create copies of the packet and loop them
decapsulating node both creates copies of the packet and loop them
back to the encapsulating node. The decapsulating node also back to the encapsulating node. The decapsulating node also
terminates the IOAM encapsulation, and then forwards the packet terminates the IOAM encapsulation and then forwards the packet
towards the destination. The two IOAM looped back copies are towards the destination. The two IOAM looped-back copies are
terminated by the encapsulating node. terminated by the encapsulating node.
+--------+ +--------+ +--------+ +--------+ +--------+ +--------+ +--------+ +--------+ +--------+ +--------+
| | | IOAM |.....| IOAM |.....| IOAM | | | | | | IOAM |.....| IOAM |.....| IOAM | | |
+--------+ +--------+ +--------+ +--------+ +--------+ +--------+ +--------+ +--------+ +--------+ +--------+
| L2/L3 |<===>| L2/L3 |<===>| L2/L3 |<===>| L2/L3 |<===>| L2/L3 | | L2/L3 |<===>| L2/L3 |<===>| L2/L3 |<===>| L2/L3 |<===>| L2/L3 |
+--------+ +--------+ +--------+ +--------+ +--------+ +--------+ +--------+ +--------+ +--------+ +--------+
Source Encapsulating Transit Decapsulating Destination Source Encapsulating Transit Decapsulating Destination
Node Node Node Node Node Node
<------------ IOAM domain -----------> <------------ IOAM-Domain ----------->
IOAM encap. with Loopback flag IOAM encap. with Loopback flag
Data packet ------->============================>-----------> Data packet ------->============================>----------->
| | | |
IOAM looped back | | IOAM looped back | |
<=============+ | <=============+ |
IOAM looped back| IOAM looped back|
<===========================+ <===========================+
Figure 1: Loopback in IOAM. Figure 1: Loopback in IOAM
Loopback can be used only if a return path from transit nodes and Loopback can be used only if a return path from transit nodes and
destination nodes towards the source (encapsulating node) exists. destination nodes towards the source (encapsulating node) exists.
Specifically, loopback is only applicable in encapsulations in which Specifically, loopback is only applicable in encapsulations in which
the identity of the encapsulating node is available in the the identity of the encapsulating node is available in the
encapsulation header. If an encapsulating node receives a looped encapsulation header. If an encapsulating node receives a looped-
back packet that was not originated from the current encapsulating back packet that was not originated from the current encapsulating
node, the packet is dropped. node, the packet is dropped.
4.1. Loopback: Encapsulating Node Functionality 4.1. Loopback: Encapsulating Node Functionality
The encapsulating node either generates synthetic packets with an The encapsulating node either generates synthetic packets with an
IOAM trace option that has the Loopback flag set, or sets the loopack IOAM trace option that has the Loopback flag set or sets the Loopback
flag in a subset of the in-transit data packets. Loopback is used 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. either proactively or on-demand, i.e., when a failure is detected.
The encapsulating node also needs to ensure that sufficient space is The encapsulating node also needs to ensure that sufficient space is
available in the IOAM header for loopback operation, which includes available in the IOAM header for loopback operation, which includes
transit nodes adding trace data on the original path and then again transit nodes adding trace data on the original path and again on the
on the return path. return path.
An IOAM trace option that has the Loopback flag set MUST have the An IOAM trace option that has the Loopback flag set MUST have the
value '1' in the most significant bit of IOAM-Trace-Type, and '0' in value '1' in the most significant bit of IOAM-Trace-Type and '0' in
the rest of the bits of IOAM-Trace-Type. Thus, every transit node 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 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 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 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 the IOAM-Trace-Type is not equal to '1' in the most significant bit
and '0' in the rest of the bits, MUST NOT loop back a copy of the and '0' in the rest of the bits MUST NOT loop back a copy of the
packet. The reason for allowing only a single data field per hop is packet. The reason for allowing only a single data field per hop is
to minimize the impact of amplification attacks. to minimize the impact of amplification attacks.
IOAM encapsulating nodes MUST NOT push an IOAM encapsulation with the IOAM encapsulating nodes MUST NOT push an IOAM encapsulation with the
Loopback flag onto data packets that already include an IOAM Loopback flag onto data packets that already include an IOAM
encapsulation. This requirement is intended to prevent IOAM Loopback encapsulation. This requirement is intended to prevent IOAM Loopback
nesting, where looped back packets may be subject to loopback in a nesting where looped-back packets may be subject to loopback in a
nested IOAM domain. nested IOAM-Domain.
4.1.1. Loopback Packet Selection 4.1.1. Loopback Packet Selection
If an IOAM encapsulating node incorporates the Loopback flag into all If an IOAM encapsulating node incorporates the Loopback flag into all
the traffic it forwards it may lead to an excessive amount of looped the traffic it forwards, it may lead to an excessive amount of looped
back packets, which may overload the network and the encapsulating back packets, which may overload the network and the encapsulating
node. Therefore, an IOAM encapsulating node that supports the node. Therefore, an IOAM encapsulating node that supports the
Loopback flag MUST support the ability to incorporate the Loopback Loopback flag MUST support the ability to incorporate the Loopback
flag selectively into a subset of the packets that are forwarded by flag selectively into a subset of the packets that are forwarded by
it. it.
Various methods of packet selection and sampling have been previously Various methods of packet selection and sampling have been previously
defined, such as [RFC7014] and [RFC5475]. Similar techniques can be defined, such as [RFC7014] and [RFC5475]. Similar techniques can be
applied by an IOAM encapsulating node to apply Loopback to a subset applied by an IOAM encapsulating node to apply loopback to a subset
of the forwarded traffic. of the forwarded traffic.
The subset of traffic that is forwarded or transmitted with a The subset of traffic that is forwarded or transmitted with a
Loopback flag SHOULD NOT exceed 1/N of the interface capacity on any Loopback flag SHOULD NOT exceed 1/N of the interface capacity on any
of the IOAM encapsulating node's interfaces. This requirement of the IOAM encapsulating node's interfaces. This requirement
applies to the total traffic that incorporates a Loopback flag, applies to the total traffic that incorporates a Loopback flag,
including traffic that is forwarded by the IOAM encapsulating node 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 configurable by network In this context, N is a parameter that can be configurable by network
operators. If there is an upper bound, M, on the number of IOAM 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 transit nodes in any path in the network, then configuring N such
that N >> M (i.e., N is much greater than M) is RECOMMENDED. The that N >> M (i.e., N is much greater than M) is RECOMMENDED. The
rationale is that a packet that includes the Loopback flag triggers a rationale is that a packet that includes the Loopback flag triggers a
looped back packet from each IOAM transit node along the path for a looped-back packet from each IOAM transit node along the path for a
total of M looped back packets. Thus, if N >> M then the number of total of M looped-back packets. Thus, if N >> M, then the number of
looped back packets is significantly lower than the number of data looped-back packets is significantly lower than the number of data
packets forwarded by the IOAM encapsulating node. It is RECOMMENDED packets forwarded by the IOAM encapsulating node. It is RECOMMENDED
that the default value of N satisfies N>100, to be used in the that the default value of N satisfies N>100 to be used in the absence
absence of explicit operator configuration or if there is no prior of explicit operator configuration or if there is no prior knowledge
knowledge about the network topology or size. about the network topology or size.
An IOAM domain in which the Loopback flag is used MUST be configured An IOAM-Domain in which the Loopback flag is used MUST be configured
such that there is expected to be a return path from each of the IOAM 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 transit and IOAM decapsulating nodes; if this expectation does not
apply, or if the encapsulating node's identity is not available in apply, or if the encapsulating node's identity is not available in
the encapsulation header, then configuration MUST NOT enable the the encapsulation header, then configuration MUST NOT enable the
Loopback flag to be set. Loopback flag to be set.
4.2. Receiving and Processing Loopback 4.2. Receiving and Processing Loopback
A Loopback flag that is set indicates to the transit nodes processing 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 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 this context the send the copy back to the source of the packet. In this context, the
source is the IOAM encapsulating node, and it is assumed that the source is the IOAM encapsulating node and it is assumed that the
source address is available in the encapsulation header. Thus, the source address is available in the encapsulation header. Thus, the
source address of the original packet is used as the destination source address of the original packet is used as the destination
address in the copied packet. If IOAM is used over an encapsulation address in the copied packet. If IOAM is used over an encapsulation
that does not include the address of the encapsulating node, then the that does not include the address of the encapsulating node, then the
transit/decapsulating node does not loop back a copy of the original transit/decapsulating node does not loop back a copy of the original
packet. The address of the node performing the copy operation is packet. The address of the node performing the copy operation is
used as the source address; the specific method of source address used as the source address; the specific method of source address
assignment is encapsulation specific, e.g., if an IPv6 encapsulation assignment is encapsulation specific, e.g., if an IPv6 encapsulation
is used, then the source address can be assigned as specified in is used, then the source address can be assigned as specified in
[RFC6724]. The copy is also truncated, i.e., any payload that [RFC6724]. The copy is also truncated, i.e., any payload that
resides after the IOAM option(s) is removed before transmitting the resides after the IOAM option(s) is removed before transmitting the
looped back packet back towards the encapsulating node. Creating the looped-back packet back towards the encapsulating node. Creating the
copy that is looped back, and specifically the truncation, may copy that is looped back, and specifically the truncation, may
require some encapsulation-specific updates in the encapsulation require some encapsulation-specific updates in the encapsulation
header. The original packet continues towards its destination. The header. The original packet continues towards its destination. The
L-bit MUST be cleared in the copy of the packet that a node sends L-bit MUST be cleared in the copy of the packet that a node sends
back towards the source. back towards the source.
An IOAM node that supports the reception and processing of the An IOAM node that supports the reception and processing of the
Loopback flag MUST support the ability to limit the rate of the Loopback flag MUST support the ability to limit the rate of the
looped back packets. The rate of looped back packets SHOULD be looped-back packets. The rate of looped-back packets SHOULD be
limited so that the number of looped back packets is significantly limited so that the number of looped-back packets is significantly
lower than the number of packets that are forwarded by the device. lower than the number of packets that are forwarded by the device.
The looped back data rate SHOULD NOT exceed 1/N of the interface The looped-back data rate SHOULD NOT exceed 1/N of the interface
capacity on any of the IOAM node's interfaces. Using N>100 is capacity on any of the IOAM node's interfaces. Using N>100 is
RECOMMENDED. Depending on the IOAM node's architecture RECOMMENDED. Depending on the IOAM node's architecture
considerations, the loopback response rate may be limited to a lower considerations, the loopback response rate may be limited to a lower
number in order to avoid overloading the IOAM node. number in order to avoid overloading the IOAM node.
4.3. Loopback on the Return Path 4.3. Loopback on the Return Path
On its way back towards the source, the copied packet is processed On its way back towards the source, the copied packet is processed
like any other packet with IOAM information, including adding like any other packet with IOAM information, including adding
requested data at each transit node (assuming there is sufficient requested data at each transit node (assuming there is sufficient
space). space).
4.4. Terminating a Looped Back Packet 4.4. Terminating a Looped-Back Packet
Once the return packet reaches the IOAM domain boundary, IOAM Once the return packet reaches the IOAM-Domain boundary, IOAM
decapsulation occurs as with any other packet containing IOAM decapsulation occurs as with any other packet containing IOAM
information. Note that the looped back packet does not have the information. Note that the looped-back packet does not have the
L-bit set. The IOAM encapsulating node that initiated the original L-bit set. The IOAM encapsulating node that initiated the original
loopback packet recognizes a received packet as an IOAM looped-back 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 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 corresponds to the first hop. If the Node ID and IOAM-Namespace
match the current IOAM node, it indicates that this is a looped back match the current IOAM node, it indicates that this is a looped-back
packet that was initiated by the current IOAM node, and processed packet that was initiated by the current IOAM node and processed
accordingly. If there is no match in the Node ID, the packet is accordingly. If there is no match in the Node ID, the packet is
processed like a conventional IOAM-encapsulated packet. processed like a conventional IOAM-encapsulated packet.
Note that an IOAM encapsulating node may either be an endpoint (such Note that an IOAM encapsulating node may be either an endpoint (such
as an IPv6 host), or a switch/router that pushes a tunnel as an IPv6 host) or a switch/router that pushes a tunnel
encapsulation onto data packets. In both cases, the functionality encapsulation onto data packets. In both cases, the functionality
that was described above avoids IOAM data leaks from the IOAM domain. that was described above avoids IOAM data leaks from the IOAM-Domain.
Specifically, if an IOAM looped-back packet reaches an IOAM boundary Specifically, if an IOAM looped-back packet reaches an IOAM boundary
node that is not the IOAM node that initiated the loopback, the node 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 does not process the packet as a loopback; the IOAM encapsulation is
removed, preventing IOAM information from leaking out from the IOAM removed, preventing IOAM information from leaking out from the IOAM-
domain, and since the packet does not have any payload it is Domain. Since the packet does not have any payload, it is
terminated. terminated.
5. Active Measurement with IOAM 5. Active Measurement with IOAM
Active measurement methods [RFC7799] make use of synthetically Active measurement methods [RFC7799] make use of synthetically
generated packets in order to facilitate measurement. This section generated packets in order to facilitate measurement. This section
presents use cases of active measurement using the IOAM Active flag. presents use cases of active measurement using the IOAM Active flag.
The Active flag indicates that a packet is used for active The Active flag indicates that a packet is used for active
measurement. An IOAM decapsulating node that receives a packet with measurement. An IOAM decapsulating node that receives a packet with
the Active flag set in one of its Trace options must terminate the the Active flag set in one of its Trace options must terminate the
packet. The Active flag is intended to simplify the implementation packet. The Active flag is intended to simplify the implementation
of decapsulating nodes by indicating that the packet should not be of decapsulating nodes by indicating that the packet should not be
forwarded further. It is not intended as a replacement for existing forwarded further. It is not intended as a replacement for existing
active OAM protocols, which may run in higher layers and make use of active OAM protocols, which may run in higher layers and make use of
the Active flag. the Active flag.
An example of an IOAM deployment scenario is illustrated in Figure 2. An example of an IOAM deployment scenario is illustrated in Figure 2.
The figure depicts two endpoints, a source and a destination. The The figure depicts two endpoints: a source and a destination. The
data traffic from the source to the destination is forwarded through data traffic from the source to the destination is forwarded through
a set of network devices, including an IOAM encapsulating node, which a set of network devices, including an IOAM encapsulating node (which
incorporates one or more IOAM options, a decapsulating node, which incorporates one or more IOAM options), a decapsulating node (which
removes the IOAM options, optionally one or more transit nodes. The removes the IOAM options), and optionally one or more transit nodes.
IOAM options are encapsulated in one of the IOAM encapsulation types, The IOAM options are encapsulated in one of the IOAM encapsulation
e.g., [I-D.ietf-sfc-ioam-nsh], or [I-D.ietf-ippm-ioam-ipv6-options]. types, e.g., [IOAM-NSH] or [IOAM-IPV6-OPTIONS].
+--------+ +--------+ +--------+ +--------+ +--------+ +--------+ +--------+ +--------+ +--------+ +--------+
| | | IOAM |.....| IOAM |.....| IOAM | | | | | | IOAM |.....| IOAM |.....| IOAM | | |
+--------+ +--------+ +--------+ +--------+ +--------+ +--------+ +--------+ +--------+ +--------+ +--------+
| L2/L3 |<===>| L2/L3 |<===>| L2/L3 |<===>| L2/L3 |<===>| L2/L3 | | L2/L3 |<===>| L2/L3 |<===>| L2/L3 |<===>| L2/L3 |<===>| L2/L3 |
+--------+ +--------+ +--------+ +--------+ +--------+ +--------+ +--------+ +--------+ +--------+ +--------+
Source Encapsulating Transit Decapsulating Destination Source Encapsulating Transit Decapsulating Destination
Node Node Node Node Node Node
<------------ IOAM domain -----------> <------------ IOAM-Domain ----------->
Figure 2: Network using IOAM. Figure 2: Network Using IOAM
This document focuses on three possible use cases of active This document focuses on three possible use cases of active
measurement using IOAM. These use cases are described using the measurement using IOAM. These use cases are described using the
example of Figure 2. example of Figure 2.
* Endpoint active measurement: synthetic probe packets are sent Endpoint active measurement:
between the source and destination, traversing the IOAM domain. synthetic probe packets are sent between the source and
Since the probe packets are sent between the endpoints, these destination, traversing the IOAM-Domain. Since the probe packets
packets are treated as data packets by the IOAM domain, and do not are sent between the endpoints, these packets are treated as data
require special treatment at the IOAM layer. Specifically, the packets by the IOAM-Domain and do not require special treatment at
Active flag is not used in this case, and the IOAM layer does not the IOAM layer. Specifically, the Active flag is not used in this
need to be aware that an active measurement mechanism is used at a case and the IOAM layer does not need to be aware that an active
higher layer. measurement mechanism is used at a higher layer.
* IOAM active measurement using probe packets within the IOAM IOAM active measurement using probe packets within the IOAM-
domain: probe packets are generated and transmitted by the IOAM Domain:
encapsulating node, and are expected to be terminated by the probe packets are generated and transmitted by the IOAM
encapsulating node and are expected to be terminated by the
decapsulating node. IOAM data related to probe packets may be decapsulating node. IOAM data related to probe packets may be
exported by one or more nodes along its path, by an exporting exported by one or more nodes along its path by an exporting
protocol that is outside the scope of this document (e.g., protocol that is outside the scope of this document (e.g.,
[I-D.spiegel-ippm-ioam-rawexport]). Probe packets include a Trace [IOAM-RAWEXPORT]). Probe packets include a Trace Option that has
Option which has its Active flag set, indicating that the its Active flag set, indicating that the decapsulating node must
decapsulating node must terminate them. The specification of terminate them. The specification of these probe packets and the
these probe packets and the processing of these packets by the processing of these packets by the encapsulating and decapsulating
encapsulating and decapsulating nodes is outside the scope of this nodes is outside the scope of this document.
document.
* IOAM active measurement using replicated data packets: probe IOAM active measurement using replicated data packets:
packets are created by the encapsulating node by selecting some or probe packets are created by the encapsulating node by selecting
all of the en route data packets and replicating them. A selected some or all of the en route data packets and replicating them. A
data packet, and its (possibly truncated) copy is forwarded with selected data packet and its (possibly truncated) copy is
one or more IOAM options, while the original packet is forwarded forwarded with one or more IOAM options while the original packet
normally, without IOAM options. To the extent possible, the is forwarded normally without IOAM options. To the extent
original data packet and its replica are forwarded through the possible, the original data packet and its replica are forwarded
same path. The replica includes a Trace Option that has its through the same path. The replica includes a Trace Option that
Active flag set, indicating that the decapsulating node should has its Active flag set, indicating that the decapsulating node
terminate it. The current document defines the role of the Active should terminate it. The current document defines the role of the
flag in allowing the decapsulating node to terminate the packet, Active flag in allowing the decapsulating node to terminate the
but the replication functionality and the functionality of the packet, but the replication functionality and the functionality of
decapsulating node in this context is outside the scope of this the decapsulating node in this context is outside the scope of
document. this document.
If the volume of traffic that incorporates the Active flag is large, 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 it may overload the network and the IOAM node(s) that process the
active measurement packet. Thus, the rate of the traffic that active measurement packet. Thus, the rate of the traffic that
includes the Active flag SHOULD NOT exceed 1/N of the interface includes the Active flag SHOULD NOT exceed 1/N of the interface
capacity on any of the IOAM node's interfaces. Using N>100 is capacity on any of the IOAM node's interfaces. Using N>100 is
RECOMMENDED. Depending on the IOAM node's architecture RECOMMENDED. Depending on the IOAM node's architecture
considerations, the rate of Active-enabled IOAM packets may be considerations, the rate of Active-enabled IOAM packets may be
limited to a lower number in order to avoid overloading the IOAM limited to a lower number in order to avoid overloading the IOAM
node. node.
6. IANA Considerations 6. IANA Considerations
IANA is requested to allocate the following bits in the "IOAM Trace IANA has allocated the following bits in the "IOAM Trace-Flags"
Flags Registry" as follows: registry as follows:
Bit 1 "Loopback" (L-bit) Bit 1 "Loopback" (L-bit)
Bit 2 "Active" (A-bit) Bit 2 "Active" (A-bit)
The "Reference" specified in the registry for both bits should be the This document is specified as the "Reference" in the registry for
current document. both bits.
Note that bit 0 is the most significant bit in the Flags Registry. Note that bit 0 is the most significant bit in the "IOAM Trace-Flags"
This bit was allocated by [RFC9197] as the 'Overflow' bit. registry. This bit was allocated by [RFC9197] as the 'Overflow' bit.
7. Performance Considerations 7. Performance Considerations
Each of the flags that are defined in this document may have Each of the flags that are defined in this document may have
performance implications. When using the loopback mechanism a copy performance implications. When using the loopback mechanism, a copy
of the data packet is sent back to the sender, thus generating more of the data packet is sent back to the sender (thus, generating more
traffic than originally sent by the endpoints. Using active traffic than originally sent by the endpoints). Using active
measurement with the Active flag requires the use of synthetic measurement with the Active flag requires the use of synthetic
(overhead) traffic. (overhead) traffic.
Each of the mechanisms that use the flags above has a cost in terms Each of the mechanisms that use the flags above has a cost in terms
of the network bandwidth, and may potentially load the node that of the network bandwidth and may potentially load the node that
analyzes the data. Therefore, it MUST be possible to use each of the analyzes the data. Therefore, it MUST be possible to use each of the
mechanisms on a subset of the data traffic; an encapsulating node mechanisms on a subset of the data traffic; an encapsulating node
needs to be able to set the Loopback and Active flag selectively, in needs to be able to set the Loopback and Active flags selectively in
a way that considers the effect on the network performance, as a way that considers the effect on the network performance, as
further discussed in Section 4.1.1 and Section 5. further discussed in Sections 4.1.1 and 5.
Transit and decapsulating nodes that support Loopback need to be able Transit and decapsulating nodes that support loopback need to be able
to limit the looped back packets (Section 4.2) so as to ensure that to limit the looped-back packets (as discussed in Section 4.2) so as
the mechanisms are used at a rate that does not significantly affect to ensure that the mechanisms are used at a rate that does not
the network bandwidth, and does not overload the source node in the significantly affect the network bandwidth and does not overload the
case of loopback. source node in the case of loopback.
8. Security Considerations 8. Security Considerations
The security considerations of IOAM in general are discussed in The security considerations of IOAM in general are discussed in
[RFC9197]. Specifically, an attacker may try to use the [RFC9197]. Specifically, an attacker may try to use the
functionality that is defined in this document to attack the network. functionality that is defined in this document to attack the network.
IOAM is assumed to be deployed in a restricted administrative domain, IOAM is assumed to be deployed in a restricted administrative domain,
thus limiting the scope of the threats above and their effect. This thus limiting the scope of the threats above and their effect. This
is a fundamental assumption with respect to the security aspects of is a fundamental assumption with respect to the security aspects of
IOAM, as further discussed in [RFC9197]. However, even given this IOAM as further discussed in [RFC9197]. However, even given this
limited scope, security threats should still be considered and limited scope, security threats should still be considered and
mitigated. Specifically, an attacker may attempt to overload network mitigated. Specifically, an attacker may attempt to overload network
devices by injecting synthetic packets that include an IOAM Trace devices by injecting synthetic packets that include an IOAM Trace
Option with one or more of the flags defined in this document. 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 Similarly, an on-path attacker may maliciously set one or more of the
flags of transit packets. flags of transit packets.
* Loopback flag: an attacker that sets this flag, either in Loopback flag:
synthetic packets or transit packet, can potentially cause an an attacker that sets this flag, either in synthetic packets or
amplification, since each device along the path creates a copy of transit packets, can potentially cause an amplification since each
the data packet and sends it back to the source. The attacker can device along the path creates a copy of the data packet and sends
potentially leverage the Loopback flag for a Distributed Denial of it back to the source. The attacker can potentially leverage the
Service (DDoS) attack, as multiple devices send looped-back copies Loopback flag for a DDoS attack as multiple devices send looped-
of a packet to a single victim. back copies of a packet to a single victim.
* Active flag: the impact of synthetic packets with the Active flag Active flag:
is no worse than synthetic data packets in which the Active flag the impact of synthetic packets with the Active flag is no worse
is not set. By setting the Active flag in en route packets an than synthetic data packets in which the Active flag is not set.
attacker can prevent these packets from reaching their By setting the Active flag in en route packets, an attacker can
destination, since the packet is terminated by the decapsulating prevent these packets from reaching their destination since the
device; however, note that an on-path attacker may achieve the packet is terminated by the decapsulating device. However, note
same goal by changing the destination address of a packet. that an on-path attacker may achieve the same goal by changing the
Another potential threat is amplification; if an attacker causes destination address of a packet. Another potential threat is
transit switches to replicate more packets than they are intended amplification; if an attacker causes transit switches to replicate
to replicate, either by setting the Active flag or by sending more packets than they are intended to replicate (either by
synthetic packets, then traffic is amplified, causing bandwidth setting the Active flag or by sending synthetic packets), then
degredation. As mentioned in Section 5, the specification of the traffic is amplified, causing bandwidth degradation. As mentioned
replication mechanism is not within the scope of this document. A in Section 5, the specification of the replication mechanism is
specification that defines the replication functionality should not within the scope of this document. A specification that
also address the security aspects of this mechanism. defines the replication functionality should also address the
security aspects of this mechanism.
Some of the security threats that were discussed in this document may Some of the security threats that were discussed in this document may
be worse in a wide area network in which there are nested IOAM be worse in a wide area network in which there are nested IOAM-
domains. For example, if there are two nested IOAM domains that use Domains. For example, if there are two nested IOAM-Domains that use
loopback, then a looped-back copy in the outer IOAM domain may be loopback, then a looped-back copy in the outer IOAM-Domain may be
forwarded through another (inner) IOAM domain and may be subject to forwarded through another (inner) IOAM-Domain and may be subject to
loopback in that (inner) IOAM domain, causing the amplification to be loopback in that (inner) IOAM-Domain, causing the amplification to be
worse than in the conventional case. worse than in the conventional case.
In order to mitigate the performance-related attacks described above, In order to mitigate the performance-related attacks described in
as described in Section 7 it should be possible for IOAM-enabled Section 7, it should be possible for IOAM-enabled devices to
devices to selectively apply the mechanisms that use the flags selectively apply the mechanisms that use the flags defined in this
defined in this document to a subset of the traffic, and to limit the document to a subset of the traffic and to limit the performance of
performance of synthetically generated packets to a configurable synthetically generated packets to a configurable rate.
rate. Specifically, IOAM nodes should be able to: Specifically, IOAM nodes should be able to:
* Limit the rate of IOAM packets with the Loopback flag (IOAM * Limit the rate of IOAM packets with the Loopback flag (IOAM
encapsulating nodes), as discussed in Section 4.1.1. encapsulating nodes) as discussed in Section 4.1.1.
* Limit the rate of looped back packets (IOAM transit and * Limit the rate of looped back packets (IOAM transit and
decapsulating nodes), as discussed in Section 4.2. decapsulating nodes) as discussed in Section 4.2.
* Limit the rate of IOAM packets with the Active flag (IOAM * Limit the rate of IOAM packets with the Active flag (IOAM
encapsulating nodes), as discussed in Section 5. encapsulating nodes) as discussed in Section 5.
As defined in Section 4, transit nodes that process a packet with the As defined in Section 4, transit nodes that process a packet with the
Loopback flag only add a single data field, and truncate any payload Loopback flag only add a single data field and truncate any payload
that follows the IOAM option(s), thus significanly limiting the that follows the IOAM option(s), thus significantly limiting the
possible impact of an amplification attack. possible impact of an amplification attack.
9. Acknowledgments 9. References
The authors thank Martin Duke, Tommy Pauly, Donald Eastlake, Paul
Kyzivat, Bernard Aboba, Greg Mirsky, and other members of the IPPM
working group for many helpful comments.
10. References
10.1. Normative References 9.1. Normative References
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, Requirement Levels", BCP 14, RFC 2119,
DOI 10.17487/RFC2119, March 1997, DOI 10.17487/RFC2119, March 1997,
<https://www.rfc-editor.org/info/rfc2119>. <https://www.rfc-editor.org/info/rfc2119>.
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
May 2017, <https://www.rfc-editor.org/info/rfc8174>. May 2017, <https://www.rfc-editor.org/info/rfc8174>.
[RFC9197] Brockners, F., Ed., Bhandari, S., Ed., and T. Mizrahi, [RFC9197] Brockners, F., Ed., Bhandari, S., Ed., and T. Mizrahi,
Ed., "Data Fields for In Situ Operations, Administration, Ed., "Data Fields for In Situ Operations, Administration,
and Maintenance (IOAM)", RFC 9197, DOI 10.17487/RFC9197, and Maintenance (IOAM)", RFC 9197, DOI 10.17487/RFC9197,
May 2022, <https://www.rfc-editor.org/info/rfc9197>. May 2022, <https://www.rfc-editor.org/info/rfc9197>.
10.2. Informative References 9.2. Informative References
[I-D.ietf-ippm-ioam-ipv6-options] [IOAM-IPV6-OPTIONS]
Bhandari, S. and F. Brockners, "In-situ OAM IPv6 Options", Bhandari, S., Ed. and F. Brockners, Ed., "In-situ OAM IPv6
Work in Progress, Internet-Draft, draft-ietf-ippm-ioam- Options", Work in Progress, Internet-Draft, draft-ietf-
ipv6-options-08, 16 June 2022, ippm-ioam-ipv6-options-09, 11 October 2022,
<https://www.ietf.org/archive/id/draft-ietf-ippm-ioam- <https://datatracker.ietf.org/doc/html/draft-ietf-ippm-
ipv6-options-08.txt>. ioam-ipv6-options-09>.
[I-D.ietf-sfc-ioam-nsh] [IOAM-NSH] Brockners, F., Ed. and S. Bhandari, Ed., "Network Service
Brockners, F. and S. Bhandari, "Network Service Header Header (NSH) Encapsulation for In-situ OAM (IOAM) Data",
(NSH) Encapsulation for In-situ OAM (IOAM) Data", Work in Work in Progress, Internet-Draft, draft-ietf-sfc-ioam-nsh-
Progress, Internet-Draft, draft-ietf-sfc-ioam-nsh-10, 18 11, 30 September 2022,
May 2022, <https://www.ietf.org/archive/id/draft-ietf-sfc- <https://datatracker.ietf.org/doc/html/draft-ietf-sfc-
ioam-nsh-10.txt>. ioam-nsh-11>.
[I-D.spiegel-ippm-ioam-rawexport] [IOAM-RAWEXPORT]
Spiegel, M., Brockners, F., Bhandari, S., and R. Spiegel, M., Brockners, F., Bhandari, S., and R.
Sivakolundu, "In-situ OAM raw data export with IPFIX", Sivakolundu, "In-situ OAM raw data export with IPFIX",
Work in Progress, Internet-Draft, draft-spiegel-ippm-ioam- Work in Progress, Internet-Draft, draft-spiegel-ippm-ioam-
rawexport-06, 21 February 2022, rawexport-06, 21 February 2022,
<https://www.ietf.org/archive/id/draft-spiegel-ippm-ioam- <https://datatracker.ietf.org/doc/html/draft-spiegel-ippm-
rawexport-06.txt>. ioam-rawexport-06>.
[RFC5475] Zseby, T., Molina, M., Duffield, N., Niccolini, S., and F. [RFC5475] Zseby, T., Molina, M., Duffield, N., Niccolini, S., and F.
Raspall, "Sampling and Filtering Techniques for IP Packet Raspall, "Sampling and Filtering Techniques for IP Packet
Selection", RFC 5475, DOI 10.17487/RFC5475, March 2009, Selection", RFC 5475, DOI 10.17487/RFC5475, March 2009,
<https://www.rfc-editor.org/info/rfc5475>. <https://www.rfc-editor.org/info/rfc5475>.
[RFC6291] Andersson, L., van Helvoort, H., Bonica, R., Romascanu, [RFC6291] Andersson, L., van Helvoort, H., Bonica, R., Romascanu,
D., and S. Mansfield, "Guidelines for the Use of the "OAM" D., and S. Mansfield, "Guidelines for the Use of the "OAM"
Acronym in the IETF", BCP 161, RFC 6291, Acronym in the IETF", BCP 161, RFC 6291,
DOI 10.17487/RFC6291, June 2011, DOI 10.17487/RFC6291, June 2011,
skipping to change at page 13, line 33 skipping to change at line 576
<https://www.rfc-editor.org/info/rfc6724>. <https://www.rfc-editor.org/info/rfc6724>.
[RFC7014] D'Antonio, S., Zseby, T., Henke, C., and L. Peluso, "Flow [RFC7014] D'Antonio, S., Zseby, T., Henke, C., and L. Peluso, "Flow
Selection Techniques", RFC 7014, DOI 10.17487/RFC7014, Selection Techniques", RFC 7014, DOI 10.17487/RFC7014,
September 2013, <https://www.rfc-editor.org/info/rfc7014>. September 2013, <https://www.rfc-editor.org/info/rfc7014>.
[RFC7799] Morton, A., "Active and Passive Metrics and Methods (with [RFC7799] Morton, A., "Active and Passive Metrics and Methods (with
Hybrid Types In-Between)", RFC 7799, DOI 10.17487/RFC7799, Hybrid Types In-Between)", RFC 7799, DOI 10.17487/RFC7799,
May 2016, <https://www.rfc-editor.org/info/rfc7799>. May 2016, <https://www.rfc-editor.org/info/rfc7799>.
Acknowledgments
The authors thank Martin Duke, Tommy Pauly, Donald Eastlake, Paul
Kyzivat, Bernard Aboba, Greg Mirsky, and other members of the IPPM
working group for many helpful comments.
Contributors Contributors
The Editors would like to recognize the contributions of the The Editors would like to recognize the contributions of the
following individuals to this document. following individuals to this document.
Ramesh Sivakolundu Ramesh Sivakolundu
Cisco Systems, Inc. Cisco Systems, Inc.
170 West Tasman Dr. 170 West Tasman Dr.
SAN JOSE, CA 95134 San Jose, CA 95134
U.S.A. United States of America
Email: sramesh@cisco.com
Email: sramesh@cisco.com
Carlos Pignataro
Cisco Systems, Inc.
7200-11 Kit Creek Road
Research Triangle Park, NC 27709
United States
Email: cpignata@cisco.com
Aviv Kfir
Nvidia
Email: avivk@nvidia.com Carlos Pignataro
Cisco Systems, Inc.
7200-11 Kit Creek Road
Research Triangle Park, NC 27709
United States of America
Email: cpignata@cisco.com
Jennifer Lemon Aviv Kfir
Broadcom Nvidia
270 Innovation Drive Email: avivk@nvidia.com
San Jose, CA 95134
US
Email: jennifer.lemon@broadcom.com Jennifer Lemon
Broadcom
270 Innovation Drive
San Jose, CA 95134
United States of America
Email: jennifer.lemon@broadcom.com
Authors' Addresses Authors' Addresses
Tal Mizrahi Tal Mizrahi
Huawei Huawei
Israel Israel
Email: tal.mizrahi.phd@gmail.com Email: tal.mizrahi.phd@gmail.com
Frank Brockners Frank Brockners
Cisco Systems, Inc. Cisco Systems, Inc.
Hansaallee 249, 3rd Floor 3rd Floor
40549 DUESSELDORF Hansaallee 249
40549 Duesseldorf
Germany Germany
Email: fbrockne@cisco.com Email: fbrockne@cisco.com
Shwetha Bhandari Shwetha Bhandari
Thoughtspot Thoughtspot
3rd Floor, Indiqube Orion, 24th Main Rd, Garden Layout, HSR Layout 3rd Floor
Bangalore, KARNATAKA 560 102 Indiqube Orion
Garden Layout
HSR Layout
24th Main Rd
Bangalore 560 102
Karnataka
India India
Email: shwetha.bhandari@thoughtspot.com Email: shwetha.bhandari@thoughtspot.com
Barak Gafni Barak Gafni
Nvidia Nvidia
350 Oakmead Parkway, Suite 100 Suite 100
Sunnyvale, CA 350 Oakmead Parkway
Sunnyvale, CA 94085
United States of America
Email: gbarak@nvidia.com Email: gbarak@nvidia.com
Mickey Spiegel Mickey Spiegel
Barefoot Networks, an Intel company Barefoot Networks, an Intel company
4750 Patrick Henry Drive 4750 Patrick Henry Drive
Santa Clara, CA, 95054 Santa Clara, CA 95054
United States of America United States of America
Email: mickey.spiegel@intel.com Email: mickey.spiegel@intel.com
 End of changes. 90 change blocks. 
261 lines changed or deleted 265 lines changed or added

This html diff was produced by rfcdiff 1.48.