idnits 2.17.1 draft-mcbride-bier-ipv6-requirements-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 : ---------------------------------------------------------------------------- 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 (April 1, 2019) is 1853 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: 'RFC2473' is defined on line 482, but no explicit reference was found in the text == Outdated reference: A later version (-10) exists of draft-xie-bier-ipv6-encapsulation-00 == Outdated reference: A later version (-09) exists of draft-zhang-bier-bierin6-02 ** Downref: Normative reference to an Informational RFC: RFC 8354 Summary: 1 error (**), 0 flaws (~~), 5 warnings (==), 1 comment (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 BIER M. McBride 3 Internet-Draft J. Xie 4 Intended status: Standards Track S. Dhanaraj 5 Expires: October 3, 2019 Huawei 6 R. Asati 7 Cisco 8 April 1, 2019 10 BIER IPv6 Requirements 11 draft-mcbride-bier-ipv6-requirements-00 13 Abstract 15 The BIER WG has a charter item to work on mechanisms which use BIER 16 natively in IPv6. This document is intended to help the WG with this 17 effort by describing the problem space of transporting packets, with 18 Bit Index Explicit Replication (BIER) headers, in an IPv6 19 environment. There will be a need to send IPv6 payloads, to multiple 20 IPv6 destinations, using BIER. There have been several proposed 21 solutions in this area. But there hasn't been a document which 22 describes the problem and why this may be necessary. The goal of 23 this document is to describe the BIER IPv6 problem space, basic use 24 cases, why new solutions may be needed and briefly summarize some of 25 the proposed solutions. 27 Status of This Memo 29 This Internet-Draft is submitted in full conformance with the 30 provisions of BCP 78 and BCP 79. 32 Internet-Drafts are working documents of the Internet Engineering 33 Task Force (IETF). Note that other groups may also distribute 34 working documents as Internet-Drafts. The list of current Internet- 35 Drafts is at https://datatracker.ietf.org/drafts/current/. 37 Internet-Drafts are draft documents valid for a maximum of six months 38 and may be updated, replaced, or obsoleted by other documents at any 39 time. It is inappropriate to use Internet-Drafts as reference 40 material or to cite them other than as "work in progress." 42 This Internet-Draft will expire on October 3, 2019. 44 Copyright Notice 46 Copyright (c) 2019 IETF Trust and the persons identified as the 47 document authors. All rights reserved. 49 This document is subject to BCP 78 and the IETF Trust's Legal 50 Provisions Relating to IETF Documents 51 (https://trustee.ietf.org/license-info) in effect on the date of 52 publication of this document. Please review these documents 53 carefully, as they describe your rights and restrictions with respect 54 to this document. Code Components extracted from this document must 55 include Simplified BSD License text as described in Section 4.e of 56 the Trust Legal Provisions and are provided without warranty as 57 described in the Simplified BSD License. 59 Table of Contents 61 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 62 1.1. Requirements Language . . . . . . . . . . . . . . . . . . 3 63 1.2. Terminology . . . . . . . . . . . . . . . . . . . . . . . 3 64 2. Problem Statement . . . . . . . . . . . . . . . . . . . . . . 3 65 3. BIER IPv6 encapsulation Scenario's . . . . . . . . . . . . . 3 66 3.1. BIERv6 for Access Network . . . . . . . . . . . . . . . . 4 67 3.2. BIERv6 for Data Center . . . . . . . . . . . . . . . . . 4 68 3.3. BIERv6 for Core Networks . . . . . . . . . . . . . . . . 4 69 3.4. Implications for BIER in SRv6 . . . . . . . . . . . . . . 5 70 4. Example Proposed Solutions . . . . . . . . . . . . . . . . . 5 71 4.1. BIER-ETH encapsulation in IPv6 networks . . . . . . . . . 5 72 4.2. Encode Bitstring in IPv6 destination address . . . . . . 6 73 4.3. Add BIER header into IPv6 Extension Header . . . . . . . 7 74 4.4. Transport BIER as IPv6 payload . . . . . . . . . . . . . 8 75 4.5. Tunneling BIER in a IPv6 tunnel . . . . . . . . . . . . . 8 76 5. Suggested Requirements . . . . . . . . . . . . . . . . . . . 9 77 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 10 78 7. Security Considerations . . . . . . . . . . . . . . . . . . . 10 79 8. Acknowledgement . . . . . . . . . . . . . . . . . . . . . . . 10 80 9. Normative References . . . . . . . . . . . . . . . . . . . . 10 81 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 11 83 1. Introduction 85 Bit Index Explicit Replication (BIER) [RFC8279] is an architecture 86 that provides optimal multicast forwarding, without requiring 87 intermediate routers to maintain per-flow state, through the use of a 88 multicast-specific BIER header. [RFC8296] defines two types of BIER 89 encapsulation to run on physical links: one is BIER MPLS 90 encapsulation to run on various physical links that support MPLS, the 91 other is BIER Ethernet encapsulation to run on ethernet links, with 92 an ethertype 0xAB37. This document describes using BIER in non-MPLS 93 IPv6 environments. We explain the problem space of transporting 94 IPv4/IPv6 multicast payloads, from an IPv6 router (BFIR) to multicast 95 IPv6 destinations (BFERs), using BIER. This can include native IPv6 96 encapsulation and generic tunneling. There have been several 97 proposed solutions in this area. But there hasn't been a document 98 which describes the problem and why this may be necessary. The goal 99 of this document is to describe the BIER v6 problem space, use cases, 100 encapsulations, existing solutions and why new solutions may be 101 needed. This draft is intended to help the BIER WG evaluate the need 102 for an encapsulation that is IPv6-specific through describing the 103 problem and summarizing BIERV6 related solutions. 105 1.1. Requirements Language 107 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 108 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 109 document are to be interpreted as described in RFC 2119 [RFC2119]. 111 1.2. Terminology 113 o BIER: Bit Index Explicit Replication. Provides optimal multicast 114 forwarding through adding a BIER header and removing state in 115 intermediate routers. 117 o BUM: Broadcast, Unknown Unicast, Multicast. Term used to describe 118 the three types of Ethernet modes that will be forwarded to 119 multiple destinations 121 2. Problem Statement 123 The problem is the ability of the network to transport BUM packets, 124 with BIER headers, in an IPv6 environment. In an IPv6 network, many 125 deployments consider using a non-MPLS encapsulation for unicast as 126 the data-plane. In such case, it may be expected to have a BIER IPv6 127 encapsulation which is compliant with various kinds of physical 128 links, perhaps in a hop-by-hop manner, and maintain the benefit of 129 "fast reroute" of an IPv6 tunnel. 131 3. BIER IPv6 encapsulation Scenario's 133 +--------------------------------------------+ 134 | | 135 | +------+ 136 | | BFER | 137 +------+ IPv6 +------+ 138 | BFIR | | 139 +------+ Network +------+ 140 | | BFER | 141 | +------+ 142 | | 143 +--------------------------------------------+ 145 This basic scenario depicts the need to replicate bier packets from a 146 BFIR to BFERs across an IPv6 core. The IPv6 environment may include 147 a variety of link types, may be entirely IPv6, may be dual stack or 148 any type of combination which includes IPv6. Regardless of the 149 environment, there are times when a BIER header, including the BIER 150 bitstring used to determine the set of BIER forwarding egress 151 routers, will need to traverse a IPv6 domain. The ways in which BIER 152 will function in an IPv6 environment is the problem that needs to be 153 solved. [RFC8354] lists some good IPv6 related use cases which we 154 will similarly reference in this document. 156 3.1. BIERv6 for Access Network 158 Access networks deliver a variety of types of multicast video traffic 159 from the service provider's network to the home (or Enterprise) 160 environment and from the home towards the service provider's network. 162 There will be a need to send traffic from the IPv4 access towards the 163 service provider's IPv6 network and vice versa. A packet could be 164 mapped into a providers IPv6 network through the use of a BIERv6 165 header. The access devices would not need to know specific details 166 about the packet to perform this mapping; instead the access device 167 would only need to know how to process a BIER header unless there is 168 end to end IPv6. 170 3.2. BIERv6 for Data Center 172 Some Data Center operators are transitioning their Data Center 173 infrastructure from IPv4 to native IPv6 only, in order to cope with 174 IPv4 address depletion and to achieve larger scale. In such 175 environment, BIERv6, can be used to natively steer multicast data 176 across an IPv6 data center. 178 3.3. BIERv6 for Core Networks 180 While the overall amount of traffic offered to the network continues 181 to grow and considering that multiple types of traffic with different 182 characteristics and requirements are quickly converging over single 183 network architecture, the network operators are starting to face new 184 challenges. 186 Some operators are currently building, or plan to build in the near 187 future, an IPv6 only native infrastructure for their core network. 188 Having a native BIERv6 infrastructure will help maintain simplicity 189 of the network and reduce state versus traditional IP Multicast. 191 3.4. Implications for BIER in SRv6 193 The Source Packet Routing in Networking (SPRING) architecture 194 describes how Segment Routing can be used to steer packets through an 195 IPv6 or MPLS network using the source routing paradigm. [RFC8354] 196 focuses on use cases for Segment Routing in an IPv6 only environment, 197 something which is equially important for BIER in an IPv6 only 198 environment. 200 4. Example Proposed Solutions 202 Although this is not a solutions document it should be helpful to 203 list the various proposed solutions, without addressing the benefits 204 of one over another, to help understand the problem more clearly. 205 The following are solutions that have been proposed to solve BIER in 206 v6 environments. 208 As illustrated in these examples, the BIER header, or the BitString, 209 may appear in the IPv6 Header, IPv6 Extension Header, IPv6 Payload, 210 or IPv6 Tunnel Packet: 212 4.1. BIER-ETH encapsulation in IPv6 networks 214 +---------------+-----------------+------------------- 215 | Ethernet | BIER header | payload 216 | (ethType = | (BIFT-id, ...) | 217 | 0xAB37) | | 218 | | Next Header | 219 +---------------+-----------------+------------------- 221 BIER-ETH encapsulation (BIER header for Non-MPLS networks as defined 222 in [RFC8296]) can be used to transport the multicast data in the IPv6 223 network by encapsulating the multicast user data payload within the 224 BIER-ETH header. However, using BIER-ETH in IPv6 networks is not 225 considered to be a native IPv6 solution which utilizes the IPv6 226 header to forward the packet. Below listed are some of the 227 properties of BIER-ETH encapsulation which could be seen as the 228 reasons for the same, 230 o BIER-ETH is not agnostic to the underlying (L2) data link type. 231 It can be deployed only in the networks with Ethernet data link 232 and cannot be deployed in an network which deploys any other data 233 link types. Use of BIER-ETH in IPv6 networks might also result in 234 using different BIER encapsulations, when BIER is used as a E2E 235 multicast transport across a larger heterogeneous IPv6 networks 236 with different data link types used in different layers of the 237 network. 239 o BIER-ETH in IPv6 networks is considered similar to 6PE solution 240 where-in the multicast user data packet is encapsulated with-in 241 the BIER-MPLS header. 243 * It is worth noting that the only major difference between BIER- 244 MPLS and BIER-Non-MPLS header is that BIER-MPLS uses downstream 245 assigned MPLS label while BIER-Non-MPLS header uses a domain- 246 wide-unique BIFT-id. While the use of domain-wide-unique BIFT- 247 id in BIER-ETH header takes away the complexity of allocation 248 and state maintenance from the network, it still requires some 249 sort of ID (similar to label) to identify the application 250 context after the decapsulation of BIER header (example: MVPN 251 VRF Label). Encoding of such an ID/LABEL before encapsulating 252 the multicast user data payload with BIER-ETH header cannot be 253 avoided. 255 * The absence of an IPv6 header, and the optional IPv6 extension 256 headers, deprives BIER of some of the useful cases (ex: Use of 257 IPv6 address for identification of network function or service 258 mapping) that is otherwise possible in native IPv6 259 encapsulation which utilizes a IPv6 header. 261 * Tunneling of BIER packets is one common technique used for FRR, 262 to tunnel over BIER incapable nodes etc. While it is possible 263 for the BIER-ETH encapsulated packet to be further encapsulated 264 within a GRE6 or SRv6, etc tunnel, it might not be possible to 265 parse and decapsulate different types of tunnel headers and 266 forward the BIER packet completely in hardware fast path 267 similar to the label stack processing in BIER-MPLS networks. 268 It would be useful to select an encapsulation which could help 269 in processing the tunnel and BIER header and make the 270 forwarding decision completely in hardware fast path, which is 271 lacking in BIER-ETH encapsulation if chosen to be deployed in 272 pure IPv6 networks. 274 4.2. Encode Bitstring in IPv6 destination address 276 +---------------+------------------- 277 | IPv6 header | payload 278 | (BitString in | 279 | DA lower bits)| 280 | Next Header | 281 +---------------+------------------- 283 As described in [I-D.pfister-bier-over-ipv6], The information 284 required by BIER is stored in the destination IPv6 address. The BIER 285 BitString is encoded in the low-order bits of the IPv6 destination 286 address of each packet. The high-order bits of the IPv6 destination 287 address are used by intermediate routers for unicast forwarding, 288 deciding whether a packet is a BIER packet, and if so, to identify 289 the BIER Sub-Domain, Set Identifier and BitString length. No 290 additional extension or encapsulation header is required. Instead of 291 encapsulating the packet in IPv6, the payload is attached to the BIER 292 IPv6 header and the IPv6 protocol number is set to the type of the 293 payload. If the payload is UDP, the UDP checksum needs to change 294 when the BitString in the IPv6 destination address changes. 296 4.3. Add BIER header into IPv6 Extension Header 298 +---------------+-----------------+------------------- 299 | IPv6 header | IPv6 Ext header | payload 300 |(Multicast DA) | (BIER header in | 301 | | TLV Type = X) | 302 | Next Header | Next Header | 303 +---------------+-----------------+------------------- 305 According to [RFC8200] In IPv6, optional internet-layer information 306 is encoded in separate headers that may be placed between the IPv6 307 header and the upper- layer header in a packet. There is a small 308 number of such extension headers, each one identified by a distinct 309 Next Header value. An IPv6 packet may carry zero, one, or more 310 extension headers, each identified by the Next Header field of the 311 preceding header. Extension headers (except for the Hop-by-Hop 312 Options header) are not processed, inserted, or deleted by any node 313 along a packet's delivery path, until the packet reaches the node (or 314 each of the set of nodes, in the case of multicast) identified in the 315 Destination Address field of the IPv6 header. The Hop-by-Hop Options 316 header is not inserted or deleted, but may be examined or processed 317 by any node along a packet's delivery path, until the packet reaches 318 the node (or each of the set of nodes, in the case of multicast) 319 identified in the Destination Address field of the IPv6 header. The 320 Hop-by-Hop Options header, when present, must immediately follow the 321 IPv6 header. Its presence is indicated by the value zero in the Next 322 Header field of the IPv6 header. 324 Two of the currently-defined extension headers are the Hop-by-Hop 325 Options header and the Destination Options header which carry a 326 variable number of type-length-value (TLV) encoded "options". 328 In [I-D.xie-bier-ipv6-encapsulation] an IPv6 BIER Destination Option 329 is carried by the IPv6 Destination Option Header (indicated by a Next 330 Header value 60). It is initialized in a packet sent by an IPv6 BFIR 331 router to inform the following BFR routers in an IPv6 BIER domain to 332 replicate to destination BFER routers hop-by-hop. BIER is generally 333 a hop-by-hop and one-to-many architecture and it is required for a 334 BIER IPv6 encapsulation to include the BIER Header ([RFC8296]) as an 335 IPv6 Extension Header, to pilot the hop-by-hop BIER replication. 337 Hop by hop Options Headers may be considered. The Hop-by-Hop Options 338 header is used to carry optional information that may be examined and 339 processed by every node along a packet's delivery path. The Hop-by- 340 Hop Options header is identified by a Next Header value of 0 in the 341 IPv6 header. 343 Defining New Extension Headers and Options may also be considered, if 344 the IPv6 Destination Option Header is not good enough and new 345 extension headers can solve the problem better. 347 Such proposals may include requests to IANA to allocate a "BIER 348 Option" code from "Destination Options and Hop-by-Hop Options", and/ 349 or a "BIER Option Header" code from "IPv6 Extension Header Types". 351 4.4. Transport BIER as IPv6 payload 353 +---------------+-----------------+------------------- 354 | IPv6 header | IPv6 Ext header | BIER Hdr + payload 355 | | (optional) | as IPv6 payload 356 | | | 357 | Next Header | Next Header = X | 358 +---------------+-----------------+------------------- 360 There is a proposal for a transport-independent BIER encapsulation 361 header which is applicable regardless of the underlying transport 362 technology. As described in [I-D.xu-bier-encapsulation] and 363 [I-D.zhang-bier-bierin6], the BIER header, and the payload following 364 it, can be combined as an IPv6 payload, and be indicated by a new 365 Upper-layer IPv6 Next-Header value. A unicast IPv6 destination 366 address is used for the replication and changes when replicating a 367 packet out to a neighbor. 369 Such proposals may include a request to IANA to allocate an IPv6 370 Next-Header code from "Assigned Internet Protocol Numbers". 372 4.5. Tunneling BIER in a IPv6 tunnel 374 +---------------+-----------------+------------+---------------- 375 | IPv6 header | IPv6 Ext header | GRE header | 376 | | (optional) | | BIER Hdr + 377 | | | | payload as GRE 378 | Next Header | Next Header | Proto = X | Payload 379 +---------------+-----------------+------------+---------------- 381 A generic IPv6 Tunnel could be used to encapsulate the bier packet 382 within an IPv6 domain. 384 GRE is a mechanism by which any ethernet payload can be carried by an 385 IP GRE tunnel due to the 16-bits 'Protocol Type' field. Both IPv4 386 and IPv6 can be used to carry GRE. The Ethernet type codepoint 387 0xAB37, defined for BIER, can be used in a GRE header to indicate the 388 subsequent BIER header and payload in an IPv6 network. 390 +---------------+-----------------+------------+---------------- 391 | IPv6 header | IPv6 Ext header | UDP header | 392 | | (optional) | | BIER Hdr + 393 | | | | payload as UDP 394 | Next Header | Next Header | DPort = X | Payload 395 +---------------+-----------------+------------+---------------- 397 UDP-based tunneling is another mechanism which uses a specific UDP 398 port to indicate a UDP payload format. Both IPv4 and IPv6 can 399 support UDP. Such UDP-based tunnels can be used for BIER in a IPv6 400 network by defining a new UDP port to indicate the BIER header and 401 payload. 403 5. Suggested Requirements 405 This is not a requirements document and we may eventually remove this 406 section. We will, however, summarize some of the "requirements", 407 that have been suggested on the BIER email list, to help further 408 understand the problem. At a minimum, this may serve as a kick start 409 to a requirements draft if one is deemed necessary by the WG: 411 The solution should be agnostic to the underlying L2 data link type. 413 The solution should not require hop-by-hop modification of the IP 414 destination address field. 416 The solution should not require the BFRs to inspect layer 4 or 417 require any changes to layer 4. 419 The solution should not allow a multicast address to be put in the IP 420 source address field. 422 The solution should not assume that bits never get set incorrectly. 424 The solution should not require changes in source address filtering 425 procedures. 427 The solution should be possible to be used to support the entire BIER 428 architecture. 430 The solution should avoid having to use different encapsulation 431 types, or use complex tunneling techniques, to support BIER as a E2E 432 multicast transport. 434 The solution should enable the processing and forwarding of BIER 435 packets in hardware fast path. 437 6. IANA Considerations 439 Some BIERv6 encapsulation proposals do not require any action from 440 IANA while other proposals require new BIER Destination Option 441 codepoints from IPv6 sub-registries or require new IP Protocol codes. 442 This document, however, does not require anything from IANA. 444 7. Security Considerations 446 There are no security issues introduced by this draft. 448 8. Acknowledgement 450 Thank you to Eric Rosen for his listed set of requirements on the 451 bier wg list. 453 9. Normative References 455 [I-D.pfister-bier-over-ipv6] 456 Pfister, P. and I. Wijnands, "An IPv6 based BIER 457 Encapsulation and Encoding", draft-pfister-bier-over- 458 ipv6-01 (work in progress), October 2016. 460 [I-D.xie-bier-ipv6-encapsulation] 461 Xie, J., Geng, L., McBride, M., Dhanaraj, S., Yan, G., and 462 Y. Xia, "Encapsulation for BIER in Non-MPLS IPv6 463 Networks", draft-xie-bier-ipv6-encapsulation-00 (work in 464 progress), March 2019. 466 [I-D.xu-bier-encapsulation] 467 Xu, X., somasundaram.s@alcatel-lucent.com, s., Jacquenet, 468 C., Raszuk, R., and Z. Zhang, "A Transport-Independent Bit 469 Index Explicit Replication (BIER) Encapsulation Header", 470 draft-xu-bier-encapsulation-06 (work in progress), 471 September 2016. 473 [I-D.zhang-bier-bierin6] 474 Zhang, Z. and T. Przygienda, "BIER in IPv6", draft-zhang- 475 bier-bierin6-02 (work in progress), October 2018. 477 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 478 Requirement Levels", BCP 14, RFC 2119, 479 DOI 10.17487/RFC2119, March 1997, 480 . 482 [RFC2473] Conta, A. and S. Deering, "Generic Packet Tunneling in 483 IPv6 Specification", RFC 2473, DOI 10.17487/RFC2473, 484 December 1998, . 486 [RFC8200] Deering, S. and R. Hinden, "Internet Protocol, Version 6 487 (IPv6) Specification", STD 86, RFC 8200, 488 DOI 10.17487/RFC8200, July 2017, 489 . 491 [RFC8279] Wijnands, IJ., Ed., Rosen, E., Ed., Dolganow, A., 492 Przygienda, T., and S. Aldrin, "Multicast Using Bit Index 493 Explicit Replication (BIER)", RFC 8279, 494 DOI 10.17487/RFC8279, November 2017, 495 . 497 [RFC8296] Wijnands, IJ., Ed., Rosen, E., Ed., Dolganow, A., 498 Tantsura, J., Aldrin, S., and I. Meilik, "Encapsulation 499 for Bit Index Explicit Replication (BIER) in MPLS and Non- 500 MPLS Networks", RFC 8296, DOI 10.17487/RFC8296, January 501 2018, . 503 [RFC8354] Brzozowski, J., Leddy, J., Filsfils, C., Maglione, R., 504 Ed., and M. Townsley, "Use Cases for IPv6 Source Packet 505 Routing in Networking (SPRING)", RFC 8354, 506 DOI 10.17487/RFC8354, March 2018, 507 . 509 Authors' Addresses 511 Mike McBride 512 Huawei 514 Email: michael.mcbride@huawei.com 516 Jingrong Xie 517 Huawei 519 Email: xiejingrong@huawei.com 520 Senthil Dhanaraj 521 Huawei 523 Email: senthil.dhanaraj@huawei.com 525 Rajiv Asati 526 Cisco 528 Email: rajiva@cisco.com