L2TP

From Free net encyclopedia

In computer networking, the Layer 2 Tunneling Protocol (L2TP) is a tunneling protocol used to support virtual private networks (VPNs). L2TP can crudely be described as "PPP over IP", although it has many more features than this simple description would imply.

Contents

History and future

Published in 1999 as proposed standard RFC 2661, L2TP has its origins primarily in two older tunneling protocols for PPP: Cisco's Layer 2 Forwarding (L2F) and Microsoft's Point-to-Point Tunneling Protocol (PPTP). A new version of this protocol, L2TPv3, was published as proposed standard RFC 3931 in 2005. L2TPv3 provides additional security features, improved encapsulation, and the ability to carry data links other than simply PPP over an IP network (e.g., Frame Relay, Ethernet, ATM, etc).

Description

L2TP acts as a data link layer (layer 2 of the OSI model) protocol for tunneling network traffic between two peers over an existing network (usually the Internet). It is common to carry Point-to-Point Protocol (PPP) sessions within an L2TP tunnel. L2TP does not provide confidentiality or strong authentication itself. IPsec is often used to secure L2TP packets by providing confidentiality, authentication and integrity. The combination of these two protocols is generally known as L2TP/IPsec. It is standardized in RFC3193 [1].

The two endpoints of an L2TP tunnel are called the LAC (L2TP Access Concentrator) and the LNS (L2TP Network Server). The LAC is the initiator of the tunnel while the LNS is the server, which waits for new tunnels. Once a tunnel is established, the network traffic between the peers is bidirectional. To be useful for networking, higher-level protocols are then run through the L2TP tunnel. To facilite this an L2TP session (or call) is established within the tunnel for each higher-level protocol such as PPP. Either the LAC or LNS may initiate sessions. The traffic for each session is isolated by L2TP, so it is possible to set up multiple virtual networks across a single tunnel.

Be sure to consider MTU when implementing L2TP.

The packets exchanged within an L2TP tunnel are either categorised as control packets or data packets. L2TP provides reliability features for the control packets, but no reliability for data packets. Reliability, if desired, must be provided by the nested protocols running within each session of the L2TP tunnel.

Cisco claims to have a software patent related to L2F and L2TP [2]. It has been assigned patent number 5,918,019 in the United States. [3]

L2TP/IPSec

Because of the lack of confidentiality inherent in the L2TP protocol, it is often implemented along with IPSec. This is referred to as L2TP/IPSec, and is standardized in IETF RFC 3193.

The process of setting up an L2TP/IPSec VPN is as follows:

  1. Negotiation of IPSec Security Association (SA), typically through Internet Key Exchange (IKE). This is carried out over UDP port 500, and commonly uses either a shared password (so-called "pre-shared keys"), public keys, or X.509 certificates on both ends, although other keying methods exist.
  2. Establishment of Encapsulated Security Payload (ESP) communication in transport mode. The Protocol ID for ESP is 50 (compare TCP's 6 and UDP's 17). At this point, a secure channel has been established, but no tunneling is taking place.
  3. Negotiation and establishment of L2TP tunnel between the SA endpoints. The actual negotiation of parameters takes place over the SA's secure channel, within the IPSec encryption. L2TP uses UDP port 1701.

When the process is complete, L2TP packets between the endpoints are encapsulated by IPSec. Since the L2TP packet itself is wrapped and hidden within the IPSec packet, no information about the internal private network can be garnered from the encrypted packet. Also, it is not necessary to open UDP port 1701 on firewalls between the endpoints, since the inner packets are not acted upon until after IPSec data has been decrypted and stripped, which only takes place at the endpoints. If a firewall or packet filter is integrated into the endpoint itself, however, it will probably be necessary to open port 1701 on that endpoint.

A potential point of confusion in L2TP/IPSec is the use of the terms "tunnel" and "secure channel." Tunnel refers to a channel which allows untouched packets of one network to be transported over another network. In the case of L2TP/IPSec, it allows L2TP/PPP packets to be transported over IP. A secure channel refers to a connection within which the confidentiality of all data is guaranteed. In L2TP/IPSec, first IPSec provides a secure channel, then L2TP provides a tunnel.

External links

Implementations

Internet standards and extensions

  • RFC 2341 Cisco Layer Two Forwarding (Protocol) "L2F". (A predecessor to L2TP)
  • RFC 2637 Point-to-Point Tunneling Protocol (PPTP). (A predecessor to L2TP)
  • RFC 2661 Layer Two Tunneling Protocol "L2TP"
  • RFC 2809 Implementation of L2TP Compulsory Tunneling via RADIUS
  • RFC 2888 Secure Remote Access with L2TP
  • RFC 3070 Layer Two Tunneling Protocol (L2TP) over Frame Relay
  • RFC 3145 L2TP Disconnect Cause Information
  • RFC 3193 Securing L2TP using IPsec
  • RFC 3301 Layer Two Tunnelling Protocol (L2TP): ATM access network
  • RFC 3308 Layer Two Tunneling Protocol (L2TP) Differentiated Services
  • RFC 3355 Layer Two Tunnelling Protocol (L2TP) Over ATM Adaptation Layer 5 (AAL5)
  • RFC 3371 Layer Two Tunneling Protocol "L2TP" Management Information Base
  • RFC 3437 Layer Two Tunneling Protocol Extensions for PPP Link Control Protocol Negotiation
  • RFC 3438 Layer Two Tunneling Protocol (L2TP) Internet Assigned Numbers: Internet Assigned Numbers Authority (IANA) Considerations Update
  • RFC 3573 Signaling of Modem-On-Hold status in Layer 2 Tunneling Protocol (L2TP)
  • RFC 3817 Layer 2 Tunneling Protocol (L2TP) Active Discovery Relay for PPP over Ethernet (PPPoE)
  • RFC 3931 Layer Two Tunneling Protocol - Version 3 (L2TPv3).
  • RFC 4045 Extensions to Support Efficient Carrying of Multicast Traffic in Layer-2 Tunneling Protocol (L2TP).

es:L2TP fr:Layer 2 Tunnelling Protocol nl:L2TP ja:Layer 2 Tunneling Protocol pl:L2TP fi:L2TP