idnits 2.17.00 (12 Aug 2021) /tmp/idnits34058/draft-ietf-spring-ipv6-use-cases-06.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 date (March 3, 2016) is 2269 days in the past. Is this intentional? Checking references for intended status: Informational ---------------------------------------------------------------------------- == Outdated reference: A later version (-07) exists of draft-ietf-rtgwg-dst-src-routing-00 == Outdated reference: A later version (-06) exists of draft-ietf-sfc-dc-use-cases-04 == Outdated reference: draft-ietf-sfc-nsh has been published as RFC 8300 == Outdated reference: draft-ietf-spring-problem-statement has been published as RFC 7855 == Outdated reference: draft-ietf-spring-segment-routing has been published as RFC 8402 == Outdated reference: draft-ietf-spring-segment-routing-mpls has been published as RFC 8660 Summary: 0 errors (**), 0 flaws (~~), 7 warnings (==), 1 comment (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 Spring J. Brzozowski 3 Internet-Draft J. Leddy 4 Intended status: Informational Comcast 5 Expires: September 4, 2016 I. Leung 6 Rogers Communications 7 S. Previdi 8 M. Townsley 9 C. Martin 10 C. Filsfils 11 R. Maglione, Ed. 12 Cisco Systems 13 March 3, 2016 15 IPv6 SPRING Use Cases 16 draft-ietf-spring-ipv6-use-cases-06 18 Abstract 20 Source Packet Routing in Networking (SPRING) architecture leverages 21 the source routing paradigm. A node steers a packet through a 22 controlled set of instructions, called segments, by prepending the 23 packet with SPRING header. A segment can represent any instruction, 24 topological or service-based. A segment can have a local semantic to 25 the SPRING node or global within the SPRING domain. SPRING allows to 26 enforce a flow through any topological path and service chain while 27 maintaining per-flow state only at the ingress node to the SPRING 28 domain. 30 The objective of this document is to illustrate some use cases that 31 need to be taken into account by the Source Packet Routing in 32 Networking (SPRING) architecture. 34 Status of This Memo 36 This Internet-Draft is submitted in full conformance with the 37 provisions of BCP 78 and BCP 79. 39 Internet-Drafts are working documents of the Internet Engineering 40 Task Force (IETF). Note that other groups may also distribute 41 working documents as Internet-Drafts. The list of current Internet- 42 Drafts is at http://datatracker.ietf.org/drafts/current/. 44 Internet-Drafts are draft documents valid for a maximum of six months 45 and may be updated, replaced, or obsoleted by other documents at any 46 time. It is inappropriate to use Internet-Drafts as reference 47 material or to cite them other than as "work in progress." 48 This Internet-Draft will expire on September 4, 2016. 50 Copyright Notice 52 Copyright (c) 2016 IETF Trust and the persons identified as the 53 document authors. All rights reserved. 55 This document is subject to BCP 78 and the IETF Trust's Legal 56 Provisions Relating to IETF Documents 57 (http://trustee.ietf.org/license-info) in effect on the date of 58 publication of this document. Please review these documents 59 carefully, as they describe your rights and restrictions with respect 60 to this document. Code Components extracted from this document must 61 include Simplified BSD License text as described in Section 4.e of 62 the Trust Legal Provisions and are provided without warranty as 63 described in the Simplified BSD License. 65 Table of Contents 67 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 68 2. IPv6 SPRING use cases . . . . . . . . . . . . . . . . . . . . 3 69 2.1. SPRING in the Home Network . . . . . . . . . . . . . . . 5 70 2.2. SPRING in the Access Network . . . . . . . . . . . . . . 6 71 2.3. SPRING in the Data Center . . . . . . . . . . . . . . . . 7 72 2.3.1. VM isolation in a Data Center . . . . . . . . . . . . 7 73 2.4. SPRING in the Content Delivery Networks . . . . . . . . . 8 74 2.5. SPRING in the Core networks . . . . . . . . . . . . . . . 9 75 3. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 10 76 4. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 10 77 5. Security Considerations . . . . . . . . . . . . . . . . . . . 10 78 6. Informative References . . . . . . . . . . . . . . . . . . . 10 79 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 12 81 1. Introduction 83 Source Packet Routing in Networking (SPRING) architecture leverages 84 the source routing paradigm. An ingress node steers a packet through 85 a controlled set of instructions, called segments, by prepending the 86 packet with SPRING header. A segment can represent any instruction, 87 topological or service-based. A segment can represent a local 88 semantic on the SPRING node, or a global semantic within the SPRING 89 domain. SPRING allows one to enforce a flow through any topological 90 path and service chain while maintaining per-flow state only at the 91 ingress node to the SPRING domain. 93 The SPRING architecture is described in 94 [I-D.ietf-spring-segment-routing]. The SPRING control plane is 95 agnostic to the dataplane, thus it can be applied to both MPLS and 96 IPv6. In case of MPLS the (list of) segment identifiers are carried 97 in the MPLS label stack, while for the IPv6 dataplane, a new type of 98 routing extension header is required. 100 The details of the new routing extension header are described in 101 [I-D.previdi-6man-segment-routing-header] which also covers the 102 security considerations and the aspects related to the deprecation of 103 the IPv6 Type 0 Routing Header described in [RFC5095]. 105 2. IPv6 SPRING use cases 107 In today's networks, source routing is typically accomplished by 108 encapsulating IP packets in MPLS LSPs that are signaled via RSVP-TE. 109 Therefore, there are scenarios where it may be possible to run IPv6 110 on top of MPLS, and as such, the MPLS Segment Routing architecture 111 described in [I-D.ietf-spring-segment-routing-mpls] could be 112 leveraged to provide SPRING capabilities in an IPv6/MPLS environment. 114 However, there are other cases and/or specific network segments (such 115 as for example the Home Network, the Data Center, etc.) where MPLS 116 may not be available or deployable for lack of support on network 117 elements or for an operator's design choice. In such scenarios a 118 non-MPLS based solution would be preferred by the network operators 119 of such infrastructures. 121 In addition there are cases where the operators could have made the 122 design choice to disable IPv4, for ease of management and scale 123 (return to single-stack) or due to an address constraint, for example 124 because they do not possess enough IPv4 addresses resources to number 125 all the endpoints and other network elements on which they desire to 126 run MPLS. 128 In such scenario the support for MPLS operations on an IPv6-only 129 network would be required. However today's IPv6-only networks are 130 not fully capable of supporting MPLS. There is ongoing work in the 131 MPLS Working Group, described in [RFC7439] to identify gaps that must 132 be addressed in order to allow MPLS-related protocols and 133 applications to be used with IPv6-only networks. This is an another 134 example of scenario where an IPv6-only solution could represent a 135 valid option to solve the problem and meet operators' requirements. 137 It is important to clarify that today, it is possible to run IPv6 on 138 top of an IPv4 MPLS network by using the mechanism called 6PE, 139 described in [RFC4798]. However this approach does not fulfill the 140 requirement of removing the need of IPv4 addresses in the network, as 141 requested in the above use case. 143 In addition it is worth to note that in today's MPLS dual-stack 144 networks IPv4 traffic is labeled while IPv6 traffic is usually 145 natively routed, not label-switched. Therefore in order to be able 146 to provide Traffic Engineering "like" capabilities for IPv6 traffic 147 additional/alternative encapsulation mechanisms would be required. 149 In summary there is a class of use cases that motivate an IPv6 data 150 plane. The authors identify some fundamental scenarios that, when 151 recognized in conjunction, strongly indicate an IPv6 data plane: 153 1. There is a need or desire to impose source-routing semantics 154 within an application or at the edge of a network (for example, a 155 CPE or home gateway) 157 2. There is a strict lack of an MPLS dataplane 159 3. There is a need or desire to remove routing state from any node 160 other than the source, such that the source is the only node that 161 knows and will know the path a packet will take, a priori 163 4. There is a need to connect millions of addressable segment 164 endpoints, thus high routing scalability is a requirement. IPv6 165 addresses are inherently summarizable: a very large operator 166 could scale by summarizing IPv6 subnets at various internal 167 boundaries. This is very simple and is a basic property of IP 168 routing. MPLS node segments are not summarizable. To reach the 169 same scale, an operator would need to introduce additional 170 complexity, such as mechanisms known with the industry term 171 Seamless MPLS. 173 In any environment with requirements such as those listed above, an 174 IPv6 data plane provides a powerful combination of capabilities for a 175 network operator to realize benefits in explicit routing, protection 176 and restoration, high routing scalability, traffic engineering, 177 service chaining, service differentiation and application flexibility 178 via programmability. 180 This section will describe some scenarios where MPLS may not be 181 present and it will highlight how the SPRING architecture could be 182 used to address such use cases, particularly, when an MPLS data plane 183 is neither present nor desired. 185 The use cases described in the section do not constitute an 186 exhaustive list of all the possible scenarios; this section only 187 includes some of the most common envisioned deployment models for 188 IPv6 Segment Routing. 190 In addition to the use cases described in this document the SPRING 191 architecture can be applied to all the use cases described in 192 [I-D.ietf-spring-problem-statement] for the SPRING MPLS data plane, 193 when an IPv6 data plane is present. Here there is a summary of those 194 use cases: 196 1. Traffic Engineering 198 2. Disjoint paths in dual-plane networks 200 3. Fast Reroute: Protecting node and adjacency segments 202 4. OAM/monitoring 204 5. Egress Peering Engineering 206 2.1. SPRING in the Home Network 208 An IPv6-enabled home network provides ample globally routed IP 209 addresses for all devices in the home. An IPv6 home network with 210 multiple egress points and associated provider-assigned prefixes 211 will, in turn, provide multiple IPv6 addresses to hosts. A homenet 212 performing Source and Destination Routing 213 ([I-D.ietf-rtgwg-dst-src-routing]) will ensure that packets exit the 214 home at the appropriate egress based on the associated delegated 215 prefix for that link. 217 A SPRING enabled home provides the possibility for imposition of a 218 Segment List by end-hosts in the home, or a customer edge router in 219 the home. If the Segment List is enabled at the customer edge 220 router, that router is responsible for classifying traffic and 221 inserting the appropriate Segment List. If hosts in the home have 222 explicit source selection rules, classification can be based on 223 source address or associated network egress point, avoiding the need 224 for DPI-based implicit classification techniques. If the Segment 225 List is inserted by the host itself, it is important to know which 226 networks can interpret the SPRING header. This information can be 227 provided as part of host configuration as a property of the 228 configured IP address (see [I-D.ietf-mif-mpvd-dhcp-support]). 230 The ability to steer traffic to an appropriate egress or utilize a 231 specific type of media (e.g., low-power, WIFI, wired, femto-cell, 232 bluetooth, MOCA, HomePlug, etc.) within the home itself are obvious 233 cases which may be of interest to an application running within a 234 home network. 236 Steering to a specific egress point may be useful for a number of 237 reasons, including: 239 o Regulatory 241 o Performance of a particular service associated with a particular 242 link 244 o Cost imposed due to data-caps or per-byte charges 246 o Home vs. work traffic in homes with one or more teleworkers, etc. 248 o Specific services provided by one ISP vs. another 250 Information included in the Segment List, whether imposed by the end- 251 host itself, a customer edge router, or within the access network of 252 the ISP, may be of use at the far ends of the data communication as 253 well. For example, an application running on an end-host with 254 application-support in a data center can utilize the Segment List as 255 a channel to include information that affects its treatment within 256 the data center itself, allowing for application-level steering and 257 load-balancing without relying upon implicit application 258 classification techniques at the data-center edge. Further, as more 259 and more application traffic is encrypted, the ability to extract 260 (and include in the Segment List) just enough information to enable 261 the network and data center to load-balance and steer traffic 262 appropriately becomes more and more important. 264 2.2. SPRING in the Access Network 266 Access networks deliver a variety of types of traffic from the 267 service provider's network to the home environment and from the home 268 towards the service provider's network. 270 For bandwidth management or related purposes, the service provider 271 may want to associate certain types of traffic to specific physical 272 or logical downstream capacity pipes. 274 This mapping is not the same thing as classification and scheduling. 275 In the Cable access network, each of these pipes are represented at 276 the DOCSIS layer as different service flows, which are better 277 identified as differing data links. As such, creating this 278 separation allows an operator to differentiate between different 279 types of content and perform a variety of differing functions on 280 these pipes, such as egress vectoring, byte capping, regulatory 281 compliance functions, and billing. 283 In a cable operator's environment, these downstream pipes could be a 284 specific QAM, a DOCSIS service flow or a service group. 286 Similarly, the operator may want to map traffic from the home sent 287 towards the service provider's network to specific upstream capacity 288 pipes. Information carried in a packet's SPRING header could provide 289 the target pipe for this specific packet. The access device would 290 not need to know specific details about the packet to perform this 291 mapping; instead the access device would only need to know how to map 292 the SR SID value to the target pipe. 294 2.3. SPRING in the Data Center 296 A key use case for SPRING is to cause a packet to follow a specific 297 path through the network. One can think of the service function 298 performed at each SPRING node to be forwarding. More complex service 299 functions could be applied to the packet by a SPRING node including 300 accounting, IDS, load balancing, and fire walling. 302 The term "Service Function Chain", as defined in [RFC7498], it is 303 used to describe an ordered set of service functions that must be 304 applied to packets. 306 A service provider may choose to have these service functions 307 performed external to the routing infrastructure, specifically on 308 either dedicated physical servers or within VMs running on a 309 virtualization platform. 311 [I-D.ietf-sfc-dc-use-cases] describes use cases that demonstrate the 312 applicability of Service Function Chaining (SFC) within a data center 313 environment and provides SFC requirements for data center centric use 314 cases. 316 2.3.1. VM isolation in a Data Center 318 One of the fundamental requirements for Data Center architecture is 319 to provide scalable, isolated tenant networks. Today with OpenStack 320 Networking (Neutron) this can be achieved via L2 segmentation using 321 either a) standard 802.1Q VLANs or b) an overlay approach based on 322 one of several L2 over L3 encapsulation techniques available today 323 such as 802.1ad, VXLAN, NVGRE. However, these approaches still 324 struggle to provide scalable, transparent, manageable, high 325 performance, isolated tenant networks. 327 The 128-bit PE Ingress ID in the Segment Router Header (SRH) policy 328 list defined in [I-D.previdi-6man-segment-routing-header] provides a 329 natural place to encode origin information of VM to VM traffic within 330 the Data Center. The Segment List provides a method to direct 331 traffic to a specific enforcement point based on traffic destination. 332 Together, these allow for a simple tagging and permit/deny comparison 333 performed between twin SR-capable nodes (e.g., the Neutron Virtual 334 Router) among VMs in a Data Center. 336 2.4. SPRING in the Content Delivery Networks 338 The rise of online video applications and new, video-capable IP 339 devices has led to an explosion of video traffic traversing network 340 operator infrastructures. In the drive to reduce the capital and 341 operational impact of the massive influx of online video traffic, as 342 well as to extend traditional TV services to new devices and screens, 343 network operators are increasingly turning to Content Delivery 344 Networks (CDNs). 346 Several studies showed the benefits of connecting caches in a 347 hierarchical structure following the hierarchical nature of the 348 Internet. In a cache hierarchy one cache establishes peering 349 relationships with its neighbor caches. There are two types of 350 relationship: parent and sibling. A parent cache is essentially one 351 level up in a cache hierarchy. A sibling cache is on the same level. 352 Multiple levels of hierarchy are commonly used in order to build 353 efficient caches architecture. 355 In an environment, where each single cache system can be uniquely 356 identified by its own IPv6 address, a Segment List containing a 357 sequence of the caches in a hierarchy can be built. At each node 358 (cache) present in the Segment List a TCP session to port 80 is 359 established and if the requested content is found at the cache (cache 360 hits scenario) the sequence ends, even if there are more nodes in the 361 list. 363 To achieve the behavior described above, in addition to the Segment 364 List, which specifies the path to be followed to explore the 365 hierarchic architecture, a way to instruct the node to take a 366 specific action is required. The function to be performed by a 367 service node can be carried into a new header called Network Service 368 Header (NSH) defined in [I-D.ietf-sfc-nsh]. A Network Service Header 369 (NSH) is metadata added to a packet that is used to create a service 370 plane. The service header is added by a service classification 371 function that determines which packets require servicing, and 372 correspondingly which service path to follow to apply the appropriate 373 service. 375 In the above example the service to be performed by the service node 376 was to establish a TCP session to port 80, but in other scenarios 377 different functions may be required. Another example of action to be 378 taken by the service node is the capability to perform 379 transformations on payload data, like real-time video transcode 380 option (for rate and/or resolution). 382 The use of SPRING together with the NSH allows building flexible 383 service chains where the topological information related to the path 384 to be followed is carried into the Segment List while the "service 385 plane related information" (function/action to be performed) is 386 encoded in the metadata, carried into the NSH. The details about 387 using SPRING together with NSH will be described in a separate 388 document. 390 2.5. SPRING in the Core networks 392 MPLS is a well-known technology widely deployed in many IP core 393 networks. However there are some operators that do not run MPLS 394 everywhere in their core network today, thus moving forward they 395 would prefer to have an IPv6 native infrastructure for the core 396 network. 398 While the overall amount of traffic offered to the network continues 399 to grow and considering that multiple types of traffic with different 400 characteristics and requirements are quickly converging over single 401 network architecture, the network operators are starting to face new 402 challenges. 404 Some operators are looking at the possibility to setup an explicit 405 path based on the IPv6 source address for specific types of traffic 406 in order to efficiently use their network infrastructure. In case of 407 IPv6 some operators are currently assigning or plan to assign IPv6 408 prefix(es) to their IPv6 customers based on regions/geography, thus 409 the subscriber's IPv6 prefix could be used to identify the region 410 where the customer is located. In such environment the IPv6 source 411 address could be used by the Edge nodes of the network to steer 412 traffic and forward it through a specific path other than the optimal 413 path. 415 The need to setup a source-based path, going through some specific 416 middle/intermediate points in the network may be related to different 417 requirements: 419 o The operator may want to be able to use some high bandwidth links 420 for specific type of traffic (like video) avoiding the need for 421 over-dimensioning all the links of the network; 423 o The operator may want to be able to setup a specific path for 424 delay sensitive applications; 426 o The operator may have the need to be able to select one (or 427 multiple) specific exit point(s) at peering points when different 428 peering points are available; 430 o The operator may have the need to be able to setup a source based 431 path for specific services in order to be able to reach some 432 servers hosted in some facilities not always reachable through the 433 optimal path; 435 o The operator may have the need to be able to provision guaranteed 436 disjoint paths (so-called dual-plane network) for diversity 437 purposes 439 All these scenarios would require a form of traffic engineering 440 capabilities in IP core networks not running MPLS and not willing to 441 run it. 443 IPv4 protocol does not provide such functionalities today and it is 444 not the intent of this document to address the IPv4 scenario, both 445 because this may create a lot of backward compatibility issues with 446 currently deployed networks and for the security issues that may 447 raise. 449 The described use cases could be addressed with the SPRING 450 architecture by having the Edge nodes of network to impose a Segment 451 List on specific traffic flows, based on certain classification 452 criteria that would include source IPv6 address. 454 3. Acknowledgements 456 The authors would like to thank Brian Field, Robert Raszuk, Wes 457 George, Eric Vyncke, Fred Baker, John G. Scudder and Yakov Rekhter 458 for their valuable comments and inputs to this document. 460 4. IANA Considerations 462 This document does not require any action from IANA. 464 5. Security Considerations 466 There are a number of security concerns with source routing at the IP 467 layer [RFC5095]. Security mechanisms applied to Segment Routing over 468 IPv6 networks are detailed in section 9 of 469 [I-D.previdi-6man-segment-routing-header] 471 6. Informative References 473 [I-D.ietf-mif-mpvd-dhcp-support] 474 Krishnan, S., Korhonen, J., and S. Bhandari, "Support for 475 multiple provisioning domains in DHCPv6", draft-ietf-mif- 476 mpvd-dhcp-support-02 (work in progress), October 2015. 478 [I-D.ietf-rtgwg-dst-src-routing] 479 Lamparter, D., "Destination/Source Routing", draft-ietf- 480 rtgwg-dst-src-routing-00 (work in progress), October 2015. 482 [I-D.ietf-sfc-dc-use-cases] 483 Surendra, S., Tufail, M., Majee, S., Captari, C., and S. 484 Homma, "Service Function Chaining Use Cases In Data 485 Centers", draft-ietf-sfc-dc-use-cases-04 (work in 486 progress), January 2016. 488 [I-D.ietf-sfc-nsh] 489 Quinn, P. and U. Elzur, "Network Service Header", draft- 490 ietf-sfc-nsh-02 (work in progress), January 2016. 492 [I-D.ietf-spring-problem-statement] 493 Previdi, S., Filsfils, C., Decraene, B., Litkowski, S., 494 Horneffer, M., and R. Shakir, "SPRING Problem Statement 495 and Requirements", draft-ietf-spring-problem-statement-07 496 (work in progress), March 2016. 498 [I-D.ietf-spring-segment-routing] 499 Filsfils, C., Previdi, S., Decraene, B., Litkowski, S., 500 and R. Shakir, "Segment Routing Architecture", draft-ietf- 501 spring-segment-routing-07 (work in progress), December 502 2015. 504 [I-D.ietf-spring-segment-routing-mpls] 505 Filsfils, C., Previdi, S., Bashandy, A., Decraene, B., 506 Litkowski, S., Horneffer, M., Shakir, R., Tantsura, J., 507 and E. Crabbe, "Segment Routing with MPLS data plane", 508 draft-ietf-spring-segment-routing-mpls-03 (work in 509 progress), February 2016. 511 [I-D.previdi-6man-segment-routing-header] 512 Previdi, S., Filsfils, C., Field, B., Leung, I., Linkova, 513 J., Kosugi, T., Vyncke, E., and D. Lebrun, "IPv6 Segment 514 Routing Header (SRH)", draft-previdi-6man-segment-routing- 515 header-08 (work in progress), October 2015. 517 [RFC4798] De Clercq, J., Ooms, D., Prevost, S., and F. Le Faucheur, 518 "Connecting IPv6 Islands over IPv4 MPLS Using IPv6 519 Provider Edge Routers (6PE)", RFC 4798, 520 DOI 10.17487/RFC4798, February 2007, 521 . 523 [RFC5095] Abley, J., Savola, P., and G. Neville-Neil, "Deprecation 524 of Type 0 Routing Headers in IPv6", RFC 5095, 525 DOI 10.17487/RFC5095, December 2007, 526 . 528 [RFC7439] George, W., Ed. and C. Pignataro, Ed., "Gap Analysis for 529 Operating IPv6-Only MPLS Networks", RFC 7439, 530 DOI 10.17487/RFC7439, January 2015, 531 . 533 [RFC7498] Quinn, P., Ed. and T. Nadeau, Ed., "Problem Statement for 534 Service Function Chaining", RFC 7498, 535 DOI 10.17487/RFC7498, April 2015, 536 . 538 Authors' Addresses 540 John Brzozowski 541 Comcast 543 Email: john_brzozowski@cable.comcast.com 545 John Leddy 546 Comcast 548 Email: John_Leddy@cable.comcast.com 550 Ida Leung 551 Rogers Communications 552 8200 Dixie Road 553 Brampton, ON L6T 0C1 554 CANADA 556 Email: Ida.Leung@rci.rogers.com 558 Stefano Previdi 559 Cisco Systems 560 Via Del Serafico, 200 561 Rome 00142 562 Italy 564 Email: sprevidi@cisco.com 565 Mark Townsley 566 Cisco Systems 568 Email: townsley@cisco.com 570 Christian Martin 571 Cisco Systems 573 Email: martincj@cisco.com 575 Clarence Filsfils 576 Cisco Systems 577 Brussels 578 BE 580 Email: cfilsfil@cisco.com 582 Roberta Maglione (editor) 583 Cisco Systems 584 Via Torri Bianche 8 585 Vimercate 20871 586 Italy 588 Email: robmgl@cisco.com