| < draft-ietf-bier-ipv6-requirements-00.txt | draft-ietf-bier-ipv6-requirements-01.txt > | |||
|---|---|---|---|---|
| BIER M. McBride | Network Working Group M. McBride | |||
| Internet-Draft Futurewei | Internet-Draft Futurewei | |||
| Intended status: Standards Track J. Xie | Intended status: Standards Track J. Xie | |||
| Expires: November 30, 2019 S. Dhanaraj | Expires: January 2, 2020 S. Dhanaraj | |||
| Huawei | Huawei | |||
| R. Asati | R. Asati | |||
| Cisco | Cisco | |||
| May 29, 2019 | July 1, 2019 | |||
| BIER IPv6 Requirements | BIER IPv6 Requirements | |||
| draft-ietf-bier-ipv6-requirements-00 | draft-ietf-bier-ipv6-requirements-01 | |||
| Abstract | Abstract | |||
| The BIER WG has a charter item to work on mechanisms which use BIER | The BIER WG has a charter item to work on mechanisms which use BIER | |||
| natively in IPv6. This document is intended to help the WG with this | natively in IPv6. This document is intended to help the WG with this | |||
| effort by specifying requirements for transporting packets, with Bit | effort by specifying requirements for transporting packets, with Bit | |||
| Index Explicit Replication (BIER) headers, in an IPv6 environment. | Index Explicit Replication (BIER) headers, in an IPv6 environment. | |||
| There will be a need to send IPv6 payloads, to multiple IPv6 | There will be a need to send IPv6 payloads, to multiple IPv6 | |||
| destinations, using BIER. There have been several proposed solutions | destinations, using BIER. There have been several proposed solutions | |||
| in this area. But there hasn't been a document which describes the | in this area. But there hasn't been a document which describes the | |||
| skipping to change at page 1, line 43 ¶ | skipping to change at page 1, line 43 ¶ | |||
| 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 November 30, 2019. | This Internet-Draft will expire on January 2, 2020. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2019 IETF Trust and the persons identified as the | Copyright (c) 2019 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 29 ¶ | skipping to change at page 2, line 29 ¶ | |||
| 1.2. Terminology . . . . . . . . . . . . . . . . . . . . . . . 3 | 1.2. Terminology . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
| 2. Problem Statement . . . . . . . . . . . . . . . . . . . . . . 3 | 2. Problem Statement . . . . . . . . . . . . . . . . . . . . . . 3 | |||
| 3. BIER IPv6 Scenario's . . . . . . . . . . . . . . . . . . . . 3 | 3. BIER IPv6 Scenario's . . . . . . . . . . . . . . . . . . . . 3 | |||
| 3.1. BIERv6 for Access Network . . . . . . . . . . . . . . . . 4 | 3.1. BIERv6 for Access Network . . . . . . . . . . . . . . . . 4 | |||
| 3.2. BIERv6 for Data Center . . . . . . . . . . . . . . . . . 4 | 3.2. BIERv6 for Data Center . . . . . . . . . . . . . . . . . 4 | |||
| 3.3. BIERv6 for Core Networks . . . . . . . . . . . . . . . . 5 | 3.3. BIERv6 for Core Networks . . . . . . . . . . . . . . . . 5 | |||
| 3.4. Implications for BIER in SRv6 . . . . . . . . . . . . . . 5 | 3.4. Implications for BIER in SRv6 . . . . . . . . . . . . . . 5 | |||
| 4. Requirements . . . . . . . . . . . . . . . . . . . . . . . . 5 | 4. Requirements . . . . . . . . . . . . . . . . . . . . . . . . 5 | |||
| 4.1. L2 Agnostic . . . . . . . . . . . . . . . . . . . . . . . 5 | 4.1. L2 Agnostic . . . . . . . . . . . . . . . . . . . . . . . 5 | |||
| 4.2. Hop by hop DA modification . . . . . . . . . . . . . . . 5 | 4.2. Hop by hop DA modification . . . . . . . . . . . . . . . 5 | |||
| 4.3. L4 Inspection . . . . . . . . . . . . . . . . . . . . . . 5 | 4.3. L4 Inspection . . . . . . . . . . . . . . . . . . . . . . 6 | |||
| 4.4. Multicast address in SA field . . . . . . . . . . . . . . 5 | 4.4. Multicast address in SA field . . . . . . . . . . . . . . 6 | |||
| 4.5. Incorrect bits . . . . . . . . . . . . . . . . . . . . . 6 | 4.5. Incorrect bits . . . . . . . . . . . . . . . . . . . . . 6 | |||
| 4.6. SA filtering . . . . . . . . . . . . . . . . . . . . . . 6 | 4.6. SA filtering . . . . . . . . . . . . . . . . . . . . . . 6 | |||
| 4.7. BIER architecture support . . . . . . . . . . . . . . . . 6 | 4.7. BIER architecture support . . . . . . . . . . . . . . . . 6 | |||
| 4.8. Keep it simple . . . . . . . . . . . . . . . . . . . . . 6 | 4.8. Keep it simple . . . . . . . . . . . . . . . . . . . . . 7 | |||
| 4.9. Hardware fast path . . . . . . . . . . . . . . . . . . . 6 | 4.9. Hardware fast path . . . . . . . . . . . . . . . . . . . 7 | |||
| 5. Solutions Evaluation . . . . . . . . . . . . . . . . . . . . 6 | 5. Solutions Evaluation . . . . . . . . . . . . . . . . . . . . 7 | |||
| 5.1. BIER-ETH encapsulation in IPv6 networks . . . . . . . . . 6 | 5.1. BIER-ETH encapsulation in IPv6 networks . . . . . . . . . 7 | |||
| 5.2. Encode Bitstring in IPv6 destination address . . . . . . 8 | 5.2. Encode Bitstring in IPv6 destination address . . . . . . 8 | |||
| 5.3. Add BIER header into IPv6 Extension Header . . . . . . . 8 | 5.3. Add BIER header into IPv6 Extension Header . . . . . . . 9 | |||
| 5.4. Transport BIER as IPv6 payload . . . . . . . . . . . . . 9 | 5.4. Transport BIER as IPv6 payload . . . . . . . . . . . . . 10 | |||
| 5.5. Tunneling BIER in a IPv6 tunnel . . . . . . . . . . . . . 10 | 5.5. Tunneling BIER in a IPv6 tunnel . . . . . . . . . . . . . 10 | |||
| 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 10 | 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 11 | |||
| 7. Security Considerations . . . . . . . . . . . . . . . . . . . 10 | 7. Security Considerations . . . . . . . . . . . . . . . . . . . 11 | |||
| 8. Acknowledgement . . . . . . . . . . . . . . . . . . . . . . . 11 | 8. Acknowledgement . . . . . . . . . . . . . . . . . . . . . . . 11 | |||
| 9. Normative References . . . . . . . . . . . . . . . . . . . . 11 | 9. Normative References . . . . . . . . . . . . . . . . . . . . 12 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 12 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 13 | |||
| 1. Introduction | 1. Introduction | |||
| Bit Index Explicit Replication (BIER) [RFC8279] is an architecture | Bit Index Explicit Replication (BIER) [RFC8279] is an architecture | |||
| that provides optimal multicast forwarding, without requiring | that provides optimal multicast forwarding, without requiring | |||
| intermediate routers to maintain per-flow state, through the use of a | intermediate routers to maintain per-flow state, through the use of a | |||
| multicast-specific BIER header. [RFC8296] defines two types of BIER | multicast-specific BIER header. [RFC8296] defines two types of BIER | |||
| encapsulation to run on physical links: one is BIER MPLS | encapsulation to run on physical links: one is BIER MPLS | |||
| encapsulation to run on various physical links that support MPLS, the | encapsulation to run on various physical links that support MPLS, the | |||
| other is non-MPLS BIER Ethernet encapsulation to run on ethernet | other is non-MPLS BIER Ethernet encapsulation to run on ethernet | |||
| skipping to change at page 5, line 42 ¶ | skipping to change at page 5, line 42 ¶ | |||
| 4.1. L2 Agnostic | 4.1. L2 Agnostic | |||
| The solution should be agnostic to the underlying L2 data link type. | The solution should be agnostic to the underlying L2 data link type. | |||
| 4.2. Hop by hop DA modification | 4.2. Hop by hop DA modification | |||
| The solution should not require hop-by-hop modification of the IP | The solution should not require hop-by-hop modification of the IP | |||
| destination address field. | destination address field. | |||
| A multicast packet whose DA is multicast address does not require DA | ||||
| modification hop by hop when replicating the packet to the nexthop | ||||
| BFR. | ||||
| An anycast packet whose DA is an anycast address configured on each | ||||
| BFRs in the domain may be another option does not require DA | ||||
| modification when replicating the packet to the nexthop BFR. | ||||
| It is common to get the impression that BIERv6 could use multicast | ||||
| address, as BIER is kind of one-hop replication on each BFR in normal | ||||
| cases. However, as described in section 6.9 of [RFC8279], it is | ||||
| useful to support Non-BIER routers within a BIER domain. From the | ||||
| discussion about this document on IETF104, focus is on the advantages | ||||
| of using unicast address that otherwise could not possible by using | ||||
| multicast address or anycast address for the two cases: replication | ||||
| from a BFR to other BFR(s) connected by Layer-3 Non-BFR router(s) | ||||
| without using tunneling techniques, and replication from a BFR to | ||||
| other BFR(s) connected by Layer-2 switch(es) without broadcasting or | ||||
| snooping on Layer-2 switch(es) in between. Based on the natural | ||||
| reachability of an IPv6 unicast address, it can support the multi-hop | ||||
| replication cases as well as the one-hop replication case. | ||||
| This requirement may be deprecated if unicast address is prefered as | ||||
| a solution for both multi-hop replication and one-hop replication | ||||
| without using two different encapsulations. | ||||
| 4.3. L4 Inspection | 4.3. L4 Inspection | |||
| The solution should not require the BFRs to inspect layer 4 or | The solution should not require the BFRs to inspect layer 4 or | |||
| require any changes to layer 4. | require any changes to layer 4. | |||
| 4.4. Multicast address in SA field | 4.4. Multicast address in SA field | |||
| The solution should not allow a multicast address to be put in the IP | The solution should not allow a multicast address to be put in the IP | |||
| source address field. | source address field. | |||
| 4.5. Incorrect bits | 4.5. Incorrect bits | |||
| The solution should not assume that bits never get set incorrectly. | The solution should not assume that bits never get set incorrectly. | |||
| If a packet with incorrect bits set, it should not damage the | ||||
| functions like Unicast Reverse Path Forwarding (URPF), or cause loops | ||||
| or duplicates as described in section 6.8 of [RFC8279]. | ||||
| 4.6. SA filtering | 4.6. SA filtering | |||
| The solution should not require changes in source address filtering | The solution should not require changes in source address filtering | |||
| procedures. | procedures. | |||
| 4.7. BIER architecture support | 4.7. BIER architecture support | |||
| The solution should be possible to be used to support the entire BIER | The solution should be possible to be used to support the entire BIER | |||
| architecture. | architecture. | |||
| Multiple sub-domains bound to one or many topologies or algorithms, | ||||
| multiple sets for more BFERs, multiple BIFTs for ECMP should be | ||||
| supported. | ||||
| 4.8. Keep it simple | 4.8. Keep it simple | |||
| The solution should avoid having to use different encapsulation | The solution should avoid having to use different encapsulation | |||
| types, or use complex tunneling techniques, to support BIER as a E2E | types, or use complex tunneling techniques, to support BIER as a E2E | |||
| multicast transport. | multicast transport. | |||
| A single encapsulation should support Layer-2 switch within BFRs, or | ||||
| non-BFR within a BIER domain, or inter-domain deployment of BIER. | ||||
| 4.9. Hardware fast path | 4.9. Hardware fast path | |||
| The solution should enable the processing and forwarding of BIER | The solution should enable the processing and forwarding of BIER | |||
| packets in hardware fast path. | packets in hardware fast path. | |||
| 5. Solutions Evaluation | 5. Solutions Evaluation | |||
| The following are solutions that have been proposed to solve BIER in | The following are solutions that have been proposed to solve BIER in | |||
| IPv6 environments. | IPv6 environments. | |||
| skipping to change at page 8, line 31 ¶ | skipping to change at page 9, line 22 ¶ | |||
| additional extension or encapsulation header is required. Instead of | additional extension or encapsulation header is required. Instead of | |||
| encapsulating the packet in IPv6, the payload is attached to the BIER | encapsulating the packet in IPv6, the payload is attached to the BIER | |||
| IPv6 header and the IPv6 protocol number is set to the type of the | IPv6 header and the IPv6 protocol number is set to the type of the | |||
| payload. If the payload is UDP, the UDP checksum needs to change | payload. If the payload is UDP, the UDP checksum needs to change | |||
| when the BitString in the IPv6 destination address changes. | when the BitString in the IPv6 destination address changes. | |||
| 5.3. Add BIER header into IPv6 Extension Header | 5.3. Add BIER header into IPv6 Extension Header | |||
| +---------------+-----------------+------------------- | +---------------+-----------------+------------------- | |||
| | IPv6 header | IPv6 Ext header | payload | | IPv6 header | IPv6 Ext header | payload | |||
| |(Multicast DA) | (BIER header in | | | | (BIER header in | | |||
| | | TLV Type = X) | | | | TLV Type = X) | | |||
| | Next Header | Next Header | | | Next Header | Next Header | | |||
| +---------------+-----------------+------------------- | +---------------+-----------------+------------------- | |||
| According to [RFC8200] In IPv6, optional internet-layer information | According to [RFC8200] In IPv6, optional internet-layer information | |||
| is encoded in separate headers that may be placed between the IPv6 | is encoded in separate headers that may be placed between the IPv6 | |||
| header and the upper- layer header in a packet. There is a small | header and the upper- layer header in a packet. There is a small | |||
| number of such extension headers, each one identified by a distinct | number of such extension headers, each one identified by a distinct | |||
| Next Header value. An IPv6 packet may carry zero, one, or more | Next Header value. An IPv6 packet may carry zero, one, or more | |||
| extension headers, each identified by the Next Header field of the | extension headers, each identified by the Next Header field of the | |||
| skipping to change at page 11, line 20 ¶ | skipping to change at page 12, line 15 ¶ | |||
| 9. Normative References | 9. Normative References | |||
| [I-D.pfister-bier-over-ipv6] | [I-D.pfister-bier-over-ipv6] | |||
| Pfister, P. and I. Wijnands, "An IPv6 based BIER | Pfister, P. and I. Wijnands, "An IPv6 based BIER | |||
| Encapsulation and Encoding", draft-pfister-bier-over- | Encapsulation and Encoding", draft-pfister-bier-over- | |||
| ipv6-01 (work in progress), October 2016. | ipv6-01 (work in progress), October 2016. | |||
| [I-D.xie-bier-ipv6-encapsulation] | [I-D.xie-bier-ipv6-encapsulation] | |||
| Xie, J., Geng, L., McBride, M., Dhanaraj, S., Yan, G., and | Xie, J., Geng, L., McBride, M., Dhanaraj, S., Yan, G., and | |||
| Y. Xia, "Encapsulation for BIER in Non-MPLS IPv6 | Y. Xia, "Encapsulation for BIER in Non-MPLS IPv6 | |||
| Networks", draft-xie-bier-ipv6-encapsulation-00 (work in | Networks", draft-xie-bier-ipv6-encapsulation-01 (work in | |||
| progress), March 2019. | progress), June 2019. | |||
| [I-D.xu-bier-encapsulation] | [I-D.xu-bier-encapsulation] | |||
| Xu, X., somasundaram.s@alcatel-lucent.com, s., Jacquenet, | Xu, X., somasundaram.s@alcatel-lucent.com, s., Jacquenet, | |||
| C., Raszuk, R., and Z. Zhang, "A Transport-Independent Bit | C., Raszuk, R., and Z. Zhang, "A Transport-Independent Bit | |||
| Index Explicit Replication (BIER) Encapsulation Header", | Index Explicit Replication (BIER) Encapsulation Header", | |||
| draft-xu-bier-encapsulation-06 (work in progress), | draft-xu-bier-encapsulation-06 (work in progress), | |||
| September 2016. | September 2016. | |||
| [I-D.zhang-bier-bierin6] | [I-D.zhang-bier-bierin6] | |||
| Zhang, Z. and T. Przygienda, "BIER in IPv6", draft-zhang- | Zhang, Z. and T. Przygienda, "BIER in IPv6", draft-zhang- | |||
| End of changes. 16 change blocks. | ||||
| 20 lines changed or deleted | 57 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/ | ||||