idnits 2.17.1 draft-xu-mpls-unified-source-routing-instruction-01.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 : ---------------------------------------------------------------------------- No issues found here. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year == The document doesn't use any RFC 2119 keywords, yet seems to have RFC 2119 boilerplate text. -- The document date (June 13, 2017) is 2509 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) == Unused Reference: 'RFC4817' is defined on line 384, but no explicit reference was found in the text == Outdated reference: A later version (-26) exists of draft-ietf-6man-segment-routing-header-06 == Outdated reference: A later version (-12) exists of draft-ietf-mpls-spring-entropy-label-06 == Outdated reference: A later version (-09) exists of draft-ietf-ospf-encapsulation-cap-03 == Outdated reference: A later version (-27) exists of draft-ietf-ospf-segment-routing-extensions-16 == Outdated reference: A later version (-15) exists of draft-ietf-spring-segment-routing-ldp-interop-07 == Outdated reference: A later version (-22) exists of draft-ietf-spring-segment-routing-mpls-08 == Outdated reference: A later version (-13) exists of draft-xu-intarea-ip-in-udp-04 == Outdated reference: A later version (-03) exists of draft-xu-mpls-service-chaining-02 Summary: 0 errors (**), 0 flaws (~~), 11 warnings (==), 1 comment (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 Network Working Group X. Xu, Ed. 3 Internet-Draft S. Bryant, Ed. 4 Intended status: Standards Track Huawei 5 Expires: December 15, 2017 R. Raszuk 6 Bloomberg LP 7 U. Chunduri 8 Huawei 9 L. Contreras 10 Telefonica I+D 11 L. Jalil 12 Verizon 13 H. Assarpour 14 Broadcom 15 V. Gunter 16 Nokia 17 J. Tantsura 18 Individual 19 S. Ma 20 Juniper 21 June 13, 2017 23 Unified Source Routing Instruction using MPLS Label Stack 24 draft-xu-mpls-unified-source-routing-instruction-01 26 Abstract 28 MPLS-SPRING is an MPLS data plane-based source routing paradigm in 29 which a sender of a packet is allowed to partially or completely 30 specify the route the packet takes through the network by imposing 31 stacked MPLS labels to the packet. MPLS-SPRING could be leveraged to 32 realize a unified source routing mechanism across MPLS, IPv4 and IPv6 33 data planes by using a unified source routing instruction set while 34 preserving backward compatibility with MPLS-SPRING. 36 Status of This Memo 38 This Internet-Draft is submitted in full conformance with the 39 provisions of BCP 78 and BCP 79. 41 Internet-Drafts are working documents of the Internet Engineering 42 Task Force (IETF). Note that other groups may also distribute 43 working documents as Internet-Drafts. The list of current Internet- 44 Drafts is at http://datatracker.ietf.org/drafts/current/. 46 Internet-Drafts are draft documents valid for a maximum of six months 47 and may be updated, replaced, or obsoleted by other documents at any 48 time. It is inappropriate to use Internet-Drafts as reference 49 material or to cite them other than as "work in progress." 51 This Internet-Draft will expire on December 15, 2017. 53 Copyright Notice 55 Copyright (c) 2017 IETF Trust and the persons identified as the 56 document authors. All rights reserved. 58 This document is subject to BCP 78 and the IETF Trust's Legal 59 Provisions Relating to IETF Documents 60 (http://trustee.ietf.org/license-info) in effect on the date of 61 publication of this document. Please review these documents 62 carefully, as they describe your rights and restrictions with respect 63 to this document. Code Components extracted from this document must 64 include Simplified BSD License text as described in Section 4.e of 65 the Trust Legal Provisions and are provided without warranty as 66 described in the Simplified BSD License. 68 Table of Contents 70 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 71 1.1. Requirements Language . . . . . . . . . . . . . . . . . . 3 72 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3 73 3. Use Cases . . . . . . . . . . . . . . . . . . . . . . . . . . 3 74 4. Packet Forwarding Procedures . . . . . . . . . . . . . . . . 4 75 5. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 7 76 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 7 77 7. Security Considerations . . . . . . . . . . . . . . . . . . . 7 78 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 7 79 8.1. Normative References . . . . . . . . . . . . . . . . . . 7 80 8.2. Informative References . . . . . . . . . . . . . . . . . 7 81 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 9 83 1. Introduction 85 MPLS-SPRING [I-D.ietf-spring-segment-routing-mpls] is an MPLS data 86 plane-based source routing paradigm in which a sender of a packet is 87 allowed to partially or completely specify the route the packet takes 88 through the network by imposing stacked MPLS labels to the packet. 89 MPLS-SPRING could be leveraged to realize a unified source routing 90 mechanism across MPLS, IPv4 and IPv6 data planes by using a unified 91 source routing instruction set while preserving backward 92 compatibility with MPLS-SPRING. More specifically, the source 93 routing instruction set information contained in a source routed 94 packet could be uniformly encoded as an MPLS label stack no matter 95 the underlay is IPv4, IPv6 or MPLS. 97 The traditional IPv4 and IPv6 source routing mechanisms by use of 98 IPv4 Source Routing Options and IPv6 Route Header Type 0 Extension 99 respectively have been deprecated due to their obvious security 100 vulnerabilities. IPv6 SPRING (a.k.a., SRv6) 101 [I-D.ietf-6man-segment-routing-header] is a newly proposed IPv6 102 source routing mechanism in which the source route instruction 103 information is encoded as an ordered list of 128-bit long IPv6 104 addresses and contained in the Source Routing Header (SRH). Although 105 it has overcome the security vulnerability issues associated with the 106 traditional IPv6 source routing mechanism as claimed in 107 [I-D.ietf-6man-segment-routing-header], it still has the following 108 obvious drawbacks which need to be addressed: 1) the encapsulation 109 overhead is significant especially when the list of the explicit 110 routing hops is very long; 2) for those transit IPv6 routers that 111 don't support the flow label-based load-balancing mechanism yet, the 112 ECMP load-balancing effect may be impacted seriously if they could 113 not recognize the SRH and therefore could not obtain the five tuple 114 of the source routed IPv6 packet; 3) it requires a totally new 115 forwarding logic on basis of the SRH and the forwarding performance 116 associated with the IPv6 SRH may still be a big concern for some 117 hardware platforms. 119 Section 3 describes various use cases for the unified source routing 120 instruction mechanism and Section 4 describes a typical application 121 scenario and how the packet forwarding happens. 123 1.1. Requirements Language 125 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 126 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 127 document are to be interpreted as described in RFC 2119 [RFC2119]. 129 2. Terminology 131 This memo makes use of the terms defined in [RFC3031] and 132 [I-D.ietf-spring-segment-routing-mpls]. 134 3. Use Cases 136 The unified source routing mechanism across IPv4, IPv6 and MPLS is 137 useful at least in the following use cases: 139 o Incremental deployment of the MPLS-SPRING technology. Since there 140 is no need to run any other label distribution protocol (e.g., 141 LDP, see [I-D.ietf-spring-segment-routing-ldp-interop] for more 142 details.) on those non-MPLS-SPRING routers for incremental 143 deployment purposes, the network provisioning is greatly 144 simplified, which is one of the major claimed benefits of the 145 MPLS-SPRING technology (i.e., running a single protocol). In 146 fact, this unified source routing mechanism is even useful in a 147 fully upgraded MPLS-SPRING network since the headache associated 148 with the MPLS-SPRING load-balancing as described in 149 [I-D.ietf-mpls-spring-entropy-label] can now be avoided by using 150 the source port of the UDP tunnel header as an entropy field 151 instead. 153 o A poor man's light-weight alternative to SRv6 154 [I-D.ietf-6man-segment-routing-header]. At least, it could be 155 deployed as an interim until full featured SRv6 is available on 156 more platforms. Since the Source Routing Header (SRH) 157 [I-D.ietf-6man-segment-routing-header] consisting of an ordered 158 list of 128-bit long IPv6 addresses is now replaced by an ordered 159 list of 32-bit long label entries (i.e., label stack), the 160 encapsulation overhead and forwarding performance issues 161 associated with SRv6 are eliminated. 163 o A new IPv4 source routing mechanism which has overcome the 164 security vulnerability issues associated with the traditional IPv4 165 source routing mechanism. 167 o Traffic Engineering scenarios where only a few routers (e.g., the 168 entry and exit nodes of each plane in the dual-plane network ) are 169 specified as segments of explicit paths. In this way, only a few 170 routers are required to support the MPLS-SPRING capability while 171 all the other routers just need to support IP forwarding 172 capability, which would significantly reduce the deployment cost 173 of this new technology. 175 o MPLS-based Service Function Chaining (SFC) 176 [I-D.xu-mpls-service-chaining]. Based on the unified source 177 routing mechanism as described in this document, only SFC-related 178 nodes including Service Function Forwarders (SFF), Service 179 Functions (SF) and classifiers are required to recognize the SFC 180 encapsulation header in the MPLS label stack form, while the 181 intermediate routers just need to support vanilla IP forwarding 182 (either IPv4 or IPv6). In other words, it undoubtedly complies 183 with the transport-independence requirement as listed in the SFC 184 architecture document [RFC7665]. 186 4. Packet Forwarding Procedures 187 +-----+ +-----+ +-----+ +-----+ +-----+ 188 | A +-------+ B +-------+ C +--------+ D +--------+ H | 189 +-----+ +--+--+ +--+--+ +--+--+ +-----+ 190 | | | 191 | | | 192 +--+--+ +--+--+ +--+--+ 193 | E +-------+ F +--------+ G | 194 +-----+ +-----+ +-----+ 196 +--------+ 197 |IP(A->E)| 198 +--------+ +--------+ 199 | L(G) | |IP(E->G)| 200 +--------+ +--------+ +--------+ 201 | L(H) | | L(H) | |IP(G->H)| 202 +--------+ +--------+ +--------+ 203 | Packet | ---> | Packet | ---> | Packet | 204 +--------+ +--------+ +--------+ 205 Figure 1 207 As shown in Figure 1, Assume Router A, E, G and H are MPLS-SPRING- 208 capable routers while the remaining are only capable of forwarding IP 209 packets. Router A, E, G and H advertise their Segment Routing 210 related information via IS-IS or OSPF. Now assume router A wants to 211 send a given IP or MPLS packet via an explicit path of {E->G->H}, 212 router A would impose an MPLS label stack corresponding to that 213 explicit path on the received IP packet. Since there is no Label 214 Switching Path (LSP) towards router E, router A would replace the top 215 label indicating router E with an IP-based tunnel for MPLS (e.g., 216 MPLS-over-UDP [RFC7510] or MPLS-over-GRE [RFC4023]) towards router E 217 and then send it out. In other words, router A would pop the top 218 label and then encapsulate the MPLS packet with an IP-based tunnel 219 towards router E. When the IP-encapsulated MPLS packet arrives at 220 router E, router E would strip the IP-based tunnel header and then 221 process the decapsulated MPLS packet accordingly. Since there is no 222 LSP towards router G which is indicated by the current top label of 223 the decapsulated MPLS packet, router E would replace the current top 224 label with an IP-based tunnel towards router G and send it out. When 225 the packet arrives at router G, router G would strip the IP-based 226 tunnel header and then process the decapsulated MPLS packet. Since 227 there is no LSP towards router H, router G would replace the current 228 top label with an IP-based tunnel towards router H. Now the packet 229 encapsulated with the IP-based tunnel towards router H is exactly the 230 original packet that router A had intended to send towards router H. 231 If the packet is an MPLS packet, router G could use any IP-based 232 tunnel for MPLS (e.g., MPLS-over-UDP [RFC7510] or MPLS-over-GRE 233 [RFC4023]). If the packet is an IP packet, router G could use any IP 234 tunnel for IP (e.g., IP-in-UDP [I-D.xu-intarea-ip-in-udp] or GRE 236 [RFC2784]). That original IP or MPLS packet would be forwarded 237 towards router H via an IP-based tunnel. When the encapsulated 238 packet arrives at router H, router H would decapsulate it into the 239 original packet and then process it accordingly. 241 Note that in the above description, it's assumed that the label 242 associated with each prefix-SID advertised by the owner of the 243 prefix-SID is a Penultimate Hop Popping (PHP) label (e.g., the NP- 244 flag [I-D.ietf-ospf-segment-routing-extensions] associated with the 245 corresponding prefix SID is not set). Figure 2 demostrates the 246 packet walk in the case where the label associated with each prefix- 247 SID advertised by the owner of the prefix-SID is not a Penultimate 248 Hop Popping (PHP) label (e.g., the NP-flag 249 [I-D.ietf-ospf-segment-routing-extensions] associated with the 250 corresponding prefix SID is set). Although the above description is 251 based on the use of prefix-SIDs, the unified source routing 252 instruction approach is actually applicable to the use of adj-SIDs as 253 well. For instance, when the top label of a received MPLS packet 254 indicates an given adj-SID and the corresponding adjacent node to 255 that adj-SID is not MPLS-capable, the top label would be replaced by 256 an IP-based tunnel towards that adjacent node and then forwarded over 257 the correponding link indicated by that adj-SID. 259 +-----+ +-----+ +-----+ +-----+ +-----+ 260 | A +-------+ B +-------+ C +--------+ D +--------+ H | 261 +-----+ +--+--+ +--+--+ +--+--+ +-----+ 262 | | | 263 | | | 264 +--+--+ +--+--+ +--+--+ 265 | E +-------+ F +--------+ G | 266 +-----+ +-----+ +-----+ 268 +--------+ 269 |IP(A->E)| 270 +--------+ +--------+ 271 | L(E) | |IP(E->G)| 272 +--------+ +--------+ +--------+ 273 | L(G) | | L(G) | |IP(G->H)| 274 +--------+ +--------+ +--------+ 275 | L(H) | | L(H) | | L(H) | 276 +--------+ +--------+ +--------+ 277 | Packet | ---> | Packet | ---> | Packet | 278 +--------+ +--------+ +--------+ 279 Figure 2 281 Note that as for which tunnel encapsulation type should be used, it 282 could be manually specified on tunnel ingress routers or be learnt 283 from the tunnel egress routers' advertisements of its tunnel 284 encapsulation capability. How to advertise the tunnel encapsulation 285 capability using IS-IS or OSPF are specified in 286 [I-D.ietf-isis-encapsulation-cap] and 287 [I-D.ietf-ospf-encapsulation-cap] respectively. 289 5. Acknowledgements 291 Thanks Joel Halpern, Bruno Decraene and Loa Andersson for their 292 insightful comments on this draft. 294 6. IANA Considerations 296 No IANA action is required. 298 7. Security Considerations 300 TBD. 302 8. References 304 8.1. Normative References 306 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 307 Requirement Levels", BCP 14, RFC 2119, 308 DOI 10.17487/RFC2119, March 1997, 309 . 311 8.2. Informative References 313 [I-D.ietf-6man-segment-routing-header] 314 Previdi, S., Filsfils, C., Raza, K., Leddy, J., Field, B., 315 daniel.voyer@bell.ca, d., daniel.bernier@bell.ca, d., 316 Matsushima, S., Leung, I., Linkova, J., Aries, E., Kosugi, 317 T., Vyncke, E., Lebrun, D., Steinberg, D., and R. Raszuk, 318 "IPv6 Segment Routing Header (SRH)", draft-ietf-6man- 319 segment-routing-header-06 (work in progress), March 2017. 321 [I-D.ietf-isis-encapsulation-cap] 322 Xu, X., Decraene, B., Raszuk, R., Chunduri, U., Contreras, 323 L., and L. Jalil, "Advertising Tunnelling Capability in 324 IS-IS", draft-ietf-isis-encapsulation-cap-01 (work in 325 progress), April 2017. 327 [I-D.ietf-mpls-spring-entropy-label] 328 Kini, S., Kompella, K., Sivabalan, S., Litkowski, S., 329 Shakir, R., and j. jefftant@gmail.com, "Entropy label for 330 SPRING tunnels", draft-ietf-mpls-spring-entropy-label-06 331 (work in progress), May 2017. 333 [I-D.ietf-ospf-encapsulation-cap] 334 Xu, X., Decraene, B., Raszuk, R., Contreras, L., and L. 335 Jalil, "Advertising Tunneling Capability in OSPF", draft- 336 ietf-ospf-encapsulation-cap-03 (work in progress), May 337 2017. 339 [I-D.ietf-ospf-segment-routing-extensions] 340 Psenak, P., Previdi, S., Filsfils, C., Gredler, H., 341 Shakir, R., Henderickx, W., and J. Tantsura, "OSPF 342 Extensions for Segment Routing", draft-ietf-ospf-segment- 343 routing-extensions-16 (work in progress), May 2017. 345 [I-D.ietf-spring-segment-routing-ldp-interop] 346 Filsfils, C., Previdi, S., Bashandy, A., Decraene, B., and 347 S. Litkowski, "Segment Routing interworking with LDP", 348 draft-ietf-spring-segment-routing-ldp-interop-07 (work in 349 progress), May 2017. 351 [I-D.ietf-spring-segment-routing-mpls] 352 Filsfils, C., Previdi, S., Bashandy, A., Decraene, B., 353 Litkowski, S., and R. Shakir, "Segment Routing with MPLS 354 data plane", draft-ietf-spring-segment-routing-mpls-08 355 (work in progress), March 2017. 357 [I-D.xu-intarea-ip-in-udp] 358 Xu, X., Lee, Y., and F. Yongbing, "Encapsulating IP in 359 UDP", draft-xu-intarea-ip-in-udp-04 (work in progress), 360 December 2016. 362 [I-D.xu-mpls-service-chaining] 363 Xu, X., Bryant, S., Assarpour, H., Shah, H., Contreras, 364 L., daniel.bernier@bell.ca, d., jefftant@gmail.com, j., 365 and S. Ma, "Service Chaining using an Unified Source 366 Routing Instruction", draft-xu-mpls-service-chaining-02 367 (work in progress), May 2017. 369 [RFC2784] Farinacci, D., Li, T., Hanks, S., Meyer, D., and P. 370 Traina, "Generic Routing Encapsulation (GRE)", RFC 2784, 371 DOI 10.17487/RFC2784, March 2000, 372 . 374 [RFC3031] Rosen, E., Viswanathan, A., and R. Callon, "Multiprotocol 375 Label Switching Architecture", RFC 3031, 376 DOI 10.17487/RFC3031, January 2001, 377 . 379 [RFC4023] Worster, T., Rekhter, Y., and E. Rosen, Ed., 380 "Encapsulating MPLS in IP or Generic Routing Encapsulation 381 (GRE)", RFC 4023, DOI 10.17487/RFC4023, March 2005, 382 . 384 [RFC4817] Townsley, M., Pignataro, C., Wainner, S., Seely, T., and 385 J. Young, "Encapsulation of MPLS over Layer 2 Tunneling 386 Protocol Version 3", RFC 4817, DOI 10.17487/RFC4817, March 387 2007, . 389 [RFC7510] Xu, X., Sheth, N., Yong, L., Callon, R., and D. Black, 390 "Encapsulating MPLS in UDP", RFC 7510, 391 DOI 10.17487/RFC7510, April 2015, 392 . 394 [RFC7665] Halpern, J., Ed. and C. Pignataro, Ed., "Service Function 395 Chaining (SFC) Architecture", RFC 7665, 396 DOI 10.17487/RFC7665, October 2015, 397 . 399 Authors' Addresses 401 Xiaohu Xu (editor) 402 Huawei 404 Email: xuxiaohu@huawei.com 406 Stewart Bryant (editor) 407 Huawei 409 Email: stewart.bryant@gmail.com 411 Robert Raszuk 412 Bloomberg LP 414 Email: robert@raszuk.net 416 Uma Chunduri 417 Huawei 419 Email: uma.chunduri@gmail.com 420 Luis M. Contreras 421 Telefonica I+D 423 Email: luismiguel.contrerasmurillo@telefonica.com 425 Luay Jalil 426 Verizon 428 Email: luay.jalil@verizon.com 430 Hamid Assarpour 431 Broadcom 433 Email: hamid.assarpour@broadcom.com 435 Van De Velde, Gunter 436 Nokia 438 Email: gunter.van_de_velde@nokia.com 440 Jeff Tantsura 441 Individual 443 Email: jefftant.ietf@gmail.com 445 Shaowen Ma 446 Juniper 448 Email: mashao@juniper.net