< draft-mcbride-bier-ipv6-requirements-00.txt   draft-mcbride-bier-ipv6-requirements-01.txt >
BIER M. McBride BIER M. McBride
Internet-Draft J. Xie Internet-Draft J. Xie
Intended status: Standards Track S. Dhanaraj Intended status: Standards Track S. Dhanaraj
Expires: October 3, 2019 Huawei Expires: November 10, 2019 Huawei
R. Asati R. Asati
Cisco Cisco
April 1, 2019 May 9, 2019
BIER IPv6 Requirements BIER IPv6 Requirements
draft-mcbride-bier-ipv6-requirements-00 draft-mcbride-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 describing the problem space of transporting packets, with effort by specifying requirements for transporting packets, with Bit
Bit Index Explicit Replication (BIER) headers, in an IPv6 Index Explicit Replication (BIER) headers, in an IPv6 environment.
environment. There will be a need to send IPv6 payloads, to multiple There will be a need to send IPv6 payloads, to multiple IPv6
IPv6 destinations, using BIER. There have been several proposed destinations, using BIER. There have been several proposed solutions
solutions in this area. But there hasn't been a document which in this area. But there hasn't been a document which describes the
describes the problem and why this may be necessary. The goal of problem and lists the requirements. The goal of this document is to
this document is to describe the BIER IPv6 problem space, basic use describe the BIER IPv6 requirements and summarize the pro's and con's
cases, why new solutions may be needed and briefly summarize some of of the proposed solutions.
the proposed solutions.
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 October 3, 2019. This Internet-Draft will expire on November 10, 2019.
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 21 skipping to change at page 2, line 21
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
1.1. Requirements Language . . . . . . . . . . . . . . . . . . 3 1.1. Requirements Language . . . . . . . . . . . . . . . . . . 3
1.2. Terminology . . . . . . . . . . . . . . . . . . . . . . . 3 1.2. Terminology . . . . . . . . . . . . . . . . . . . . . . . 3
2. Problem Statement . . . . . . . . . . . . . . . . . . . . . . 3 2. Problem Statement . . . . . . . . . . . . . . . . . . . . . . 3
3. BIER IPv6 encapsulation 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 . . . . . . . . . . . . . . . . 4 3.3. BIERv6 for Core Networks . . . . . . . . . . . . . . . . 5
3.4. Implications for BIER in SRv6 . . . . . . . . . . . . . . 5 3.4. Implications for BIER in SRv6 . . . . . . . . . . . . . . 5
4. Example Proposed Solutions . . . . . . . . . . . . . . . . . 5 4. Requirements . . . . . . . . . . . . . . . . . . . . . . . . 5
4.1. BIER-ETH encapsulation in IPv6 networks . . . . . . . . . 5 4.1. L2 Agnostic . . . . . . . . . . . . . . . . . . . . . . . 5
4.2. Encode Bitstring in IPv6 destination address . . . . . . 6 4.2. Hop by hop DA modification . . . . . . . . . . . . . . . 5
4.3. Add BIER header into IPv6 Extension Header . . . . . . . 7 4.3. L4 Inspection . . . . . . . . . . . . . . . . . . . . . . 5
4.4. Transport BIER as IPv6 payload . . . . . . . . . . . . . 8 4.4. Multicast address in SA field . . . . . . . . . . . . . . 5
4.5. Tunneling BIER in a IPv6 tunnel . . . . . . . . . . . . . 8 4.5. Incorrect bits . . . . . . . . . . . . . . . . . . . . . 6
5. Suggested Requirements . . . . . . . . . . . . . . . . . . . 9 4.6. SA filtering . . . . . . . . . . . . . . . . . . . . . . 6
4.7. BIER architecture support . . . . . . . . . . . . . . . . 6
4.8. Keep it simple . . . . . . . . . . . . . . . . . . . . . 6
4.9. Hardware fast path . . . . . . . . . . . . . . . . . . . 6
5. Solutions Evaluation . . . . . . . . . . . . . . . . . . . . 6
5.1. BIER-ETH encapsulation in IPv6 networks . . . . . . . . . 6
5.2. Encode Bitstring in IPv6 destination address . . . . . . 8
5.3. Add BIER header into IPv6 Extension Header . . . . . . . 8
5.4. Transport BIER as IPv6 payload . . . . . . . . . . . . . 9
5.5. Tunneling BIER in a IPv6 tunnel . . . . . . . . . . . . . 10
6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 10 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 10
7. Security Considerations . . . . . . . . . . . . . . . . . . . 10 7. Security Considerations . . . . . . . . . . . . . . . . . . . 10
8. Acknowledgement . . . . . . . . . . . . . . . . . . . . . . . 10 8. Acknowledgement . . . . . . . . . . . . . . . . . . . . . . . 11
9. Normative References . . . . . . . . . . . . . . . . . . . . 10 9. Normative References . . . . . . . . . . . . . . . . . . . . 11
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 11 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 12
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 BIER Ethernet encapsulation to run on ethernet links, with other is non-MPLS BIER Ethernet encapsulation to run on ethernet
an ethertype 0xAB37. This document describes using BIER in non-MPLS links, with an ethertype 0xAB37. This document describes using BIER
IPv6 environments. We explain the problem space of transporting in non-MPLS IPv6 environments. We explain the requirements of
IPv4/IPv6 multicast payloads, from an IPv6 router (BFIR) to multicast transporting IPv4/IPv6 multicast payloads, from an IPv6 router (BFIR)
IPv6 destinations (BFERs), using BIER. This can include native IPv6 to multicast IPv6 destinations (BFERs), using BIER. This can include
encapsulation and generic tunneling. There have been several native IPv6 encapsulation and generic tunneling. The goal of this
proposed solutions in this area. But there hasn't been a document document is to help the BIER WG evaluate the BIER v6 requirements and
which describes the problem and why this may be necessary. The goal solutions.
of this document is to describe the BIER v6 problem space, use cases,
encapsulations, existing solutions and why new solutions may be
needed. This draft is intended to help the BIER WG evaluate the need
for an encapsulation that is IPv6-specific through describing the
problem and summarizing BIERV6 related solutions.
1.1. Requirements Language 1.1. Requirements Language
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 RFC 2119 [RFC2119]. document are to be interpreted as described in RFC 2119 [RFC2119].
1.2. Terminology 1.2. Terminology
o BIER: Bit Index Explicit Replication. Provides optimal multicast o BIER: Bit Index Explicit Replication. Provides optimal multicast
skipping to change at page 3, line 36 skipping to change at page 3, line 40
multiple destinations multiple destinations
2. Problem Statement 2. Problem Statement
The problem is the ability of the network to transport BUM packets, The problem is the ability of the network to transport BUM packets,
with BIER headers, in an IPv6 environment. In an IPv6 network, many with BIER headers, in an IPv6 environment. In an IPv6 network, many
deployments consider using a non-MPLS encapsulation for unicast as deployments consider using a non-MPLS encapsulation for unicast as
the data-plane. In such case, it may be expected to have a BIER IPv6 the data-plane. In such case, it may be expected to have a BIER IPv6
encapsulation which is compliant with various kinds of physical encapsulation which is compliant with various kinds of physical
links, perhaps in a hop-by-hop manner, and maintain the benefit of links, perhaps in a hop-by-hop manner, and maintain the benefit of
"fast reroute" of an IPv6 tunnel. "fast reroute" of an IPv6 tunnel. Evaluating the BIER IPv6
requirements will help determine the best solutions to address these
3. BIER IPv6 encapsulation Scenario's problems.
3. BIER IPv6 Scenario's
+--------------------------------------------+ +--------------------------------------------+
| | | |
| +------+ | +------+
| | BFER | | | BFER |
+------+ IPv6 +------+ +------+ IPv6 +------+
| BFIR | | | BFIR | |
+------+ Network +------+ +------+ Network +------+
| | BFER | | | BFER |
| +------+ | +------+
| | | |
skipping to change at page 5, line 14 skipping to change at page 5, line 27
3.4. Implications for BIER in SRv6 3.4. Implications for BIER in SRv6
The Source Packet Routing in Networking (SPRING) architecture The Source Packet Routing in Networking (SPRING) architecture
describes how Segment Routing can be used to steer packets through an describes how Segment Routing can be used to steer packets through an
IPv6 or MPLS network using the source routing paradigm. [RFC8354] IPv6 or MPLS network using the source routing paradigm. [RFC8354]
focuses on use cases for Segment Routing in an IPv6 only environment, focuses on use cases for Segment Routing in an IPv6 only environment,
something which is equially important for BIER in an IPv6 only something which is equially important for BIER in an IPv6 only
environment. environment.
4. Example Proposed Solutions 4. Requirements
There have been several suggested requirements, on the BIER email
list, which we will use to form the BIER IPv6 requirements and to
help evaluate the proposed solutions:
4.1. L2 Agnostic
The solution should be agnostic to the underlying L2 data link type.
4.2. Hop by hop DA modification
The solution should not require hop-by-hop modification of the IP
destination address field.
4.3. L4 Inspection
The solution should not require the BFRs to inspect layer 4 or
require any changes to layer 4.
4.4. Multicast address in SA field
The solution should not allow a multicast address to be put in the IP
source address field.
4.5. Incorrect bits
The solution should not assume that bits never get set incorrectly.
4.6. SA filtering
The solution should not require changes in source address filtering
procedures.
4.7. BIER architecture support
The solution should be possible to be used to support the entire BIER
architecture.
4.8. Keep it simple
The solution should avoid having to use different encapsulation
types, or use complex tunneling techniques, to support BIER as a E2E
multicast transport.
4.9. Hardware fast path
The solution should enable the processing and forwarding of BIER
packets in hardware fast path.
5. Solutions Evaluation
Although this is not a solutions document it should be helpful to
list the various proposed solutions, without addressing the benefits
of one over another, to help understand the problem more clearly.
The following are solutions that have been proposed to solve BIER in The following are solutions that have been proposed to solve BIER in
v6 environments. IPv6 environments.
As illustrated in these examples, the BIER header, or the BitString, As illustrated in these examples, the BIER header, or the BitString,
may appear in the IPv6 Header, IPv6 Extension Header, IPv6 Payload, may appear in the IPv6 Header, IPv6 Extension Header, IPv6 Payload,
or IPv6 Tunnel Packet: or IPv6 Tunnel Packet:
4.1. BIER-ETH encapsulation in IPv6 networks 5.1. BIER-ETH encapsulation in IPv6 networks
+---------------+-----------------+------------------- +---------------+-----------------+-------------------
| Ethernet | BIER header | payload | Ethernet | BIER header | payload
| (ethType = | (BIFT-id, ...) | | (ethType = | (BIFT-id, ...) |
| 0xAB37) | | | 0xAB37) | |
| | Next Header | | | Next Header |
+---------------+-----------------+------------------- +---------------+-----------------+-------------------
BIER-ETH encapsulation (BIER header for Non-MPLS networks as defined BIER-ETH encapsulation (BIER header for Non-MPLS networks as defined
in [RFC8296]) can be used to transport the multicast data in the IPv6 in [RFC8296]) can be used to transport the multicast data in the IPv6
skipping to change at page 6, line 40 skipping to change at page 8, line 5
within a GRE6 or SRv6, etc tunnel, it might not be possible to within a GRE6 or SRv6, etc tunnel, it might not be possible to
parse and decapsulate different types of tunnel headers and parse and decapsulate different types of tunnel headers and
forward the BIER packet completely in hardware fast path forward the BIER packet completely in hardware fast path
similar to the label stack processing in BIER-MPLS networks. similar to the label stack processing in BIER-MPLS networks.
It would be useful to select an encapsulation which could help It would be useful to select an encapsulation which could help
in processing the tunnel and BIER header and make the in processing the tunnel and BIER header and make the
forwarding decision completely in hardware fast path, which is forwarding decision completely in hardware fast path, which is
lacking in BIER-ETH encapsulation if chosen to be deployed in lacking in BIER-ETH encapsulation if chosen to be deployed in
pure IPv6 networks. pure IPv6 networks.
4.2. Encode Bitstring in IPv6 destination address 5.2. Encode Bitstring in IPv6 destination address
+---------------+------------------- +---------------+-------------------
| IPv6 header | payload | IPv6 header | payload
| (BitString in | | (BitString in |
| DA lower bits)| | DA lower bits)|
| Next Header | | Next Header |
+---------------+------------------- +---------------+-------------------
As described in [I-D.pfister-bier-over-ipv6], The information As described in [I-D.pfister-bier-over-ipv6], The information
required by BIER is stored in the destination IPv6 address. The BIER required by BIER is stored in the destination IPv6 address. The BIER
skipping to change at page 7, line 13 skipping to change at page 8, line 27
address of each packet. The high-order bits of the IPv6 destination address of each packet. The high-order bits of the IPv6 destination
address are used by intermediate routers for unicast forwarding, address are used by intermediate routers for unicast forwarding,
deciding whether a packet is a BIER packet, and if so, to identify deciding whether a packet is a BIER packet, and if so, to identify
the BIER Sub-Domain, Set Identifier and BitString length. No the BIER Sub-Domain, Set Identifier and BitString length. No
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.
4.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 | |(Multicast DA) | (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
skipping to change at page 8, line 21 skipping to change at page 9, line 34
IPv6 header. IPv6 header.
Defining New Extension Headers and Options may also be considered, if Defining New Extension Headers and Options may also be considered, if
the IPv6 Destination Option Header is not good enough and new the IPv6 Destination Option Header is not good enough and new
extension headers can solve the problem better. extension headers can solve the problem better.
Such proposals may include requests to IANA to allocate a "BIER Such proposals may include requests to IANA to allocate a "BIER
Option" code from "Destination Options and Hop-by-Hop Options", and/ Option" code from "Destination Options and Hop-by-Hop Options", and/
or a "BIER Option Header" code from "IPv6 Extension Header Types". or a "BIER Option Header" code from "IPv6 Extension Header Types".
4.4. Transport BIER as IPv6 payload 5.4. Transport BIER as IPv6 payload
+---------------+-----------------+------------------- +---------------+-----------------+-------------------
| IPv6 header | IPv6 Ext header | BIER Hdr + payload | IPv6 header | IPv6 Ext header | BIER Hdr + payload
| | (optional) | as IPv6 payload | | (optional) | as IPv6 payload
| | | | | |
| Next Header | Next Header = X | | Next Header | Next Header = X |
+---------------+-----------------+------------------- +---------------+-----------------+-------------------
There is a proposal for a transport-independent BIER encapsulation There is a proposal for a transport-independent BIER encapsulation
header which is applicable regardless of the underlying transport header which is applicable regardless of the underlying transport
technology. As described in [I-D.xu-bier-encapsulation] and technology. As described in [I-D.xu-bier-encapsulation] and
[I-D.zhang-bier-bierin6], the BIER header, and the payload following [I-D.zhang-bier-bierin6], the BIER header, and the payload following
it, can be combined as an IPv6 payload, and be indicated by a new it, can be combined as an IPv6 payload, and be indicated by a new
Upper-layer IPv6 Next-Header value. A unicast IPv6 destination Upper-layer IPv6 Next-Header value. A unicast IPv6 destination
address is used for the replication and changes when replicating a address is used for the replication and changes when replicating a
packet out to a neighbor. packet out to a neighbor.
Such proposals may include a request to IANA to allocate an IPv6 Such proposals may include a request to IANA to allocate an IPv6
Next-Header code from "Assigned Internet Protocol Numbers". Next-Header code from "Assigned Internet Protocol Numbers".
4.5. Tunneling BIER in a IPv6 tunnel 5.5. Tunneling BIER in a IPv6 tunnel
+---------------+-----------------+------------+---------------- +---------------+-----------------+------------+----------------
| IPv6 header | IPv6 Ext header | GRE header | | IPv6 header | IPv6 Ext header | GRE header |
| | (optional) | | BIER Hdr + | | (optional) | | BIER Hdr +
| | | | payload as GRE | | | | payload as GRE
| Next Header | Next Header | Proto = X | Payload | Next Header | Next Header | Proto = X | Payload
+---------------+-----------------+------------+---------------- +---------------+-----------------+------------+----------------
A generic IPv6 Tunnel could be used to encapsulate the bier packet A generic IPv6 Tunnel could be used to encapsulate the bier packet
within an IPv6 domain. within an IPv6 domain.
skipping to change at page 9, line 27 skipping to change at page 10, line 39
| | | | payload as UDP | | | | payload as UDP
| Next Header | Next Header | DPort = X | Payload | Next Header | Next Header | DPort = X | Payload
+---------------+-----------------+------------+---------------- +---------------+-----------------+------------+----------------
UDP-based tunneling is another mechanism which uses a specific UDP UDP-based tunneling is another mechanism which uses a specific UDP
port to indicate a UDP payload format. Both IPv4 and IPv6 can port to indicate a UDP payload format. Both IPv4 and IPv6 can
support UDP. Such UDP-based tunnels can be used for BIER in a IPv6 support UDP. Such UDP-based tunnels can be used for BIER in a IPv6
network by defining a new UDP port to indicate the BIER header and network by defining a new UDP port to indicate the BIER header and
payload. payload.
5. Suggested Requirements
This is not a requirements document and we may eventually remove this
section. We will, however, summarize some of the "requirements",
that have been suggested on the BIER email list, to help further
understand the problem. At a minimum, this may serve as a kick start
to a requirements draft if one is deemed necessary by the WG:
The solution should be agnostic to the underlying L2 data link type.
The solution should not require hop-by-hop modification of the IP
destination address field.
The solution should not require the BFRs to inspect layer 4 or
require any changes to layer 4.
The solution should not allow a multicast address to be put in the IP
source address field.
The solution should not assume that bits never get set incorrectly.
The solution should not require changes in source address filtering
procedures.
The solution should be possible to be used to support the entire BIER
architecture.
The solution should avoid having to use different encapsulation
types, or use complex tunneling techniques, to support BIER as a E2E
multicast transport.
The solution should enable the processing and forwarding of BIER
packets in hardware fast path.
6. IANA Considerations 6. IANA Considerations
Some BIERv6 encapsulation proposals do not require any action from Some BIERv6 encapsulation proposals do not require any action from
IANA while other proposals require new BIER Destination Option IANA while other proposals require new BIER Destination Option
codepoints from IPv6 sub-registries or require new IP Protocol codes. codepoints from IPv6 sub-registries, new "Next header" values, or
This document, however, does not require anything from IANA. require new IP Protocol codes. This document, however, does not
require anything from IANA.
7. Security Considerations 7. Security Considerations
There are no security issues introduced by this draft. There are no security issues introduced by this draft.
8. Acknowledgement 8. Acknowledgement
Thank you to Eric Rosen for his listed set of requirements on the Thank you to Eric Rosen for his listed set of requirements on the
bier wg list. bier wg list.
 End of changes. 22 change blocks. 
87 lines changed or deleted 105 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/