1、L2TP简介 二层隧道协议L2TP(Layer 2 Tunneling Protocol)是虚拟私有拨号网VPDN(Virtual Private Dial-up Network)隧道协议的一种,扩展了点到点协议PPP(Point-to-Point Protocol)的应用,是远程拨号用户接入企业总部网络的一种重要VPN技术。 L2TP通过拨号网络,基于PPP的协商,建立企业分支用户到企业总部的隧道,使远程用户可以接入企业总部。PPPoE(PPP over Ethernet)技术更是扩展了L2TP的应用范围,通过以太网络连接Internet,建立远程移动办公人员到企业总部的L2TP隧道。 图1 L2TP典型组网图 如上图1所示,展现使用L2TP技术组建VPDN网络的典型场景。 随着企业的发展和业务的增加,在不同地域成立的分支机构和出差的员工,需要和总部建立快速、安全和可靠的网络连接。 传统的拨号网络需要租用因特网服务提供商ISP(Internet Service Provider)的电话线路,申请公共的号码或IP地址,不仅产生高额的费用,而且无法为远程用户尤其是出差员工提供便利的接入服务。为了更好的利用拨号网络,方便远程用户的接入,产生了基于拨号网络的VPN,即VPDN。通过VPDN技术,远程用户和企业总部网关之间建立了一条点到点虚拟链路。 VPDN有以下3种常用的隧道技术: 点到点隧道协议PPTP(Point-to-Point Tunneling Protocol);二层转发L2F(Layer 2 Forwarding);二层隧道协议L2TP(Layer 2 Tunneling Protocol)。 L2TP集合了PPTP和L2F两种协议的优点,目前已被广泛接受,主要应用在单个或少数远程终端通过公共网络接入企业内联网的需要。 L2TP对PPP报文进行封装,在公共网络上建立虚拟链路传输企业的私有数据,节省了租用物理专线的高额费用。同时将企业从复杂和专业的网络维护中解放出来,只需要维护私有网络和远程接入的用户,降低了维护成本。 L2TP还具有如下特点,可以为企业提供方便、安全和可靠的远程用户接入服务。 1、 灵活的身份验证机制以及高度的安全性 L2TP使用PPP提供的安全特性(如PAP、CHAP),对接入用户进行身份认证;L2TP定义了控制消息的加密传输方式,支持L2TP隧道的认证;L2TP对传输的数据不加密,但可以和因特网协议安全协议IPSec(Internet Protocol Security)结合应用,为数据传输提供高度的安全保证。 2、多协议传输 L2TP传输PPP数据包,PPP可以传输多种协议报文,所以L2TP可以在IP网络,帧中继永久虚拟电路(PVCs),X.25虚拟电路(VCs)或ATM VCs网络上使用。 3、支持RADIUS(Remote Authentication Dial-in User Service)服务器的验证 L2TP对接入用户不仅支持本地认证,还支持将拨号接入的用户名和密码发往RADIUS服务器进行认证,为企业管理接入用户提供了更多的选择。 4、 支持私网地址分配 应用L2TP的企业总部网关,可以为远程用户动态分配私网地址。 5、 可靠性 L2TP协议支持备份LNS,当一个主LNS不可达之后,LAC可以与备份LNS建立连接,增强了VPN服务的可靠性。 2、L2TP基本概念 图1 L2TP组网图 如图1所示为L2TP的典型组网,以下为L2TP的相关的概念。 1、VPDN VPDN是承载PPP报文的VPN,可以为企业、小型ISP、移动办公人员提供接入服务。 PPP终端接入拨号网络,拨号到NAS。NAS收到PPP报文后进行L2TP封装,最外层的IP报头经过公网路由转发后到达LNS。LNS收到报文后解封装,还原PPP报文,完成了PPP报文在公共网络上的透明传输,从而在PPP终端和LNS之间建立了VPDN连接。 随着以太网络的普及,PPP终端不再受限于传统的拨号网络,使用PPPoE技术,即可通过以太网络接入LAC。 2、PPP终端 L2TP应用中,PPP终端指发起拨号,将数据封装为PPP类型的设备,如远程用户PC、企业分支网关等。 3、NAS NAS网络接入服务器(Network Access Server)主要由ISP维护,连接拨号网络,是距离PPP终端地理位置最近的接入点。NAS用于传统的拨号网络中,为远程拨号用户提供VPDN服务,和企业总部建立隧道连接。 4、LAC L2TP访问集中器LAC(L2TP Access Concentrator)是交换网络上具有PPP和L2TP处理能力的设备。LAC根据PPP报文中所携带的用户名或者域名信息,和LNS建立L2TP隧道连接,将PPP协商延展到LNS。 在不同的组网环境中,LAC可以是不同的设备: 在传统的拨号网络中,ISP在NAS上部署LAC。 在企业分支的以太网络中,为PPP终端配备网关设备,网关作为PPPoE服务器,同时部署为LAC。 在出差人员使用PC终端接入Internet,在PC上安装L2TP拨号软件,则PC终端为LAC。 LAC可以发起建立多条L2TP隧道使数据流之间相互隔离,即LAC可以承载多条VPDN连接。 LAC在LNS和PPP终端之间传递数据。即LAC从PPP终端收到报文后进行L2TP封装发送至LNS,从LNS收到报文后进行解封装并发送至PPP终端。 5、LNS L2TP网络服务器LNS(L2TP Network Server)是终止PPP会话的一端,通过LNS的认证,PPP会话协商成功,远程用户可以访问企业总部的资源。 对L2TP协商,LNS是LAC的对端设备,即LAC和LNS建立了L2TP隧道;对PPP,LNS是PPP会话的逻辑终止端点,即PPP终端和LNS建立了一条点到点的虚拟链路。 LNS位于企业总部私网与公网边界,通常是企业总部的网关设备。必要时,LNS还兼有网络地址转换(NAT)功能,对企业总部网络内的私有IP地址与公共IP地址进行转换。 6、隧道和会话 在LAC和LNS的L2TP交互过程中存在两种类型的连接。 6.1、隧道(Tunnel)连接 L2TP隧道在LAC和LNS之间建立,一对LAC和LNS可以建立多个L2TP隧道,一个L2TP隧道可以包含多个L2TP会话。 6.2、会话(Session)连接 L2TP会话发生在隧道连接成功之后,L2TP会话表示承载在隧道连接中的一个PPP会话过程。 3、L2TP工作原理 1、L2TP协议架构 L2TP协议包含两种类型的消息,控制消息和数据消息,消息的传输在LAC和LNS之间进行。L2TP协议通过这两种消息,扩展了PPP的应用。 1.1、控制消息 用于L2TP隧道和会话连接的建立、维护和拆除。在控制消息的传输过程中,使用消息丢失重传和定时检测隧道连通性等机制来保证控制消息传输的可靠性,支持对控制消息的流量控制和拥塞控制。 1.2、数据消息 用于封装PPP数据帧并在隧道上传输。数据消息是不可靠的传输,不重传丢失的数据报文,不支持对数据消息的流量控制和拥塞控制。 图1 L2TP协议架构 上图1说明了PPP报文、控制消息和数据消息在L2TP协议架构中的位置和关系。 控制消息承载在L2TP控制通道上,控制通道实现了控制消息的可靠传输,将控制消息封装在L2TP报头内,再经过IP网络传输。 数据消息携带PPP帧承载在不可靠的数据通道上,对PPP帧进行L2TP封装,再经过IP网络传输。 L2TP协议使用UDP端口1701,这个端口号仅用于初始隧道的建立。L2TP隧道发起方任选一个空闲端口向接收方的1701端口发送报文;接收方收到报文后,也任选一个空闲端口,给发起方的选定的端口回送报文。至此,双方的端口选定,并在隧道连通的时间内不再改变。 2、L2TP报文结构 图2 L2TP报文格式 远程用户拨号产生的PPP报文经L2TP封装后的报文格式如上图2所示。 L2TP报文进行了多次封装,比原始报文多出38个字节(如果需要携带序列号信息,则比原始报文多出42个字节),封装后报文的长度可能会超出接口的MTU值,而L2TP协议本身不支持报文分片功能,这时需要设备支持对IP报文的分片功能。 当L2TP报文长度超出发送接口的MTU值时,在发送接口进行报文分片处理,接收端对收到分片报文进行还原,重组为L2TP报文。 3、L2TP报文封装 L2TP是PPP的扩展,使PPP报文可以通过隧道方式在公网网络中传输。 如果组网中只应用PPP,则PPP终端发起的拨号,最远只能到达拨号网络的边缘节点NAS,此时NAS可以称为PPP会话的终止节点。而应用L2TP,则可以使PPP报文在公网透传,到达企业总部的LNS,此时LNS相当于PPP会话的终止节点。 图3 L2TP报文封装图 如上图3所示,企业分支发送报文到企业总部,有以下过程: 3.1、PPP终端:IP数据报文进行PPP(链路层)封装,发送报文。 3.2、LAC:收到PPP报文后,根据报文携带的用户名或者域名判断接入用户是否为VPDN用户。 是VPDN用户:对PPP报文进行L2TP封装,根据LNS的公网地址,再对L2TP报文进行UDP和IP封装。封装后的报文最外层为公网IP地址,经过公网路由转发到达LNS。非VPDN用户:对PPP报文进行PPP解封装,此时LAC为PPP会话的终止节点。 3.3、LNS:收到L2TP报文后,依次解除外层的IP封装、L2TP封装、PPP封装,得到PPP承载的信息,即PPP终端发送的IP数据报文。根据报文中的目的地址,查找路由表使报文达到企业总部的目的主机。 企业总部回应分支用户时,回应报文到达LNS后查找路由表,根据转发接口进行L2TP处理,报文封装的过程和分支到总部一致。 4、L2TP报文传输 L2TP传输PPP报文前,需要建立L2TP隧道和会话的连接。对于首次发起的L2TP连接,有如下流程: 4.1、建立L2TP隧道连接 LAC收到远程用户的PPP协商请求时,LAC向LNS发起L2TP隧道请求。LAC和LNS之间通过L2TP的控制消息,协商隧道ID、隧道认证等内容,协商成功后则建立起一条L2TP隧道,由隧道ID进行标识。 4.2、建立L2TP会话连接 如果L2TP隧道已存在,则在LAC和LNS之间通过L2TP的控制消息,协商会话ID等内容,否则先建立L2TP隧道连接。会话中携带了LAC的LCP协商信息和用户认证信息,LNS对收到的信息认证通过后,则通知LAC会话建立成功。L2TP会话连接由会话ID进行标识。 4.3、传输PPP报文 L2TP会话建立成功后,PPP终端将数据报文发送至LAC,LAC根据L2TP隧道和会话ID等信息,进行L2TP报文封装,并发送到LNS,LNS进行L2TP解封装处理,根据路由转发表发送至目的主机,完成报文的传输。