idnits 2.17.1 draft-xie-bier-ipv6-encapsulation-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 date (March 8, 2019) is 1876 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) == Missing Reference: 'RFC2474' is mentioned on line 212, but not defined -- Looks like a reference, but probably isn't: '1' on line 264 -- Looks like a reference, but probably isn't: '2' on line 264 -- Looks like a reference, but probably isn't: '3' on line 264 -- Looks like a reference, but probably isn't: '4' on line 264 -- Looks like a reference, but probably isn't: '5' on line 264 == Missing Reference: 'E' is mentioned on line 264, but not defined == Outdated reference: A later version (-01) exists of draft-mcbride-bier-ipv6-problem-statement-00 Summary: 0 errors (**), 0 flaws (~~), 4 warnings (==), 6 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 Network Working Group J. Xie 3 Internet-Draft Huawei Technologies 4 Intended status: Standards Track L. Geng 5 Expires: September 9, 2019 China Mobile 6 M. McBride 7 S. Dhanaraj 8 G. Yan 9 Y. Xia 10 Huawei 11 March 8, 2019 13 Encapsulation for BIER in Non-MPLS IPv6 Networks 14 draft-xie-bier-ipv6-encapsulation-00 16 Abstract 18 This document proposes a BIER IPv6 (BIERv6) encapsulation for Non- 19 MPLS IPv6 Networks using the IPv6 Destination Option extension 20 header. 22 Requirements Language 24 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 25 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 26 document are to be interpreted as described in [RFC2119] and 27 [RFC8174]. 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 https://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 September 9, 2019. 46 Copyright Notice 48 Copyright (c) 2019 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 (https://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. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3 65 3. BIER IPv6 Encapsulation . . . . . . . . . . . . . . . . . . . 3 66 3.1. BIER Option in IPv6 Destination Options Header . . . . . 3 67 3.2. Multicast and Unicast Destination Address . . . . . . . . 6 68 3.3. BIERv6 Packet Format . . . . . . . . . . . . . . . . . . 7 69 4. BIERv6 Packet Processing . . . . . . . . . . . . . . . . . . 8 70 5. Security Considerations . . . . . . . . . . . . . . . . . . . 9 71 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 10 72 6.1. BIER Option Type . . . . . . . . . . . . . . . . . . . . 10 73 6.2. BIER Multicast Address . . . . . . . . . . . . . . . . . 10 74 7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 10 75 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 10 76 8.1. Normative References . . . . . . . . . . . . . . . . . . 10 77 8.2. Informative References . . . . . . . . . . . . . . . . . 11 78 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 11 80 1. Introduction 82 Bit Index Explicit Replication (BIER) [RFC8279] is an architecture 83 that provides optimal multicast forwarding without requiring 84 intermediate routers to maintain any per-flow state by using a 85 multicast-specific BIER header. 87 [RFC8296] defines a common BIER Header format for MPLS and Non-MPLS 88 networks. It has defined two types of encapsulation methods using 89 the common BIER Header, (1) BIER encapsulation in MPLS networks, 90 here-in after referred as MPLS BIER Header in this document and (2) 91 BIER encapsulation in Non-MPLS networks, here-in after referred as 92 Non-MPLS BIER Header in this document. [RFC8296] also assigned 93 Ethertype=0xAB37 for Non-MPLS BIER Header packets to be directly 94 carried over the Ethernet links. 96 This document proposes a BIER IPv6 encapsulation for Non-MPLS IPv6 97 Networks, defining a method to carry the standard Non-MPLS BIER 98 header (as defined in [RFC8296]) in the native IPv6 header. A new 99 IPv6 Option type - BIER Option is defined to encode the standard Non- 100 MPLS BIER header and this newly defined BIER Option is carried under 101 the Destination Options header of the native IPv6 Header [RFC8200]. 103 This document details one of the proposed solutions for transporting 104 BIER packets in an IPv6 network. To better understand the overall 105 BIER IPv6 problem space, use cases and proposed solutions, refer to 106 [I-D.mcbride-bier-ipv6-problem-statement]. 108 2. Terminology 110 Readers of this document are assumed to be familiar with the 111 terminology and concepts of the documents listed as Normative 112 References. 114 The following new terms are used throughout this document: 116 o BIERv6 - BIER IPv6. 118 o BIER Option - An Option type carried in IPv6 Destination Options 119 Header which includes the standard Non-MPLS BIER Header. 121 o BIERv6 Header - An IPv6 Header with BIER Option. 123 o BIERv6 Packet - An IPv6 packet with BIERv6 Header. Such an IPv6 124 packet typically carries the user multicast payload and is 125 forwarded by BFRs in the BIERv6 network towards the multicast 126 receivers. 128 o BIER Multicast Address - A well-known multicast address used as a 129 Destination Address in the BIERv6 Header to forward the packets to 130 other BFRs in BIERv6 network. 132 3. BIER IPv6 Encapsulation 134 3.1. BIER Option in IPv6 Destination Options Header 136 Destination Options Header and the Options that can be carried under 137 this extension header is defined in [RFC8200]. This document defines 138 a new Option type - BIER Option, to encode the Non-MPLS BIER header. 139 As specified in Section 4.2 [RFC8200], the BIER Option follows type- 140 length-value (TLV) encoding format and the standard Non-MPLS BIER 141 header [RFC8296] is encoded in the value portion of the BIER Option 142 TLV. 144 This BIER Option MUST be carried only inside the IPv6 Destination 145 Options header and MUST NOT be carried under the Hop-by-Hop Options 146 header. 148 Co-existence of Destination Options Header with BIER option TLV and 149 other IPv6 extension headers MUST confirm to the general requirements 150 defined in [RFC8200]. In addition to the requirements defined in 151 [RFC8200], this document requires that the Destination Options Header 152 with a BIER Option TLV MUST appear only after the Routing Header if 153 the Routing Header is present in the IPv6 Header. 155 The BIER Option is encoded in type-length-value (TLV) format as 156 follows: 158 0 1 2 3 159 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 160 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 161 | Next Header | Hdr Ext Len | Option Type | Option Length | 162 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 163 | | 164 ~ Non-MPLS BIER Header (defined in RFC8296) ~ 165 | | 166 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 168 Next Header 8-bit selector. Identifies the type of header 169 immediately following the Destination Options header. 171 Hdr Ext Len 8-bit unsigned integer. Length of the Destination 172 Options header in 8-octet units, not including the first 8 octets. 174 Option Type To be allocated by IANA. See section 6. 176 Option Length 8-bit unsigned integer. Length of the option, in 177 octets, excluding the Option Type and Option Length fields. 179 Non-MPLS BIER Header The Non-MPLS BIER Header defined in RFC8296. 180 Fields in the Non-MPLS BIER Header MUST be encoded as below. 182 BIFT-id: The BIFT-id is a domain-wide unique value in Non-MPLS 183 IPv6 encapsulation. See Section 2.2 of RFC 8296. 185 TC: SHOULD be set to binary value 000 upon transmission and MUST 186 be ignored upon. See Section 2.2 of RFC 8296. 188 S bit: SHOULD be set to 1 upon transmission, and MUST be ignored 189 upon reception. See Section 2.2 of RFC 8296. 191 TTL: MUST be set to 0 upon transmission, and MUST be ignored 192 upon reception. The function of TTL is replaced by the Hop 193 Limit field in IPv6 header. 195 Nibble: SHOULD be set to 0000 upon transmission, and MUST be 196 ignored upon reception. See Section 2.2 of RFC 8296. 198 Ver: MUST be set to 0 upon transmission, and MUST be discarded 199 when it is not 0 upon reception. See Section 2.2 of RFC 8296. 201 BSL: See Section 2.1.2 of RFC 8296. 203 Entropy: See Section 2.1.2 of RFC 8296. 205 OAM: See Section 2.1.2 of RFC 8296. 207 Rsv: See Section 2.1.2 of RFC 8296. 209 DSCP: SHOULD be set to binary value 000000 upon transmission and 210 MUST be ignored upon reception. In IPv6 BIER encapsulation, 211 uses highest 6-bit of Traffic Class field of IPv6 header to hold 212 a Differentiated Services Codepoint [RFC2474]. 214 Proto: SHOULD be set to 0 upon transmission and MUST be ignored 215 upon reception. In IPv6 BIER encapsulation, the functionality 216 of this 6-bit Proto field is replaced by the Next Header field 217 in Destination Options header, which is the last IPv6 extension 218 header, to indicate the BIER payload, which is also IPv6 219 payload. 221 For BIER Proto 1, indicating a Downstream-assigned MPLS 222 payload, use Next Header value 139. 224 For BIER Proto 2, indicating an Upstream-assigned MPLS 225 payload, there is no Next Header code currently. An 226 upstream-assigned MPLS label within the context of special 227 BFIR router, which in turn is represented by the BFIR-id and 228 the Sub-domain indirectly indicated by the BIFT-id in a BIER- 229 MPLS or BIER-ETH packet, can be replaced by an IPv6 source 230 address in a BIER IPv6 encapsulation packet in a direct 231 manner. In this case, use Next Header value 4 for IPv4 232 payload, or value 41 for IPv6 payload. 234 For BIER Proto 3, indicating an Ethernet payload, use Next 235 Header value 97. 237 For BIER Proto 4, indicating an IPv4 payload, use Next Header 238 value 4. 240 For BIER Proto 5, indicating a BIER-OAM payload, use Next 241 Header value 58. How the BIER-PING is supported with BIER 242 IPv6 encapsulation is outside the scope of this document. 244 For BIER Proto 6, indicating an IPv6 payload, use Next Header 245 value 41. 247 BFIR-id: See Section 2.1.2 of RFC 8296. 249 BitString: See Section 2.1.2 of RFC 8296. 251 3.2. Multicast and Unicast Destination Address 253 BIER is generally a hop-by-hop and one-to-many architecture, and thus 254 the IPv6 Destination Address (DA) being a Multicast Address is a 255 proper approach for both the two paradigms in BIERv6 encapsulation. 257 This document proposes to use multicast address FF0X::AB37 (to be 258 allocated and reserved by IANA - See Section 6.2) as the IPv6 259 destination address for the BIERv6 packets to be forwarded in the 260 BIER domain. 262 All the interfaces of the BFRs supporting the BIERv6 encapsulation 263 defined in this document MUST subscribe and listen to BIER multicast 264 address FF0X::AB37 belong to scopes [1, 2, 3, 4, 5, E] defined in 265 [RFC7346]. However it is RECOMMENDED to use Realm-Local scope (scope 266 value 3), that is FF03:AB37 as a destination address while forwarding 267 the BIERv6 packet, as this scope zone is exactly the BIERv6 Domain. 268 The use of other scopes is outside the scope of this document. 270 Use of a Unicast Address as a IPv6 Destination Address is permissible 271 and useful in certain cases. 273 1. Tunneling a BIERv6 packet over a non-BIER capable router. 275 2. Fast rerouting a BIERv6 packet using a unicast by-pass tunnel. 277 3. Forwarding a BIERv6 packet to one of the BFR neighbor connected 278 on a shared-media LAN. 280 The unicast address used in BIERv6 packet targeting a BFR SHOULD be 281 the IPv6 BFR-Prefix advertised from this BFR. When a BFR advertises 282 the BIER information with BIERv6 encapsulation capability, the IPv6 283 BFR-prefix of this BFR MUST be allowed using in BIERv6 packet. All 284 the IPv6 BFR-Prefixes used in different sub-domains MUST all be 285 allowed using in BIERv6 packet. BIERv6 packet with unicast address 286 other than the IPv6 BFR-Prefixes as destination address SHOULD be 287 dropped. 289 Compared to Multicast Destination Address, use of Unicast Destination 290 Address suffers from the additional cost of modification of 291 Destination Address at each hop of replication. Implementations MUST 292 support use of Multicast Destination Address for BIERv6 packets and 293 is RECOMMENDED to be the default behavior to forward BIERv6 packets 294 to a directly connected BFR neighbor. 296 3.3. BIERv6 Packet Format 298 As a multicast packet enters the BIER domain in a Non-MPLS IPv6 299 network, the multicast packet will be encapsulated with BIERv6 300 Header. 302 Typically a BIERv6 header would contain the Destination Options 303 Header as the only Extensions Header besides IPv6 Header. However, 304 it is allowed and possible for other extension headers to appear 305 along with the Destination Options Header as long as the requirements 306 listed in section 3.1 of this document is met. Scenarios where-in 307 the BFIR may encode other extension headers along with the 308 Destination Options header is outside the scope of this document. 310 Format of the multicast packet with BIERv6 encapsulation carrying 311 only the Destination Options header is depicted in the below figure. 313 +---------------+--------------+------------ 314 | IPv6 header | Dest Options | X type of 315 | | Header with | multicast 316 | | BIER Option | packet 317 | | | 318 | Next Hdr = 60 | Nxt Hdr = X | 319 +---------------+--------------+------------ 321 Format of the multicast packet with BIERv6 encapsulation carrying 322 other extension headers along with Destination Options extension 323 header is depicted in the below figure. 325 +---------------+--------------+--------------+------------ 326 | IPv6 header | Y Extension | Dest Options | X type of 327 | | Header | Header with | multicast 328 | | | BIER Option | packet 329 | | | | 330 | Next Hdr = Y | Nxt Hdr = 60 | Next Hdr = X | 331 +---------------+--------------+--------------+------------ 333 Source Address field in the IPv6 header MUST be a routable IPv6 334 unicast address of the BFIR in any case. 336 BFIR encodes the Non-MPLS BIER header in the above mentioned 337 encapsulation format and forwards the BIERv6 packet to the nexthop 338 BFR following the local BIFT table. 340 BFRs in the IPv6 network, processes and replicates the packets 341 towards the BFERs using the local BIFT table. The bit-string field 342 in the Non-MPLS BIER header may be changed by the BFRs as they 343 replicate the packet. BFRs MUST follow the procedures defined in 344 section 3.1 as they modify the other fields in the Non-MPLS BIER 345 header. The source address in the IPv6 header MUST NOT be modified 346 by the BFRs. 348 4. BIERv6 Packet Processing 350 There is no BIER-specific processing, and all the 8 steps in section 351 6.5 of RFC8279 apply to BIERv6 packet processing. However, there are 352 some IPv6-specific processing procedures due to the base and general 353 procedures of IPv6. 355 On the overlay layer, when a multicast packet enters the BIER domain 356 in a Non-MPLS IPv6 network, the Ingress BFR (BFIR) encapsulates the 357 multicast packet with a BIERv6 Header, transforming it to a BIERv6 358 packet. The BIERv6 header includes an IPv6 header and IPv6 359 Destination Options Header within a standard Non-MPLS BIER header. 360 Source Address field in the IPv6 header MUST be set to a routable 361 IPv6 unicast address of the BFIR. Destination Address field in the 362 IPv6 header is set to a BIER multicast address, FF0X::AB37, if the 363 next-hop BFR is directly connected, or MAY be set to a unicast 364 address in case of the scenarios discussed in section 3.2. 366 On the BIER layer, upon receiving an BIERv6 packet, the BFR processes 367 the IPv6 header first. This is the general procedure of IPv6. 369 If the IPv6 Destination address is the BIER multicast address, a 370 'BIER valid' flag will be obtained by the preceding Multicast DA 371 lookup. The BIER option, if exists, will be checked to decide which 372 neighbor(s) to replicate the BIERv6 packet to. If the BIER option 373 does not exist, the packet MUST be dropped. 375 If the IPv6 Destination address is a multicast address other than the 376 BIER multicast address, a 'BIER valid' flag will not be obtained by 377 the preceding Multicast DA lookup. If the BIER option exist, the 378 packet MUST be dropped. 380 If the IPv6 Destination address is an IPv6 BFR-Prefix unicast address 381 of this BFR, a 'BIER valid' flag will be obtained by the preceding 382 Unicast DA lookup. The BIER option, if exists, will be checked to 383 decide which neighbor(s) to replicate the BIERv6 packet to. If the 384 BIER option does not exist, the normal unicast forwarding applies. 386 If the IPv6 Destination address is a unicast address other than the 387 IPv6 BFR-Prefix unicast address(es) of this BFR, a 'BIER valid' flag 388 will not be obtained by the preceding Unicast DA lookup. If the BIER 389 option exist, the packet MUST be dropped. 391 The Hop Limit field of IPv6 header MUST decrease by 1 when sending 392 packets to a BFR neighbor, while the TTL in the BIER header MUST be 393 unchanged. 395 The BitString in the BIER header in the Destination Options Header 396 may change when sending packets to a neighbor. Such change of 397 BitString MUST be aligned with the procedure defined in RFC8279. 398 Because of the requirement to change the content of the option when 399 forwarding BIERv6 packet, the BIER option type should have chg flag 1 400 per section 4.2 of RFC8200. 402 The procedures applies normally if a bit corresponding to the self 403 bfr-id is set in the bit-string field of the Non-MPLS BIER header of 404 the BIERv6 packet. The node is considered to be an Egress BFR (BFER) 405 in this case. The BFER removes the BIERv6 header, including the IPv6 406 header and the Destination Options header, and copies the packet to 407 the multicast flow overlay. The egress VRF of a packet may be 408 determined by a single MFIB lookup on the BFER using both the IPv6 SA 409 and IPv6 DA. 411 5. Security Considerations 413 A BIERv6 packet with a special IPv6 Destination Address, either 414 multicast or unicast, would be processed by BIER forwarding procedure 415 only when the 'BIER valid' flag has been obtained ahead of time in 416 the normal MFIB or FIB lookup of the IPv6 header. Otherwise the 417 packet with an IPv6 BIER Option will be dropped, as if the Option is 418 not recognize by the node. 420 An IPv6 packet with BIER multicast address FF0X::AB37 as destination 421 address, but does not carry IPv6 BIER Option will be dropped. 423 6. IANA Considerations 425 6.1. BIER Option Type 427 Allocation is expected from IANA for a BIER Option Type codepoint 428 from the "Destination Options and Hop-by-Hop Options" sub-registry of 429 the "Internet Protocol Version 6 (IPv6) Parameters" registry. The 430 value 0x70 is suggested. 432 +-----------+-----+-----+-------+-------------+------------+ 433 | Hex Value | act | chg | rest | Description | Reference | 434 +-----------+-----+-----+-------+-------------+------------+ 435 | 0x70 | 01 | 1 | 10000 | BIER Option | This draft | 436 +-----------+-----+-----+-------+-------------+------------+ 438 Figure 1: IPv6 Option Type Suggested 440 6.2. BIER Multicast Address 442 Allocation is expected from IANA for a BIER Multicast Address from 443 the "Variable Scope Multicast Addresses" sub-registry of the "IPv6 444 Multicast Address Space Registry" registry. The address 'FF0X::AB37' 445 is suggested. 447 +-----------------------+---------------------+------------+ 448 | Address(es) | Description | Reference | 449 | | | | 450 +-----------------------+---------------------+------------+ 451 | FF0X:0:0:0:0:0:0:AB37 | ALL_BIER_FORWARDERS | This draft | 452 +-----------------------+---------------------+------------+ 454 Figure 2: Multicast Address Suggested 456 7. Acknowledgements 458 The authors would like to thank Stig Venaas for his valuable 459 comments. 461 8. References 463 8.1. Normative References 465 [RFC7346] Droms, R., "IPv6 Multicast Address Scopes", RFC 7346, 466 DOI 10.17487/RFC7346, August 2014, 467 . 469 [RFC8200] Deering, S. and R. Hinden, "Internet Protocol, Version 6 470 (IPv6) Specification", STD 86, RFC 8200, 471 DOI 10.17487/RFC8200, July 2017, 472 . 474 [RFC8279] Wijnands, IJ., Ed., Rosen, E., Ed., Dolganow, A., 475 Przygienda, T., and S. Aldrin, "Multicast Using Bit Index 476 Explicit Replication (BIER)", RFC 8279, 477 DOI 10.17487/RFC8279, November 2017, 478 . 480 [RFC8296] Wijnands, IJ., Ed., Rosen, E., Ed., Dolganow, A., 481 Tantsura, J., Aldrin, S., and I. Meilik, "Encapsulation 482 for Bit Index Explicit Replication (BIER) in MPLS and Non- 483 MPLS Networks", RFC 8296, DOI 10.17487/RFC8296, January 484 2018, . 486 8.2. Informative References 488 [I-D.mcbride-bier-ipv6-problem-statement] 489 McBride, M. and J. Xie, "Problem Statement of BIER IPv6 490 Encapsulation", draft-mcbride-bier-ipv6-problem- 491 statement-00 (work in progress), January 2019. 493 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 494 Requirement Levels", BCP 14, RFC 2119, 495 DOI 10.17487/RFC2119, March 1997, 496 . 498 [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 499 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, 500 May 2017, . 502 Authors' Addresses 504 Jingrong Xie 505 Huawei Technologies 507 Email: xiejingrong@huawei.com 509 Liang Geng 510 China Mobile 511 Beijing 10053 513 Email: gengliang@chinamobile.com 514 Mike McBride 515 Huawei 517 Email: mmcbride7@gmail.com 519 Senthil Dhanaraj 520 Huawei 522 Email: senthil.dhanaraj@huawei.com 524 Gang Yan 525 Huawei 527 Email: yangang@huawei.com 529 Yang Xia 530 Huawei 532 Email: yolanda.xia@huawei.com