L2TP详解

1.L2TP简介

   L2TP(Layer 2 Tunneling Protocol,二层隧道协议)是VPDN(Virtual PrivateDial-up Network,虚拟私有拨号网)隧道协议的一种。VPDN隧道协议主要包括以下三种,目前使用最广泛的是L2TP。

   a.PPTP(Point-to-Point Tunneling Protocol,点到点隧道协议)

   b.L2F(Layer 2 Forwarding,二层转发)

   c.L2TP

   L2TP的网络拓扑图如下所示:

 浅谈L2TP
1)远端系统

      远端系统是要接入 VPDN网络的远地用户和远地分支机构,通常是一个拨号用户的主机或私有网络的一台路由设备。

 

2)LAC(L2TP Access Concentrator,L2TP 访问集中器)
    LAC是附属在交换网络上的具有PPP 端系统和L2TP 协议处理能力的设备,通常是一个当地ISP的NAS(Network AccessServer网络访问服务器),主要用于为PPP 类型的用户提供接入服务。LAC 位于LNS 和远端系统之间,用于在LNS和远端系统之间传递信息包。它把从远端系统收到的信息包按照L2TP 协议进行封装并送往LNS,同时也将从LNS收到的信息包进行解封装并送往远端系统。LAC 与远端系统之间采用本地连接或PPP 链路,VPDN 应用中通常为PPP链路。

 

3)LNS(L2TP Network Server,L2TP 网络服务器)
    LNS 既是PPP端系统,又是L2TP 协议的服务器端,通常作为一个企业内部网的边缘设备。LNS 作为L2TP隧道的另一侧端点,是LAC的对端设备,是LAC 进行隧道传输的PPP 会话的逻辑终止端点。通过在公网中建立L2TP隧道,将远端系统的PPP 连接的另一端由原来的LAC 在逻辑上延伸到了企业网内部的LNS。


2、会话和隧道这两个概念

   在一个LNS和LAC对之间存在着两种类型的连接,一种是隧道(Tunnel)连接,一对LAC和LNS中可以有多个L2TP隧道;另一种是会话(Session)连接,它复用在隧道连接之上,用于表示承载在隧道连接中的每个PPP会话过程。
   隧道由一个控制连接和一个或多个会话(Session)组成。会话连接必须在隧道建立(包括身份保护、L2TP版本、帧类型、硬件传输类型等信息的交换)成功之后进行,每个会话连接对应于LAC和LNS之间的一个PPP数据流。控制消息和PPP数据报文都在隧道上传输。
   L2TP使用Hello报文来检测隧道的连通性。LAC和LNS定时向对端发送Hello报文,若在一段时间内未收到Hello报文的应答,该隧道连接将被断开。 
   L2TP报文头中包含隧道标识符(Tunnel ID)和会话标识符(SessionID)信息,用来标识不同的隧道和会话。隧道标识相同、会话标识不同的报文将被复用在一个隧道上,报文头中的隧道标识符与会话标识符由对端分配。  
   隧道(tunnel)和会话(session)的关系,如下图所示;可以形象的理解为会话是建立在隧道之中的,隧道想成一个有10个车道的高速公路,一台拨号PC的数据流为一个会话,相当于占用了一个车道(告诉公路有多少车道是设备规定好的),这个车道只能跑这个运载这个PC的报文的卡车。(比如某型号设备每条隧道最多支持1000个会话)。
                                浅谈L2TP

 

3  L2TP协议

 L2TP协议在TCP/IP协议栈中的位置


     此图说明了L2TP协议在整个TCP/IP层次结构中位置,也指明了ip数据包在传输过程中所经过的协议栈结构和封装过程;

我们以一个用户侧的IP报文的传递过程来描述VPN工作原理,黄色标示的IP为需要传递的用户数据!

    在LAC侧,的链路层将用户数据报文作为加上ppp封装,然后传递给L2TP协议,L2TP再封装成UDP报文,UDP再次封装成可以在Internet上传输的IP报文,此时的结果就是IP报文中又有IP报文,但两个IP地址不同,一般用户报文的IP地址是私有地址,而LAC上的IP地址为公有地址,至此完成了VPN的私有数据的封装;

    在LNS侧,收到L2TP/VPN的IP报文后将IP、UDP、L2TP报文头去掉后就恢复了用户的PPP报文,将PPP报文头去掉就可以得到IP报文,至此用户IP数据报文得到,从而实现用户ip数据的透明隧道传输,而且整个PPP报头/报文在传递的过程中也保持未变,这也验证了L2TP是一个二层VPN隧道协议!

 

    L2TP协商交互过程

    为了在VPN用户和服务器之间传递数据报文,必须在LAC和LNS之间建立传递数据报文的隧道和会话连接,隧道是保证具有相同会话连接特性的一组用户可以共享的连接属性所定义的通道,而会话是针对每个用户与企业VPN服务器建立连接的PPP数据通道,多个会话复用在一个隧道连接上隧道和会话是动态建立与删除的。

会话的建立是由PPP模块触发,如果该会话在建立时没有可用的隧道结构,那么先建立隧道连接,会话建立完毕后开始进行数据传输!


1)L2TP建立流程


    L2TP隧道的建立是一个三次握手的过程,首先由LAC发起隧道建立请求SCCRQ,LNS收到请求后进行应答SCCRP,最后LAC在收到应答后再给LNS返回确认SCCCN;隧道建立。

    会话建立的过程与隧道类似,首先由LAC发起会话建立请求ICRQ,LNS收到请求后返回应答ICRP,LAC收到应答后返回确认ICCN,会话建立!

    L2TP的会话建立由PPP触发,隧道建立由会话触发。由于多个会话可以复用在一条隧道上,如果会话建立前隧道已经建立,则隧道不用重新建立。

 

2)L2TP隧道的维护


    隧道建立后,一直要等到该隧道所属会话全部下线后,再进行拆除,为了确认对端的隧道结构依然存在,需要定时发送与对端的维护报文,其流程为:LAC或LNS发出Hello报文,对应的LNS或LAC发出确认信息!

 

3)L2TP隧道拆除


    隧道拆除流程比其建立过程要简单,隧道的任何一端发出拆链通知StopCCN,对端返回确认;会话的拆除流程为:会话一端发出拆链通知CDN,对端返回确认即可!


4、L2TP数据连接

        L2TP数据消息用于封装PPP帧,并在隧道上传输。

        原始用户数据为IP报文,先经过PPP封装,然后链路层将PPP帧进行L2TP封装,将其封装成UDP,并继续封装成可以在internet上传输的IP报文,此时的结果就是IP报文中有PPP帧,PPP帧中还有IP报文,但两个IP地址不同,里面的IP头部是私有地址(原地址为L2TP服务器动态分配的地址,目的地址为公司内网服务器的地址),外层IP头部的原IP是客户端的原始地址,目的IP是L2TP服务器的地址,至此完成客户端数据封装,然后通过L2TP隧道将报文发送到L2TP服务器,L2TP服务器收到封装的IP报文,发现外层IP头部的目的地址是指定自己的,然后L2TP服务器解封装报文,得到里面的IP报文,然后根据IP头部的的目的IP地址将数据包发送到内网局域网服务器。


5、ppp

    L2TP是用来封装PPP帧的,L2TP隧道建立以后,发起的创建会话过程就是PPP的交互流程,具体如下:

1)PPP工作流程

一个IP分组需要传输,出发PPP层启动连接过程,LCP协议负责完成连接的建立过程,PAP或者CHAP协议完成身份认证,IPCP协议进一步完成网络层协议协商,当以上过程都成功完成之后,IP分组封装在PPP帧中传输到对方

2)PPP协议分析

LCP:负责链路的建立,维护以及拆除

CHAP:对客户端进行身份认证

IPCP:负责协商IP地址以及DNS等信息


 6、 L2TP实际应用中的交互报文




评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值