Internet DRAFT - draft-gong-spring-ping-path-consistency-over-srv6
draft-gong-spring-ping-path-consistency-over-srv6
SPRING Working Group L. Gong
Internet Draft China Mobile
Intended status: Standards Track C. Lin
Expires: July 6, 2024 Y. Qiu
New H3C Technologies
January 6, 2024
Ping Path Consistency over SRv6
draft-gong-spring-ping-path-consistency-over-srv6-01
Abstract
In the SRv6 network, the headend node could use Ping (ICMPv6 Echo)
to detect the connectivity of the SRv6 path to implement path
switching. When a headend use Ping to detect the segment list/CPath
of SRv6 Policy, the forward path of ICMPv6 Echo Request message is
indicated by segment list, the reverse path of ICMPv6 Echo Reply
message is via the shortest path from the destination node to the
source as determined by routing. The forward path and reverse path
of ICMPv6 message are likely inconsistent going through different
intermediate nodes or links. This document describes how to ensure
the consistency of the forward path and the reverse path when using
ICMPv6 Echo messages to detect SRv6 Policy.
Status of this Memo
This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF), its areas, and its working groups. Note that
other groups may also distribute working documents as Internet-
Drafts.
Internet-Drafts are draft documents valid for a maximum of six
months and may be updated, replaced, or obsoleted by other documents
at any time. It is inappropriate to use Internet-Drafts as
reference material or to cite them other than as "work in progress."
The list of current Internet-Drafts can be accessed at
http://www.ietf.org/ietf/1id-abstracts.txt
The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html
Gong, et al. Expire July, 2024 [Page 1]
Internet-Draft SRv6 Ping Path Consistency January 2024
This Internet-Draft will expire on July 6 2024.
Copyright Notice
Copyright (c) 2023 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
(http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with
respect to this document. Code Components extracted from this
document must include Simplified BSD License text as described in
Section 4.e of the Trust Legal Provisions and are provided without
warranty as described in the Simplified BSD License.
Table of Contents
1. Introduction ................................................ 3
1.1. Requirements Language .................................. 3
2. Requirement of Path Consistency for Ping .................... 4
3. Correlate Bidirectional Path Using Path Segment ............. 5
3.1. procedure of Ping Detection Initiator .................. 7
3.2. Procedure of Ping's destination Node ................... 8
4. IANA Considerations ........................................ 10
5. Security Considerations .................................... 10
6. References ................................................. 10
6.1. Normative References .................................. 10
Authors' Addresses ............................................ 12
Gong, et al. Expires July, 2024 [Page 2]
Internet-Draft SRv6 Ping Path Consistency January 2024
1. Introduction
Segment Routing (SR) allows a headend node to steer a packet flow
along any path. Per-path states of Intermediate nodes are eliminated
thanks to source routing. The headend node steers a flow into an SR
Policy. The packets steered into an SR Policy carry an ordered list
of segments associated with that SR Policy.
SR can be instantiated on the MPLS data plane (MPLS-SR) and the IPv6
data plane (SRv6). On the SRv6 data plane, a segment is encoded as
an IPv6 address (SRv6 SID) [RFC8986], and an ordered list of
segments is encoded as an ordered list of SRv6 SIDs in the SR header
(SRH) [RFC8754].
In the SRv6 network, the headend node could use Ping (ICMPv6 Echo)
to detect the connectivity of the SRv6 path to implement path
switching. When a headend use Ping to detect the segment list/CPath
of SRv6 Policy, the forward path of ICMPv6 Echo Request message is
indicated by segment list, the reverse path of ICMPv6 Echo Reply
message is via the shortest path from the destination node to the
source as determined by routing. The forward path and reverse path
of ICMPv6 message are likely inconsistent going through different
intermediate nodes or links.
The inconsistency impacts the detecting result. If the forward path
is up and reverse path is down, then the ICMPV6 Echo Reply message
will not be able to be sent to the source, and Ping detection will
timeout. If there are multiple path (segment list) in a SRv6 policy
between a headend (local system) node and a tailend (remote system)
node, Ping detection instance will be created for each path. Each
Ping detection instance uses corresponding path to send ICMPV6 Echo
Request message, but the reverse path is identical. If the reverse
path is down, all Ping detection instances will be down. Then the
SRv6 policy is down.
The transmission path of forward ICMPV6 Echo Request messages and
reverse ICMPV6 Echo Reply messages for the same Ping detection
instance should be consistent.
This document describes how to ensure the consistency of the forward
path and the reverse path when using ICMPV6 Echo messages to detect
SRv6 policy.
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
Gong, et al. Expires July, 2024 [Page 3]
Internet-Draft SRv6 Ping Path Consistency January 2024
BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all
capitals, as shown here.
2. Requirement of Path Consistency for Ping
Detecting the connectivity of SRv6 policy using Ping is usually
based on segment list. Ping detection instance is created for each
segment list and associated with the segment list.
Referring to the topology in Figure 1, there are two paths between
Node A and D, and All nodes allocate end.x Segments on SRv6 data
plane or adjacency SIDs on SR-MPLS data plane. Node A and D are
headend and tailend nodes of each other, and SRv6 policy is created
on A and D respectively.
SID-B1 SID-B2 SID-C1 SID-C2
+--------B-----------------C-----------+
SID-A1/ \ SID-D1
/ \
A D
\ /
SID-A2\ SID-E1 SID-E2 /SID-D2
+-------------------E-------------------+
Figure 1
Assuming that the deployed SRv6 policy has one candidate path and
each path has two segment lists.
Node A: Node D:
SR Policy A-D SR Policy D-A
Candidate Path1 Candidate Path2
Segment list1-1 Segment list2-1
SID-A1, SID-B2, SID-C2 SID-D1, SID-C1, SID-B1
Segment list1-2 Segment list2-1
SID-A2, SID-E2 SID-D2, SID-E1
List1-1 and List2-1 correspond to a forward and reverse SR
forwarding path between node A and node D. List2-1 and List2-2 also
correspond to another forward and reverse forwarding path between
node A and node D.
Both Node A and Node D serve as head nodes and need to detect the
connectivity of the segment list of a SRv6 policy.
When node A is the Ping detection initiator, Ping detection
instances for segment list1 and segment list2 will be created
respectively. Node A uses the associated segment list to encapsulate
IPv6 header and SRH of the ICMPV6 Echo Request messages.
Gong, et al. Expires July, 2024 [Page 4]
Internet-Draft SRv6 Ping Path Consistency January 2024
After Node D receives an ICMPV6 Echo Request message to its local
address (or SID), the ICMPV6 Echo Reply message should be able to
return along the same path to avoid the false detection of the Ping
instance caused by the inconsistency of the forward and reverse
paths.
The ICMPV6 Echo Request messages associated with the segment list1-1
is forwarded to node D according to the segment list1-1 of node A.
The corresponding ICMPV6 Echo Reply messages of node D need to be
sent to node A according to the segment list2-1 of node D. Thus, the
forward and reverse paths of ICMPV6 message are ensured to be
consistent.
3. Correlate Bidirectional Path Using Path Segment
This draft proposes a method to achieve consistency in the forward
and reverse paths of Ping detection packets using path segment.
A Path Segment is defined to identify an SR path. In SR for MPLS
data plane (SR-MPLS), Path Segment is defined in [I-D.ietf-spring-
mpls-path-segment]. In SR for IPv6 data plane (SRv6), Path Segment
is defined in [I-D.ietf-spring-srv6-path-segment].
Path segments can be used to correlate the two unidirectional SR
paths at both ends of the paths.
[I-D.ietf-idr-sr-policy-path-segment] proposes an extension to BGP
SR Policy distribute SR policies carrying Path Segment and
bidirectional path information.
Through this extension, when distributing SRv6 policy to the headend
node, reverse path information and path segment of segment list can
be carried together.
Gong, et al. Expires July, 2024 [Page 5]
Internet-Draft SRv6 Ping Path Consistency January 2024
Node A Node D
SR Policy A-D SR Policy D-A
Candidate Path1 Candidate Path2
Segment list1-1 Segment list2-1
SID-A1, SID-B2, SID-C2 SID-D1, SID-C1, SID-B1
Path Segment: SID-Path-1 Path Segment: SID-Path-2
Reverse Path Segment: Reverse Path Segment:
SID-Path-2 SID-Path-1
Segment list1-2 Segment list2-2
SID-A2, SID-E2 SID-D2, SID-E1
Path Segment: SID-Path-3 Path Segment: SID-Path-4
Reverse Path Segment: Reverse Path Segment:
SID-Path-4 SID-Path-3
In this way, on the headend node in both directions of the forward
and reverse paths, the path segment of the paths in both directions
can be obtained, and the paths in both directions use the same
intermediate links.
The headend node can use path segment in two directions to establish
a mapping table. Using this mapping table, the headend node can get
the reverse path through the path segment of the forward path.
The mapping table of Node A and Node D is shown below:
Node A:
+-----------------+ +--------------------+
| Path Segment | |Reverse Path Segment|
+-----------------+ +--------------------+
| SID-Path-1 |-+ | SID-Path-2 |--+
+-----------------+ | +--------------------+ |
| SID-Path-3 | | | SID-Path-4 |--|-+
+-----------------+ | +--------------------+ | |
| | | |
| | +-----------------------+ | |
| | | segment List | | |
| | +-----------------------+ | |
| +->|SID-A1, SID-B2, SID-C2 |<----+ |
| +-----------------------+ |
+-------------->|SID-A2, SID-E2 |<------+
+-----------------------+
Figure 2: Mapping Table on Node A
Gong, et al. Expires July, 2024 [Page 6]
Internet-Draft SRv6 Ping Path Consistency January 2024
Node D:
+-----------------+ +--------------------+
| Path Segment | |Reverse Path Segment|
+-----------------+ +--------------------+
| SID-Path-2 |-+ | SID-Path-1 |--+
+-----------------+ | +--------------------+ |
| SID-Path-4 | | | SID-Path-3 |--|-+
+-----------------+ | +--------------------+ | |
| | | |
| | +-----------------------+ | |
| | | segment List | | |
| | +-----------------------+ | |
| +->|SID-D1, SID-C1, SID-B1 |<----+ |
| +-----------------------+ |
+-------------->|SID-D2, SID-E1 |<------+
+-----------------------+
Figure 3: Mapping Table on Node D
For instance, the Ping detection initiator is Node A in Figure 1,
and the Ping detection instance is bounded with Segment List1-1 of
Policy A-D.
3.1. procedure of Ping Detection Initiator
When path segment is used, the encapsulation format of ICMPV6 Echo
Request message from Node A to Node D is as follows:
+-----------------------------------------------+
| IPv6 Header |
. Source IP Address = Initiator's IPv6 Address .
. Destination IP Address = SegmentList[SL] .
. Next-Header = SRH (43) .
. .
+-----------------------------------------------+
| SRH as specified in RFC 8754 |
. Next-Header = ICMPv6 .
. <P-Flag=1, PathSegment, Segment List> .
. .
+-----------------------------------------------+
| |
. ICMPv6 Echo Request .
| |
+-----------------------------------------------+
Figure 4: ICMPv6 Echo Request Message Format
Node A Encapsulates the path segment of segment list1-1 in SRH and
sets SRH.P-Flag.
Gong, et al. Expires July, 2024 [Page 7]
Internet-Draft SRv6 Ping Path Consistency January 2024
The ICMPv6 Echo Request message is encapsulated and forwarded as
follows:
A------------->B------------>C---------->D
+-----------------+ +-----------------+
| SA=A's Ipv6Addr | | SA=A's Ipv6Addr |
+-----------------+ +-----------------+
| DA=SID-B1 | | DA=D's ipv6Addr |
+-----------------+ +-----------------+
| SL=2 | P-Flag=1 | | SL=0 | P-Flag=1 |
+-----------------+ +-----------------+
| D's ipv6Addr | | D's ipv6Addr |
+-----------------+ +-----------------+
| SID-C2 | | SID-C2 |
+-----------------+ +-----------------+
| SID-B2 | | SID-B2 |
+-----------------+ +-----------------+
| SID-A1 | | SID-A1 |
+-----------------+ +-----------------+
| SID-Path-1 | | SID-Path-1 |
+-----------------+ +-----------------+
| ICMPv6 Echo | | ICMPv6 Echo |
| Request | | Request |
+-----------------+ +-----------------+
Figure 5: Example of ICMPv6 Echo Request Message
3.2. Procedure of Ping's destination Node
ICMPv6 Echo Request message is forwarded along the path A->B->C-D.
While packet arrives at Node D, SRH.SL is 0 and the destination
address is IPv6 address of Node D. Packet is delivered up to control
plane.
Control plane detects SRH.P-flag is set, extracts the path segment
of the forward path from SRH, gets the path segment of the reverse
path through the mapping table. Then use the segment list associated
with path segment of the reverse path to encapsulate SRH of ICMPv6
Echo Reply message.
The encapsulation format of ICMPv6 Echo Reply message is as follows:
Gong, et al. Expires July, 2024 [Page 8]
Internet-Draft SRv6 Ping Path Consistency January 2024
+------------------------------------------------------+
| IPv6 Header |
. Source IP Address = Ping Destination's IPv6 Address .
. Destination IP Address = SegmentList[SL] .
. Next-Header = SRH (43) .
. .
+------------------------------------------------------+
| SRH as specified in RFC 8754 |
. Next-Header = ICMPv6 .
. <Segment List> .
. .
+------------------------------------------------------+
| |
. ICMPv6 Echo Reply .
| |
+------------------------------------------------------+
Figure 6: ICMPv6 Echo Reply Message Format
The ICMPv6 Echo Reply message is encapsulated and forwarded as
follows:
D------------->C------------>B---------->A
+-----------------+ +-----------------+
| SA=D's IPv6Addr | | SA=D's IPv6Addr |
+-----------------+ +-----------------+
| DA=SID-C1 | | DA=A's IPv6Addr |
+-----------------+ +-----------------+
| SL=2 | P-Flag=0 | | SL=0 | P-Flag=0 |
+-----------------+ +-----------------+
| A's ipv6Addr | | A's ipv6Addr |
+-----------------+ +-----------------+
| SID-B1 | | SID-B1 |
+-----------------+ +-----------------+
| SID-C1 | | SID-C1 |
+-----------------+ +-----------------+
| SID-D1 | | SID-D1 |
+-----------------+ +-----------------+
| ICMPv6 Echo | | ICMPv6 Echo |
| Reply | | Reply |
+-----------------+ +-----------------+
Figure 7: Example of ICMPv6 Echo Reply Message
The ICMPv6 Echo Reply message will be forward along the path D->C-
>B->A. In this way, the forward and reverse paths of ICMPV6 packets
are guaranteed to be consistent.
Gong, et al. Expires July, 2024 [Page 9]
Internet-Draft SRv6 Ping Path Consistency January 2024
4. IANA Considerations
This document has no IANA actions.
5. Security Considerations
The security requirements and mechanisms described in [RFC8402] and
[RFC8754] also apply to this document.
This document does not introduce any new security consideration.
6. References
6.1. Normative References
[I-D.ietf-idr-segment-routing-te-policy] Previdi, S., Filsfils, C.,
Talaulikar, K., Mattes, P., Jain, D., and S. Lin,
"Advertising Segment Routing Policies in BGP", draft-ietf-
idr-segment-routing-te-policy-20 (work in progress), July
2022
[I-D.ietf-spring-mpls-path-segment] Cheng, W., Li, H., Chen, M.,
Gandhi, R., and R. Zigler, "Path Segment in MPLS Based
Segment Routing Network",draft-ietf-spring-mpls-path-
segment-08 (work in progress), September 2022.
[I-D.ietf-spring-srv6-path-segment] Li, C., Cheng, W., Chen, M.,
Dhody, D., and Zhu, Y., "Path Segment for SRv6 (Segment
Routing in IPv6)", draft-ietf-spring-srv6-path-segment-06
(work in progress), May 2023.
[I-D.ietf-idr-sr-policy-path-segment] Li, C., Li, Z., Yin, Y.,
Cheng, W., Talaulikar, K., "SR Policy Extensions for Path
Segment and Bidirectional Path", draft-ietf-idr-sr-policy-
path-segment-07(work in progress), February 2023.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, DOI
10.17487/RFC2119, March 1997, <https://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/RFC8174,
May 2017, <https://www.rfc-editor.org/info/rfc8174>.
Gong, et al. Expires July, 2024 [Page 10]
Internet-Draft SRv6 Ping Path Consistency January 2024
[RFC8402] Filsfils, C., Ed., Previdi, S., Ed., Ginsberg,
L.,Decraene, B., Litkowski, S., and R. Shakir, "Segment
Routing Architecture", RFC 8402, DOI 10.17487/RFC8402,July
2018, <https://www.rfc-editor.org/info/rfc8402>.
[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/RFC8754, March 2020,
<https://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
0.17487/RFC8986, February 2021, <https://www.rfc-
editor.org/info/rfc8986>.
Gong, et al. Expires July, 2024 [Page 11]
Internet-Draft SRv6 Ping Path Consistency January 2024
Authors' Addresses
Liyan Gong
China Mobile
China
Email: gongliyan@chinamobile.com
Changwang Lin
New H3C Technologies
China
Email: linchangwang.04414@h3c.com
Yuanxiang Qiu
New H3C Technologies
China
Email: qiuyuanxiang@h3c.com
Gong, et al. Expires July, 2024 [Page 12]