draft-ietf-ippm-ioam-flags-02.txt   draft-ietf-ippm-ioam-flags-03.txt 
IPPM T. Mizrahi IPPM T. Mizrahi
Internet-Draft Huawei Smart Platforms iLab Internet-Draft Huawei Smart Platforms iLab
Intended status: Standards Track F. Brockners Intended status: Standards Track F. Brockners
Expires: January 28, 2021 S. Bhandari Expires: April 29, 2021 S. Bhandari
R. Sivakolundu R. Sivakolundu
C. Pignataro C. Pignataro
Cisco Cisco
A. Kfir A. Kfir
B. Gafni B. Gafni
Mellanox Technologies, Inc. Mellanox Technologies, Inc.
M. Spiegel M. Spiegel
Barefoot Networks Barefoot Networks
J. Lemon J. Lemon
Broadcom Broadcom
July 27, 2020 October 26, 2020
In-situ OAM Flags In-situ OAM Flags
draft-ietf-ippm-ioam-flags-02 draft-ietf-ippm-ioam-flags-03
Abstract Abstract
In-situ Operations, Administration, and Maintenance (IOAM) records In-situ Operations, Administration, and Maintenance (IOAM) records
operational and telemetry information in the packet while the packet operational and telemetry information in the packet while the packet
traverses a path between two points in the network. This document traverses a path between two points in the network. This document
presents new flags in the IOAM Trace Option headers. Specifically, presents new flags in the IOAM Trace Option headers. Specifically,
the document defines the Loopback and Active flags. the document defines the Loopback and Active flags.
Status of This Memo Status of This Memo
skipping to change at page 1, line 45 skipping to change at page 1, line 45
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet- working documents as Internet-Drafts. The list of current Internet-
Drafts is at https://datatracker.ietf.org/drafts/current/. Drafts is at https://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
This Internet-Draft will expire on January 28, 2021. This Internet-Draft will expire on April 29, 2021.
Copyright Notice Copyright Notice
Copyright (c) 2020 IETF Trust and the persons identified as the Copyright (c) 2020 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 Provisions Relating to IETF Documents
(https://trustee.ietf.org/license-info) in effect on the date of (https://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents publication of this document. Please review these documents
skipping to change at page 2, line 28 skipping to change at page 2, line 28
described in the Simplified BSD License. described in the Simplified BSD License.
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2
2. Conventions . . . . . . . . . . . . . . . . . . . . . . . . . 3 2. Conventions . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.1. Requirement Language . . . . . . . . . . . . . . . . . . 3 2.1. Requirement Language . . . . . . . . . . . . . . . . . . 3
2.2. Terminology . . . . . . . . . . . . . . . . . . . . . . . 3 2.2. Terminology . . . . . . . . . . . . . . . . . . . . . . . 3
3. New IOAM Trace Option Flags . . . . . . . . . . . . . . . . . 3 3. New IOAM Trace Option Flags . . . . . . . . . . . . . . . . . 3
4. Loopback in IOAM . . . . . . . . . . . . . . . . . . . . . . 3 4. Loopback in IOAM . . . . . . . . . . . . . . . . . . . . . . 3
5. Active Measurement with IOAM . . . . . . . . . . . . . . . . 4 5. Active Measurement with IOAM . . . . . . . . . . . . . . . . 5
6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 6 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 7
7. Performance Considerations . . . . . . . . . . . . . . . . . 6 7. Performance Considerations . . . . . . . . . . . . . . . . . 7
8. Security Considerations . . . . . . . . . . . . . . . . . . . 7 8. Security Considerations . . . . . . . . . . . . . . . . . . . 7
9. References . . . . . . . . . . . . . . . . . . . . . . . . . 8 9. References . . . . . . . . . . . . . . . . . . . . . . . . . 9
9.1. Normative References . . . . . . . . . . . . . . . . . . 8 9.1. Normative References . . . . . . . . . . . . . . . . . . 9
9.2. Informative References . . . . . . . . . . . . . . . . . 8 9.2. Informative References . . . . . . . . . . . . . . . . . 9
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 9 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 9
1. Introduction 1. Introduction
IOAM [I-D.ietf-ippm-ioam-data] is used for monitoring traffic in the IOAM [I-D.ietf-ippm-ioam-data] is used for monitoring traffic in the
network by incorporating IOAM data fields into in-flight data network by incorporating IOAM data fields into in-flight data
packets. 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 Option, Incremental Trace Option, Proof of
skipping to change at page 3, line 44 skipping to change at page 3, line 44
4. Loopback in IOAM 4. Loopback in IOAM
Loopback is used for triggering each transit device along the path to Loopback is used for triggering each transit device along the path to
loop back a copy of the data packet. Loopback allows an IOAM loop back a copy of the data packet. Loopback allows an IOAM
encapsulating node to trace the path to a given destination, and to encapsulating node to trace the path to a given destination, and to
receive per-hop data about both the forward and the return path. receive per-hop data about both the forward and the return path.
Loopback is intended to provide an accelerated alternative to Loopback is intended to provide an accelerated alternative to
Traceroute, that allows the encapsulating node to receive responses Traceroute, that allows the encapsulating node to receive responses
from multiple transit nodes along the path in less then one round- from multiple transit nodes along the path in less then one round-
trip-time. trip-time, and by sending a single packet.
Loopback mode assumes that 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.
The encapsulating node generates synthetic packets with an IOAM trace The encapsulating node either generates synthetic packets with an
option that has the loopback flag set. These packets are generated IOAM trace option that has the loopback flag set, or sets the loopack
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 then again
on the return path. An IOAM trace option that has the loopback bit on the return path.
set MUST have the value '1' in the most significant bit of IOAM-
Trace-Type, and '0' in the rest of the bits of IOAM-Trace-Type. An IOAM trace option that has the loopback bit set MUST have the
Thus, every transit node that processes this trace option only adds a value '1' in the most significant bit of IOAM-Trace-Type, and '0' in
single data field, which is the Hop_Lim and node_id data field. The the rest of the bits of IOAM-Trace-Type. Thus, every transit node
reason for allowing a single data field per hop is to minimize the that processes this trace option only adds a single data field, which
impact of amplification attacks. is the Hop_Lim and node_id data field. The reason for allowing a
single data field per hop is to minimize the impact of amplification
attacks.
A loopback bit that is set indicates to the transit nodes processing A loopback bit 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. The copy has its send the copy back to the source of the packet. In this context the
data fields added after being copied in order to allow any egress- source is the IOAM encapsulating node, and it is assumed that the
dependent information to be set based on the egress of the copy source address is available in the encapsulation header. Thus, the
rather than the original. The copy is also truncated, i.e., any
payload that resides after the IOAM option(s) is removed before
transmitting the looped back packet back towards the encapsulating
node. The original packet continues towards its destination. 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. The address of the node performing the address in the copied packet. The address of the node performing the
copy operation is used as the source address. The L-bit MUST be copy operation is used as the source address. The IOAM transit node
cleared in the copy of the packet that a node sends back towards the pushes the required data field *after* creating the copy of the
source. On its way back towards the source, the copied packet is packet, in order to allow any egress-dependent information to be set
processed like any other packet with IOAM information, including based on the egress of the copy rather than the original packet. The
adding any requested data at each transit node (assuming there is copy is also truncated, i.e., any payload that resides after the IOAM
sufficient space). option(s) is removed before transmitting the looped back packet back
towards the encapsulating node. The original packet continues
towards its destination. The L-bit MUST be cleared in the copy of
the packet that a node sends back towards the source.
On its way back towards the source, the copied packet is processed
like any other packet with IOAM information, including adding any
requested data at each transit node (assuming there is sufficient
space).
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. Because any intermediate node receiving such a packet information. Note that the looped back packet does not have the
would not know how to process the original packet, and because there L-bit set. The IOAM encapsulating node that initiated the original
would be a risk of the original packet leaking past the initiator of loopback packet recognizes a received packet as an IOAM looped-back
the IOAM loopback, the initiator of an IOAM loopback MUST be the packet by checking the Node ID in the Hop_Lim/node_id field that
initiator of the packet. Once a loopback packet is received back at corresponds to the first hop. If the Node ID matches the current
the initiator, it is a local matter how it is recognized as a IOAM node, it indicates that this is a looped back packet that was
loopback packet. initiated by the current IOAM node, and processed accordingly. If
there is no match in the Node ID, the packet is processed like a
conventional IOAM-encapsulated packet.
Note that an IOAM encapsulating node may either be an endpoint (such
as an IPv6 host), or a switch/router that pushes a tunnel
encapsulation onto data packets. In both cases, the functionality
that was described above avoids IOAM data leaks from the IOAM domain.
Specificallly, if an IOAM looped-back packet reaches an IOAM boundary
node that is not the IOAM node that initiated the loopback, the node
does not process the packet as a loopback; the IOAM encapsulation is
removed, and since the packet does not have any payload it is
terminated. In either case, when the packet reaches the IOAM
boundary its IOAM encapsulation is removed, preventing IOAM
information from leaking out from the IOAM domain.
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 the measurement. This generated packets in order to facilitate the measurement. This
section presents use cases of active measurement using the IOAM section presents use cases of active measurement using the IOAM
Active flag. 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
skipping to change at page 7, line 5 skipping to change at page 7, line 35
(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 flag selectively, in
a way that considers the effect on the network performance. a way that considers the effect on the network performance.
Similarly, transit and decapsulating nodes need to be able to Similarly, transit and decapsulating nodes need to be able to
selectively loop back packets with the Loopback flag, and to selectively loop back packets with the Loopback flag, and to
selectively export packets. Specifically, rate limiting may be selectively export packets. Specifically, rate limiting can be
enabled so as to ensure that the mechanisms are used at a rate that enabled so as to ensure that the mechanisms are used at a rate that
does not significantly affect the network bandwidth, and does not does not significantly affect the network bandwidth, and does not
overload the receiving entity (or the source node in the case of overload the receiving entity (or the source node in the case of
loopback). 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
[I-D.ietf-ippm-ioam-data]. Specifically, an attacker may try to use [I-D.ietf-ippm-ioam-data]. Specifically, an attacker may try to use
the functionality that is defined in this document to attack the the functionality that is defined in this document to attack the
skipping to change at page 8, line 40 skipping to change at page 9, line 24
[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>.
9.2. Informative References 9.2. Informative References
[I-D.ietf-ippm-ioam-ipv6-options] [I-D.ietf-ippm-ioam-ipv6-options]
Bhandari, S., Brockners, F., Pignataro, C., Gredler, H., Bhandari, S., Brockners, F., Pignataro, C., Gredler, H.,
Leddy, J., Youell, S., Mizrahi, T., Kfir, A., Gafni, B., Leddy, J., Youell, S., Mizrahi, T., Kfir, A., Gafni, B.,
Lapukhov, P., Spiegel, M., Krishnan, S., and R. Asati, Lapukhov, P., Spiegel, M., Krishnan, S., Asati, R., and M.
"In-situ OAM IPv6 Options", draft-ietf-ippm-ioam- Smith, "In-situ OAM IPv6 Options", draft-ietf-ippm-ioam-
ipv6-options-02 (work in progress), July 2020. ipv6-options-03 (work in progress), September 2020.
[I-D.ietf-sfc-ioam-nsh] [I-D.ietf-sfc-ioam-nsh]
Brockners, F. and S. Bhandari, "Network Service Header Brockners, F. and S. Bhandari, "Network Service Header
(NSH) Encapsulation for In-situ OAM (IOAM) Data", draft- (NSH) Encapsulation for In-situ OAM (IOAM) Data", draft-
ietf-sfc-ioam-nsh-04 (work in progress), June 2020. ietf-sfc-ioam-nsh-04 (work in progress), June 2020.
[I-D.spiegel-ippm-ioam-rawexport] [I-D.spiegel-ippm-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",
draft-spiegel-ippm-ioam-rawexport-03 (work in progress), draft-spiegel-ippm-ioam-rawexport-03 (work in progress),
 End of changes. 15 change blocks. 
45 lines changed or deleted 66 lines changed or added

This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/