| < draft-wang-bier-rh-bier-02.txt | draft-wang-bier-rh-bier-03.txt > | |||
|---|---|---|---|---|
| BIER Working Group W. Wang | BIER Working Group W. Wang | |||
| Internet-Draft A. Wang | Internet-Draft A. Wang | |||
| Intended status: Standards Track China Telecom | Intended status: Standards Track China Telecom | |||
| Expires: April 28, 2022 October 25, 2021 | Expires: July 2, 2022 December 29, 2021 | |||
| Routing Header Based BIER Information Encapsulation | Routing Header Based BIER Information Encapsulation | |||
| draft-wang-bier-rh-bier-02 | draft-wang-bier-rh-bier-03 | |||
| Abstract | Abstract | |||
| This draft proposes one new encapsulation schema of Bit Index | This draft proposes one new encapsulation schema of Bit Index | |||
| Explicit Replication (BIER) information to transfer the multicast | Explicit Replication (BIER) information to transfer the multicast | |||
| packets within the IPv6 network. By using a new IPv6 Routing Header | packets within the IPv6 network. By using a new type of IPv6 Routing | |||
| type to forward the packet, the original source address and | Header to forward the packet, the original source address and | |||
| destination address of the multicast packet is kept unchanged along | destination address of the multicast packet is kept unchanged along | |||
| the forwarding path. Such encapsulation schema can make full use of | the forwarding path. Such encapsulation schema can make full use of | |||
| the existing IPv6 quality assurance solutions to provide high-quality | the existing IPv6 quality assurance solutions to provide high-quality | |||
| multicast service. | multicast service. | |||
| Status of This Memo | Status of This Memo | |||
| This Internet-Draft is submitted in full conformance with the | This Internet-Draft is submitted in full conformance with the | |||
| provisions of BCP 78 and BCP 79. | provisions of BCP 78 and BCP 79. | |||
| Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
| Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
| working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
| Drafts is at https://datatracker.ietf.org/drafts/current/. | Drafts is at https://datatracker.ietf.org/drafts/current/. | |||
| Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
| and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
| time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
| material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
| This Internet-Draft will expire on April 28, 2022. | This Internet-Draft will expire on July 2, 2022. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2021 IETF Trust and the persons identified as the | Copyright (c) 2021 IETF Trust and the persons identified as the | |||
| document authors. All rights reserved. | document authors. All rights reserved. | |||
| This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
| Provisions Relating to IETF Documents | Provisions Relating to IETF Documents | |||
| (https://trustee.ietf.org/license-info) in effect on the date of | (https://trustee.ietf.org/license-info) in effect on the date of | |||
| publication of this document. Please review these documents | publication of this document. Please review these documents | |||
| skipping to change at page 2, line 14 ¶ | skipping to change at page 2, line 14 ¶ | |||
| include Simplified BSD License text as described in Section 4.e of | include Simplified BSD License text as described in Section 4.e of | |||
| the Trust Legal Provisions and are provided without warranty as | the Trust Legal Provisions and are provided without warranty as | |||
| described in the Simplified BSD License. | described in the Simplified BSD License. | |||
| Table of Contents | Table of Contents | |||
| 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | |||
| 2. Conventions used in this document . . . . . . . . . . . . . . 3 | 2. Conventions used in this document . . . . . . . . . . . . . . 3 | |||
| 3. BIER Routing Header . . . . . . . . . . . . . . . . . . . . . 3 | 3. BIER Routing Header . . . . . . . . . . . . . . . . . . . . . 3 | |||
| 4. Multicast Packet Forwarding Procedures . . . . . . . . . . . 5 | 4. Multicast Packet Forwarding Procedures . . . . . . . . . . . 5 | |||
| 4.1. All devices in BIER domain support BIER Routing Header . 5 | 4.1. All nodes in BIER domain support BIER Routing Header . . 6 | |||
| 4.2. Some devices in BIER domain do not support BIER Routing | 4.2. Some nodes in BIER domain do not support BIER Routing | |||
| Header . . . . . . . . . . . . . . . . . . . . . . . . . 7 | Header . . . . . . . . . . . . . . . . . . . . . . . . . 7 | |||
| 5. Security Considerations . . . . . . . . . . . . . . . . . . . 8 | 5. Security Considerations . . . . . . . . . . . . . . . . . . . 9 | |||
| 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 8 | 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 9 | |||
| 7. References . . . . . . . . . . . . . . . . . . . . . . . . . 9 | 7. References . . . . . . . . . . . . . . . . . . . . . . . . . 9 | |||
| 7.1. Normative References . . . . . . . . . . . . . . . . . . 9 | 7.1. Normative References . . . . . . . . . . . . . . . . . . 9 | |||
| 7.2. Informative References . . . . . . . . . . . . . . . . . 9 | 7.2. Informative References . . . . . . . . . . . . . . . . . 10 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 9 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 10 | |||
| 1. Introduction | 1. Introduction | |||
| Bit Index Explicit Replication (BIER) is a new multicast technology | Bit Index Explicit Replication (BIER) is a new multicast technology | |||
| based on IPv6 defined in [RFC8279]. In BIER domain, the set of | based on IPv6 defined in [RFC8279]. In BIER domain, the set of | |||
| destination nodes of multicast message is mapped into a BitString and | destination nodes of multicast message is mapped into a BitString and | |||
| encapsulated into the BIER header. The position of each bit in the | encapsulated into the BIER header. The position of each bit in the | |||
| BitString represents an BFER. Compared with the traditional | BitString represents an BFER. Compared with the traditional | |||
| multicast technology, the nodes in BIER domain do not need to | multicast technologies, the nodes in BIER domain do not need to | |||
| maintain a multicast tree and keep the multicast flow state for each | maintain a multicast tree and keep the multicast flow state for each | |||
| multicast flow. | multicast flow. | |||
| Currently, there are two methods for encapsulating BIER information | Currently, there are two methods for encapsulating BIER information | |||
| based on IPv6 in IETF: BIERn6([I-D.ietf-bier-bierin6]) and | based on IPv6 in IETF: BIERin6([I-D.ietf-bier-bierin6]) and | |||
| BIERv6([I-D.xie-bier-ipv6-encapsulation]). | BIERv6([I-D.xie-bier-ipv6-encapsulation]). | |||
| BIERin6 carries BIER information by defining a new IPv6 next header | BIERin6 carries BIER information by defining a new IPv6 next header | |||
| type. During the forwarding process, the source address and | type. During the forwarding process, the source address and | |||
| destination address in the header will be changed. | destination address in the header will be changed. | |||
| BIERv6 carries bier related information by defining an new option | BIERv6 carries bier related information by defining an new type of | |||
| type of destination options header (i.e. bier option). The source | destination options header (i.e. bier option). The source address in | |||
| address in the header remains unchanged but the destination address | the header remains unchanged but the destination address will be | |||
| will be changed along the forwarding path. | changed along the forwarding path. | |||
| The differences between the above two BIER encapsulation and | The differences between the above two BIER encapsulation and | |||
| forwarding schemes are unfavorable for the development of BIER and | forwarding schemes are unfavorable for the development of BIER and | |||
| its derivatives. In addition, when there is error in the forward | its derivatives. In addition, when there is error in the forward | |||
| process of the multicast packet, the change of source address and | process of the multicast packet, the change of source address and | |||
| destination address during transmission will increase the difficulty | destination address during transmission will increase the difficulty | |||
| of fault location and traceability. | of fault location and traceability. | |||
| This draft proposes a BIER information transmission scheme without | This draft proposes a BIER information transmission scheme without | |||
| changing the multicast source and destination addresses. The | changing the multicast source and destination addresses. The | |||
| skipping to change at page 3, line 31 ¶ | skipping to change at page 3, line 31 ¶ | |||
| The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
| "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | |||
| document are to be interpreted as described in [RFC2119] . | document are to be interpreted as described in [RFC2119] . | |||
| 3. BIER Routing Header | 3. BIER Routing Header | |||
| One new type of IPv6 Routing Header is defined according to | One new type of IPv6 Routing Header is defined according to | |||
| [RFC8200]. The message format is shown in Figure 1. | [RFC8200]. The message format is shown in Figure 1. | |||
| 0 1 2 3 | ||||
| 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 | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Next Header | Hdr Ext Len | Routing Type | Segment Left | | | Next Header | Hdr Ext Len | Routing Type | Segment Left | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | BIFT-id | Ver | TTL | | | BIFT-id | TC |S| TTL | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | BSL | Entropy | DSCP |OAM| | |Nibble | Ver | BSL | Entropy | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | BFIR-id |Rsv| Reserved | | |OAM|Rsv| DSCP | Proto | BFIR-id | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | | | | BitString (first 32 bits) ~ | |||
| . . | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| . BitString . | ~ ~ | |||
| . . | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | | | ~ BitString (last 32 bits) | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Figure 1: The format of BIER Routing Header | Figure 1: The format of BIER Routing Header | |||
| Where: | Where: | |||
| o Next Header(8 bits): indicating the message header type | o Next Header(8 bits): indicating the message header type | |||
| immediately after the routing header. | immediately after the routing header. | |||
| o HDR Ext Len(8 bits): indicating the length of the routing header. | o HDR Ext Len(8 bits): indicating the length of the routing header. | |||
| skipping to change at page 4, line 20 ¶ | skipping to change at page 4, line 20 ¶ | |||
| o Routing Type(8 bits): TBD. Identifying the newly defined Routing | o Routing Type(8 bits): TBD. Identifying the newly defined Routing | |||
| Header to encode BIER information. | Header to encode BIER information. | |||
| o Segments Left(8 bits): indicating the number of explicitly listed | o Segments Left(8 bits): indicating the number of explicitly listed | |||
| intermediate nodes to be accessed before reaching the final | intermediate nodes to be accessed before reaching the final | |||
| destination. It is not used here for the time being, and all are | destination. It is not used here for the time being, and all are | |||
| set to 0. | set to 0. | |||
| o BIFT-id(20 bits): each < SD, Si, BSL > is assigned a BIFT-id. | o BIFT-id(20 bits): each < SD, Si, BSL > is assigned a BIFT-id. | |||
| o Ver(4 bits): identifying the version of the BIER header. When an | o TC(3 bits): see [RFC8296]. This field is set to 0. | |||
| unsupported BIER header version is received, the BFR needs to | ||||
| discard the packet and record the error. | o S(1 bit): see [RFC8296]. This field is set to 0. | |||
| o TTL(8 bits): indicating the lifetime of the message. It is used | o TTL(8 bits): indicating the lifetime of the message. It is used | |||
| to prevent ring. The processing process is the same as that in | to prevent ring. The processing process is the same as that in | |||
| non MPLS networks. | non MPLS networks. | |||
| o Nibble(4 bits): see [RFC8296]. This field is set to 0. | ||||
| o Ver(4 bits): identifying the version of the BIER header. When an | ||||
| unsupported BIER header version is received, the BFR needs to | ||||
| discard the packet and record the error. | ||||
| o BSL(4 bits): indicating the length of BitString. | o BSL(4 bits): indicating the length of BitString. | |||
| o Entropy(20 bits): this field specifies an "entropy" for ECMP. | o Entropy(20 bits): this field specifies an "entropy" for ECMP. | |||
| o DSCP(6 bits): this field is used to support different service | ||||
| codes. | ||||
| o OAM(2 bits): by default, this value will be set to 0 by BFIR, and | o OAM(2 bits): by default, this value will be set to 0 by BFIR, and | |||
| other BFRs will not be modified. Whether to use this field is | other BFRs will not be modified. Whether to use this field is | |||
| optional. | optional. | |||
| o BFIR-id(16 bits): indicating BFR ID of BFIR. | ||||
| o Rsv(2 bits): unused, set to 0. | o Rsv(2 bits): unused, set to 0. | |||
| o DSCP(6 bits): this field is used to support different service | ||||
| codes. | ||||
| o Proto(6 bits): see [RFC8296]. This field is set to 0. | ||||
| o BFIR-id(16 bits): indicating BFR ID of BFIR. | ||||
| o Reserved (14 bits): reserved field, set to 0. | o Reserved (14 bits): reserved field, set to 0. | |||
| o BitString(variable): the length must be reflected in the BSL | o BitString(variable): the length must be reflected in the BSL | |||
| field. The string saved in this field is used to identify the | field. The string saved in this field is used to identify the | |||
| destination BFER of the packet. | destination BFER of the packet. | |||
| 4. Multicast Packet Forwarding Procedures | 4. Multicast Packet Forwarding Procedures | |||
| Based on the newly defined BIER Routing Header, the devices support | Based on the newly defined BIER Routing Header, the nodes support | |||
| BIER Routing Header will perform the following steps to forward the | BIER Routing Header will perform the following steps to forward the | |||
| multicast packets: | multicast packets: | |||
| 1) When BFIR receives the IPv6 multicast packets from the mulicast | 1) When a BFIR receive a multicast packet, it will encapsulate a IPv6 | |||
| source, it will add BIER Routing Header to indicate the BFERs that | Header with BIER Routing Header. The payload is user data, the | |||
| want to receives such multicast packet. The encapsulated multicast | source address is the IPv6 address of BFIR, and destination address | |||
| packet will be forwarded according to the BIFT that identified by the | is the destination address of original multicast packet. BitString | |||
| BIFT-id. | in BIER Routing Header indicates the BFERs that want to receives such | |||
| multicast packet. | ||||
| 2) Each BFR (includes BFIR) will check whether the direct-connected | 2) BFIR checks whether there is BIFT corresponding to the BIFT-id | |||
| device support BIER Routing Header. If yes, proceed to step 3); | locally. If not, it will discard the packet; otherwise, it will | |||
| otherwise, proceed to step 2.1). | check whether the direct-connected node support BIER Routing Header. | |||
| If the direct-connected node supports BIER Routing Header, proceeding | ||||
| to step 3). If the direct-connected node doesn't support BIER | ||||
| Routing Header, proceeding to step 2.1) . | ||||
| 2.1) Calculating the IPv6 address of next hop that support BIER | 2.1) BFIR Calculates the IPv6 address of next hop that support BIER | |||
| Routing Header. | Routing Header. | |||
| 2.2) Encapsulating an outer IPv6 Header to the multicast packet. The | 2.2) Encapsulating an outer IPv6 Header to the multicast packet. The | |||
| calculated IPv6 address is used as the destination address of the | calculated IPv6 address is used as the destination address of the | |||
| outer IPv6 Header, and its own IPv6 address is used as the source | outer IPv6 Header, and its own IPv6 address is used as the source | |||
| address of the outer IPv6 Header. BitString will not be changed. | address of the outer IPv6 Header. BitString will not be changed. | |||
| 2.3) Sending the encapsulated packet to the direct-connected device, | 2.3) Sending the encapsulated packet to the direct-connected node, | |||
| the device will perform normal IPv6 forwarding according to the outer | the node will perform normal IPv6 forwarding according to the outer | |||
| IPv6 Header. | IPv6 Header. | |||
| 3) On the router that supports the BIER Routing Header, perform the | 3) Performing the normal BIER forwarding process as described in | |||
| normal BIER forwarding process as described in [RFC8279]. | [RFC8279]. | |||
| For a BFR, it performs the above procedures except 1). | ||||
| The detail procedures for forwarding the multicast packets based on | The detail procedures for forwarding the multicast packets based on | |||
| the newly defined Routing Header are described in the following | the newly defined Routing Header are described in the following | |||
| sections. | sections. | |||
| 4.1. All devices in BIER domain support BIER Routing Header | 4.1. All nodes in BIER domain support BIER Routing Header | |||
| +---+ | +---+ | |||
| +-----------+ B +----------+ | +-----------+ B +----------+ | |||
| | +---+ | | | +---+ | | |||
| | 0:01000000 | | | 0:01000000 | | |||
| | | | | | | |||
| | | | | | | |||
| | | | | | | |||
| +-+-+ +-+-+ (Packet 2) +---+ (Packet 3)+---+ | +-+-+ +-+-+ (Packet 2) +---+ (Packet 3)+---+ | |||
| | A |0:10000000 0:00100000| C +------------+ E +-----------+ F | | | A |0:10000000 0:00100000| C +------------+ E +-----------+ F | | |||
| +-+-+ +-+-+ +---+ +---+ | +-+-+ +-+-+ +---+ +---+ | |||
| | | 0:00001000 0:00000100 | | | 0:00001000 0:00000100 | |||
| | | | | | | |||
| | | | | | | |||
| | | | | | | |||
| | 0:00010000 | | | 0:00010000 | | |||
| | +---+ | | | +---+ | | |||
| +-----------+ D +----------+ | +-----------+ D +----------+ | |||
| (Packet 1) +---+ | (Packet 1) +---+ | |||
| Packet 1 | Packet 1 | |||
| +------------------------------------+ | +------------------------------------+ | |||
| IPv6 | IPv6 Address of Multicast Source | | IPv6 | IPv6 Address of A | | |||
| Header +------------------------------------+ | Header +------------------------------------+ | |||
| | IPv6 Multicast Destination Address | | with | IPv6 Multicast Destination Address | | |||
| BIER +------------------------------------+ | BIER +------------------------------------+ | |||
| Routing| BitString = 00101100 | | Routing| BIER RH(BitString = 00101100) | | |||
| Header +------------------------------------+ | Header +------------------------------------+ | |||
| | Original multicast packet | | ||||
| +------------------------------------+ | ||||
| Packet 2 | Packet 2 | |||
| +------------------------------------+ | +------------------------------------+ | |||
| IPv6 | IPv6 Address of Multicast Source | | IPv6 | IPv6 Address of A | | |||
| Header +------------------------------------+ | Header +------------------------------------+ | |||
| | IPv6 Multicast Destination Address | | with | IPv6 Multicast Destination Address | | |||
| BIER +------------------------------------+ | BIER +------------------------------------+ | |||
| Routing| BitString = 00001100 | | Routing| BIER RH(BitString = 00001100) | | |||
| Header +------------------------------------+ | Header +------------------------------------+ | |||
| | Original multicast packet | | ||||
| +------------------------------------+ | ||||
| Packet 3 | Packet 3 | |||
| +------------------------------------+ | +------------------------------------+ | |||
| IPv6 | IPv6 Address of Multicast Source | | ||||
| Header +------------------------------------+ | ||||
| | IPv6 Multicast Destination Address | | ||||
| BIER +------------------------------------+ | ||||
| Routing| BitString = 00000100 | | ||||
| Header +------------------------------------+ | ||||
| Figure 2: All devices in BIER domain support BIER Routing Header | IPv6 | IPv6 Address of A | | |||
| Header +------------------------------------+ | ||||
| with | IPv6 Multicast Destination Address | | ||||
| BIER +------------------------------------+ | ||||
| Routing| BIER RH(BitString = 00000100) | | ||||
| Header +------------------------------------+ | ||||
| | Original multicast packet | | ||||
| +------------------------------------+ | ||||
| The topology is shown in Figure 2, device A-F support BIER Routing | Figure 2: All nodes in BIER domain support BIER Routing Header | |||
| The topology is shown in Figure 2, node A-F support BIER Routing | ||||
| Header. The packet need to be transmitted from A to F. The changes | Header. The packet need to be transmitted from A to F. The changes | |||
| of the Routing Header have been given in Figure 2. Each device will | of the Routing Header have been given in Figure 2. | |||
| perform the following steps after receiving the packet: | ||||
| 1). Checking whether there is BIFT corresponding to the BIFT-id | 1). Node A is BFIR, when it receives a multicast packet, it will | |||
| locally. If yes, proceed to step 2); otherwise, discard the packet. | encapsulate a IPv6 Header with BIER Routing Header to the packet. | |||
| The source address is the IPv6 address of itself, and the destination | ||||
| address is the destination address of original multicast packet. | ||||
| 2). Checking whether the direct-connected device support BIER | 2). Node A checks whether there is BIFT corresponding to the BIFT-id | |||
| Routing Header. If yes, forwarding the packet according to the BIFT | locally. If not, discarding the packet; otherwise, forwarding the | |||
| related to the BIFT-id; otherwise, see sectionSection 4.2 for detail | packet according to the BIFT related to the BIFT-id. | |||
| procedures. | ||||
| During the forwarding procedures, the source address and destination | During the forwarding procedures, the source & destination address in | |||
| address of the IPv6 multicast packet are not changed, only the | IPv6 header are not changed, only the BitString in BIER Routing | |||
| BitString in BIER Routing Header is updated. | Header is updated. | |||
| 4.2. Some devices in BIER domain do not support BIER Routing Header | 4.2. Some nodes in BIER domain do not support BIER Routing Header | |||
| +---+ | +---+ | |||
| +-----------+ B +-----------+ | +-----------+ B +-----------+ | |||
| | +---+ | | | +---+ | | |||
| | 0:01000000 | | | 0:01000000 | | |||
| | | | | | | |||
| | | | | | | |||
| | | | | | | |||
| +-+-+ +-+-+ +---+ (Packet 3) +---+ | +-+-+ +-+-+ +---+ (Packet 3) +---+ | |||
| | A |0:10000000 | C +------------+ E +------------+ F | | | A |0:10000000 | C +------------+ E +------------+ F | | |||
| +-+-+ +-+-+ +---+ +---+ | +-+-+ +-+-+ +---+ +---+ | |||
| | | 0:00001000 0:00000100 | | | 0:00001000 0:00000100 | |||
| | | | | | | |||
| | | | | | | |||
| | | | | | | |||
| | 0:00010000 | | | 0:00010000 | | |||
| | +---+ | | | +---+ | | |||
| +-----------+ D +-----------+ | +-----------+ D +-----------+ | |||
| (Packet 1) +---+(Packet 2) | (Packet 1) +---+ (Packet 2) | |||
| Packet 1 | ||||
| +------------------------------------+ | ||||
| IPv6 | IPv6 Address of A | | ||||
| Header +------------------------------------+ | ||||
| with | IPv6 Multicast Destination Address | | ||||
| BIER +------------------------------------+ | ||||
| Routing| BIER RH(BitString = 00001100) | | ||||
| Header +------------------------------------+ | ||||
| | Original multicast packet | | ||||
| +------------------------------------+ | ||||
| Packet 1 | Packet 2 | |||
| +------------------------------------+ | +------------------------------------+ | |||
| IPv6 | IPv6 Address of Multicast Source | | Outer | Source IP Address = D | | |||
| Header +------------------------------------+ | IPv6 +------------------------------------+ | |||
| | IPv6 Multicast Destination Address | | Header | Destination IP Address = E | | |||
| BIER +------------------------------------+ | +------------------------------------+ | |||
| Routing| BitString = 00101100 | | Inner | IPv6 Address of A | | |||
| Header +------------------------------------+ | IPv6 +------------------------------------+ | |||
| Header | IPv6 Multicast Destination Address | | ||||
| with +------------------------------------+ | ||||
| BIER | BIER RH(BitString = 00001100) | | ||||
| Routing+------------------------------------+ | ||||
| Header | Original multicast packet | | ||||
| +------------------------------------+ | ||||
| Packet 2 | Packet 3 | |||
| +------------------------------------+ | +-------------------------------------+ | |||
| Outer | Source IP Address = D | | IPv6 | IPv6 Address of A | | |||
| IPv6 +------------------------------------+ | Header +-------------------------------------+ | |||
| Header | Destination IP Address = E | | with | IPv6 Multicast Destination Address | | |||
| +------------------------------------+ | BIER +-------------------------------------+ | |||
| Inner | IPv6 Address of Multicast Source | | Routing| BIER RH(BitString = 00000100) | | |||
| IPv6 +------------------------------------+ | Header +-------------------------------------+ | |||
| | Original multicast packet | | ||||
| +-------------------------------------+ | ||||
| Header | IPv6 Multicast Destination Address | | Figure 3: Some nodes in BIER domain do not support BIER Routing Header | |||
| +------------------------------------+ | ||||
| BIER | BitString = 00001100 | | ||||
| Routing+------------------------------------+ | ||||
| Header | ||||
| Packet 3 | ||||
| +-------------------------------------+ | ||||
| IPv6 | IPv6 Address of Multicast Source | | ||||
| Header +-------------------------------------+ | ||||
| | IPv6 Multicast Destination Address | | ||||
| BIER +-------------------------------------+ | ||||
| Routing| BitString = 00000100 | | ||||
| Header +-------------------------------------+ | ||||
| Figure 3: Some devices in BIER domain do not support BIER Routing Header | The topology is shown in Figure 3, all nodes expect node C support | |||
| BIER Routing Header. The packet need to be transmitted from A to F. | ||||
| The change of the Header has been given in the Figure 3. | ||||
| The topology is shown in Figure 3, all devices expect device C | 1). After receiving a multicast packet, node A encapsulates a IPv6 | |||
| support BIER Routing Header. The packet need to be transmitted from | Header with BIER Routing Header to it, and forwards the packet to | |||
| A to F. The change of the Header has been given in the Figure 3. | node D according to the BIFT. | |||
| When it is found that device C does not support BIER Routing Header, | ||||
| device D will perform the following steps after receiving the packet: | ||||
| 1. Calculating the IPv6 address of next hop device(Node E) that | 2). Node D calculates the IPv6 address of next hop node(Node E) that | |||
| supports BIER Routing Header. | supports BIER Routing Header, and encapsulates an outer IPv6 Header | |||
| to the packet. The source IPv6 address is the IPv6 address of | ||||
| itself, and the destination IPv6 address is the IPv6 address of node | ||||
| E. Then, sending the packet to node C. | ||||
| 2. Encapsulating an outer IPv6 Header to the packet. The calculated | 3). Node C performs normal IPv6 forwarding according to the outer | |||
| IPv6 address(E) is used as the destination address of the outer IPv6 | IPv6 header and sends the packet to node E. | |||
| Header, and its own IPv6 address(D) is used as the source address of | ||||
| the outer IPv6 Header. BitString will not be changed. | ||||
| 3. Sending the packet to directed-connected device C. | 4). Node E decapsulates the outer IPv6 header and forwards the | |||
| packet according to the BIFT to node F. | ||||
| After receiving the packet, device C will perform IPv6 forwarding | In the forwarding procedures, the source address and destination | |||
| according the information in outer IPv6 Header, and send the packet | address in the Inner IPv6 Header are not changed, only the BitString | |||
| to device E. Device E will send it to device F according the | in BIER Routing Header is updated. | |||
| information in BIER Routing Header. In the forwarding process, the | ||||
| source address and destination address in the Inner IPv6 Header are | ||||
| not changed. | ||||
| 5. Security Considerations | 5. Security Considerations | |||
| TBD | TBD | |||
| 6. IANA Considerations | 6. IANA Considerations | |||
| This document defines a new IPv6 Routing Header - BIER Routing | This document defines a new type of IPv6 Routing Header - BIER | |||
| Header. The code point is from the "Internet Protocol Version 6 | Routing Header. The code point is from the "Internet Protocol | |||
| (IPv6) Parameters - Routing Types". It is recommended to set the | Version 6 (IPv6) Parameters - Routing Types". It is recommended to | |||
| code point of BIER Routing Header to 7. | set the code point of BIER Routing Header to 7. | |||
| 7. References | 7. References | |||
| 7.1. Normative References | 7.1. Normative References | |||
| [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
| Requirement Levels", BCP 14, RFC 2119, | Requirement Levels", BCP 14, RFC 2119, | |||
| DOI 10.17487/RFC2119, March 1997, | DOI 10.17487/RFC2119, March 1997, | |||
| <https://www.rfc-editor.org/info/rfc2119>. | <https://www.rfc-editor.org/info/rfc2119>. | |||
| skipping to change at page 9, line 27 ¶ | skipping to change at page 10, line 5 ¶ | |||
| (IPv6) Specification", STD 86, RFC 8200, | (IPv6) Specification", STD 86, RFC 8200, | |||
| DOI 10.17487/RFC8200, July 2017, | DOI 10.17487/RFC8200, July 2017, | |||
| <https://www.rfc-editor.org/info/rfc8200>. | <https://www.rfc-editor.org/info/rfc8200>. | |||
| [RFC8279] Wijnands, IJ., Ed., Rosen, E., Ed., Dolganow, A., | [RFC8279] Wijnands, IJ., Ed., Rosen, E., Ed., Dolganow, A., | |||
| Przygienda, T., and S. Aldrin, "Multicast Using Bit Index | Przygienda, T., and S. Aldrin, "Multicast Using Bit Index | |||
| Explicit Replication (BIER)", RFC 8279, | Explicit Replication (BIER)", RFC 8279, | |||
| DOI 10.17487/RFC8279, November 2017, | DOI 10.17487/RFC8279, November 2017, | |||
| <https://www.rfc-editor.org/info/rfc8279>. | <https://www.rfc-editor.org/info/rfc8279>. | |||
| [RFC8296] Wijnands, IJ., Ed., Rosen, E., Ed., Dolganow, A., | ||||
| Tantsura, J., Aldrin, S., and I. Meilik, "Encapsulation | ||||
| for Bit Index Explicit Replication (BIER) in MPLS and Non- | ||||
| MPLS Networks", RFC 8296, DOI 10.17487/RFC8296, January | ||||
| 2018, <https://www.rfc-editor.org/info/rfc8296>. | ||||
| 7.2. Informative References | 7.2. Informative References | |||
| [I-D.ietf-bier-bierin6] | [I-D.ietf-bier-bierin6] | |||
| Zhang, Z., Zhang, Z., Wijnands, I., Mishra, M., Bidgoli, | Zhang, Z., Zhang, Z., Wijnands, I., Mishra, M., Bidgoli, | |||
| H., and G. Mishra, "Supporting BIER in IPv6 Networks | H., and G. Mishra, "Supporting BIER in IPv6 Networks | |||
| (BIERin6)", draft-ietf-bier-bierin6-00 (work in progress), | (BIERin6)", draft-ietf-bier-bierin6-01 (work in progress), | |||
| June 2021. | December 2021. | |||
| [I-D.xie-bier-ipv6-encapsulation] | [I-D.xie-bier-ipv6-encapsulation] | |||
| Xie, J., Geng, L., McBride, M., Asati, R., Dhanaraj, S., | Xie, J., Geng, L., McBride, M., Asati, R., Dhanaraj, S., | |||
| Zhu, Y., Qin, Z., Shin, M., Mishra, G., and X. Geng, | Zhu, Y., Qin, Z., Shin, M., Mishra, G., and X. Geng, | |||
| "Encapsulation for BIER in Non-MPLS IPv6 Networks", draft- | "Encapsulation for BIER in Non-MPLS IPv6 Networks", draft- | |||
| xie-bier-ipv6-encapsulation-10 (work in progress), | xie-bier-ipv6-encapsulation-10 (work in progress), | |||
| February 2021. | February 2021. | |||
| Authors' Addresses | Authors' Addresses | |||
| End of changes. 50 change blocks. | ||||
| 141 lines changed or deleted | 175 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||