Network Working Group | M. Konstantynowicz, Ed. |
Internet-Draft | G. Heron, Ed. |
Intended status: Informational | Cisco Systems |
Expires: October 05, 2014 | R. Schatzmayr |
Deutsche Telekom AG | |
W. Henderickx | |
Alcatel-Lucent, Inc. | |
April 03, 2014 |
Keyed IPv6 Tunnel
draft-ietf-l2tpext-keyed-ipv6-tunnel-00
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.
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 RFC2119 [RFC2119].
This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet-Drafts is at http://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress."
This Internet-Draft will expire on October 05, 2014.
Copyright (c) 2014 IETF Trust and the persons identified as the document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License.
L2TPv3, as defined in RFC3931 [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.
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.
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 [RFC3931] is not used.
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.
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.
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.
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 [RFC3931] implementations, the packets need to be sent with Session ID. The router implementing L2TPv3 according to RFC3931 [RFC3931] 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.
Note that a previous IETF draft [I.D.ietf-pppext-l2tphc] introduces the concept of an L2TP tunnel carrying a single session and hence not requiring session ID processing.
In line with RFC3931 [RFC3931], 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.
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.
RFC4719 [RFC4719] 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.
The s-tag (or in the multi-stack access case the s-tag and c-tag) SHOULD be removed before the packet is encapsulated.
The full encapsulation is as follows:
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) | | ? | | ? | | ? | | ? | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
The combined IPv6 and L2TPv3 header contains the following fields:
Using tunnel encapsulation, Ethernet L2 datagrams in IPv6 in this case, will reduce the effective MTU of the Ethernet L2 datagram.
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.
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.
The proposed approach is in line with the DS-Lite specification RFC6333 [RFC6333].
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.
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.
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 IEEE 802.1ag [IEEE802.1ag] and/or ITU Y.1731 [Y.1731] 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:
RFC5085 [RFC5085] MAY be used.
In addition the Pseudowire Virtual Circuit Connectivity Verfiication ( VCCV )
None.
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.
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.
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 RFC3931 [RFC3931]. 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 RFC4086 [RFC4086] value is far less likely to be discovered by brute-force attacks compared to an IP address.
For protection against brute-force, blind, insertion attacks, a 64- bit Cookie MUST be used with all tunnels.
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.
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.
Peter Weinberger
Cisco Systems
Email: peweinbe@cisco.com
Michael Lipman
Cisco Systems
Email: mlipman@cisco.com
Mark Townsley
Cisco Systems
Email: townsley@cisco.com
The authors would like to thank Carlos Pignataro for his suggestions and review.
[RFC2119] | Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997. |
[RFC3931] | Lau, J., Townsley, M. and I. Goyret, "Layer Two Tunneling Protocol - Version 3 (L2TPv3)", RFC 3931, March 2005. |
[RFC4086] | Eastlake, D., Schiller, J. and S. Crocker, "Randomness Requirements for Security", BCP 106, RFC 4086, June 2005. |
[RFC4719] | Aggarwal, R., Townsley, M. and M. Dos Santos, "Transport of Ethernet Frames over Layer 2 Tunneling Protocol Version 3 (L2TPv3)", RFC 4719, November 2006. |
[RFC5085] | Nadeau, T. and C. Pignataro, "Pseudowire Virtual Circuit Connectivity Verification (VCCV): A Control Channel for Pseudowires", RFC 5085, December 2007. |
[RFC6333] | Durand, A., Droms, R., Woodyatt, J. and Y. Lee, "Dual-Stack Lite Broadband Deployments Following IPv4 Exhaustion", RFC 6333, August 2011. |
[IEEE802.1ag] | IEEE, "IEEE Standard for Local and metropolitan area networks - Virtual Bridged Local Area Networks, Amendment 5: Connectivity Fault Managements", 2007. |
[Y.1731] | ITU, "ITU-T Recommendation G.8013/Y.1731 - OAM functions and mechanisms for Ethernet based networks", 2011. |
[I.D.ietf-pppext-l2tphc] | Valencia, A., "L2TP Header Compression", December 1997. |