Generalized IPv6 Tunnel
(GIP6)Huawei156 Beiqing RoadBeijing,100095P.R. Chinalizhenbin@huawei.comHuawei156 Beiqing RoadBeijing, 100095P.R. Chinachenshuanglong@huawei.comHuawei156 Beiqing RoadBeijing, 100095P.R. Chinarainsword.wang@huawei.comHuawei156 Beiqing RoadBeijing, 100095P.R. Chinagaoqiangzhou@huawei.comAgricultural Bank of ChinaP.R. Chinamichbang@163.comThis document defines the generalized IPv6 tunnel based on the
analysis of challenges of the existing problems of IP tunnels.The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in .Currently there are many types of IP tunnels, such as VXLAN and GRE.
On IPv6 networks, it is hard to define extensions for all these tunnels
to support new features. On the other hand it is not recommended to
extend new features based on the IPv4 data plane for these tunnels. This
document analyzes the problems of IP tunnels and defines a generalized
IPv6 tunnel to support the new features.APN: Application-aware NetworkingGRE: Generic Routing EncapsulationIPv4: Internet Protocol version 4IPv6: Internet Protocol version 6IOAM: In-situ Operations, Administration, and MaintenanceISATAP: Intra-Site Automatic Tunnel Addressing ProtocolL2TPv3: Layer Two Tunneling Protocol Version 3MPLS: Multiprotocol Label SwitchingNVO3: Network Virtualization OverlaysSRv6: Segment Routing IPv6SID: SR IdentificationVNI: VXLAN Network IdentifierVXLAN: Virtual eXtensible Local Area NetworkThere have been many types of IP tunnels, including:- GRE Tunnels: it is defined in .- IP in IP Tunnels: it is defined in .- L2TPv3 Tunnels: it is defined in .- ISATAP Tunnels: it is defined in .- IPv4/IPv6 over IPv6 (4over6) Tunnels: it is defined in.- VXLAN Tunnels: it is defined in .- NVGRE Tunnels: it is defined in .- MPLS over UDP: it is defined in .- VXLAN-GPE (Generic Protocol Extension for VXLAN) Tunnels: it is
defined in .Currently many new features are emerging and the corresponding
encapsulations over the IPv6 are defined:- defines IPv6
encapsulation for Alternate Marking.- defines IPv6
encapsulation for IOAM.- defines the IPv6
encapsulation used to determine resource isolation.- defines the IPv6
encapsulation of an APN.If the existing IP tunnels need to support new features such as
Alternate Marking, IOAM, resource isolation, and APN, the following
problems exist:- All of the IP tunnels mentioned above need to be extended
accordingly, resulting in a lot of standardization work.- It is hard to keep the consistency between IPv4 and IPv6 for these
IP tunnels (except IPv4 transition tunnels) since the possible
extensions are recommended to be only done over the IPv6.- IPv6 can directly support some functions of these IP tunnels which
cannot be done over the IPv4. This means such functions becomes
redundant over the IPv6. For example, VXLAN takes use of the UDP to
support ECMP. However for the IPv6 VXLAN, the Flow Label in the IPv6
header can also be used to support ECMP.- Some IP tunnels such as VXLAN and GRE have their own headers. If
these tunnels need to support new features over the IPv6, there will
face the challenge of the choice between reusing the exiting IPv6
encapsulations for these new features based on the IPv6 extension header
and define new extensions based on their own tunnel headers.-- If the tunnel header is extended, it will be redundant with the
existing IPv6 encapsulation for the new features based on the IPv6
extension header.-- For some existing IP tunnels (such as IP in IP) that do not have
their own headers, they have to reuse the IPv6 encapsulations for these
new features based the IPv6 header. extensions need to be redefined in
the IPv6 extension header. As a result, their extensions may be
different from that of the IP tunnels which have their own headers.In order to solve the above problems, the following choice can be
taken into account:1. It is not recommended to support the new features over the IPv4
for these IP tunnels.2. It is to reuse the existing IPv6 encapsulations based on the IPv6
extension header when support the new features for these IP tunnels over
the IPv6.If these IP tunnels takes use of the existing encapsulations based on
the IPv6 extension header, for the IP tunnels which have their own
headers, there are two possible options to cope with their own
headers:Option 1: Tunnels use the IPv6 extension headers to support new
features and their own headers are retained.This Option has the following problems:1. Redundant Functions: For example, the UDP-based IP tunnel can
directly use IPv6 flow label to implement ECMP.2. Separated process of tunnel functions: Some functions use IPv6
extension headers and some functions use headers of tunnels. As a
result, tunnel processing is separated and complex. 3. If the IPSec extension header is used, the tunnel's own header
maybe encrypted and unable to be parsed when necessary process is
needed.The advantage of the option is that the existing tunnel headers are
retained and it is easy to implement the smooth evolution. In addition,
If the functions of the existing tunnel header is only processed at the
destination node, it is easy to be retained because the IPSec extension
header has little effect on the retained tunnel headers.Option 2: Define a generalized IPv6 tunnel that contains the IPv6
extension header which not only reuses the existing IPv6 encapsulations
to support new features, but also introduces the new extensions to
support the necessary functions of their own headers.With this option, all the instructions are encapsulated in the IPv6
extension headers which will facilitate the unifying process. This
option is recommended in the document. The Generalized IPv6 (GIP6) tunnel is defined to use the IPv6 header
and IPv6 extension header to support both existing IP tunnels functions
and new features.A GIP6 encapsulated packet has the following format:Different types of tunneled payloads, such as IPv4, IPv6, MPLS,
Ethernet, etc., can be indicated by the IPv6 Next Header.Packets encapsulated with the GIP6 tunnel can directly support new
functions based on existing encapsulation, including Alternate-Marking,
IOAM, Resource-Isolation, and APN.To support existing VXLAN functions, the GIP6 tunnel is extended as
follows:1. The function of the UDP is replaced by the flow label of the IPv6
header in the GIP6 tunnel. To ensure compatibility, the value of the
flow label calculated for the purpose of ECMP SHOULD be the same as that
of the source port of the UDP.2. Definition of the VN OptionA new option called VN Option is defined to carry the VXLAN header
information. The VN Option MUST only be encapsulated in the Destination
Options Header (DOH).The following figure shows the data fields format of the VN
option:The VN Option contains the following fields:* Option Type: 8-bit selector. VN option. Value TBD by IANA.* Opt Data Len: 8-bit unsigned integer. Length of the option, in
octets, excluding the Option Type and Option Length fields. This field
MUST be set to 8.* Option Data: 64-bits VXLAN Header Information.The following figure shows the definition of VXLAN headers in . For the detailed definition of the data fields,
please refer to .A new option called GRE Option is defined to carry the GRE header
information. The GRE Option MUST only be encapsulated in the Destination
Options header (DOH).The definition of a new TLV for the Options Extension Headers,
carrying the data fields dedicated to the GRE information, is reported
below.The following figure shows the data fields format of the GRE
option.The GRE Option contains the following fields:* Option Type: 8-bit selector. GRE option. Value TBD by IANA.* Opt Data Len: 8-bit unsigned integer. Length of the option, in
octets, excluding the Option Type and Option Length fields. This field
MUST be set to 16.* Option Data: 128-bits GRE Header Information.The following figure shows the definition of the GRE header in . For the detailed definition of the data fields,
please refer to and .Note: The function of the Protocol Type in the GRE header can be
replaced by that of the NH in the IPv6 header or IPv6 extension
header.They will be defined in the future version.TBD.The Option Type should be assigned in IANA's "Destination Options"
registry.This draft requests the following IPv6 Option Type assignment from
the Destination Options sub-registry of Internet Protocol Version 6
(IPv6) Parameters
(https://www.iana.org/assignments/ipv6-parameters/).