One document matched: draft-ietf-l2tpext-keyed-ipv6-tunnel-00.xml
<?xml version="1.0" encoding="US-ASCII"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd">
<?rfc toc="yes"?>
<?rfc tocompact="yes"?>
<?rfc tocdepth="3"?>
<?rfc tocindent="yes"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes"?>
<?rfc comments="yes"?>
<?rfc inline="yes"?>
<?rfc compact="yes"?>
<?rfc subcompact="no"?>
<rfc category="info" docName="draft-ietf-l2tpext-keyed-ipv6-tunnel-00"
ipr="trust200902">
<front>
<title abbrev="">Keyed IPv6 Tunnel</title>
<author fullname="Maciek Konstantynowicz" initials="M" role="editor"
surname="Konstantynowicz">
<organization>Cisco Systems</organization>
<address>
<email>maciek@cisco.com</email>
</address>
</author>
<author fullname="Giles Heron" initials="G" role="editor" surname="Heron">
<organization>Cisco Systems</organization>
<address>
<email>giheron@cisco.com</email>
</address>
</author>
<author fullname="Rainer Schatzmayr" initials="R" surname="Schatzmayr">
<organization>Deutsche Telekom AG</organization>
<address>
<email>rainer.schatzmayr@telekom.de</email>
</address>
</author>
<author fullname="Wim Henderickx" initials="W" surname="Henderickx">
<organization>Alcatel-Lucent, Inc.</organization>
<address>
<email>wim.henderickx@alcatel-lucent.com</email>
</address>
</author>
<date day="3" month="April" year="2014"/>
<area>General</area>
<workgroup>Network Working Group</workgroup>
<abstract>
<t>This document describes a simple L2 Ethernet over IPv6 tunnel
encapsulation with mandatory 64-bit key for connecting L2 Ethernet
attachment circuits identified by IPv6 addresses. The encapsulation is
based on L2TPv3 over IP.</t>
</abstract>
<note title="Requirements Language">
<t>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 <xref
target="RFC2119">RFC2119</xref>.</t>
</note>
</front>
<middle>
<section title="Introduction">
<t>L2TPv3, as defined in <xref target="RFC3931">RFC3931</xref>, provides
a dynamic mechanism for tunneling Layer 2 (L2) "circuits" across a
packet-oriented data network (e.g., over IP), with multiple attachment
circuits multiplexed over a single pair of IP address endpoints (i.e. a
tunnel) using the L2TPv3 session ID as a circuit discriminator.</t>
<t>Implementing L2TPv3 over IPv6 provides the opportunity to utilize
unique IPv6 addresses to identify Ethernet attachment circuits directly,
leveraging the key property that IPv6 offers, a vast number of unique IP
addresses. In this case, processing of the L2TPv3 Session ID may be
bypassed upon receipt as each tunnel has one and only one associated
session. This local optimization does not hinder the ability to continue
supporting the multiplexing of circuits via the Session ID on the same
router for other L2TPv3 tunnels.</t>
</section>
<section anchor="sec_static_mapping"
title="Static 1:1 Mapping Without a Control Plane">
<t>Static local configuration creates a one-to-one mapping between the
access-side L2 attachment circuit and the IP address used in the
network-side IPv6 encapsulation. The L2TPv3 Control Plane defined in
<xref target="RFC3931"> RFC3931</xref> is not used.</t>
<t>The IPv6 L2TPv3 tunnel encapsulating device uniquely identifies each
Ethernet L2 attachment connection by a port ID or a combination of port
ID and VLAN ID(s) on the access side, and by an IPv6 address on the
network side.</t>
<t>Any VLAN identifiers, S-VID, C-VID or tuple ( S-VID, C-VID ) are
treated with local significance within the Ethernet L2 port and are not
forwarded over the IPv6 L2TPv3 tunnel. IPv6 address is treated as the
IPv6 L2TPv3 tunnel endpoint.</t>
<t>Certain deployment scenarios may require using a single IPv6 address
to identify a tunnel endpoint for many IPv6 L2TPv3 tunnels. For such
cases the tunnel encapsulating device identifies each tunnel by a unique
combination of tunnel source and destination IPv6 addresses.</t>
<t>As mentioned above Session ID processing is not required as each
keyed IPv6 tunnel has one and only one associated session. However for
compatibility with existing <xref target="RFC3931">RFC3931</xref>
implementations, the packets need to be sent with Session ID. The router
implementing L2TPv3 according to <xref target="RFC3931">RFC3931</xref>
can be configured with multiple L2TPv3 tunnels, with one session per
tunnel, to interoperate with the router implementing the keyed IPv6
tunnel as specified by this document.</t>
<t>Note that a previous IETF draft <xref
target="I.D.ietf-pppext-l2tphc"> </xref> introduces the concept of an
L2TP tunnel carrying a single session and hence not requiring session ID
processing.</t>
</section>
<section anchor="cookie" title="64-bit Cookie">
<t>In line with <xref target="RFC3931">RFC3931</xref>, the key in the
cookie field is used for additional tunnel endpoint context check. All
packets MUST carry a 64-bit key in the L2TPv3 cookie field. The cookie
MUST be 64-bits long in order to provide sufficient protection against
spoofing and brute force blind insertion attacks.</t>
<t>In the absence of the L2TPv3 Control Plane, the L2TPv3 encapsulating
router must be provided with local configuration of the 64-bit cookie
for each local and remote IPv6 endpoint - note that cookies are
asymmetric, so local and remote endpoints may send different cookie
values. The value of the cookie must be able to be changed at any time
in a manner that does not drop any legitimate tunneled packets - i.e.
the receiver must be willing to accept both "old" and "new" cookie
values during a change of cookie value.</t>
</section>
<section anchor="sec_encapsulation" title="Encapsulation">
<t><xref target="RFC4719">RFC4719</xref> describes encapsulation of
Ethernet over L2TPv3. Paraphrasing from this document, the Ethernet
frame, without the preamble or frame check sequence (FCS), is
encapsulated in L2TPv3 and is sent as a single packet by the ingress
router.</t>
<t>The s-tag (or in the multi-stack access case the s-tag and c-tag)
SHOULD be removed before the packet is encapsulated.</t>
<t>The full encapsulation is as follows:</t>
<t><figure align="center">
<artwork><![CDATA[ 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Ver | Traffic Class | Flow Label |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Payload Length | Next Header | Hop Limit |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Source address (0:31) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Source address (32:63) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Source address (64:95) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Source address (96:127) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Destination address (0:31) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Destination address (32:63) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Destination address (64:95) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Destination address (96:127) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Session ID (32 bits) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Cookie (0:31) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Cookie (32:63) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Payload (variable) |
| ? |
| ? |
| ? |
| ? |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
<postamble/>
</figure></t>
<t>The combined IPv6 and L2TPv3 header contains the following
fields:</t>
<t><list style="symbols">
<t>Ver. Set to 0x6 to indicate IPv6.</t>
<t>Traffic Class. May be set by the ingress router to ensure correct
PHB treatment by transit routers between the ingress and egress, and
correct QoS disposition at the egress router.</t>
<t>Flow Label. May be set by the ingress router to indicate a flow
of packets from the client which may not be reordered by the network
(if there is a requirement for finer grained ECMP load balancing
than per-circuit load balancing).</t>
<t>Payload Length. Set to the length of the packet, excluding the
IPv6 header (i.e. the length from the Session ID to the end of the
packet).</t>
<t>Next Header. Set to 0x73 to indicate that the next header is
L2TPv3.</t>
<t>Hop Limit. Set to 0xFF, and decremented by one by each router in
the path to the egress router.</t>
<t>Source Address. IPv6 source address for the tunnel. In the
"Static 1:1" case the IPv6 source address may correspond to a port
or VLAN being transported as an L2 circuit, or may be a loopback
address terminating inside the router (e.g. if L2 circuits are being
used within a multipoint VPN) or may be an anycast address
terminating on a data center virtual machine.</t>
<t>Destination Address. IPv6 destination address for the tunnel. As
with the source address this may correspond to a port or VLAN being
transported as an L2 circuit or may be a loopback or anycast
address.</t>
<t>Session ID. In the "Static 1:1 mapping" case described in <xref
target="sec_static_mapping"/>, the IPv6 address resolves to an
L2TPv3 session immediately, thus the Session ID may be ignored upon
receipt. For compatibility with other tunnel termination platforms
supporting only 2-stage resolution (IPv6 Address + Session ID), this
specification recommends supporting explicit configuration of
Session ID to any value other than zero. For cases where both tunnel
endpoints support one-stage resolution (IPv6 Address only), this
specification recommends setting the Session ID to all ones for easy
identification in case of troubleshooting. The Session ID of zero
MUST NOT be used, as it is reserved for use by L2TP control messages
<xref target="RFC3931">RFC3931</xref>.</t>
<t>Cookie. 64 bits, configured and described as in <xref
target="cookie"/>. All packets for a destined L2 Circuit (or L2TPv3
Session) must match the configured Cookie value or be discarded (see
<xref target="RFC3931">RFC3931</xref> for more details).</t>
<t>Payload. The customer data, with s-tag or s-tag/c-tag removed. As
noted above preamble and FCS are stripped before encapsulation. A
new FCS will be added at each hop when the IP packet is
transmitted.</t>
</list></t>
</section>
<section anchor="Fragmentation" title="Fragmentation and Reassembly">
<t>Using tunnel encapsulation, Ethernet L2 datagrams in IPv6 in this
case, will reduce the effective MTU of the Ethernet L2 datagram.</t>
<t>The recommended solution to deal with this problem is for the network
operator to increase the MTU size of all the links between the devices
acting as IPv6 L2TPv3 tunnel endpoints to accommodate both the IPv6
L2TPv3 encapsulation header and the Ethernet L2 datagram without
fragmenting the IPv6 packet.</t>
<t>If it is impossible to increase the link MTU across the network, the
IPv6 L2TPv3 encapsulating device MUST perform fragmentation and
reassembly if the outgoing link MTU cannot accommodate the extra IPv6
L2TPv3 header for specific Ethernet L2 payload. Fragmentation MUST
happen after the encapsulation of the IPv6 L2TPv3 packet. Reassembly
MUST happen before the decapsulation of the IPv6 L2TPv3 packet.</t>
<t>The proposed approach is in line with the DS-Lite specification <xref
target="RFC6333">RFC6333</xref>.</t>
</section>
<section anchor="OAM" title="OAM Considerations">
<t>OAM is an important consideration when providing circuit-oriented
services such as those described in this document, and all the more so
in the absence of a dedicated tunnel control plane, as OAM becomes the
only way to detect failures in the tunnel overlay.</t>
<t>Note that in the context of keyed IP tunnels, failures in the IPv6
underlay network can be detected using the usual methods such as through
the routing protocol.</t>
<t>Since keyed IP tunnels always carry an Ethernet payload, and since
OAM at the tunnel layer is unable to detect failures in the Ethernet
service processing at the ingress or egress router, or on the Ethernet
attachment circuit between the router and the Ethernet client, this
document recommends that Ethernet OAM as defined in <xref
target="IEEE802.1ag">IEEE 802.1ag</xref> and/or <xref
target="Y.1731">ITU Y.1731</xref> is enabled for keyed IP tunnels. More
specifically the following Connecitivity Fault Management ( CFM ) and/or
Ethernet continuity check ( ETH-CC ) configurations are to be used in
conjunction with keyed IPv6 tunnels:</t>
<t><list style="symbols">
<t>Connectivity verification between the tunnel endpoints across the
tunnel - use an Up MEP located at the tunnel endpoint for
transmitting the CFM PDUs towards, and receiving them from the
direction of the tunnel.</t>
<t>Connectivity verification from the tunnel endpoint across the
local attachment circuit - use a Down MEP located at the tunnel
endpoint for transmitting the CFM PDUs towards, and receiving them
from the direction of the local attachment circuit.</t>
<t>Intermediate connectivity verifcation - use a MIP located at the
tunnel endpoint to generate CFM PDUs in response to received CFM
PDUs.</t>
</list>In addition the Pseudowire Virtual Circuit Connectivity
Verfiication ( VCCV ) <xref target="RFC5085">RFC5085</xref> MAY be
used.</t>
</section>
<section anchor="IANA" title="IANA Considerations">
<t>None.</t>
</section>
<section anchor="Security" title="Security Considerations">
<t>Packet spoofing for any type of Virtual Private Network (VPN)
tunneling protocol is of particular concern as insertion of carefully
constructed rogue packets into the VPN transit network could result in a
violation of VPN traffic separation, leaking data into a customer VPN.
This is complicated by the fact that it may be particularly difficult
for the operator of the VPN to even be aware that it has become a point
of transit into or between customer VPNs.</t>
<t>Keyed IPv6 encapsulation provides traffic separation for its VPNs via
use of separate 128-bit IPv6 addresses to identify the endpoints. The
mandatory authentication key carried in the L2TPv3 cookie field,
provides an additional check to ensure that an arriving packet is
intended for the identified tunnel.</t>
<t>In the presence of a blind packet spoofing attack, the authentication
key provides security against inadvertent leaking of frames into a
customer VPN, like in case of L2TPv3 <xref
target="RFC3931">RFC3931</xref>. To illustrate the type of security that
it is provided in this case, consider comparing the validation of a
64-bit Cookie in the L2TPv3 header to the admission of packets that
match a given source and destination IP address pair. Both the source
and destination IP address pair validation and Cookie validation consist
of a fast check on cleartext header information on all arriving packets.
However, since L2TPv3 uses its own value, it removes the requirement for
one to maintain a list of (potentially several) permitted or denied IP
addresses, and moreover, to guard knowledge of the permitted IP
addresses from hackers who may obtain and spoof them. Further, it is far
easier to change a compromised L2TPv3 Cookie than a compromised IP
address," and a cryptographically random <xref
target="RFC4086">RFC4086</xref> value is far less likely to be
discovered by brute-force attacks compared to an IP address.</t>
<t>For protection against brute-force, blind, insertion attacks, a 64-
bit Cookie MUST be used with all tunnels.</t>
<t>Note that the Cookie provides no protection against a sophisticated
man-in-the-middle attacker who can sniff and correlate captured data
between nodes for use in a coordinated attack.</t>
<t>The L2TPv3 64-bit cookie must not be regarded as a substitute for
security such as that provided by IPsec when operating over an open or
untrusted network where packets may be sniffed, decoded, and correlated
for use in a coordinated attack.</t>
</section>
<section title="Contributing Authors">
<t>Peter Weinberger <vspace blankLines="0"/> Cisco Systems <vspace
blankLines="1"/> Email: peweinbe@cisco.com</t>
<t>Michael Lipman <vspace blankLines="0"/> Cisco Systems <vspace
blankLines="1"/> Email: mlipman@cisco.com</t>
<t>Mark Townsley <vspace blankLines="0"/> Cisco Systems <vspace
blankLines="1"/> Email: townsley@cisco.com</t>
</section>
<section anchor="Acknowledgements" title="Acknowledgements">
<t>The authors would like to thank Carlos Pignataro for his suggestions
and review.</t>
</section>
</middle>
<back>
<references title="Normative References">
<?rfc include="reference.RFC.2119"?>
<?rfc include='reference.RFC.3931'?>
<?rfc include='reference.RFC.4086'?>
<?rfc include='reference.RFC.4719'?>
<?rfc include='reference.RFC.5085'?>
</references>
<references title="Informative References">
<?rfc include='reference.RFC.6333'?>
<reference anchor="IEEE802.1ag">
<front>
<title>IEEE Standard for Local and metropolitan area networks -
Virtual Bridged Local Area Networks, Amendment 5: Connectivity Fault
Managements</title>
<author>
<organization>IEEE</organization>
</author>
<date year="2007"/>
</front>
</reference>
<reference anchor="Y.1731">
<front>
<title>ITU-T Recommendation G.8013/Y.1731 - OAM functions and
mechanisms for Ethernet based networks</title>
<author>
<organization>ITU</organization>
</author>
<date year="2011"/>
</front>
</reference>
<reference anchor="I.D.ietf-pppext-l2tphc">
<front>
<title>L2TP Header Compression</title>
<author fullname="Andrew Valencia" initials="A" surname="Valencia">
<organization/>
</author>
<date month="December" year="1997"/>
</front>
</reference>
</references>
</back>
</rfc>
| PAFTECH AB 2003-2026 | 2026-04-23 12:20:54 |