一、L2TP介绍
1、L2TP定义
L2TP(Layer 2 Tunneling Protocol,二层隧道协议),通过公共网络(如Internet)上建立点到点的L2TP隧道,将PPP(Point-to-Point Protocol,点对点协议)数据帧封装后通过L2TP隧道传输,使得远端用户利用PPP接入公共网络后,能够通过L2TP隧道与企业内部网络通信,访问企业内部网络资源,从而为远端用户接入私有的企业网络提供了一种安全、经济且有效的方式。
L2TP是一种工业标准的Internet隧道协议,功能大致和PPP协议类似,同样可以对网络数据流进行加密。不过也有不同之处,比如PPTP要求网络为IP网络,L2TP要求面向数据包的点对点连接;PPTP使用单一隧道,L2TP使用多隧道;L2TP提供包头压缩、隧道验证,而PPTP不支持。
第二层隧道协议(L2TP)是用来整合多协议拨号服务至现有的因特网服务提供商点。PPP 定义了多协议跨越第二层点对点链接的一个封装机制。特别地,用户通过使用众多技术之一(如:拨号 POTS、ISDN、ADSL 等)获得第二层连接到网络访问服务器(NAS),然后在此连接上运行 PPP。
L2TP 扩展了 PPP 模型,允许第二层和 PPP 终点处于不同的由包交换网络相互连接的设备来。通过 L2TP,用户在第二层连接到一个访问集中器(如:调制解调器池、ADSL DSLAM 等),然后这个集中器将单独得的 PPP 帧隧道到 NAS。这样,可以把 PPP 包的实际处理过程与 L2 连接的终点分离开来。
L2TP 是一个数据链路层协议。其报文分为数据消息和控制消息两类。数据消息用投递 PPP 帧,该帧作为L2TP报文的数据区。L2TP不保证数据消息的可靠投递,若数据报文丢失,不予重传,不支持对数据消息的流量控制和拥塞控制。控制消息用以建立、维护和终止控制连接及会话,L2TP确保其可靠投递,并支持对控制消息的流量控制和拥塞控制。
2、L2TP典型组网原理
L2TP的典型组网中包括以下三个部分:
(1)、远端系统
远端系统是要接入企业内部网络的远端用户和远端分支机构,通常是一个拨号用户的主机或私有网络中的一台设备。
(2)、LAC(L2TP Access Concentrator ,L2TP访问集中器)
LAC是具有PPP和L2TP协议处理能力的设备,通常是一个当地的ISP的NAS(Network Access Server,网络接入服务器),主要用于为PPP类型的用户提供接入服务。
LAC作为L2TP隧道的端点,位于LNS和远端系统之间,用于在LNS和远端系统之间传递报文。它把远端系统收到的报文按照L2TP协议进行封装并送往LNS,同时也将LNS接收到的报文进行解封装病送往远端系统。
(3)、LNS (L2TP Network Server ,L2TP网络服务器)
LNS是具有PPP和L2TP协议处理能力的设备,通常位于企业内部网络的边缘。
LNS作为L2TP隧道的另一侧端点,是LAC通过隧道传输的PPP会话的逻辑终点。L2TP通过在公共网络中建立L2TP隧道,将远端系统的PPP连接由原来的NAS延伸到了企业内部网络的LNS设备。
3、L2TP消息类型及封装结构
L2TP协议定义了两种消息:
(1)、控制消息:
用于L2TP隧道和L2TP会话的建立、维护和拆除。控制消息的传输是可靠的,并且支持流量控制和拥塞控制。
(2)、数据消息:
用于封装PPP帧,数据消息的传输是不可靠的,若数据消息丢失,不予重传。数据消息支持流量控制,既支持对乱序的数据消息进行排序。
L2TP控制消息和L2TP数据消息均封装在UDP报文中。
4、L2TP隧道和会话
L2TP隧道是LAC和LNS之间的一条虚拟点到点连接。控制消息和数据消息都在L2TP隧道上传输。在同一对LAC和LNS之间可以建立多条L2TP隧道。每条隧道可以承载一个或多个L2TP会话。
L2TP会话复用在L2TP隧道之上,每个L2TP会话对应于一个PPP会话。当远端系统的LNS之间建立PPP会话时,LAC和LNS之间将建立与其对应的L2TP会话。属于该PPP会话的数据帧通过该L2TP会话所在的L2TP隧道传输。
5、L2TP协议的特点
(1)、灵活的身份验证机制以及高度的安全性
L2TP协议本身并不提供链接的安全性,但它可依赖于PPP提供的认证(比如CHAP、PAP等),因此具有PPP所具有的所有安全特性。
L2TP还可以与IPSec结合起来实现数据安全,使得通过L2TP所传输的数据更难被***。
(2)多协议传输
L2TP 传输PPP数据包,在PPP数据包内可以封装多种协议。
(3)、支持RADIUS服务器的认证
LAC和LNS可以将用户名和密码发往RADIUS服务器,有RADIUS服务器对用户身份进行认证。
(4)、支持内部地址分配
LNS可以对远端系统的地址进行动态的分配和管理,可支持私有地址应用(RFC 1918)。为远端系统的分配企业内部的私有地址,可以方便地址的管理并增加安全性。
(5)网络计费的灵活性
可在LAC和LNC两处同时计费,既ISP处(用于产生账单)既企业网关(用于付费及审计)。L2TP能够提供数据传输的出/入包数、字节数、字节数以及连接的起始、结束时间等计费数据,AAA服务器可根据这些数据方便地进行网络计费。
(6)、可靠性
L2TP协议支持备份LNS,当主LNS不可达之后,LAC可以与备份LNS建立连接,增加L2TP服务的可靠性。
(7)、支持由RADIUS服务器为LAC下发隧道属性
L2TP隧道采用NAS-Initiated模式时,LAC上的L2TP隧道属性可以通过RADIUS服务器来下发。此时,在LAC上只需要开启L2TP服务,并配置采用AAA远程认证方式对PPP用户进行身份验证,无需进行其他L2TP配置。
当L2TP用户拨入LAC时,LAC作为RADIUS客户端将用户的身份信息发送给RADIUS服务器。RADIUS服务器对L2TP用户的身份进行验证。RADIUS服务器将验证结果返回给LAC,并将该用户对应的L2TP隧道属性下发给LAC。LAC根据下发的隧道属性,创建L2TP隧道和会话。
6、L2TP的封装
在L2TP中,控制通道和数据通道都采用L2TP头格式,只是其中的具体的字段不同,以type位表明本消息的类型,值为1并表示此消息是控制消息,值是0表示此消息是数据消息。
L2TP头中的tunnel id字段是L2TP控制连接的标识符,也就是隧道的标识符。
使用的是UDP的端口1701
私网的ip包前面加上ppp头,ppp头前面加上L2TP头,加上udp头,加上公网的IP头。
在UDP头中,用端口1701标识这时L2TP协议。
二、L2TP隧道模式及隧道建立过程
1、两种典型的L2TP隧道模式
L2TP隧道的建立包括以下两种典型模式
(1)、NAS-Intiated
NAS-Initiated L2TP隧道的建立是由LAC(值NAS)发起L2TP隧道连接。远程系统的拨号用户通过PPPoE/ISDN拨入LAC,由LAC通过Internet向LNS发起建立隧道连接请求。拨号用户的私网地址有LNS分配;对远程拨号用户的验证与计费既可由LAC侧代理完成,也可在LNS侧完成。
(2)、Client-Initiated
Client-Initiated L2TP隧道的建立是由LAC客户(指本地支持L2TP协议的用户)发起L2TP隧道连接。LAC客户获得Internet访问权限后,可直接向LNS发起隧道连接请求,无需经过一个单独的LAC设备建立隧道。LAC客户的私网地址由LNS分配。
在Client-Initiated模式下,LAC客户需要具有公网地址,能够直接通过Internet与LNS通信。
2、L2TP隧道的建立过程
(1)、 L2TP应用的典型组网如下图:
(2)、L2TP隧道的呼叫建立流程
在此已NAS-Initiated模式的L2TP隧道为例,介绍L2TP的呼叫建立流程。
L2TP隧道的呼叫建立流