draft-ietf-6man-spring-srv6-oam-07.txt | draft-ietf-6man-spring-srv6-oam-08.txt | |||
---|---|---|---|---|
6man Z. Ali | 6man Z. Ali | |||
Internet-Draft C. Filsfils | Internet-Draft C. Filsfils | |||
Intended status: Standards Track Cisco Systems | Intended status: Standards Track Cisco Systems | |||
Expires: January 27, 2021 S. Matsushima | Expires: May 3, 2021 S. Matsushima | |||
Softbank | Softbank | |||
D. Voyer | D. Voyer | |||
Bell Canada | Bell Canada | |||
M. Chen | M. Chen | |||
Huawei | Huawei | |||
July 26, 2020 | October 30, 2020 | |||
Operations, Administration, and Maintenance (OAM) in Segment Routing | Operations, Administration, and Maintenance (OAM) in Segment Routing | |||
Networks with IPv6 Data plane (SRv6) | Networks with IPv6 Data plane (SRv6) | |||
draft-ietf-6man-spring-srv6-oam-07 | draft-ietf-6man-spring-srv6-oam-08 | |||
Abstract | Abstract | |||
This document describes how the existing IPv6 OAM mechanisms can be | This document describes how the existing IPv6 mechanisms for ping and | |||
used in an SRv6 network. The document also introduces enhancements | traceroute can be used in an SRv6 network. The document also | |||
for OAM mechanisms for SRv6 networks. | specifies the OAM 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 | Status of This Memo | |||
This Internet-Draft is submitted in full conformance with the | This Internet-Draft is submitted in full conformance with the | |||
provisions of BCP 78 and BCP 79. | provisions of BCP 78 and BCP 79. | |||
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 27, 2021. | This Internet-Draft will expire on May 3, 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 18 ¶ | skipping to change at page 2, line 23 ¶ | |||
described in the Simplified BSD License. | described in the Simplified BSD License. | |||
Table of Contents | Table of Contents | |||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | |||
1.1. Requirements Language . . . . . . . . . . . . . . . . . . 3 | 1.1. Requirements Language . . . . . . . . . . . . . . . . . . 3 | |||
1.2. Abbreviations . . . . . . . . . . . . . . . . . . . . . . 3 | 1.2. Abbreviations . . . . . . . . . . . . . . . . . . . . . . 3 | |||
1.3. Terminology and Reference Topology . . . . . . . . . . . 3 | 1.3. Terminology and Reference Topology . . . . . . . . . . . 3 | |||
2. OAM Mechanisms . . . . . . . . . . . . . . . . . . . . . . . 5 | 2. OAM Mechanisms . . . . . . . . . . . . . . . . . . . . . . . 5 | |||
2.1. O-flag in Segment Routing Header . . . . . . . . . . . . 5 | 2.1. O-flag in Segment Routing Header . . . . . . . . . . . . 5 | |||
2.1.1. O-flag Processing . . . . . . . . . . . . . . . . . . 5 | 2.1.1. O-flag Processing . . . . . . . . . . . . . . . . . . 6 | |||
2.2. OAM Operations . . . . . . . . . . . . . . . . . . . . . 7 | 2.2. OAM Operations . . . . . . . . . . . . . . . . . . . . . 7 | |||
3. Illustrations . . . . . . . . . . . . . . . . . . . . . . . . 7 | 3. Illustrations . . . . . . . . . . . . . . . . . . . . . . . . 8 | |||
3.1. Ping in SRv6 Networks . . . . . . . . . . . . . . . . . . 8 | 3.1. Ping in SRv6 Networks . . . . . . . . . . . . . . . . . . 8 | |||
3.1.1. Classic Ping . . . . . . . . . . . . . . . . . . . . 8 | 3.1.1. Classic Ping . . . . . . . . . . . . . . . . . . . . 8 | |||
3.1.2. Pinging a SID . . . . . . . . . . . . . . . . . . . . 9 | 3.1.2. Pinging a SID . . . . . . . . . . . . . . . . . . . . 10 | |||
3.2. Traceroute . . . . . . . . . . . . . . . . . . . . . . . 10 | 3.2. Traceroute . . . . . . . . . . . . . . . . . . . . . . . 10 | |||
3.2.1. Classic Traceroute . . . . . . . . . . . . . . . . . 10 | 3.2.1. Classic Traceroute . . . . . . . . . . . . . . . . . 11 | |||
3.2.2. Traceroute to a SID . . . . . . . . . . . . . . . . . 12 | 3.2.2. Traceroute to a SID . . . . . . . . . . . . . . . . . 12 | |||
3.3. A Hybrid OAM Using O-flag . . . . . . . . . . . . . . . . 13 | 3.3. A Hybrid OAM Using O-flag . . . . . . . . . . . . . . . . 14 | |||
3.4. Monitoring of SRv6 Paths . . . . . . . . . . . . . . . . 16 | 3.4. Monitoring of SRv6 Paths . . . . . . . . . . . . . . . . 16 | |||
4. Implementation Status . . . . . . . . . . . . . . . . . . . . 17 | 4. Implementation Status . . . . . . . . . . . . . . . . . . . . 18 | |||
5. Security Considerations . . . . . . . . . . . . . . . . . . . 17 | 5. Security Considerations . . . . . . . . . . . . . . . . . . . 18 | |||
6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 17 | 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 18 | |||
6.1. Segment Routing Header Flags . . . . . . . . . . . . . . 17 | ||||
7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 18 | 7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 18 | |||
8. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 18 | 8. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 18 | |||
9. References . . . . . . . . . . . . . . . . . . . . . . . . . 19 | 9. References . . . . . . . . . . . . . . . . . . . . . . . . . 20 | |||
9.1. Normative References . . . . . . . . . . . . . . . . . . 19 | 9.1. Normative References . . . . . . . . . . . . . . . . . . 20 | |||
9.2. Informative References . . . . . . . . . . . . . . . . . 19 | 9.2. Informative References . . . . . . . . . . . . . . . . . 20 | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 21 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 22 | |||
1. Introduction | 1. Introduction | |||
As Segment Routing with IPv6 data plane (SRv6) [RFC8402] simply adds | As Segment Routing with IPv6 data plane (SRv6) [RFC8402] simply adds | |||
a new type of Routing Extension Header, existing IPv6 OAM mechanisms | a new type of Routing Extension Header, existing IPv6 OAM mechanisms | |||
can be used in an SRv6 network. This document describes how the | can be used in an SRv6 network. This document describes how the | |||
existing IPv6 mechanisms for ping and trace route can be used in an | existing IPv6 mechanisms for ping and trace route can be used in an | |||
SRv6 network. | SRv6 network. This includes illustrations to pinging an SRv6 SID for | |||
the SID connectivity checks and to validate the availability of a | ||||
SID. This also includes illustrations for tracerouting to an SRv6 | ||||
SID for hop-by-hop fault localization as well as path tracing to a | ||||
SID. | ||||
The document also introduces enhancements for OAM mechanism for SRv6 | The document also introduces enhancements for OAM mechanism for SRv6 | |||
networks. Specifically, the document describes an OAM mechanism for | networks for performing controllable and predictable flow sampling | |||
performing controllable and predictable flow sampling from segment | from segment endpoints using, e.g., IP Flow Information Export | |||
endpoints using, e.g., IP Flow Information Export (IPFIX) protocol | (IPFIX) protocol [RFC7011]. Specifically, the document specifies | |||
O-flag in SRH as a marking-bit in the user packets to trigger the | ||||
telemetry data collection and export at the segment endpoints. | ||||
[RFC7011]. The document also outlines how centralized OAM technique | The document also outlines how centralized OAM technique in [RFC8403] | |||
in [RFC8403] can be extended for SRv6 to perform a path continuity | can be extended for SRv6 to perform a path continuity check between | |||
check between any nodes within an SRv6 domain from a centralized | any nodes within an SRv6 domain. Specifically, the document | |||
monitoring system. | illustrates how a centralized monitoring system can monitor arbitrary | |||
SRv6 paths by creating the loopback probes that originates and | ||||
terminates at the centralized monitoring system. | ||||
1.1. Requirements Language | 1.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", "MAY", and "OPTIONAL" in this | "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | |||
document are to be interpreted as described in [RFC2119], [RFC8174]. | document are to be interpreted as described in [RFC2119], [RFC8174]. | |||
1.2. Abbreviations | 1.2. Abbreviations | |||
The following abbreviations are used in this document: | The following abbreviations are used in this document: | |||
skipping to change at page 5, line 10 ¶ | skipping to change at page 5, line 25 ¶ | |||
SID list but encoded in the SRH format where the rightmost SID | SID list but encoded in the SRH format where the rightmost SID | |||
in the SRH is the first SID and the leftmost SID in the SRH is | in the SRH is the first SID and the leftmost SID in the SRH is | |||
the last SID. When referring to an SR policy in a high-level | the last SID. When referring to an SR policy in a high-level | |||
use-case, it is simpler to use the <S1, S2, S3> notation. When | use-case, it is simpler to use the <S1, S2, S3> notation. When | |||
referring to an illustration of the detailed packet behavior, | referring to an illustration of the detailed packet behavior, | |||
the (S3, S2, S1; SL) notation is more convenient. | the (S3, S2, S1; SL) notation is more convenient. | |||
* (payload) represents the the payload of the packet. | * (payload) represents the the payload of the packet. | |||
SRH[SL] represents the SID pointed by the SL field in the first | SRH[SL] represents the SID pointed by the SL field in the first | |||
SRH. In our example SID list (S3, S2, S1; SL), SRH[2] represents | SRH. In our example SID list (S3, S2, S1; SL), SRH(2) represents | |||
S1, SRH[1] represents S2 and SRH[0] represents S3. | S1, SRH(1) represents S2 and SRH(0) represents S3. | |||
2. OAM Mechanisms | 2. OAM Mechanisms | |||
This section defines OAM enhancement for the SRv6 networks. | This section defines OAM enhancement for the SRv6 networks. | |||
2.1. O-flag in Segment Routing Header | 2.1. O-flag in Segment Routing Header | |||
[RFC8754] describes the Segment Routing Header (SRH) and how SR | [RFC8754] describes the Segment Routing Header (SRH) and how SR | |||
capable nodes use it. The SRH contains an 8-bit "Flags" field. This | capable nodes use it. The SRH contains an 8-bit "Flags" field. This | |||
document defines the following bit in the SRH.Flags to carry the | document defines the following bit in the SRH.Flags to carry the | |||
skipping to change at page 7, line 27 ¶ | skipping to change at page 7, line 40 ¶ | |||
Ping to a SID is used for SID connectivity checks and to validate the | Ping to a SID is used for SID connectivity checks and to validate the | |||
availability of a SID. Traceroute to a SID is used for hop-by-hop | availability of a SID. Traceroute to a SID is used for hop-by-hop | |||
fault localization as well as path tracing to a SID. Section 3 | fault localization as well as path tracing to a SID. Section 3 | |||
illustrates the ICMPv6 based ping and the UDP based traceroute | illustrates the ICMPv6 based ping and the UDP based traceroute | |||
mechanisms for ping and traceroute to an SRv6 SID. Although this | mechanisms for ping and traceroute to an SRv6 SID. Although this | |||
document only illustrates ICMP ping and UDP-based traceroute to an | document only illustrates ICMP ping and UDP-based traceroute to an | |||
SRv6 SID, the procedures are equally applicable to other IPv6 OAM | SRv6 SID, the procedures are equally applicable to other IPv6 OAM | |||
probing to an SRv6 SID (e.g., Bidirectional Forwarding Detection | probing to an SRv6 SID (e.g., Bidirectional Forwarding Detection | |||
(BFD) [RFC5880], Seamless BFD (SBFD) [RFC7880], TWAMP Light and STAMP | (BFD) [RFC5880], Seamless BFD (SBFD) [RFC7880], TWAMP Light and STAMP | |||
probe message processing as described in | probe message processing as described in [I-D.gandhi-spring-twamp- | |||
[I-D.gandhi-spring-twamp-srpm] and [I-D.gandhi-spring-stamp-srpm], | srpm] and [I-D.gandhi-spring-stamp-srpm], respectively, etc.). | |||
respectively, etc.). Specifically, as long as local configuration | Specifically, as long as local configuration allows the Upper-layer | |||
allows the Upper-layer Header processing of the applicable OAM payload | Header processing of the applicable OAM payload for SRv6 SIDs, the | |||
for SRv6 SIDs, the existing IPv6 OAM techniques can be used to target | existing IPv6 OAM techniques can be used to target a probe to a | |||
a probe to a (remote) SID. | (remote) SID. | |||
IPv6 OAM operations can be performed with the target SID in the IPv6 | IPv6 OAM operations can be performed with the target SID in the IPv6 | |||
destination address without SRH or with SRH where the target SID is | destination address without SRH or with SRH where the target SID is | |||
the last segment. In general, OAM operations to a target SID may not | the last segment. In general, OAM operations to a target SID may not | |||
exercise all of its processing depending on its behavior definition. | exercise all of its processing depending on its behavior definition. | |||
For example, ping to an END.X SID (refer [I-D.ietf-spring-srv6- | For example, ping to an END.X SID (refer [I-D.ietf-spring-srv6- | |||
network-programming]) at the target node only validates availability | network-programming]) at the target node only validates availability | |||
of the SID and does not validate switching to the correct outgoing | of the SID and does not validate switching to the correct outgoing | |||
interface. To exercise the behavior of a target SID, the OAM | interface. To exercise the behavior of a target SID, the OAM | |||
operation SHOULD construct the probe in a manner similar to a data | operation SHOULD construct the probe in a manner similar to a data | |||
skipping to change at page 17, line 44 ¶ | skipping to change at page 18, line 22 ¶ | |||
5. Security Considerations | 5. Security Considerations | |||
This document does not define any new protocol extensions and relies | This document does not define any new protocol extensions and relies | |||
on existing procedures defined for ICMP. This document does not | on existing procedures defined for ICMP. This document does not | |||
impose any additional security challenges to be considered beyond | impose any additional security challenges to be considered beyond | |||
security considerations described in [RFC4884], [RFC4443], [RFC0792], | security considerations described in [RFC4884], [RFC4443], [RFC0792], | |||
and [RFC8754]. | and [RFC8754]. | |||
6. IANA Considerations | 6. IANA Considerations | |||
6.1. Segment Routing Header Flags | This document requests that IANA allocate the following registrations | |||
in the "Segment Routing Header Flags" sub-registry for the "Internet | ||||
Protocol Version 6 (IPv6) Parameters" registry maintained by IANA: | ||||
This I-D requests to IANA to allocate bit position 2, within the | +-------+------------------------------+---------------+ | |||
"Segment Routing Header Flags" registry defined in [RFC8754]. | | Bit | Description | Reference | | |||
+=======+==============================+===============+ | ||||
| 2 | O-flag | This document | | ||||
+-------+------------------------------+---------------+ | ||||
7. Acknowledgements | 7. Acknowledgements | |||
The authors would like to thank Joel M. Halpern, Greg Mirsky, Bob | The authors would like to thank Joel M. Halpern, Greg Mirsky, Bob | |||
Hinden, Loa Andersson, Gaurav Naik, Ketan Talaulikar and Haoyu Song | Hinden, Loa Andersson, Gaurav Naik, Ketan Talaulikar and Haoyu Song | |||
for their review comments. | for their review comments. | |||
8. Contributors | 8. Contributors | |||
The following people have contributed to this document: | The following people have contributed to this document: | |||
skipping to change at page 19, line 39 ¶ | skipping to change at page 20, line 26 ¶ | |||
[RFC8754] Filsfils, C., Ed., Dukes, D., Ed., Previdi, S., Leddy, J., | [RFC8754] Filsfils, C., Ed., Dukes, D., Ed., Previdi, S., Leddy, J., | |||
Matsushima, S., and D. Voyer, "IPv6 Segment Routing Header | Matsushima, S., and D. Voyer, "IPv6 Segment Routing Header | |||
(SRH)", RFC 8754, DOI 10.17487/RFC8754, March 2020, | (SRH)", RFC 8754, DOI 10.17487/RFC8754, March 2020, | |||
<https://www.rfc-editor.org/info/rfc8754>. | <https://www.rfc-editor.org/info/rfc8754>. | |||
9.2. Informative References | 9.2. Informative References | |||
[I-D.gandhi-spring-stamp-srpm] | [I-D.gandhi-spring-stamp-srpm] | |||
Gandhi, R., Filsfils, C., Voyer, D., Chen, M., and B. | Gandhi, R., Filsfils, C., Voyer, D., Chen, M., and B. | |||
Janssens, "Performance Measurement Using STAMP for Segment | Janssens, "Performance Measurement Using Simple TWAMP | |||
Routing Networks", draft-gandhi-spring-stamp-srpm-01 (work | (STAMP) for Segment Routing Networks", draft-gandhi- | |||
in progress), June 2020. | spring-stamp-srpm-03 (work in progress), October 2020. | |||
[I-D.gandhi-spring-twamp-srpm] | [I-D.gandhi-spring-twamp-srpm] | |||
Gandhi, R., Filsfils, C., Voyer, D., Chen, M., and B. | Gandhi, R., Filsfils, C., Voyer, D., Chen, M., and B. | |||
Janssens, "Performance Measurement Using TWAMP Light for | Janssens, "Performance Measurement Using TWAMP Light for | |||
Segment Routing Networks", draft-gandhi-spring-twamp- | Segment Routing Networks", draft-gandhi-spring-twamp- | |||
srpm-09 (work in progress), June 2020. | srpm-11 (work in progress), October 2020. | |||
[I-D.ietf-spring-srv6-network-programming] | [I-D.ietf-spring-srv6-network-programming] | |||
Filsfils, C., Camarillo, P., Leddy, J., Voyer, D., | Filsfils, C., Camarillo, P., Leddy, J., Voyer, D., | |||
Matsushima, S., and Z. Li, "SRv6 Network Programming", | Matsushima, S., and Z. Li, "SRv6 Network Programming", | |||
draft-ietf-spring-srv6-network-programming-16 (work in | draft-ietf-spring-srv6-network-programming-24 (work in | |||
progress), June 2020. | progress), October 2020. | |||
[I-D.matsushima-spring-srv6-deployment-status] | [I-D.matsushima-spring-srv6-deployment-status] | |||
Matsushima, S., Filsfils, C., Ali, Z., Li, Z., and K. | Matsushima, S., Filsfils, C., Ali, Z., Li, Z., and K. | |||
Rajaraman, "SRv6 Implementation and Deployment Status", | Rajaraman, "SRv6 Implementation and Deployment Status", | |||
draft-matsushima-spring-srv6-deployment-status-07 (work in | draft-matsushima-spring-srv6-deployment-status-08 (work in | |||
progress), April 2020. | progress), October 2020. | |||
[RFC0792] Postel, J., "Internet Control Message Protocol", STD 5, | [RFC0792] Postel, J., "Internet Control Message Protocol", STD 5, | |||
RFC 792, DOI 10.17487/RFC0792, September 1981, | RFC 792, DOI 10.17487/RFC0792, September 1981, | |||
<https://www.rfc-editor.org/info/rfc792>. | <https://www.rfc-editor.org/info/rfc792>. | |||
[RFC4443] Conta, A., Deering, S., and M. Gupta, Ed., "Internet | [RFC4443] Conta, A., Deering, S., and M. Gupta, Ed., "Internet | |||
Control Message Protocol (ICMPv6) for the Internet | Control Message Protocol (ICMPv6) for the Internet | |||
Protocol Version 6 (IPv6) Specification", STD 89, | Protocol Version 6 (IPv6) Specification", STD 89, | |||
RFC 4443, DOI 10.17487/RFC4443, March 2006, | RFC 4443, DOI 10.17487/RFC4443, March 2006, | |||
<https://www.rfc-editor.org/info/rfc4443>. | <https://www.rfc-editor.org/info/rfc4443>. | |||
End of changes. 24 change blocks. | ||||
48 lines changed or deleted | 63 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/ |