现在的位置: 首页 > 综合 > 正文

L2TP协议笔记1—基础概念及协议流程分析

2013年09月21日 ⁄ 综合 ⁄ 共 2474字 ⁄ 字号 评论关闭

 

        这个协议是1年前做防火墙测试工作时主要负责测试的协议,虽然只做了几个月,但感觉如果把当时的一些学习笔记和经验整理好放在网络中,不仅可以使自己的协议理解得到巩固,也让自己有机会在和别人交流中互相学习。

      当初学习时,看的资料大部分都是先简介协议然后直接就开始抽象的介绍各种报文格式、报文每个字段的作用,光是大量报文名称看着头就很大了,所以在这里先介绍了L2TP的大框,知道是干什么的、有哪些概念、整体运作的过程大概是什么样的,然后在针对每一个步骤涉及的报文进行深入研究,看着一个协商报文可以形象的想象出其在这个L2TP建立过程中的位置和作用。

 

L2TP协议简介

Layer 2 Tunneling Protocol (第二层隧道协议)

 

     该协议是一种工业标准的Internet隧道协议,功能大致和PPTP协议类似,比如同样可以对网络数据流进行加密。不过也有不同之处,比如PPTP要求网络为IP网络,L2TP要求面向数据包的点对点连接;PPTP使用单一隧道,L2TP使用多隧道;L2TP提供包头压缩、隧道验证,而PPTP不支持。L2TP协议是由IETF起草,微软、AscendCisco3COM等公司参予制定的二层隧道协议,它结合了PPTPL2F两种二层隧道协议的优点,为众多公司所接受,已经成为IETF有关2层通道协议的工业标准,基于微软的点对点隧道协议 (PPTP)和思科2层转发协议(L2F)之上的,被一个因特网服务提供商和公司使用使这个虚拟私有网络的操作能够通过因特网。

 

此段说明来自百度百科,如果想要更详细了解L2TP的相关介绍,可在搜索引擎中搜索,介绍的很详细这里就不重复描述了。

 


 

一、L2TP实现的两种方式

 

名词解释:

LAC(L2TP Access Concentrator L2TP访问集中器)

       是附属在交换网络上的具有PPP端系统和L2TP协议处理能力的设备。LAC一般是一个网络接入服务器NAS,主要用于通过PSTN/ISDN网络为用户提供接入服务。

LNS(L2TP Network Server L2TP网络服务器)

    PPP端系统上用于处理L2TP协议服务器端部分的设备。

VPDNVirtual Private Dial Network,虚拟私有拨号网)

    指利用公共网络(如ISDNPSTN)的拨号功能及接入网来实现虚拟专用网。

 

注:如下示例中使用的防火墙(FirewallFW)既可以当做LAC也可以作为LNS使用。

 

 

1PC直接拨号到LNS,组网如图1所示

 

                      1

 

2PC通过LAC拨号连接到LNS,组网如图2所示

                              2

 

    因为一般都使用用PC---LAC---LNS组网,且此种组网包含了PC---LNS的组网形态,故后续描述均已PC---LAC---LNS为例。

     LAC位于LNS和主机之间,用于在LNS和主机之间传递信息包,把从主机收到的信息包按照L2TP协议进行封装并送往LNS,将从LNS收到的信息包进行解封装并送往远端系统。LAC与主机之间可以采用本地连接或PPP链路,VPDN应用中通常为PPP链路。LNS作为L2TP隧道的另一侧端点,是LAC的对端设备,是被LAC进行隧道传输的PPP会话的逻辑终止端点。

 

  


 

二、L2TP封装位置分析

 

    如下图3所示,从图中至上而下的分析,为PC的报文在PPP内网环境中发送到LAC,由LAC封装L2TP,再通过外网的报文正常转发给LNS的报文封装过程。

 

注:设计的网络环境为PC---LAC为内网使用PPP协议,LAC---LNS为外网使用协议由服务供应商自定。

 

 

 

                                                                       3

 


 

 三、理解L2TP几个重要的概念

 

 1、道和会话的概念

    在一个LNSLAC对之间存在着两种类型的连接,一种是隧道(Tunnel)连接,一对LACLNS中可以有多个L2TP隧道;另一种是会话(Session)连接,它复用在隧道连接之上,用于表示承载在隧道连接中的每个PPP会话过程。

    隧道由一个控制连接和一个或多个会话(Session)组成。会话连接必须在隧道建立(包括身份保护、L2TP版本、帧类型、硬件传输类型等信息的交换)成功之后进行,每个会话连接对应于LACLNS之间的一个PPP数据流。控制消息和PPP数据报文都在隧道上传输。

  • L2TP使用Hello报文来检测隧道的连通性。LACLNS定时向对端发送Hello报文,若在一段时间内未收到Hello报文的应答,该隧道连接将被断开。
  • L2TP报文头中包含隧道标识符(Tunnel ID)和会话标识符(Session ID)信息,用来标识不同的隧道和会话。隧道标识相同、会话标识不同的报文将被复用在一个隧道上,报文头中的隧道标识符与会话标识符由对端分配。

    隧道(tunnel)和会话(session)的关系,如图4所示;可以形象的理解为会话是建立在隧道之中的,隧道想成一个有10个车道的高速公路,一台拨号PC的数据流为一个会话,相当于占用了一个车道(告诉公路有多少车道是设备规定好的),这个车道只能跑这个运载这个PC的报文的卡车。(比如某型号设备每条隧道最多支持1000个会话)。

 

 

                  4

 

2、控制消息和数据消息的概念

  

   L2TP中存在两种消息:控制消息和数据消息。

  • 控制消息:用于隧道和会话连接的建立、维护以及传输控制;控制消息的传输是可靠传输,并且支持对控制消息的流量控制和拥塞控制。
  • 数据消息:用于封装PPP帧并在隧道上传输;数据消息的传输是不可靠传输,若数据报文丢失,不予重传,不支持对数据消息的流量控制和拥塞控制。

   控制消息和数据消息共享相同的报文头。

 


三、L2TP隧道的呼叫建立流程

 

1

抱歉!评论已关闭.