idnits 2.17.1 draft-salih-spring-srv6-inter-domain-sids-00.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- ** There are 16 instances of too long lines in the document, the longest one being 21 characters in excess of 72. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year -- The document date (July 10, 2021) is 1021 days in the past. Is this intentional? Checking references for intended status: Proposed Standard ---------------------------------------------------------------------------- (See RFCs 3967 and 4897 for information about using normative references to lower-maturity documents in RFCs) == Outdated reference: A later version (-07) exists of draft-hegde-spring-mpls-seamless-sr-05 Summary: 1 error (**), 0 flaws (~~), 2 warnings (==), 1 comment (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 SPRING Working Group K. Salih 3 Internet-Draft S. Hegde 4 Intended status: Standards Track M. Rajesh 5 Expires: January 11, 2022 R. Bonica 6 Juniper Networks 7 July 10, 2021 9 SRv6 inter-domain mapping SIDs 10 draft-salih-spring-srv6-inter-domain-sids-00 12 Abstract 14 This document describes three new SRv6 end point behaviors, named 15 END.REPLACE, END.REPLACEB6 and END.DB6. These SIDs are used in 16 distributed inter-domain solutions for connecting SRv6 domains. This 17 behavior is normally executed on border routers between different 18 domains. These SIDs can also be used to provide multiple intent 19 based paths across these domains. 21 Status of This Memo 23 This Internet-Draft is submitted in full conformance with the 24 provisions of BCP 78 and BCP 79. 26 Internet-Drafts are working documents of the Internet Engineering 27 Task Force (IETF). Note that other groups may also distribute 28 working documents as Internet-Drafts. The list of current Internet- 29 Drafts is at https://datatracker.ietf.org/drafts/current/. 31 Internet-Drafts are draft documents valid for a maximum of six months 32 and may be updated, replaced, or obsoleted by other documents at any 33 time. It is inappropriate to use Internet-Drafts as reference 34 material or to cite them other than as "work in progress." 36 This Internet-Draft will expire on January 11, 2022. 38 Copyright Notice 40 Copyright (c) 2021 IETF Trust and the persons identified as the 41 document authors. All rights reserved. 43 This document is subject to BCP 78 and the IETF Trust's Legal 44 Provisions Relating to IETF Documents 45 (https://trustee.ietf.org/license-info) in effect on the date of 46 publication of this document. Please review these documents 47 carefully, as they describe your rights and restrictions with respect 48 to this document. Code Components extracted from this document must 49 include Simplified BSD License text as described in Section 4.e of 50 the Trust Legal Provisions and are provided without warranty as 51 described in the Simplified BSD License. 53 Table of Contents 55 1. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . 2 56 2. Requirements Language . . . . . . . . . . . . . . . . . . . . 2 57 3. Usecases . . . . . . . . . . . . . . . . . . . . . . . . . . 3 58 3.1. usecase 1 . . . . . . . . . . . . . . . . . . . . . . . . 3 59 3.2. usecase 2 . . . . . . . . . . . . . . . . . . . . . . . . 3 60 4. SRv6 SID behaviors . . . . . . . . . . . . . . . . . . . . . 4 61 4.1. END.REPLACE . . . . . . . . . . . . . . . . . . . . . . . 4 62 4.2. END.REPLACEB6 . . . . . . . . . . . . . . . . . . . . . . 5 63 4.3. END.DB6 . . . . . . . . . . . . . . . . . . . . . . . . . 6 64 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 7 65 6. Security Considerations . . . . . . . . . . . . . . . . . . . 7 66 7. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 7 67 8. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 7 68 9. References . . . . . . . . . . . . . . . . . . . . . . . . . 7 69 9.1. Normative References . . . . . . . . . . . . . . . . . . 7 70 9.2. Informative References . . . . . . . . . . . . . . . . . 8 71 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 8 73 1. Overview 75 Segment Routing (SR) [RFC8402] allows source nodes to steer packets 76 through SR paths. It can be implemented over IPv6 [RFC8200] or MPLS 77 [RFC3031]. When SR is implemented over IPv6, it is called SRv6 78 [RFC8986]. 80 This document describes three new SRv6 endpoint behaviors, named 81 END.REPLACE, END.REPLACEB6 and END.DB6. These SIDs help in building 82 paths over different SRv6 domans in a distributed manner. These 83 extensions will aid in end to end SRv6 intent based path stitching as 84 well. 86 2. Requirements Language 88 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 89 "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and 90 "OPTIONAL" in this document are to be interpreted as described in BCP 91 14 [RFC2119] [RFC8174] when, and only when, they appear in all 92 capitals, as shown here. 94 3. Usecases 96 The document [I-D.hegde-spring-mpls-seamless-sr] describes different 97 models of topology applicable for the use-cases mentioned in this 98 document. 100 3.1. usecase 1 102 This requirement is mentioned in the document 103 [I-D.hegde-spring-mpls-seamless-sr] under the section 4.1.1. 105 ---IBGP------EBGP----IBGP------EBGP-----IBGP--- 106 | | | | | | 108 +-----------+ +-----------+ +-----------+ 109 | | | | | | 110 | ASBR1+--+ASBR2 ASBR3+--+ASBR4 | 111 PE1+ AS1 | X | AS2 | X | AS3 +PE2 112 | ASBR5+--+ASBR6 ASBR7+--+ASBR8 | 113 | | | | | | 114 +-----+-----+ +-----------+ +-----------+ 115 PE3 117 |---SRv6---| |---SRv6---| |---SRv6---| 119 Figure 1: Multiple ASes connected with E-BGP 121 The above diagram Figure 1 has three different ASes (AS1, AS2 and 122 AS3). All the three domains are having SRv6. BGP is used for 123 getting option C [RFC4364] style connectivity end to end from PE1 to 124 PE2. 126 3.2. usecase 2 127 +-----------+ +------------+ 128 / \ / \ 129 | ABR1 | 130 | | | 131 PE1+ AS1 + AS2 +PE2 132 | | | 133 | ABR2 | 134 \ /\ / 135 +------------+ +-----------+ 137 Figure 2: Single AS with Multiple IGP domains 139 The above diagram Figure 2 shows two different SRv6 domains, AS1 and 140 AS2. Services are running between PE1 and PE2 in option B [RFC4364] 141 style. The requirement here is to avoid service route lookup on ABR1 142 and ABR2 to provide option B style end to end connectivity. 144 4. SRv6 SID behaviors 146 Here we will describe the new SRv6 SID behaviors 148 4.1. END.REPLACE 150 For the use-case mentioned under Section 3.1 END.REPLACE SID is 151 applicable 153 The End.REPLACE SID cannot be the last segment in SRH or SR Policy. 155 Any SID instance of this behavior is associated with a set, J, of one 156 or more L3 adjacencies of immediate BGP neighbors 158 When Node N receives a packet destined to S and S is a locally 159 instantiated End.REPLACE SID, Node N executes the following 160 procedure: 162 S01. When an SRH is processed { 163 S02. If (Segments Left == 0) { 164 S03. Send an ICMP Parameter Problem to the Source Address 165 with Code 0 (Erroneous header field encountered) 166 and Pointer set to the Segments Left field, 167 interrupt packet processing, and discard the packet. 168 S04. } 169 S05. If (IPv6 Hop Limit <= 1) { 170 S06. Send an ICMP Time Exceeded message to the Source Address with Code 0 171 (Hop limit exceeded in transit), interrupt packet processing, and discard packet 172 S07. } 173 S08. Decrement IPv6 Hop Limit by 1 174 S09. Update IPv6 DA with new destination address(SID) mapped with END.REPLACE SID. 175 S10. Submit the packet to the IPv6 module for transmission 176 to the new destination via a member of J. 177 S11. } 179 4.2. END.REPLACEB6 181 For the use-case mentioned under Section 3.1 END.REPLACEB6 SID is 182 applicable 184 The End.REPLACEB6 SID cannot be the last segment in a SRH or SR 185 Policy. 187 Node N is configured with an IPv6 address T (e.g., assigned to its 188 loopback). 190 When Node N receives a packet destined to S and S is a locally 191 instantiated End.REPLACEB6 SID, Node N executes the following 192 procedure: 194 S01. When an SRH is processed { 195 S02. If (Segments Left == 0) { 196 S03. Send an ICMP Parameter Problem to the Source Address 197 with Code 0 (Erroneous header field encountered) 198 and Pointer set to the Segments Left field, 199 interrupt packet processing, and discard the packet. 200 S04. } 201 S05. If (IPv6 Hop Limit <= 1) { 202 S06. Send an ICMP Time Exceeded message to the Source Address with Code 0 203 (Hop limit exceeded in transit), interrupt packet processing, and discard packet 204 S07. } 205 S08. Decrement IPv6 Hop Limit by 1 206 S09. Update IPv6 DA with new destination address(SID) mapped with END.REPLACEB6. 207 S10. Push an IPv6 header with an SRH. 208 S11. Set outer IPv6 SA = T and outer IPv6 DA to the first SID in the segment list 209 S12. Set outer Payload Length, Traffic Class, Hop Limit, and Flow Label fields 210 S13. Set the outer Next Header value 211 S14. Submit the packet to the IPv6 module for transmission to the First SID. 212 S15. } 214 4.3. END.DB6 216 For the use-case mentioned under Section 3.2 END.DB6 SID is 217 applicable. 219 The End.DB6 SID MUST be the last segment in SRH or SR Policy. 221 Node N is configured with an IPv6 address T (e.g., assigned to its 222 loopback). 224 When Node N receives a packet destined to S and S is a locally 225 instantiated End.DB6 SID, Node N executes the following procedure: 227 S01. When an SRH is processed { 228 S02. If (Segments Left != 0) { 229 S03. Send an ICMP Parameter Problem to the Source Address, 230 Code 0 (Erroneous header field encountered), 231 Pointer set to the Segments Left field, 232 interrupt packet processing and discard the packet. 233 S04. } 234 S05. Remove the outer IPv6 header with all its extension headers. 235 S06. Push the new IPv6 header with the SRv6 SIDs associated with the 236 END.DB6 sid in an SRH. 237 S07. Set outer IPv6 SA = T and outer IPv6 DA to the first SID in the segment list. 238 S08. Set outer Payload Length, Traffic Class, Hop Limit, and Flow Label fields 239 S09. Set the outer Next Header value 240 S10. Submit the packet to the IPv6 module for transmission to First SID. 241 S11. } 243 5. IANA Considerations 245 This document requires no IANA action. 247 The authors will request an early allocation from the "SRv6 Endpoint 248 Behaviors" sub-registry of the "Segment Routing Parameters" registry. 250 6. Security Considerations 252 Because SR inter-working requires co-operation between inter-working 253 domains, this document introduces no security consideration beyond 254 those addressed in [RFC8402], [RFC8754] and [RFC8986]. 256 7. Contributors 258 Swamy SRK 259 Juniper Networks 260 Email: swamys@juniper.net 262 G. Sri Karthik Goud 263 Juniper Networks 264 Email: gkarthik@juniper.net 266 8. Acknowledgements 268 Thanks to Ram Santhanakrishnan, Srihari Sangli, Rajendra Prasad 269 Bollam and Kiran Kushalad for their valuable comments. 271 9. References 273 9.1. Normative References 275 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 276 Requirement Levels", BCP 14, RFC 2119, 277 DOI 10.17487/RFC2119, March 1997, 278 . 280 [RFC4364] Rosen, E. and Y. Rekhter, "BGP/MPLS IP Virtual Private 281 Networks (VPNs)", RFC 4364, DOI 10.17487/RFC4364, February 282 2006, . 284 [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 285 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, 286 May 2017, . 288 [RFC8200] Deering, S. and R. Hinden, "Internet Protocol, Version 6 289 (IPv6) Specification", STD 86, RFC 8200, 290 DOI 10.17487/RFC8200, July 2017, 291 . 293 [RFC8402] Filsfils, C., Ed., Previdi, S., Ed., Ginsberg, L., 294 Decraene, B., Litkowski, S., and R. Shakir, "Segment 295 Routing Architecture", RFC 8402, DOI 10.17487/RFC8402, 296 July 2018, . 298 [RFC8754] Filsfils, C., Ed., Dukes, D., Ed., Previdi, S., Leddy, J., 299 Matsushima, S., and D. Voyer, "IPv6 Segment Routing Header 300 (SRH)", RFC 8754, DOI 10.17487/RFC8754, March 2020, 301 . 303 [RFC8986] Filsfils, C., Ed., Camarillo, P., Ed., Leddy, J., Voyer, 304 D., Matsushima, S., and Z. Li, "Segment Routing over IPv6 305 (SRv6) Network Programming", RFC 8986, 306 DOI 10.17487/RFC8986, February 2021, 307 . 309 9.2. Informative References 311 [I-D.hegde-spring-mpls-seamless-sr] 312 Hegde, S., Bowers, C., Xu, X., Gulko, A., Bogdanov, A., 313 Uttaro, J., Jalil, L., Khaddam, M., Alston, A., and L. M. 314 Contreras, "Seamless SR Problem Statement", draft-hegde- 315 spring-mpls-seamless-sr-05 (work in progress), February 316 2021. 318 [RFC3031] Rosen, E., Viswanathan, A., and R. Callon, "Multiprotocol 319 Label Switching Architecture", RFC 3031, 320 DOI 10.17487/RFC3031, January 2001, 321 . 323 Authors' Addresses 325 Salih K A 326 Juniper Networks 327 Embassy Business Park 328 Bangalore, KA 560093 329 India 331 Email: salih@juniper.net 332 Shraddha Hegde 333 Juniper Networks 334 Embassy Business Park 335 Bangalore, KA 560093 336 India 338 Email: shraddha@juniper.net 340 Rajesh 341 Juniper Networks 342 Embassy Business Park 343 Bangalore, KA 560093 344 India 346 Email: mrajesh@juniper.net 348 Ron Bonica 349 Juniper Networks 350 Herndon, Virginia 20171 351 USA 353 Email: rbonica@juniper.net