RFC 9259: Operations, Administration, and Maintenance (OAM) in Segment Routing over IPv6 (SRv6)
- Z. Ali,
- C. Filsfils,
- S. Matsushima,
- D. Voyer,
- M. Chen
Abstract
This document describes how the existing IPv6 mechanisms for ping and traceroute can be used in a Segment Routing over IPv6 (SRv6) network. The document also specifies the OAM flag (O-flag) in the Segment Routing Header (SRH) for performing controllable and predictable flow sampling from segment endpoints. In addition, the document describes how a centralized monitoring system performs a path continuity check between any nodes within an SRv6 domain.¶
Status of This Memo
This is an Internet Standards Track document.¶
This document is a product of the Internet Engineering Task Force (IETF). It represents the consensus of the IETF community. It has received public review and has been approved for publication by the Internet Engineering Steering Group (IESG). Further information on Internet Standards is available in Section 2 of RFC 7841.¶
Information about the current status of this document, any
errata, and how to provide feedback on it may be obtained at
https://
Copyright Notice
Copyright (c) 2022 IETF Trust and the persons identified as the document authors. All rights reserved.¶
This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents
(https://
1. Introduction
As Segment Routing over IPv6 (SRv6) [RFC8402] simply adds a new type of Routing Extension Header, existing IPv6 OAM mechanisms can be used in an SRv6 network. This document describes how the existing IPv6 mechanisms for ping and traceroute can be used in an SRv6 network. This includes illustrations of pinging an SRv6 Segment Identifier (SID) to verify that the SID is reachable and is locally programmed at the target node. This also includes illustrations for tracerouting to an SRv6 SID for hop-by-hop fault localization as well as path tracing to a SID.¶
This document also introduces enhancements for the OAM mechanism for SRv6 networks that allow controllable and predictable flow sampling from segment endpoints using, e.g., the IP Flow Information Export (IPFIX) protocol [RFC7011]. Specifically, the document specifies the OAM flag (O-flag) in the SRH as a marking bit in the user packets to trigger telemetry data collection and export at the segment endpoints.¶
This document also outlines how the centralized OAM technique in [RFC8403] can be extended for SRv6 to perform a path continuity check between any nodes within an SRv6 domain. Specifically, the document illustrates how a centralized monitoring system can monitor arbitrary SRv6 paths by creating loopback probes that originate and terminate at the centralized monitoring system.¶
1.1. Requirements Language
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here.¶
1.2. Abbreviations
The following abbreviations are used in this document:¶
- SID:
- Segment Identifier¶
- SL:
- Segments Left¶
- SR:
- Segment Routing¶
- SRH:
- Segment Routing Header [RFC8754]¶
- SRv6:
- Segment Routing over IPv6 [RFC8402]¶
- PSP:
- Penultimate Segment Pop [RFC8986]¶
- USP:
- Ultimate Segment Pop [RFC8986]¶
- ICMPv6:
- Internet Control Message Protocol for the Internet Protocol version 6 [RFC4443]¶
- IS-IS:
- Intermediate System to Intermediate System¶
- OSPF:
- Open Shortest Path First [RFC2328]¶
- IGP:
- Interior Gateway Protocol (e.g., OSPF and IS-IS)¶
- BGP-LS:
- Border Gateway Protocol - Link State [RFC8571]¶
1.3. Terminology and Reference Topology
The terminology and simple topology in this section are used for illustration throughout the document.¶
In the reference topology:¶
2. OAM Mechanisms
This section defines OAM enhancements for SRv6 networks.¶
2.1. OAM Flag in the Segment Routing Header
[RFC8754] describes the Segment Routing Header (SRH) and how SR-capable nodes use it. The SRH contains an 8-bit Flags field.¶
This document defines the following bit in the SRH Flags field to carry the O-flag:¶
Where:¶
2.1.1. OAM Flag Processing
The O-flag in the SRH is used as a marking bit in user packets to trigger telemetry data collection and export at the segment endpoints.¶
An SR domain ingress edge node encapsulates packets traversing the SR domain as defined in [RFC8754]. The SR domain ingress edge node MAY use the O-flag in the SRH for marking the packet to trigger the telemetry data collection and export at the segment endpoints. Based on local configuration, the SR domain ingress edge node may implement a classification and sampling mechanism to mark a packet with the O-flag in the SRH. Specification of the classification and sampling method is outside the scope of this document.¶
This document does not specify the data elements that need to be exported and the associated configurations. Similarly, this document does not define any formats for exporting the data elements. Nonetheless, without the loss of generality, this document assumes that the IP Flow Information Export (IPFIX) protocol [RFC7011] is used for exporting the traffic flow information from the network devices to a controller for monitoring and analytics. Similarly, without the loss of generality, this document assumes that requested information elements are configured by the management plane through data set templates (e.g., as in IPFIX [RFC7012]).¶
Implementation of the O-flag is OPTIONAL. If a node does not support the O-flag, then it simply ignores it upon reception. If a node supports the O-flag, it can optionally advertise its potential via control plane protocol(s).¶
The following is appended to line S01 of the pseudocode associated with the SID S (as defined in Section 4.3.1.1 of [RFC8754]) when N receives a packet destined to S, S is a local SID, and the O-flag is processed.¶
Please note that the O-flag processing happens before execution of regular processing of the local SID S. Specifically, line S01.1 of the pseudocode specified in this document is inserted between lines S01 and S02 of the pseudocode defined in Section 4.3.1.1 of [RFC8754].¶
Based on the requested information elements configured by the management plane through data set templates [RFC7012], the OAM process exports the requested information elements. The information elements include parts of the packet header and/or parts of the packet payload for flow identification. The OAM process uses information elements defined in IPFIX [RFC7011] and Packet Sampling (PSAMP) [RFC5476] for exporting the requested sections of the mirrored packets.¶
If the penultimate segment of a segment list is a PSP SID, telemetry data from the ultimate segment cannot be requested. This is because, when the penultimate segment is a PSP SID, the SRH is removed at the penultimate segment, and the O-flag is not processed at the ultimate segment.¶
The processing node MUST
rate-limit the number of packets punted to the OAM process
to a configurable rate.
This is to avoid impacting the
performance of the OAM and
telemetry collection processes. Failure to implement the rate
limit can lead to a denial
The OAM process MUST NOT process the copy of the packet or respond to any Upper-Layer header (like ICMP, UDP, etc.) payload to prevent multiple evaluations of the datagram.¶
The OAM process is expected to be located on the routing node processing the packet. Although the specification of the OAM process or the external controller operations are beyond the scope of this document, the OAM process SHOULD NOT be topologically distant from the routing node, as this is likely to create significant security and congestion issues. How to correlate the data collected from different nodes at an external controller is also outside the scope of this document. Appendix A illustrates use of the O-flag for implementing a hybrid OAM mechanism, where the "hybrid" classification is based on [RFC7799].¶
2.2. OAM Operations
IPv6 OAM operations can be performed for any SRv6 SID whose behavior allows Upper-Layer header processing for an applicable OAM payload (e.g., ICMP, UDP).¶
Ping to an SRv6 SID is used to verify that the SID is reachable and is locally programmed at the target node. Traceroute to a SID is used for hop-by-hop fault localization as well as path tracing to a SID. Appendix A illustrates the ICMPv6-based ping and UDP-based traceroute mechanisms for ping and traceroute to an SRv6 SID. Although this document only illustrates ICMPv6-based ping and UDP-based traceroute to an SRv6 SID, the procedures are equally applicable to other OAM mechanisms that probe an SRv6 SID (e.g., Bidirectional Forwarding Detection (BFD) [RFC5880], Seamless BFD (S-BFD) [RFC7880], and Simple Two-way Active Measurement Protocol (STAMP) probe message processing [STAMP-SR]). Specifically, as long as local configuration allows the Upper-Layer header processing of the applicable OAM payload for SRv6 SIDs, the existing IPv6 OAM techniques can be used to target a probe to a (remote) SID.¶
IPv6 OAM operations can be performed with the target SID in the IPv6 destination address without an SRH or with an SRH where the target SID is the last segment. In general, OAM operations to a target SID may not exercise all of its processing depending on its behavior definition. For example, ping to an End.X SID [RFC8986] only validates the SID is locally programmed at the target node and does not validate switching to the correct outgoing interface. To exercise the behavior of a target SID, the OAM operation should construct the probe in a manner similar to a data packet that exercises the SID behavior, i.e. to include that SID as a transit SID in either an SRH or IPv6 DA of an outer IPv6 header or as appropriate based on the definition of the SID behavior.¶
3. Security Considerations
[RFC8754] defines the notion of an SR domain and use of the SRH within the SR domain. The use of OAM procedures described in this document is restricted to an SR domain. For example, similar to SID manipulation, O-flag manipulation is not considered a threat within the SR domain. Procedures for securing an SR domain are defined in Sections 5.1 and 7 of [RFC8754].¶
As noted in Section 7.1 of [RFC8754],
compromised nodes within the SR domain may mount attacks. The O-flag
may be set by an attacking node attempting a denial
The security properties of the channel used to send exported packets marked by the O-flag will depend on the specific OAM processes used. An on-path attacker able to observe this OAM channel could conduct traffic analysis, or potentially eavesdropping (depending on the OAM configuration), of this telemetry for the entire SR domain from such a vantage point.¶
This document does not impose any additional security challenges to be considered beyond the security threats described in [RFC4884], [RFC4443], [RFC0792], [RFC8754], and [RFC8986].¶
4. Privacy Considerations
The per-packet marking capabilities of the O-flag provide a granular mechanism to collect telemetry. When this collection is deployed by an operator with the knowledge and consent of the users, it will enable a variety of diagnostics and monitoring to support the OAM and security operations use cases needed for resilient network operations. However, this collection mechanism will also provide an explicit protocol mechanism to operators for surveillance and pervasive monitoring use cases done contrary to the user's consent.¶
5. IANA Considerations
IANA has registered the following in the "Segment Routing Header Flags" subregistry in the "Internet Protocol Version 6 (IPv6) Parameters" registry:¶
6. References
6.1. Normative References
- [RFC2119]
-
Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10
.17487 , , <https:///RFC2119 www >..rfc -editor .org /info /rfc2119 - [RFC8174]
-
Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words", BCP 14, RFC 8174, DOI 10
.17487 , , <https:///RFC8174 www >..rfc -editor .org /info /rfc8174 - [RFC8754]
-
Filsfils, C., Ed., Dukes, D., Ed., Previdi, S., Leddy, J., Matsushima, S., and D. Voyer, "IPv6 Segment Routing Header (SRH)", RFC 8754, DOI 10
.17487 , , <https:///RFC8754 www >..rfc -editor .org /info /rfc8754 - [RFC8986]
-
Filsfils, C., Ed., Camarillo, P., Ed., Leddy, J., Voyer, D., Matsushima, S., and Z. Li, "Segment Routing over IPv6 (SRv6) Network Programming", RFC 8986, DOI 10
.17487 , , <https:///RFC8986 www >..rfc -editor .org /info /rfc8986
6.2. Informative References
- [RFC0792]
-
Postel, J., "Internet Control Message Protocol", STD 5, RFC 792, DOI 10
.17487 , , <https:///RFC0792 www >..rfc -editor .org /info /rfc792 - [RFC2328]
-
Moy, J., "OSPF Version 2", STD 54, RFC 2328, DOI 10
.17487 , , <https:///RFC2328 www >..rfc -editor .org /info /rfc2328 - [RFC4443]
-
Conta, A., Deering, S., and M. Gupta, Ed., "Internet Control Message Protocol (ICMPv6) for the Internet Protocol Version 6 (IPv6) Specification", STD 89, RFC 4443, DOI 10
.17487 , , <https:///RFC4443 www >..rfc -editor .org /info /rfc4443 - [RFC4884]
-
Bonica, R., Gan, D., Tappan, D., and C. Pignataro, "Extended ICMP to Support Multi-Part Messages", RFC 4884, DOI 10
.17487 , , <https:///RFC4884 www >..rfc -editor .org /info /rfc4884 - [RFC5476]
-
Claise, B., Ed., Johnson, A., and J. Quittek, "Packet Sampling (PSAMP) Protocol Specifications", RFC 5476, DOI 10
.17487 , , <https:///RFC5476 www >..rfc -editor .org /info /rfc5476 - [RFC5837]
-
Atlas, A., Ed., Bonica, R., Ed., Pignataro, C., Ed., Shen, N., and JR. Rivers, "Extending ICMP for Interface and Next-Hop Identification", RFC 5837, DOI 10
.17487 , , <https:///RFC5837 www >..rfc -editor .org /info /rfc5837 - [RFC5880]
-
Katz, D. and D. Ward, "Bidirectional Forwarding Detection (BFD)", RFC 5880, DOI 10
.17487 , , <https:///RFC5880 www >..rfc -editor .org /info /rfc5880 - [RFC7011]
-
Claise, B., Ed., Trammell, B., Ed., and P. Aitken, "Specification of the IP Flow Information Export (IPFIX) Protocol for the Exchange of Flow Information", STD 77, RFC 7011, DOI 10
.17487 , , <https:///RFC7011 www >..rfc -editor .org /info /rfc7011 - [RFC7012]
-
Claise, B., Ed. and B. Trammell, Ed., "Information Model for IP Flow Information Export (IPFIX)", RFC 7012, DOI 10
.17487 , , <https:///RFC7012 www >..rfc -editor .org /info /rfc7012 - [RFC7799]
-
Morton, A., "Active and Passive Metrics and Methods (with Hybrid Types In-Between)", RFC 7799, DOI 10
.17487 , , <https:///RFC7799 www >..rfc -editor .org /info /rfc7799 - [RFC7880]
-
Pignataro, C., Ward, D., Akiya, N., Bhatia, M., and S. Pallagatti, "Seamless Bidirectional Forwarding Detection (S-BFD)", RFC 7880, DOI 10
.17487 , , <https:///RFC7880 www >..rfc -editor .org /info /rfc7880 - [RFC8402]
-
Filsfils, C., Ed., Previdi, S., Ed., Ginsberg, L., Decraene, B., Litkowski, S., and R. Shakir, "Segment Routing Architecture", RFC 8402, DOI 10
.17487 , , <https:///RFC8402 www >..rfc -editor .org /info /rfc8402 - [RFC8403]
-
Geib, R., Ed., Filsfils, C., Pignataro, C., Ed., and N. Kumar, "A Scalable and Topology-Aware MPLS Data-Plane Monitoring System", RFC 8403, DOI 10
.17487 , , <https:///RFC8403 www >..rfc -editor .org /info /rfc8403 - [RFC8571]
-
Ginsberg, L., Ed., Previdi, S., Wu, Q., Tantsura, J., and C. Filsfils, "BGP - Link State (BGP-LS) Advertisement of IGP Traffic Engineering Performance Metric Extensions", RFC 8571, DOI 10
.17487 , , <https:///RFC8571 www >..rfc -editor .org /info /rfc8571 - [RFC9197]
-
Brockners, F., Ed., Bhandari, S., Ed., and T. Mizrahi, Ed., "Data Fields for In Situ Operations, Administration, and Maintenance (IOAM)", RFC 9197, DOI 10
.17487 , , <https:///RFC9197 www >..rfc -editor .org /info /rfc9197 - [STAMP-SR]
-
Gandhi, R., Ed., Filsfils, C., Voyer, D., Chen, M., Janssens, B., and R. Foote, "Performance Measurement Using Simple TWAMP (STAMP) for Segment Routing Networks", Work in Progress, Internet-Draft, draft
-ietf , , <https://-spring -stamp -srpm -03 datatracker >..ietf .org /doc /html /draft -ietf -spring -stamp -srpm -03
Appendix A. Illustrations
This appendix shows how some of the existing IPv6 OAM mechanisms can be used in an SRv6 network. It also illustrates an OAM mechanism for performing controllable and predictable flow sampling from segment endpoints. How the centralized OAM technique in [RFC8403] can be extended for SRv6 is also described in this appendix.¶
A.1. Ping in SRv6 Networks
The existing mechanism to perform the reachability checks,
along the shortest path, continues to work without any modification.
Any IPv6 node (SRv6-capable or non
The following subsections outline some additional use cases of ICMPv6 ping in SRv6 networks.¶
A.1.1. Pinging an IPv6 Address via a Segment List
If an SRv6-capable ingress node wants to ping an IPv6 address via an
arbitrary segment list <S1, S2, S3>, it needs to initiate an ICMPv6
ping with an SR header containing the SID list <S1, S2, S3>. This is
illustrated using the topology in Figure 1. The user issues a ping from node N1 to a
loopback of node N5 via segment list <2001
Figure 2 contains sample output for a ping request initiated at node
N1 to a loopback address of node N5 via segment list <2001
All transit nodes process the echo request message like any other data packet carrying an SR header and hence do not require any change. Similarly, the egress node does not require any change to process the ICMPv6 echo request. For example, in the example in Figure 2:¶
A.1.2. Pinging a SID
The ping mechanism described above can also be used to perform SID reachability checks and to validate that the SID is locally programmed at the target node. This is explained in the following example. The example uses ping to an End SID, as described in [RFC8986], but the procedure is equally applicable to ping any other SID behaviors.¶
Consider the example where the user wants to ping a remote
SID 2001:db8:K:4::, via 2001
A.2. Traceroute in SRv6 Networks
The existing traceroute
mechanisms, along the shortest path, continue to work without any modification.
Any IPv6 node (SRv6-capable or a non
The following subsections outline some additional use cases of traceroute in SRv6 networks.¶
A.2.1. Traceroute to an IPv6 Address via a Segment List
If an SRv6-capable ingress node wants to traceroute to an IPv6 address
via an arbitrary segment list <S1, S2, S3>, it needs to initiate
a traceroute probe with an SR header containing the SID list
<S1, S2, S3>. The user issues a traceroute
from node N1 to a loopback of node N5 via segment list
<2001
In the sample traceroute output, the information displayed at each hop is obtained using the contents of the "Time Exceeded" or "Destination Unreachable" ICMPv6 responses. These ICMPv6 responses are IP routed.¶
In the sample traceroute output, the information for link3 is
returned by node N3, which is a
non
The segment list information returned for the first hop is returned by node N2, which is an SRv6-capable node. Just like for the second hop, the ingress node is able to display SR header contents for the first hop.¶
There is no difference in processing of the traceroute probe at an
SRv6-capable and a non
The IP address of the interface on which the traceroute probe was received
is useful. This information can also be used to verify if SIDs
2001
A.2.2. Traceroute to a SID
The mechanism to traceroute an IPv6 address via a segment list described in the previous section can also be used to traceroute a remote SID behavior, as explained in the following example. The example uses traceroute to an End SID, as described in [RFC8986], but the procedure is equally applicable to tracerouting any other SID behaviors.¶
Please note that traceroute to a SID is exemplified using UDP probes. However, the procedure is equally applicable to other implementations of traceroute mechanism. The UDP encoded message to traceroute a SID would use the UDP ports assigned by IANA for "traceroute use".¶
Consider the example where the user wants to traceroute a remote SID
2001:db8:K:4::, via 2001
Figure 4 displays a sample traceroute output for this example.¶
A.3. Hybrid OAM Using the OAM Flag
This section illustrates a hybrid OAM mechanism using the O-flag. Without loss of the generality, the illustration assumes node N100 is a centralized controller.¶
This illustration is different from the "in situ OAM" defined in [RFC9197]. This is because in situ OAM records operational and telemetry information in the packet as the packet traverses a path between two points in the network [RFC9197]. The illustration in this subsection does not require the recording of OAM data in the packet.¶
The illustration does not assume any formats for exporting the data elements or the data elements that need to be exported. The illustration assumes system clocks among all nodes in the SR domain are synchronized.¶
Consider the example where the user wants to monitor sampled IPv4
VPN 999 traffic going from CE1 to CE2 via a low-latency SR Policy P installed
at node N1.
To exercise a low-latency path, the SR Policy P forces the packet via segments
2001
A.4. Monitoring of SRv6 Paths
In the recent past, network operators demonstrated interest in performing network OAM functions in a centralized manner. [RFC8403] describes such a centralized OAM mechanism. Specifically, [RFC8403] describes a procedure that can be used to perform path continuity checks between any nodes within an SR domain from a centralized monitoring system. However, while [RFC8403] focuses on SR networks with MPLS data plane, this document describes how the concept can be used to perform path monitoring in an SRv6 network from a centralized controller.¶
In the reference topology in Figure 1, node N100 uses an IGP protocol like OSPF or IS-IS to get a view of the topology within the IGP domain. Node N100 can also use BGP-LS to get the complete view of an inter-domain topology. The controller leverages the visibility of the topology to monitor the paths between the various endpoints.¶
Node N100 advertises an End
SID [RFC8986] 2001
The following example illustrates loopback probes in which node N100
needs to verify a
segment list <2001
The OAM payload type or the information carried in the OAM probe is a local implementation decision at the controller and is outside the scope of this document.¶
Acknowledgements
The authors would like to thank Joel M. Halpern, Greg Mirsky, Bob Hinden, Loa Andersson, Gaurav Naik, Ketan Talaulikar, and Haoyu Song for their review comments.¶
Contributors
The following people contributed to this document:¶