idnits 2.17.1 draft-ietf-spring-ipv6-use-cases-08.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 (January 30, 2017) is 2641 days in the past. Is this intentional? Checking references for intended status: Informational ---------------------------------------------------------------------------- == Outdated reference: A later version (-26) exists of draft-ietf-6man-segment-routing-header-04 == Outdated reference: A later version (-07) exists of draft-ietf-rtgwg-dst-src-routing-03 == Outdated reference: A later version (-15) exists of draft-ietf-spring-segment-routing-10 == Outdated reference: A later version (-22) exists of draft-ietf-spring-segment-routing-mpls-06 Summary: 0 errors (**), 0 flaws (~~), 5 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: August 3, 2017 M. Townsley 6 C. Filsfils 7 R. Maglione, Ed. 8 Cisco Systems 9 January 30, 2017 11 IPv6 SPRING Use Cases 12 draft-ietf-spring-ipv6-use-cases-08 14 Abstract 16 Source Packet Routing in Networking (SPRING) architecture leverages 17 the source routing paradigm. A node steers a packet through a 18 controlled set of instructions, called segments, by prepending the 19 packet with SPRING header. A segment can represent any instruction, 20 topological or service-based. A segment can have a local semantic to 21 the SPRING node or global within the SPRING domain. SPRING allows to 22 enforce a flow through any topological path while maintaining per- 23 flow state only at the ingress node to the SPRING domain. 25 The objective of this document is to illustrate some use cases that 26 need to be taken into account by the Source Packet Routing in 27 Networking (SPRING) architecture. 29 Status of This Memo 31 This Internet-Draft is submitted in full conformance with the 32 provisions of BCP 78 and BCP 79. 34 Internet-Drafts are working documents of the Internet Engineering 35 Task Force (IETF). Note that other groups may also distribute 36 working documents as Internet-Drafts. The list of current Internet- 37 Drafts is at http://datatracker.ietf.org/drafts/current/. 39 Internet-Drafts are draft documents valid for a maximum of six months 40 and may be updated, replaced, or obsoleted by other documents at any 41 time. It is inappropriate to use Internet-Drafts as reference 42 material or to cite them other than as "work in progress." 44 This Internet-Draft will expire on August 3, 2017. 46 Copyright Notice 48 Copyright (c) 2017 IETF Trust and the persons identified as the 49 document authors. All rights reserved. 51 This document is subject to BCP 78 and the IETF Trust's Legal 52 Provisions Relating to IETF Documents 53 (http://trustee.ietf.org/license-info) in effect on the date of 54 publication of this document. Please review these documents 55 carefully, as they describe your rights and restrictions with respect 56 to this document. Code Components extracted from this document must 57 include Simplified BSD License text as described in Section 4.e of 58 the Trust Legal Provisions and are provided without warranty as 59 described in the Simplified BSD License. 61 Table of Contents 63 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 64 2. IPv6 SPRING use cases . . . . . . . . . . . . . . . . . . . . 3 65 2.1. SPRING in the Home Network . . . . . . . . . . . . . . . 5 66 2.2. SPRING in the Access Network . . . . . . . . . . . . . . 6 67 2.3. SPRING in the Data Center . . . . . . . . . . . . . . . . 7 68 2.4. SPRING in the Content Delivery Networks . . . . . . . . . 7 69 2.5. SPRING in the Core networks . . . . . . . . . . . . . . . 7 70 3. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 9 71 4. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 9 72 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 9 73 6. Security Considerations . . . . . . . . . . . . . . . . . . . 10 74 7. Informative References . . . . . . . . . . . . . . . . . . . 10 75 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 11 77 1. Introduction 79 Source Packet Routing in Networking (SPRING) architecture leverages 80 the source routing paradigm. An ingress node steers a packet through 81 a controlled set of instructions, called segments, by prepending the 82 packet with SPRING header. A segment can represent any instruction, 83 topological or service-based. A segment can represent a local 84 semantic on the SPRING node, or a global semantic within the SPRING 85 domain. SPRING allows one to enforce a flow through any topological 86 path while maintaining per-flow state only at the ingress node to the 87 SPRING domain. 89 The SPRING architecture is described in 90 [I-D.ietf-spring-segment-routing]. The SPRING control plane is 91 agnostic to the dataplane, thus it can be applied to both MPLS and 92 IPv6. In case of MPLS the (list of) segment identifiers are carried 93 in the MPLS label stack, while for the IPv6 dataplane, a new type of 94 routing extension header is required. 96 The details of the new routing extension header are described in 97 [I-D.ietf-6man-segment-routing-header] which also covers the security 98 considerations and the aspects related to the deprecation of the IPv6 99 Type 0 Routing Header described in [RFC5095]. 101 2. IPv6 SPRING use cases 103 In today's networks, source routing is typically accomplished by 104 encapsulating IP packets in MPLS LSPs that are signaled via RSVP-TE. 105 Therefore, there are scenarios where it may be possible to run IPv6 106 on top of MPLS, and as such, the MPLS Segment Routing architecture 107 described in [I-D.ietf-spring-segment-routing-mpls] could be 108 leveraged to provide SPRING capabilities in an IPv6/MPLS environment. 110 However, there are other cases and/or specific network segments (such 111 as for example the Home Network, the Data Center, etc.) where MPLS 112 may not be available or deployable for lack of support on network 113 elements or for an operator's design choice. In such scenarios a 114 non-MPLS based solution would be preferred by the network operators 115 of such infrastructures. 117 In addition there are cases where the operators could have made the 118 design choice to disable IPv4, for ease of management and scale 119 (return to single-stack) or due to an address constraint, for example 120 because they do not possess enough IPv4 addresses resources to number 121 all the endpoints and other network elements on which they desire to 122 run MPLS. 124 In such scenario the support for MPLS operations on an IPv6-only 125 network would be required. However today's IPv6-only networks are 126 not fully capable of supporting MPLS. There is ongoing work in the 127 MPLS Working Group, described in [RFC7439] to identify gaps that must 128 be addressed in order to allow MPLS-related protocols and 129 applications to be used with IPv6-only networks. This is an another 130 example of scenario where a solution relaying on IPv6 without 131 requiring the use of MPLS could represent a valid option to solve the 132 problem and meet operators' requirements. 134 It is important to clarify that today, it is possible to run IPv6 on 135 top of an IPv4 MPLS network by using the mechanism called 6PE, 136 described in [RFC4798]. However this approach does not fulfill the 137 requirement of removing the need of IPv4 addresses in the network, as 138 requested in the above use case. Another way to run IPv6 on top of 139 an MPLS network is to use Segment Routing MPLS which provides the 140 support for the IPv6 FEC. Obviously such approach is applicable only 141 for scenarios and network segments where MPLS is present. 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 in a portion of the 158 end to end path 160 3. There is a need or desire to remove routing state from any node 161 other than the source, such that the source is the only node that 162 knows and will know the path a packet will take, a priori 164 4. There is a need to connect millions of addressable segment 165 endpoints, thus high routing scalability is a requirement. IPv6 166 addresses are inherently summarizable: a very large operator 167 could scale by summarizing IPv6 subnets at various internal 168 boundaries. This is very simple and is a basic property of IP 169 routing. MPLS node segments are not summarizable. To reach the 170 same scale, an operator would need to introduce additional 171 complexity, such as mechanisms known with the industry term 172 Seamless MPLS. 174 In any environment with requirements such as those listed above, an 175 IPv6 data plane provides a powerful combination of capabilities for a 176 network operator to realize benefits in explicit routing, protection 177 and restoration, high routing scalability, traffic engineering, 178 service differentiation and application flexibility via 179 programmability. 181 This section will describe some scenarios where MPLS may not be 182 present and it will highlight how the SPRING architecture could be 183 used to address such use cases. 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. In addition to the use cases described in this 189 document the SPRING architecture can be applied to all the use cases 190 described in [RFC7855] for the SPRING MPLS data plane, when an IPv6 191 data plane is present. 193 2.1. SPRING in the Home Network 195 An IPv6-enabled home network provides ample globally routed IP 196 addresses for all devices in the home. An IPv6 home network with 197 multiple egress points and associated provider-assigned prefixes 198 will, in turn, provide multiple IPv6 addresses to hosts. A homenet 199 performing Source and Destination Routing 200 ([I-D.ietf-rtgwg-dst-src-routing]) will ensure that packets exit the 201 home at the appropriate egress based on the associated delegated 202 prefix for that link. 204 A SPRING enabled home provides the possibility for imposition of a 205 Segment List by end-hosts in the home, or a customer edge router in 206 the home. If the Segment List is enabled at the customer edge 207 router, that router is responsible for classifying traffic and 208 inserting the appropriate Segment List. If hosts in the home have 209 explicit source selection rules, classification can be based on 210 source address or associated network egress point, avoiding the need 211 for DPI-based implicit classification techniques. If the Segment 212 List is inserted by the host itself, it is important to know which 213 networks can interpret the SPRING header. This information can be 214 provided as part of host configuration as a property of the 215 configured IP address. 217 The ability to steer traffic to an appropriate egress or utilize a 218 specific type of media (e.g., low-power, WIFI, wired, femto-cell, 219 bluetooth, MOCA, HomePlug, etc.) within the home itself are obvious 220 cases which may be of interest to an application running within a 221 home network. 223 Steering to a specific egress point may be useful for a number of 224 reasons, including: 226 o Regulatory 228 o Performance of a particular service associated with a particular 229 link 231 o Cost imposed due to data-caps or per-byte charges 233 o Home vs. work traffic in homes with one or more teleworkers, etc. 235 o Specific services provided by one ISP vs. another 236 Information included in the Segment List, whether imposed by the end- 237 host itself, a customer edge router, or within the access network of 238 the ISP, may be of use at the far ends of the data communication as 239 well. For example, an application running on an end-host with 240 application-support in a data center can utilize the Segment List as 241 a channel to include information that affects its treatment within 242 the data center itself, allowing for application-level steering and 243 load-balancing without relying upon implicit application 244 classification techniques at the data-center edge. Further, as more 245 and more application traffic is encrypted, the ability to extract 246 (and include in the Segment List) just enough information to enable 247 the network and data center to load-balance and steer traffic 248 appropriately becomes more and more important. 250 2.2. SPRING in the Access Network 252 Access networks deliver a variety of types of traffic from the 253 service provider's network to the home environment and from the home 254 towards the service provider's network. 256 For bandwidth management or related purposes, the service provider 257 may want to associate certain types of traffic to specific physical 258 or logical downstream capacity pipes. 260 This mapping is not the same thing as classification and scheduling. 261 In the Cable access network, each of these pipes are represented at 262 the DOCSIS layer as different service flows, which are better 263 identified as differing data links. As such, creating this 264 separation allows an operator to differentiate between different 265 types of content and perform a variety of differing functions on 266 these pipes, such as byte capping, regulatory compliance functions, 267 and billing. 269 In a cable operator's environment, these downstream pipes could be a 270 specific QAM, a DOCSIS service flow or a service group. 272 Similarly, the operator may want to map traffic from the home sent 273 towards the service provider's network to specific upstream capacity 274 pipes. Information carried in a packet's SPRING header could provide 275 the target pipe for this specific packet. The access device would 276 not need to know specific details about the packet to perform this 277 mapping; instead the access device would only need to know how to map 278 the SR SID value to the target pipe. 280 2.3. SPRING in the Data Center 282 Some Data Center operators are transitioning their Data Center 283 infrastructure from IPv4 to native IPv6 only, in order to cope with 284 IPv4 address depletion and the achieve larger scale. In such 285 environment, Segment Routing IPv6 can be used to steer traffic across 286 specific paths. 288 2.4. SPRING in the Content Delivery Networks 290 The rise of online video applications and new, video-capable IP 291 devices has led to an explosion of video traffic traversing network 292 operator infrastructures. In the drive to reduce the capital and 293 operational impact of the massive influx of online video traffic, as 294 well as to extend traditional TV services to new devices and screens, 295 network operators are increasingly turning to Content Delivery 296 Networks (CDNs). 298 Several studies showed the benefits of connecting caches in a 299 hierarchical structure following the hierarchical nature of the 300 Internet. In a cache hierarchy one cache establishes peering 301 relationships with its neighbor caches. There are two types of 302 relationship: parent and sibling. A parent cache is essentially one 303 level up in a cache hierarchy. A sibling cache is on the same level. 304 Multiple levels of hierarchy are commonly used in order to build 305 efficient caches architecture. 307 In an environment, where each single cache system can be uniquely 308 identified by its own IPv6 address, a Segment List containing a 309 sequence of the caches in a hierarchy can be built. At each node 310 (cache) present in the Segment List a TCP session to port 80 is 311 established and if the requested content is found at the cache (cache 312 hits scenario) the sequence ends, even if there are more nodes in the 313 list. 315 2.5. SPRING in the Core networks 317 MPLS is a well-known technology widely deployed in many IP core 318 networks. However there are some operators that do not run MPLS 319 everywhere in their core network today, thus moving forward they 320 would prefer to have an IPv6 native infrastructure for the core 321 network. 323 While the overall amount of traffic offered to the network continues 324 to grow and considering that multiple types of traffic with different 325 characteristics and requirements are quickly converging over single 326 network architecture, the network operators are starting to face new 327 challenges. 329 Some operators are looking at the possibility to setup an explicit 330 path based on the IPv6 source address for specific types of traffic 331 in order to efficiently use their network infrastructure. In case of 332 IPv6 some operators are currently assigning or plan to assign IPv6 333 prefix(es) to their IPv6 customers based on regions/geography, thus 334 the subscriber's IPv6 prefix could be used to identify the region 335 where the customer is located. In such environment the IPv6 source 336 address could be used by the Edge nodes of the network to steer 337 traffic and forward it through a specific path other than the optimal 338 path. 340 The need to setup a source-based path, going through some specific 341 middle/intermediate points in the network may be related to different 342 requirements: 344 o The operator may want to be able to use some high bandwidth links 345 for specific type of traffic (like video) avoiding the need for 346 over-dimensioning all the links of the network; 348 o The operator may want to be able to setup a specific path for 349 delay sensitive applications; 351 o The operator may have the need to be able to select one (or 352 multiple) specific exit point(s) at peering points when different 353 peering points are available; 355 o The operator may have the need to be able to setup a source based 356 path for specific services in order to be able to reach some 357 servers hosted in some facilities not always reachable through the 358 optimal path; 360 o The operator may have the need to be able to provision guaranteed 361 disjoint paths (so-called dual-plane network) for diversity 362 purposes 364 All these scenarios would require a form of traffic engineering 365 capabilities in IP core networks not running MPLS and not willing to 366 run it. 368 IPv4 protocol does not provide such functionalities today and it is 369 not the intent of this document to address the IPv4 scenario, both 370 because this may create a lot of backward compatibility issues with 371 currently deployed networks and for the security issues that may 372 raise. 374 The described use cases could be addressed with the SPRING 375 architecture by having the Edge nodes of network to impose a Segment 376 List on specific traffic flows, based on certain classification 377 criteria that would include source IPv6 address. 379 3. Contributors 381 Many people contributed to this document. The authors of this 382 document would like to thank and recognize them and their 383 contributions. These contributors provided invaluable concepts and 384 content for this document's creation. 386 Ida Leung 387 Rogers Communications 388 8200 Dixie Road 389 Brampton, ON L6T 0C1 390 CANADA 392 Email: Ida.Leung@rci.rogers.com 394 Stefano Previdi 395 Cisco Systems 396 Via Del Serafico, 200 397 Rome 00142 398 Italy 400 Email: sprevidi@cisco.com 402 Christian Martin 403 Cisco Systems 405 Email: martincj@cisco.com 407 4. Acknowledgements 409 The authors would like to thank Brian Field, Robert Raszuk, Wes 410 George, Eric Vyncke, Fred Baker, John G. Scudder and Yakov Rekhter 411 for their valuable comments and inputs to this document. 413 5. IANA Considerations 415 This document does not require any action from IANA. 417 6. Security Considerations 419 There are a number of security concerns with source routing at the IP 420 layer [RFC5095]. Security mechanisms applied to Segment Routing over 421 IPv6 networks are detailed in section 9 of 422 [I-D.ietf-6man-segment-routing-header] 424 7. Informative References 426 [I-D.ietf-6man-segment-routing-header] 427 Previdi, S., Filsfils, C., Field, B., Leung, I., Linkova, 428 J., Aries, E., Kosugi, T., Vyncke, E., and D. Lebrun, 429 "IPv6 Segment Routing Header (SRH)", draft-ietf-6man- 430 segment-routing-header-04 (work in progress), January 431 2017. 433 [I-D.ietf-rtgwg-dst-src-routing] 434 Lamparter, D. and A. Smirnov, "Destination/Source 435 Routing", draft-ietf-rtgwg-dst-src-routing-03 (work in 436 progress), November 2016. 438 [I-D.ietf-spring-segment-routing] 439 Filsfils, C., Previdi, S., Decraene, B., Litkowski, S., 440 and R. Shakir, "Segment Routing Architecture", draft-ietf- 441 spring-segment-routing-10 (work in progress), November 442 2016. 444 [I-D.ietf-spring-segment-routing-mpls] 445 Filsfils, C., Previdi, S., Bashandy, A., Decraene, B., 446 Litkowski, S., Horneffer, M., Shakir, R., 447 jefftant@gmail.com, j., and E. Crabbe, "Segment Routing 448 with MPLS data plane", draft-ietf-spring-segment-routing- 449 mpls-06 (work in progress), January 2017. 451 [RFC4798] De Clercq, J., Ooms, D., Prevost, S., and F. Le Faucheur, 452 "Connecting IPv6 Islands over IPv4 MPLS Using IPv6 453 Provider Edge Routers (6PE)", RFC 4798, 454 DOI 10.17487/RFC4798, February 2007, 455 . 457 [RFC5095] Abley, J., Savola, P., and G. Neville-Neil, "Deprecation 458 of Type 0 Routing Headers in IPv6", RFC 5095, 459 DOI 10.17487/RFC5095, December 2007, 460 . 462 [RFC7439] George, W., Ed. and C. Pignataro, Ed., "Gap Analysis for 463 Operating IPv6-Only MPLS Networks", RFC 7439, 464 DOI 10.17487/RFC7439, January 2015, 465 . 467 [RFC7855] Previdi, S., Ed., Filsfils, C., Ed., Decraene, B., 468 Litkowski, S., Horneffer, M., and R. Shakir, "Source 469 Packet Routing in Networking (SPRING) Problem Statement 470 and Requirements", RFC 7855, DOI 10.17487/RFC7855, May 471 2016, . 473 Authors' Addresses 475 John Brzozowski 476 Comcast 478 Email: john_brzozowski@cable.comcast.com 480 John Leddy 481 Comcast 483 Email: John_Leddy@cable.comcast.com 485 Mark Townsley 486 Cisco Systems 488 Email: townsley@cisco.com 490 Clarence Filsfils 491 Cisco Systems 492 Brussels 493 BE 495 Email: cfilsfil@cisco.com 497 Roberta Maglione (editor) 498 Cisco Systems 499 Via Torri Bianche 8 500 Vimercate 20871 501 Italy 503 Email: robmgl@cisco.com