One document matched: draft-ietf-l2tpext-keyed-ipv6-tunnel-03.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="std" docName="draft-ietf-l2tpext-keyed-ipv6-tunnel-03"
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="5" month="March" year="2015"/>
<area>Internet</area>
<workgroup>L2TPEXT Working Group</workgroup>
<abstract>
<t>This document describes a simple L2 Ethernet over IPv6 tunnel
encapsulation with mandatory 64-bit cookie 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"/>,
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 <xref target="RFC2460">IPv6</xref> 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 RFC3931 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 a local IPv6 address on the
network side The local IPv6 address also identifies the tunnel
endpoint. The local IPv6 addresses identifying L2TPv3 tunnels
SHOULD NOT be assigned from connected IPv6 subnets facing
towards remote tunnel endponts - since that approach would
result in an IPv6 Neighbor Discovery cache entry per tunnel on
the next hop router towards the remote tunnel endpoint. It is
RECOMMENDED that local IPv6 addresses identifying L2TPv3 tunnels
are assigned from dedicated subnets used only for such tunnel endpoints.</t>
<t>Certain deployment scenarios may require using a single IPv6 address
(typically a globally routable unicast or anycast address
assigned to a virtual interface) to identify a tunnel
endpoint for multiple IPv6 L2TPv3 tunnels. For such
cases the tunnel encapsulating device identifies each tunnel
by a unique combination of local and remote 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 RFC3931 implementations, the packets
need to be sent with Session ID. Routers implementing L2TPv3
according to RFC3931 can be configured with multiple L2TPv3
tunnels, with one session per tunnel, to interoperate with routers
implementing the keyed IPv6 tunnel as specified by this
document. Note that as Session ID processing is not enabled
for keyed IPv6 tunnels that there can only be a single keyed
IPv6 tunnel between two IPv6 addresses.</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 RFC3931, the 64-bit cookie is used for an
additional tunnel endpoint context check. All
packets MUST carry the 64-bit L2TPv3 cookie field. The cookie
MUST be 64 bits long in order to provide sufficient protection against
spoofing and brute force blind insertion attacks. The cookie
values SHOULD be randomly selected.</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, and in fact SHOULD do so. 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
configurable to accept two discrete cookies for a single tunnel
simultaneously. This enables the receiver to hold both the
'old' and 'new' cookie values during a change of cookie value. Cookie values SHOULD be changed
periodically.</t>
<t>Note that mandating a 64-bit cookie is a change from the optional variable-length cookie
of RFC3931, and that this requirement constrains interoperability with
existing RFC3931 implementations to those supporting a 64-bit cookie.</t>
</section>
<section anchor="sec_encapsulation" title="Encapsulation">
<t> The ingress router encapsulates the entire Ethernet frame,
without the preamble and frame check sequence (FCS) in L2TPv3 as
per <xref target="RFC4719">RFC4719</xref>. The L2TPv3 packet is
encapsulated directly over IPv6 (i.e. no UDP header is
carried).</t>
<t>The ingress router MAY retain the FCS as per section 4.7 of <xref
target="RFC4720"/>. Support for retaining the FCS and for
receiving packets with a retained FCS is OPTIONAL, and if present
MUST be configurable. In the absence of the L2TPv3 control
plane such configuration MUST be consistent for the two
endpoints of any given tunnel - i.e. if one router is configured
to retain the FCS then the other router MUST be configured to
receive packets with the retained FCS. Any router configured to
retain FCS for a tunnel MUST retain FCS for all frames sent over
that tunnel. All routers implementing this specification MUST
support the ability to send frames without retaining the FCS and
to receive such frames.</t>
<t>Any service-delimiting <xref target="IEEE802.1Q">IEEE
802.1Q</xref> or <xref target="IEEE802.1ad">IEEE 802.1ad</xref>
VLAN IDs - S-tag, C-tag or tuple (S-tag, C-tag) - are treated with
local significance within the Ethernet L2 port and are MUST NOT be
forwarded over the IPv6 L2TPv3 tunnel.</t>
<t>Note that the same approach may be used to transport
protocols other than Ethernet.</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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+ IPv6 Header (320 bits) +
~ ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Session ID (32 bits) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Cookie (0:31) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Cookie (32:63) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Payload (variable) |
| ? |
| ? |
| ? |
| ? |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]>
</artwork>
<postamble/>
</figure></t>
<t>The combined IPv6 and Keyed IP Tunnel header contains the following
fields:</t>
<t><list style="symbols">
<t>IPv6 Header. Note that:<list style="symbols">
<t>The 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>The flow label, as defined in <xref
target="RFC6437"/> 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>The next header will be set to 0x73 to indicate that
the next header is L2TPv3.</t>
<t>In the "Static 1:1" case the IPv6 source address may
correspond to a port or port/VLAN being transported as an L2
circuit, or may correspond to a virtual interface terminating inside
the router (e.g. if L2 circuits are being used within a
multipoint VPN, or if an anycast address is being
terminated on a set of data center virtual machines.)</t>
<t>As with the source address the IPv6 destination
address may correspond to a port or port/VLAN being
transported as an L2 circuit, or to a virtual interface.</t>
</list></t>
<t>Session ID. In the "Static 1:1 mapping" case described in <xref
target="sec_static_mapping"/>, the IPv6 address identifies an
L2TPv3 session directly, thus at endpoints supporting
one-stage resolution (IPv6 Address only) the Session ID
SHOULD be ignored upon receipt. It is RECOMMENDED that the remote
endpoint is configured to set the Session ID to all ones (0xFFFFFFFF) for
easy identification in case of troubleshooting. For
compatibility with other tunnel termination platforms
supporting only two-stage resolution (IPv6 Address + Session ID), this
specification recommends supporting explicit configuration of
Session ID to any value other than zero (including all ones). The Session ID of zero
MUST NOT be used, as it is reserved for use by L2TP control messages
as specified in RFC3931. Note that the Session ID is
unidirectional - the sent and received Session IDs at an
endpoint may be different.</t>
<t>Cookie. 64-bit cookie, configured and described as in <xref
target="cookie"/>. All packets for a destined L2 circuit (or
L2TPv3 Session) MUST match one of the cookie values
configured for that circuit. Any
packets that do not contain a valid cookie value MUST
be discarded (see RFC3931 for more details).</t>
<t>Payload (variable length). As noted above the preamble
and any service-delimiting tags MUST be stripped before
encapsulation and the FCS MUST be stripped unless FCS
retention is configured at both ingress and egress routers.
Since a new FCS is added at each hop when the encapsulating
IP packet is transmitted the payload is protected against bit
errors.</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 encapsulated traffic.</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>It is RECOMMENDED that routers implementing this
specification implement IPv6 PMTU discovery as defined in <xref
target="RFC1981"/> to confirm that the path over
which packets are sent has sufficient MTU to transport a maximum
length Ethernet frame plus encapsulation overhead.</t>
<t>Routers implementing this specification MAY implement L2TPv3
fragmentation (as defined in section 5 of <xref
target="RFC4623"/>). In the absence of the L2TPv3 control plane,
it is RECOMMENDED that fragmentation (if implemented) is locally
configured on a per-tunnel basis. Fragmention configuration
MUST be consistent between the two ends of a tunnel.</t>
<t>It is NOT RECOMMENDED for routers implementing this
specification to enable IPv6 fragmentation (as defined in
section 4.5 of RFC2460) for keyed IP tunnels. IP fragmentation
issues for L2TPv3 are discussed in section 4.1.4 of RFC3931.</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, potentially including the use of Bidirectional
Forwarding Detection ( BFD ) <xref
target="RFC5880"/> to rapidly detect link failures. BFD MAY
also be enabled between tunnel endpoints.</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,
it is RECOMMENDED that Ethernet OAM as defined in <xref
target="IEEE802.1ag"/> and/or <xref target="Y.1731"/> is enabled for keyed IP tunnels. More
specifically the following Connectivity 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 verification - use a MIP located at the
tunnel endpoint to generate CFM PDUs in response to received CFM
PDUs.</t>
</list>
In addition Pseudowire Virtual Circuit Connectivity
Verification ( VCCV ) <xref target="RFC5085"/> MAY be
used. Additionally BFD MAY be enabled over the VCCV channel
<xref target="RFC5885"/>.</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 use of the 64 bit L2TPv3 cookie 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 64-bit L2TPv3
cookie provides security against inadvertent leaking of frames into a
customer VPN, as documented in section 8.2 of RFC3931.</t>
<t>For protection against brute-force, blind, insertion attacks, the 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, Stewart
Bryant, Karsten Thomann, Qi Sun and Ian Farrar for their insightful suggestions
and review.</t>
</section>
</middle>
<back>
<references title="Normative References">
<?rfc include='reference.RFC.2119'?>
<?rfc include='reference.RFC.2460'?>
<?rfc include='reference.RFC.3931'?>
<?rfc include='reference.RFC.4719'?>
</references>
<references title="Informative References">
<?rfc include='reference.RFC.1981'?>
<?rfc include='reference.RFC.4623'?>
<?rfc include='reference.RFC.4720'?>
<?rfc include='reference.RFC.5085'?>
<?rfc include='reference.RFC.5880'?>
<?rfc include='reference.RFC.5885'?>
<?rfc include='reference.RFC.6437'?>
<reference anchor="IEEE802.1Q">
<front>
<title>802.1Q-2014 - IEEE Standard for Local and
metropolitan area networks - Bridges and Bridged Networks</title>
<author>
<organization>IEEE</organization>
</author>
<date year="2014"/>
</front>
</reference>
<reference anchor="IEEE802.1ad">
<front>
<title>802.1ad-2005 - IEEE Standard for Local and
Metropolitan Area Networks - Virtual Bridged Local Area
Networks - Amendment 4: Provider Bridges</title>
<author>
<organization>IEEE</organization>
</author>
<date year="2005"/>
</front>
</reference>
<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:16 |