L2TP是一种工业标准的Internet隧道协议,功能大致和PPTP协议类似,比如同样可以对网络数据流进行加密。不过也有不同之处,比如PPTP要求网络为IP网络,L2TP要求面向数据包的点对点连接;PPTP使用单一隧道,L2TP使用多隧道;L2TP提供包头压缩、隧道验证,而PPTP不支持。

定义第二层隧道协议(英语:Layer Two Tunneling Protocol,缩写为L2TP)是一种虚拟隧道协议,通常用于虚拟专用网。L2TP协议自身不提供加密与可靠性验证的功能,可以和安全协议搭配使用,从而实现数据的加密传输。经常与L2TP协议搭配的加密协议是IPsec,当这两个协议搭配使用时,通常合称L2TP/IPsec。

L2TP支持包括IP、ATM、帧中继、X.25在内的多种网络。在IP网络中,L2TP协议使用注册端口UDP 1701。因此,在某种意义上,尽管L2TP协议的确是一个数据链路层协议,但在IP网络中,它又的确是一个会话层协议。1

历史Internet环境提供了两种典型的VPN技术:安全Ip协议(IpSec)和二层隧道协议。二层隧道协议是一种利用公用数据网(网络层的IP服务或数据链路层的ATM信元(Cell)传输服务、帧中继服务或以太网传输服务)在公用网接近通信用户的远程节点之间建立”隧道“(Tunenl)对相同或不同用户对的多条第2层的连接进行安全地中继。2

第一版第一版二层隧道协议以L2F和PPTP为代表。

PPTP是由多家公司(其中包括Mierosoft,3 Com,ECI Telematies以及U.S.Roboties等各大公司)专门为支持VPN而开发的一种技术。尽管PPTP的隧道是利用网络层协议GRE(Generic Routing Eneapsulation)·RFC1701和1702来建立隧道的,但由于隧道传送的对象是数据链路层的PPP协议,因此仍把它视为第二层隧道协议。PPTP保持了传统的拨号终端通过网络访问服务器(NAS,Network Aeeess Server)访问应用服务器的C/S模式,将NAS拆分为:应用服务器侧的“点到点隧道协议网络服务器”和拨号用户侧的“点到点隧道协议访问控制集中器”。在PNS与PAC之间利用于TCP/IP建立“隧道控制连接”来控制基于GRE上的隧道的建立。在隧道内建立PPP连接时,PPTP需要对访问者的身份进行认证(如用户名,口令和域名等)。

L2F是由Ciseo公司提出的,可以在多种介质(如ATM,FR,IP)上建立多协议的安全VPN的通信方式。它将链路层的协议(如HDLC,PPP,ASYNC等)封装起来传送,因此网络的链路层完全独立于用户的链路层协议。

第二版第二版的二层隧道协议RFC2661[7]是由Ciseo、Aseedn、微软和RedBaek的专家提出的,并正式采用了第2层隧道协议的名称(L2TP,Layer 2 Tunneling proroeol);后来被成为L2TPv2。L2TPv2结合了L2F和PPTP的优点,其应用对象与PPTP类似,也是专门针对点到点协议进行隧道传输和中继的协议。L2TPv2允许从客户端或从访问服务器端发起建立PPP传输连接的隧道的过程,从而实现应用服务器与终端之间的第2层VPN功能。L2TPv2把传输链路层PPP的隧道建立在公用数据网提供的某一层服务之上(如:IP、ATM信元层或帧中继)进行隧道传输,这与PPTP将隧道限制在建立在网络层的GRE之上的思路相比,其可适应的网络环境史加广泛。3

信息类型L2TP 是一个数据链路层协议。其报文分为数据消息和控制消息两类。数据消息用投递 PPP 帧,该帧作为L2TP报文的数据区。L2TP不保证数据消息的可靠投递,若数据报文丢失,不予重传,不支持对数据消息的流量控制和拥塞控制。控制消息用以建立、维护和终止控制连接及会话,L2TP确保其可靠投递,并支持对控制消息的流量控制和拥塞控制。1

协议结构

|| || L2TP协议结构

T :T 位表示信息类型。若是数据信息,该值为0;若是控制信息,该值为1。

L :当设置该字段时,说明 Length 字段存在,表示接收数据包的总长。对于控制信息,必须设置该值。

X: X 位为将来扩张预留使用。在导出信息中所有预留位被设置为0,导入信息中该值忽略。

S : 如果设置 S 位,那么 Nr 字段和 Ns 字段都存在。对于控制信息,S 位必须设置。

O : 当设置该字段时,表示在有效负载信息中存在 Offset Size 字段。对于控制信息,该字段值设为0。

P : 如果 Priority (P)位值为1,表示该数据信息在其本地排队和传输中将会得到优先处理。

Ver : Ver 位的值总为002。它表示一个版本1 L2TP 信息。

Length : 信息总长,包括头、信息类型 AVP 以及另外的与特定控制信息类型相关的 AVPs。

Tunnel ID : 识别控制信息应用的 Tunnel。如果对等结构还没有接收到分配的 Tunnel ID,那么 Tunnel ID 必须设置为0。一旦接收到分配的 Tunnel ID,所有更远的数据包必须和 Tunnel ID 一起被发送。

Call ID : 识别控制信息应用的 Tunnel 中的用户会话。如果控制信息在 Tunnel 中不应用单用户会话(例如,一个 Stop-Control-Connection-Notification 信息),Call ID 必须设置为0。

Nr : 期望在下一个控制信息中接收到的序列号。

Ns : 数据或控制信息的序列号。

Offset Size & Pad :该字段规定通过 L2F 协议头的字节数,协议头是有效负载数据起始位置。Offset Padding 中的实际数据并没有定义。如果 Offset 字段当前存在,那么 L2TP 头 Offset Padding 的最后八位字节后结束。4

与PPTP不同PPTP和L2TP都使用PPP协议对数据进行封装,然后添加附加包头用于数据在互联网络上的传输。尽 管两个协议非常相似,但是仍存在以下几方面的不同:

1.PPTP要求互联网络为IP网络。L2TP只要求隧道媒介提供面向数据包的点对点的连接。L2TP可以在IP(使用UDP),帧中继永久虚拟电路(PVCs),X.25虚拟电路(VCs)或ATM VCs网络上使用。

2.PPTP只能在两端点间建立单一隧道。L2TP支持在两端点间使用多隧道。使用L2TP,用户可以针对不同的服务质量创建不同的隧道。

3.L2TP可以提供包头压缩。当压缩包头时,系统开销(overhead)占用4个字节,而PPTP协议下要占用6个字节。

4、L2TP自身不提供隧道验证,从L2TP的包头可以看出。隧道认证是由PPP(pap或chap)协议提供!而PPTP则支持隧道验证,PPTP自身就是PPP的扩展!但是当L2TP或PPTP与IPsec共同使用时,可以由IPsec提供隧道验证,不需要在第2层协议上验证隧道.

5.L2TP访问集中器(L2TP Access Concentrator,LAC)是一种附属在网络上的具有PPP端系统和L2Tpv2协议处理能力的设备,它一般就是一个网络接入服务器软件,在远程客户端完成网络接入服务的功能。

6.L2TP网络服务器(L2TP Network Server,LNS)是用于处理L2TP协议服务器端的软件。5

L2TP支持的协议:IP协议、IPX协议和NetBEUI协议

本词条内容贡献者为:

徐恒山 - 讲师 - 西北农林科技大学

来源: 百度百科