SRv6 inter-domain mapping SIDs
draft-salih-spring-srv6-inter-domain-sids-01
The information below is for an old version of the document.
| Document | Type | Active Internet-Draft (individual) | |
|---|---|---|---|
| Authors | Salih , Shraddha Hegde , Rejesh Shetty , Ron Bonica , Haibo Wang , Shaofu Peng | ||
| Last updated | 2022-01-09 (Latest revision 2021-07-10) | ||
| Stream | (None) | ||
| Formats | plain text html xml htmlized pdfized bibtex | ||
| Stream | Stream state | (No stream defined) | |
| Consensus boilerplate | Unknown | ||
| RFC Editor Note | (None) | ||
| IESG | IESG state | I-D Exists | |
| Telechat date | (None) | ||
| Responsible AD | (None) | ||
| Send notices to | (None) |
draft-salih-spring-srv6-inter-domain-sids-01
SPRING Working Group K. Salih
Internet-Draft S. Hegde
Intended status: Standards Track M. Rajesh
Expires: 13 July 2022 R. Bonica
Juniper Networks
H. wang
Huawei Technologies
P. Shaofu
ZTE Corporation
9 January 2022
SRv6 inter-domain mapping SIDs
draft-salih-spring-srv6-inter-domain-sids-01
Abstract
This document describes three new SRv6 end point behaviors, named
END.REPLACE, END.REPLACEB6 and END.DB6. These SIDs are used in
distributed inter-domain solutions for connecting SRv6 domains. This
behavior is normally executed on border routers between different
domains. These SIDs can also be used to provide multiple intent
based paths across these domains.
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). 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
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."
This Internet-Draft will expire on 13 July 2022.
Copyright Notice
Copyright (c) 2022 IETF Trust and the persons identified as the
document authors. All rights reserved.
Salih, et al. Expires 13 July 2022 [Page 1]
Internet-Draft SRv6 interdomain SIDs January 2022
This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents (https://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 Revised BSD License text as
described in Section 4.e of the Trust Legal Provisions and are
provided without warranty as described in the Revised BSD License.
Table of Contents
1. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . 2
2. Requirements Language . . . . . . . . . . . . . . . . . . . . 3
3. Usecases . . . . . . . . . . . . . . . . . . . . . . . . . . 3
3.1. usecase 1 . . . . . . . . . . . . . . . . . . . . . . . . 3
3.2. usecase 2 . . . . . . . . . . . . . . . . . . . . . . . . 3
4. SRv6 SID behaviors . . . . . . . . . . . . . . . . . . . . . 4
4.1. END.REPLACE . . . . . . . . . . . . . . . . . . . . . . . 4
4.2. END.REPLACEB6 . . . . . . . . . . . . . . . . . . . . . . 5
4.3. END.DB6 . . . . . . . . . . . . . . . . . . . . . . . . . 6
5. Interworking Procedures . . . . . . . . . . . . . . . . . . . 7
5.1. Option C transport interworking . . . . . . . . . . . . . 7
5.2. Option B service interworking . . . . . . . . . . . . . . 10
6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 11
7. Security Considerations . . . . . . . . . . . . . . . . . . . 11
8. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 11
9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 12
10. References . . . . . . . . . . . . . . . . . . . . . . . . . 12
10.1. Normative References . . . . . . . . . . . . . . . . . . 12
10.2. Informative References . . . . . . . . . . . . . . . . . 12
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 13
1. Overview
Segment Routing (SR) [RFC8402] allows source nodes to steer packets
through SR paths. It can be implemented over IPv6 [RFC8200] or MPLS
[RFC3031]. When SR is implemented over IPv6, it is called SRv6
[RFC8986].
This document describes three new SRv6 endpoint behaviors, named
END.REPLACE, END.REPLACEB6 and END.DB6. These SIDs help in building
paths over different SRv6 domans in a distributed manner. These
extensions will aid in end to end SRv6 intent based path stitching as
well.
Salih, et al. Expires 13 July 2022 [Page 2]
Internet-Draft SRv6 interdomain SIDs January 2022
2. 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.
3. Usecases
The document [I-D.hegde-spring-mpls-seamless-sr] describes different
models of topology applicable for the use-cases mentioned in this
document.
3.1. usecase 1
This requirement is mentioned in the document
[I-D.hegde-spring-mpls-seamless-sr] under the section 4.1.1.
---IBGP------EBGP----IBGP------EBGP-----IBGP---
| | | | | |
+-----------+ +-----------+ +-----------+
| | | | | |
| ASBR1+--+ASBR2 ASBR3+--+ASBR4 |
PE1+ AS1 | X | AS2 | X | AS3 +PE2
| ASBR5+--+ASBR6 ASBR7+--+ASBR8 |
| | | | | |
+-----+-----+ +-----------+ +-----------+
PE3
|---SRv6---| |---SRv6---| |---SRv6---|
Figure 1: Multiple ASes connected with E-BGP
The above diagram Figure 1 has three different ASes (AS1, AS2 and
AS3). All the three domains are having SRv6. BGP is used for
getting option C [RFC4364] style connectivity end to end from PE1 to
PE2.
3.2. usecase 2
Salih, et al. Expires 13 July 2022 [Page 3]
Internet-Draft SRv6 interdomain SIDs January 2022
+-----------+ +------------+
/ \ / \
| ABR1 |
| | |
PE1+ AS1 + AS2 +PE2
| | |
| ABR2 |
\ /\ /
+------------+ +-----------+
Figure 2: Multiple ASes with different IGP domains
The above diagram Figure 2 shows two different SRv6 domains, AS1 and
AS2. Services are running between PE1 and PE2 in option B [RFC4364]
style. The requirement here is to avoid service route lookup on ABR1
and ABR2 to provide option B style end to end connectivity.
4. SRv6 SID behaviors
Here we will describe the new SRv6 SID behaviors
4.1. END.REPLACE
For the use-case mentioned under Section 3.1 END.REPLACE SID is
applicable
The End.REPLACE SID cannot be the last segment in SRH or SR Policy.
Any SID instance of this behavior is associated with a set, J, of one
or more L3 adjacencies of immediate BGP neighbors
When Node N receives a packet destined to S and S is a locally
instantiated End.REPLACE SID, Node N executes the following
procedure:
Salih, et al. Expires 13 July 2022 [Page 4]
Internet-Draft SRv6 interdomain SIDs January 2022
S01. When an SRH is processed {
S02. If (Segments Left == 0) {
S03. Send an ICMP Parameter Problem to the Source Address
with Code 0 (Erroneous header field encountered)
and Pointer set to the Segments Left field,
interrupt packet processing, and discard the packet.
S04. }
S05. If (IPv6 Hop Limit <= 1) {
S06. Send an ICMP Time Exceeded message to the Source Address with Code 0
(Hop limit exceeded in transit), interrupt packet processing, and discard packet
S07. }
S08. Decrement IPv6 Hop Limit by 1
S09. Update IPv6 DA with new destination address(SID) mapped with END.REPLACE SID.
S10. Submit the packet to the IPv6 module for transmission
to the new destination via a member of J.
S11. }
4.2. END.REPLACEB6
For the use-case mentioned under Section 3.1 END.REPLACEB6 SID is
applicable
The End.REPLACEB6 SID cannot be the last segment in a SRH or SR
Policy.
Node N is configured with an IPv6 address T (e.g., assigned to its
loopback).
When Node N receives a packet destined to S and S is a locally
instantiated End.REPLACEB6 SID, Node N executes the following
procedure:
Salih, et al. Expires 13 July 2022 [Page 5]
Internet-Draft SRv6 interdomain SIDs January 2022
S01. When an SRH is processed {
S02. If (Segments Left == 0) {
S03. Send an ICMP Parameter Problem to the Source Address
with Code 0 (Erroneous header field encountered)
and Pointer set to the Segments Left field,
interrupt packet processing, and discard the packet.
S04. }
S05. If (IPv6 Hop Limit <= 1) {
S06. Send an ICMP Time Exceeded message to the Source Address with Code 0
(Hop limit exceeded in transit), interrupt packet processing, and discard packet
S07. }
S08. Decrement IPv6 Hop Limit by 1
S09. Update IPv6 DA with new destination address(SID) mapped with END.REPLACEB6.
S10. Push an IPv6 header with an SRH.
S11. Set outer IPv6 SA = T and outer IPv6 DA to the first SID in the segment list
S12. Set outer Payload Length, Traffic Class, Hop Limit, and Flow Label fields
S13. Set the outer Next Header value
S14. Submit the packet to the IPv6 module for transmission to the First SID.
S15. }
4.3. END.DB6
For the use-case mentioned under Section 3.2 END.DB6 SID is
applicable.
The End.DB6 SID MUST be the last segment in SRH or SR Policy.
Node N is configured with an IPv6 address T (e.g., assigned to its
loopback).
When Node N receives a packet destined to S and S is a locally
instantiated End.DB6 SID, Node N executes the following procedure:
Salih, et al. Expires 13 July 2022 [Page 6]
Internet-Draft SRv6 interdomain SIDs January 2022
S01. When an SRH is processed {
S02. If (Segments Left != 0) {
S03. Send an ICMP Parameter Problem to the Source Address,
Code 0 (Erroneous header field encountered),
Pointer set to the Segments Left field,
interrupt packet processing and discard the packet.
S04. }
S05. Remove the outer IPv6 header with all its extension headers.
S06. Push the new IPv6 header with the SRv6 SIDs associated with the
END.DB6 sid in an SRH.
S07. Set outer IPv6 SA = T and outer IPv6 DA to the first SID in the segment list.
S08. Set outer Payload Length, Traffic Class, Hop Limit, and Flow Label fields
S09. Set the outer Next Header value
S10. Submit the packet to the IPv6 module for transmission to First SID.
S11. }
5. Interworking Procedures
Here we will describe the control plane and data plane procedures by
taking examples.
Node n has a classic IPv6 loopback address An::1/128. One of the SID
at node n with locator block B and function F is represented by
B:n:F::sid_num.
A SID list is represented as
<S1, S2, S3>
where S1 is the first SID to visit, S2 is the second SID to visit and
S3 is the last SID to visit along the SR path.
5.1. Option C transport interworking
Here we will discuss the use-case mentioned under Section 3.1
Salih, et al. Expires 13 July 2022 [Page 7]
Internet-Draft SRv6 interdomain SIDs January 2022
---IBGP----------EBGP--------IBGP--------EBGP-------IBGP-------
| | | | | |
+-----[2]------+ +-----[8]-----+ +------[14]-----+
| | | | | |
| [4] +---+ [6] [10]+----+[12] |
[1] AS1 | X | AS2 | X | AS3 [16]
| [5] +---+ [7] [11]+----+[13] |
| | | | | |
+-----[3]-----+ +-----[9]-----+ +------[15]-----+
PE3
|---SRv6---| |---SRv6---| |---SRv6---|
Figure 3: Option C Style Interworking
Node [1] acts as ingress PE and Node [16] acts as egress PE.
Nodes [2], [3], [8], [9], [14] and [15] are P routers.
Nodes [4], [5], [6], [7], [10], [11], [12] and [13] are ASBR routers.
A VPN route is advertised via service RRs between an egress PE(node
16) and an ingress PE (node 1). The example below shows IBGP-CT
connection between border routers in each domain and single hop EBGP-
CT for inter-domain connections. However the forwarding procedure
for the sids remains the same irrespective of the the various inter-
domain protocol extensions used to advertise the sids. AS1, AS2 and
AS3 has SRTE policy for the required intent paths.
Salih, et al. Expires 13 July 2022 [Page 8]
Internet-Draft SRv6 interdomain SIDs January 2022
Control plane example:
For simplicity only one path is tracked.
For a route if the next hop is one hop away then while advertising use END.REPLACE SID. For a route if the
next hop is multi hop away then while advertising use END.REPLACEB6 SID. For single hop neighbor case, no encap
required as it is just replace and forward on specific link while in multihop case one encap will be required.
Routing Protocol(RP) @16:
* In ISIS advertise locator B:16::/48 and an END SID B:16::END::1.
* BGP AFI=1,SAFI=128 originates a VPN route RD:V/v via A:16::1 and Prefix-SID attribute B:16:DT4::1.
This route is advertised to service RR with color extended community red.
* BGP originates prefix A:16::1 with color red to ASBR [12] with SRv6 SID B:16:END::1 since its the egress node.
RP @12:
* BGP receives the route A:16::1 over the ibgp session and readvertises with nexthop self to ASBR [10].
it advertises the SRv6 SID B:12:REPLACEB6::1 in the protocol extensions. As the advertisement was received on a
multihop i-bgp session this node allocates a REPLACEB6 sid.
RP @10:
* BGP receives the route A:16::1 over the ebgp session and readvertises with nexthop self to ASBR [6].
it advertises the SRv6 SID B:10:REPLACE::1 in the protocol extensions. As the advertisement was received on a
single hop e-bgp session this node allocates a REPLACE sid.
RP @6:
* BGP receives the route A:16::1 over the ibgp session and readvertises with nexthop self to ASBR [4].
it advertises the SRv6 SID B:6:REPLACEB6::1 in the protocol extensions. As the advertisement was received on a
multihop i-bgp session this node allocates a REPLACEB6 sid.
RP @4:
* BGP receives the route A:16::1 over the ebgp session and readvertises with nexthop self to PE [1].
it advertises the SRv6 SID B:4:REPLACE::1 in the protocol extensions. As the advertisement was received on a
single hop e-bgp session this node allocates a REPLACE sid.
RP @1:
* BGP receives the route A:16::1 with color red over the ibgp session.
* BGP AFI=1, SAFI=128 learn service prefix RD:V/v, next hop A:16::1 and PrefixSID attribute TLV type 5
with SRv6 SID B:16:DT4
Salih, et al. Expires 13 July 2022 [Page 9]
Internet-Draft SRv6 interdomain SIDs January 2022
FIB State:
@1: IPv4 VRF V/v => H.Encaps.red <B:2:END::1, B:4:REPLACE::1, B:16:DT4::1> with SRH, SRH NextHeader=IPv4 where the first
sid B:2:END::1 belongs to the SR-policy in AS1.
@2: IPv6 Table: B:2:END::1 => Update DA with B:4:REPLACE::1, decrement SL and forward towards the ASBR [4].
@4: IPv6 Table: B:4:REPLACE::1 => Update DA with B:6:REPLACEB6::1 and forward on the interface/interfaces identified by the
ebgp neigbhor; the SL remains at 1.
@6: IPv6 Table: B:6:REPLACEB6::1 => Update DA with B:10:REPLACE::1 AND do a fresh H.Encaps.red <B:8:END::1, B:10:END::1>
with SRH where the new SRH SIDs belong to SR policy in AS2.
@8: IPv6 Table: B:8:END::1 => Update outer IPv6 packet DA with B:10:END::1 and forward towards ASBR [10]
@10: IPv6 table: B:10:END::1 => Decap Outer IPv6 header and lookup next IPv6 DA B:10:REPLACE::1 => Update DA to B:12:REPLACEB6::1
and forward on the interface/interfaces identified by the ebgp neigbour. SL remains at 1.
@12: IPv6 Table B:12:REPLACEB6::1 => Update DA with B:16:END::1 and do a fresh H.Encaps.red <B:15:END::1, B:16:END::1> with SRH
where the new SIDs belong to the SR policy in AS3.
@15: IPv6 Table B:15:END::1 => Update outer IPv6 packet DA with B:16:END::1 and forward towards [16].
@16: IPv6 Table B:16:END::1 => Decap the outer header and lookup the inner DA which results in B:16:DT4::1 lookup. DT4 lookup
results in Decap and inner IPv4 packet DA lookup in the corresponding VRF.
Note: At [16] its possible to optimize the lookups required with minor control plane extensions.
5.2. Option B service interworking
Here we will discuss the use-case mentioned under Section 3.2
---MP-IBGP/---- ---MP-IBGP/--
| EBGP | EBGP |
+-----[2]------+-----[5]-----+
| | |
| | |
[1] AS1 [4] AS2 [7]
| | |
| | |
+-----[3]------+-----[6]----+
|---SRv6---| |---SRv6---|
Figure 4: Option B style Service Interworking
Nodes [1] and [7] are PE routers. Node [4] is an option B style
configured ASBR/RR.
Salih, et al. Expires 13 July 2022 [Page 10]
Internet-Draft SRv6 interdomain SIDs January 2022
Control Plane example:
Routing Protocol(RP) @7:
* BGP AFI=1,SAFI=128 originates a VPN route RD:V/v via A:7::1 and Prefix-SID
attribute B:7:DT4::1. This route is advertised to service RR [4].
RP @4:
* BGP receives the route over MP-IBGP/MP-EBGP session and readvertises with nexthop self to PE [1].
it advertises the SRv6 SID B:4:DB6::1 in the Prefix-SID attribute TLV along with it. For all prefixes
having SRv6 service SID B:7:DT4::1; the same DB6 SID B:4:DB6::1 will be reused. if a different service sid
B:7:DT4::2 comes then a different DB6 SID B:4:DB6::2 will be allocated. This ensures that if the egress allocates
per CE sid; the translation at border also ensure per CE sid.
RP @1:
* BGP AFI=1, SAFI=128 learn service prefix RD:V/v, next hop A:4::1 and PrefixSID attribute TLV type 5
with SRv6 SID B:4:DB6::1
FIB State:
@1: IPv4 VRF V/v => H.Encaps.red <B:4:DB6::1> with SRH, SRH NextHeader=IPv4 where the first sid belongs to the SR-policy in AS1
@4: IPv6 Table: B:4:DB6::1 => Decapsulate the incoming IPv6 header and H.Encaps <B:7:DT4::1>
@7: IPv6 Table: B:7:DT4::1 => Decapsulate the header and lookup the inner IPv4 packet DA in the VRF
6. IANA Considerations
This document requires no IANA action.
The authors will request an early allocation from the "SRv6 Endpoint
Behaviors" sub-registry of the "Segment Routing Parameters" registry.
7. Security Considerations
Because SR inter-working requires co-operation between inter-working
domains, this document introduces no security consideration beyond
those addressed in [RFC8402], [RFC8754] and [RFC8986].
8. Contributors
Jie Dong
Huawei Technologies
Email: jie.dong@huawei.com
Swamy SRK
Juniper Networks
Email: swamys@juniper.net
G. Sri Karthik Goud
Juniper Networks
Email: gkarthik@juniper.net
Salih, et al. Expires 13 July 2022 [Page 11]
Internet-Draft SRv6 interdomain SIDs January 2022
9. Acknowledgements
Thanks to Ram Santhanakrishnan, Srihari Sangli, Rajendra Prasad
Bollam and Kiran Kushalad for their valuable comments.
10. References
10.1. Normative References
[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>.
[RFC4364] Rosen, E. and Y. Rekhter, "BGP/MPLS IP Virtual Private
Networks (VPNs)", RFC 4364, DOI 10.17487/RFC4364, February
2006, <https://www.rfc-editor.org/info/rfc4364>.
[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>.
[RFC8200] Deering, S. and R. Hinden, "Internet Protocol, Version 6
(IPv6) Specification", STD 86, RFC 8200,
DOI 10.17487/RFC8200, July 2017,
<https://www.rfc-editor.org/info/rfc8200>.
[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 10.17487/RFC8986, February 2021,
<https://www.rfc-editor.org/info/rfc8986>.
10.2. Informative References
[I-D.hegde-spring-mpls-seamless-sr]
Hegde, S., Bowers, C., Xu, X., Gulko, A., Bogdanov, A.,
Uttaro, J., Jalil, L., Khaddam, M., Alston, A., and L. M.
Salih, et al. Expires 13 July 2022 [Page 12]
Internet-Draft SRv6 interdomain SIDs January 2022
Contreras, "Seamless SR Problem Statement", Work in
Progress, Internet-Draft, draft-hegde-spring-mpls-
seamless-sr-06, 24 September 2021,
<https://www.ietf.org/archive/id/draft-hegde-spring-mpls-
seamless-sr-06.txt>.
[RFC3031] Rosen, E., Viswanathan, A., and R. Callon, "Multiprotocol
Label Switching Architecture", RFC 3031,
DOI 10.17487/RFC3031, January 2001,
<https://www.rfc-editor.org/info/rfc3031>.
Authors' Addresses
Salih K A
Juniper Networks
Embassy Business Park
Bangalore 560093
KA
India
Email: salih@juniper.net
Shraddha Hegde
Juniper Networks
Embassy Business Park
Bangalore 560093
KA
India
Email: shraddha@juniper.net
Rajesh
Juniper Networks
Embassy Business Park
Bangalore 560093
KA
India
Email: mrajesh@juniper.net
Ron Bonica
Juniper Networks
Herndon, Virginia 20171
United States of America
Salih, et al. Expires 13 July 2022 [Page 13]
Internet-Draft SRv6 interdomain SIDs January 2022
Email: rbonica@juniper.net
Haibo Wang
Huawei Technologies
Huawei Campus, No. 156 Beiqing Road
Beijing
100095
China
Email: rainsword.wang@huawei.com
Peng Shaofu
ZTE Corporation
Email: peng.shaofu@zte.com.cn
Salih, et al. Expires 13 July 2022 [Page 14]