【原创】L2TP封装详解
VPN系列之L2TP资料

0x03
0x04
0x06
reserved SCCRQ SCCRP
SCCCN
StopCCN HELLO
Start-Control-Connection-Request,双向消息,用于发起隧道连接建 立请求
Start-Control-Connection-Reply,双向消息,表示收到 SCCRQ,并且可以继续处理隧道连接建立过程
息,表示ICRQ已成功处理
0x0C 0x0E
ICCN
CDN
Incoming-Call-Connected,方向LAC->LNS,LAC响应LNS的ICRN消
息,表示ICRN已成功处理,会话已建立
Call-Disconnect-Notify,用于通知对端会话结束,双向消息
L2TP会话建立/释放
LAC
L2TP报文基本格式续
T:代表消息类型:1表示是控制消息,0表示是数据 L:代表头中的Length是否出现 x:保留,未使用 S:代表Sequence是否出现,即Nr和Ns是否出现 O:代表Offset是否出现,即offset size是否出现 P:置1代表该消息需要优先处理 Ver:版本号 Length代表消息的长度 Tunnel ID:控制连接的标识,注意一个隧道连接将有2个Tunnel ID,由双方各自分配,发送给对方消息时,使用
L2TP会话管理消息
Message Message name description
0x07 0x08
OCRQ OCRP
Outgoing-Call-Request,方向LNS->LAC,LNS侧发起外出呼叫时发送该消 息
Outgoing-Call-Reply,方向LAC->LNS,LAC对OCRQ的响应,表示LNS在 尝试外出呼叫处理
第二层隧道协议L2TP详解

第二层隧道协议L2TP详解1、引言隧道技术是建立安全VPN的基本技术之一,类似于点对点连接技术,在公用网建立一条数据遂道,让数据包通过这条隧道传输。
隧道是由隧道协议形成的,分为第二、三层隧道协议。
第二层隧道协议有L2F、PPTP和L2TP等,是先把各种网络协议封装到PPP中,再把整个数据包装入隧道协议中。
这种双层封装方法形成的数据包靠第二层协议进行传输。
第三层隧道协议有GRE、IPSEC等。
第二层隧道协议和第三层隧道协议的本质区别在于在隧道内用户的数据包是被封装在哪种数据包中进行传输的。
L2TP隧道协议是典型的被动式隧道协议,它结合了L2F和PPTP的优点,可以让用户从客户端或访问服务器端发起VPN连接。
L2TP是把链路层PPP帧封装在公共网络设施如IP、ATM、帧中继中进行隧道传输的封装协议。
L2TP主要由LAC(L2TP Access Concentrator) 和LNS(L2TP Network Server) 构成,LAC支持客户端的L2TP,用于发起呼叫、接收呼叫和建立隧道;LNS是所有隧道的终点,LNS终止所有的PPP流。
在传统的PPP连接中,用户拨号连接的终点是LAC,L2TP使得PPP协议的终点延伸到LNS。
L2TP的好处在于支持多种协议,用户可以保留原有的IPX、Appletalk等协议或公司原有的IP 地址。
L2TP还解决了多个PPP链路的捆绑问题,PPP链路捆绑要求其成员均指向同一个NAS(Network Access Server),L2TP可以使物理上连接到不同NAS的PPP链路,在逻辑上的终结点为同一个物理设备。
L2TP还支持信道认证,并提供了差错和流量控制。
L2TP利用IPsec增强了安全性,支持数据包的认证、加密和密钥管理。
L2TP/IPSec因此能为远程用户提供设计精巧并有互操作性的安全隧道连接。
这对安全的远程访问和安全的网关之间连接来说,它是一个很好的解决方案。
L2TP协议特点与原理

L2TP协议特点一.L2TP协议具有以下优势:1.灵活的身份验证机制以及高度的安全性L2TP本身并不保证连接的安全性,但它可利用PPP提供的认证机制(如CHAP、PAP),因此具有PPP的所有安全特性。
L2TP可以与IPSec结合,使通过L2TP所传输的数据更难被攻击。
可根据特定的网络安全要求,在L2TP之上采用通道加密技术、端对端数据加密或应用层数据加密等方案来提高安全性。
2.多协议传输L2TP传输PPP数据包,PPP本身可以传输多协议,而不仅仅是IP。
可以在PPP 数据包内封装多种协议,甚至运载链路层协议(如Ethernet)。
3.支持RADIUS服务器的验证LAC端支持将用户名和密码发往RADIUS服务器进行验证申请,由RADIUS服务器负责接收用户的验证请求,完成验证。
4.支持内部地址分配LNS可放置于企业网的防火墙之后,对远端用户地址进行动态分配和管理,并支持私有地址应用(RFC1918,Address Allocation for Private Internets)。
5.网络计费的灵活性可在LAC和LNS同时计费,即ISP处(用于产生帐单)及企业网关(用于付费及审计)。
L2TP能够提供数据传输的出入包数、字节数以及连接的起始、结束时间等计费数据,可根据这些数据方便地进行网络计费。
6.可靠性L2TP协议支持备份LNS,当一个主LNS不可达之后,LAC可以与备份LNS建立连接,增强了VPN服务的可靠性和容错性。
二.L2TP协议的不足L2TP协议存在以下不足:1.L2TP隧道内封装了整个PPP帧,在L2TP封装后还要进行UDP头和IP头的封装,开销很大,可能产生传输效率问题。
2.PPP会话贯穿整个隧道并终止在用户侧设备上,导致用户侧网关需要保存大量PPP会话状态与信息,对系统负荷产生较大的影响,也影响到系统的扩展性。
3.由于PPP的LCP及NCP协商对时间敏感,隧道效率降低会造成PPP对话超时等问题。
L2TP协议特点与原理

L2TP协议特点与原理L2TP(Layer 2 Tunneling Protocol)是一种用于虚拟专用网络(VPN)的隧道协议。
它通过在现有的网络基础设施中创建VPN连接,使得用户可以安全地访问私有网络资源。
本文将介绍L2TP协议的特点与原理,帮助读者更好地理解这一协议的工作机制。
一、L2TP协议特点1.1 无连接性L2TP协议建立的连接是无连接的,即在通信开始前不需要建立持久的连接。
这使得L2TP协议非常适用于互联网等不可靠的网络环境中。
1.2 兼容性强L2TP协议能够与其他的隧道协议相互兼容,例如IPsec协议。
这使得它可以与不同厂商、不同设备之间的VPN连接进行互操作。
1.3 支持多种验证和加密技术L2TP协议支持多种验证和加密技术,例如PAP(Password Authentication Protocol)、CHAP(Challenge Handshake Authentication Protocol)和MS-CHAPv2(Microsoft Challenge Handshake Authentication Protocol version 2)等。
这些技术可以确保用户身份的安全,并保护通信内容的机密性。
1.4 支持多种信道类型L2TP协议支持多种信道类型,如以太网、同步光纤传输模式(Synchronous Optical Networking)、异步传输模式(Asynchronous Transfer Mode)等。
这使得L2TP协议可以在不同网络环境下进行部署和使用。
1.5 提供高效的隧道交换L2TP协议通过构建隧道,将数据进行封装和传输。
它可以在多个隧道之间快速切换,以提供高效的传输效果。
二、L2TP协议原理2.1 隧道建立与维护L2TP协议需要在两个网络节点之间建立隧道,即L2TP隧道。
隧道的建立包括三个阶段:隧道建立、控制连接建立和数据连接建立。
首先,两个网络节点之间通过IP网络建立L2TP隧道。
l2tp隧道实现原理

L2TP(Layer 2 Tunneling Protocol)是一种用于建立虚拟专网(VPN)隧道连接的协议。
它结合了点对点隧道协议(PPTP)和层二转发协议(L2F)的优点,提供了一种可靠、安全和高效的通信方式。
本文将介绍L2TP隧道的实现原理。
一、L2TP概述L2TP是在数据链路层上运行的一种隧道协议。
它允许用户通过公共网络(如Internet)建立安全的私有连接,从而扩展局域网(LAN)的范围。
L2TP隧道通过封装和加密数据包,在公共网络上传输私有数据,保证数据的机密性和完整性。
二、L2TP隧道实现原理1. 建立隧道连接L2TP隧道的建立需要两个主要组件:L2TP Access Concentrator(LAC)和L2TP Network Server(LNS)。
LAC作为客户端负责发起连接请求,LNS作为服务器接受连接请求。
当LAC希望建立一个隧道连接时,它向LNS发送一个连接请求。
2. 握手过程LAC和LNS之间的握手过程包括以下步骤:a. LAC发送SCCRQ(Start-Control-Connection-Request)消息给LNS,包含LAC的身份验证信息。
b. LNS收到SCCRQ消息后,发送SCCRP (Start-Control-Connection-Reply)消息给LAC,确认连接请求。
c. LAC收到SCCRP消息后,发送SCCCN (Start-Control-Connection-Connected)消息给LNS,表示连接已建立。
3. 隧道数据传输一旦隧道连接建立,L2TP开始封装并加密数据包以在公共网络上传输。
每个隧道都有一个唯一的隧道标识符(Tunnel ID),用于区分不同的隧道连接。
LAC和LNS之间通过隧道传输L2TP数据包,以及其他协议(如IP、PPP等)的数据包。
4. L2TP数据封装L2TP将原始数据包封装到L2TP数据包中,以便在隧道中传输。
L2TP网络技术原理

隧道验证(可选) SCCRQ (LAC CHAP Challenge) SCCRP (LNS CHAP Response & LNS CHAP Challenge) SCCCN (LAC CHAP Response)
ICCN(用户 CHAP Response & PPP 已经协商好的参数)
可选的第二次验证
PSTN/ISDN
LAC
LAC RADIUS
隧道
LNS LNS RADIUS
9
LAN
LAN
会话
控制连接 呼叫
PSTN/ISDN
LAC
会话
LAC RADIUS
隧道 LNS
LNS RADIUS
10
L2TP拓扑结构(1)——独立LAC方式
PSTN/ISDN
LAC
LNS
LAN
11
LAN
L2TP拓扑结构(2)——客户LAC方式
L2TP

L2TP (二层隧道协议)1.第二层隧道协议:所谓二层VPN是指工作在数据链路层的VPN技术,VPN隧道内封装数据链路帧。
L2TP,PPTP和MPLS L2 VPN 等技术允许在IP隧道中传送二层的PPP帧或以太帧通过这些技术,VPN的用户,站点之间直接通过链路层连接,可以运行各自不同的网络层协议。
这些都属于二层VPN的实现2.第三层隧道协议:三层VPN又称为网络层VPN,在这一级别里,VPN站点通过网络层协议互联,隧道内封装三层数据包。
例如,GRE对三层数据包加以封装,可以构建GRE隧道,这就是一种网络层隧道。
又如IPSEC,通过AH和ESP对三层数据包直接进行安全处理,等等。
这些都是典型的三层VPN。
简介:由IETF起草,微软,CISCO.3COM等公司参与制定的2层隧道协议;是PPTP与L2F(二层转发协议)的组合,定义在RFC2661及3428里;合并了IPsec的安全性及用户验证、隧道地址分配和配置以及PPP的多协议支持。
L2TP以UDP/IP承载,注册UDP端口号为1701 (区别于PPTP的控制连接为TCP,数据为GRE(协议号47))其运行模式:1、强制隧道模式:(用户PC不为隧道终端)LAC端接来自远程接入客户的呼叫,然后通过中间网络以隧道方式将其PPP会话延伸到LNS,这种模式不要求远程客户了解L2TP,远程接入客户只需要使用PPP拨号到LAC即可。
2、自发隧道模式:(用户PC为隧道终端)在自发隧道模式下,远程接入客户运行L2TP软件,充当了L2TP连接模型中的LAC远程接入客户/LAC连接到LNS,PPP帧通过L2TP隧道直接在客户和LNS之间转发强制与自发在于与LNS建立隧道的终端类型一个用户侧的IP报文的传递过程来描述L2TP VPN工作原理:从远程系统向服务器方向上:1、原始数据(IP包)用PPP封装;2、在LAC用L2TP封装(隧道ID、会话ID等),再用UDP封装(源目1701);3、IP封装(公有IP头部)区别于PPTP采用MPPE加密(经PPP协商),L2TP数据采用IPsec的ESP的传输模式保护(可以不采用IPsec,如不采用,则不能启用加密功能)注:AH亦被L2TP/IPsec所支持,但因为地址转换问题,故不常使用LAC与LNS两种连接:1、隧道的控制连接:控制连接的作用是建立,维护和释放隧道中的会话以及隧道本身2、会话连接:用在隧道连接之上,用于表示承载在隧道连接中的每个PPP会话过程。
L2TP,GRE二三层隧道协议解说

二三层隧道协议
一直知道L2TP是第二层隧道协议,GRE是第三层隧道协议,可是一直不是太明白,今天总结一下自己理解的。
L2TP是用于三层网络上承载二层协议报文的隧道协议,是用于在三层网络上跑PPP 的。
GRE是通用路由封装协议,内部能封装二层,三层,MPLS……它能封装的报文类型很多,但一般都用于封装三层报文,所以也有叫三层隧道协议的,但这个说法也不严谨。
例如:GRE能封装MPLS,ISIS等,这些都不是三层报文。
Gre over ipsec就是通过GRE将广播,组播,非IP报文通过GRE封装变成单播IP报文,然后再用IPSEC封装加密,IPSEC是个标准的三层隧道协议,它只能承载单播IP报文。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
L2TP端口为UDP 1701
1. L2TP控制报文
IP网上的L2TP控制消息以UDP数据报形式发送。
在Windows 2000实现中,L2TP控制消息即UDP数据报经过IPSec ESP的加密,见下图:
由于UDP提供的是无连接的数据包服务,因此L2TP采用将消息序列化的方式来保证L2TP 消息的按序递交。
在L2TP控制消息中,Next-Received字段(类似于TCP中的确认字段)和Next-Sent字段(类似于TCP中序列号字段)用于维持控制消息的序列化。
无序数据包将被丢弃。
Next-Received字段和Next-Sent字段同样用于用户传输数据的按序递交和流控制。
L2TP支持一条隧道内的多路呼叫。
在L2TP的控制消息中以及L2TP数据帧的报头内,Tunnel ID标识了一条隧道而Call ID标识了该隧道内的一路呼叫。
2. L2TP协商参数过程:
L2TP的PPP LCP协商报文结构:
3. L2TP数据报文封装结构
L2TP用户传输数据的隧道化过程采用多层封装的方法。
下图显示了封装后在隧道中传输的基于IPSec的L2TP数据包格式。
1)L2TP封装
初始PPP有效载荷如IP数据报、IPX数据报或NetBEUI帧等首先经过PPP报头和L2TP 报头的封装。
2)UDP封装
L2TP帧进一步添加UDP报头进行UDP封装,在UDP报头中,源端和目的端端口号均设置
为1701。
3)IPSec封装
基于IPSec安全策略,UDP消息通过添加IPSec封装安全负载ESP报头、报尾和IPSec 认证报尾(Auth trailer),进行IPSec加密封装。
4)IP封装
在IPSec数据报外再添加IP报头进行IP封装,IP报头中包含VPN客户机和服务器的源端和目的端IP地址。
5)数据链路层封装
数据链路层封装是L2TP帧多层封装的的最后一层,依据不同的外发物理网络再添加相应的数据链路层报头和报尾。
例如,如果L2TP帧将在以太网上传输,则用以太网报头和报尾对L2TP帧进行数据链路层封装;如果L2TP帧将在点-点WAN上传输,如模拟电话网或ISDN 等,则用PPP报头和报尾对L2TP帧进行数据链路层封装。
6)基于IPSec的L2TP隧道化数据的解封装过程
在接收到L2TP帧后,L2TP客户机或服务器将做如下解封装处理:
1.处理并去除数据链路层报头和报尾
2.处理并去除IP报头
3.用IPSec ESP认证报尾对IP有效载荷和IPSec ESP报头进行认证
4.用IPSec ESP报头对数据报的加密部分进行解密
5.处理UDP报头并将数据报提交给L2TP协议
6.L2TP协议依据L2TP报头中Tunnel ID和Call ID分解出某条特定的L2TP隧道
7.依据PPP报头分解出PPP有效载荷,并将它转发至相关的协议驱动程序做进一步处理
L2TP数据的封装具体步骤如下:
1.IP数据报、IPX数据报或NetBEUI帧由各自协议提交给对应于VPN连接的虚拟接口。
该接口符合网络驱动程序接口规范NDIS。
2.NDIS将数据报提交给NDISWAN,NDISWAN可选择对数据进行压缩处理后,添加PPP
报头进行第一步封装。
该PPP报头仅含一个PPP协议标识域,不附加任何帧校正序列FCS
或其他标记。
3.NDISWAN将PPP帧提交给L2TP协议驱动程序,该驱动程序负责在PPP帧外添加L2TP 报头进行第二步封装。
在L2TP报头中,Tunnel ID 和Call ID的组合标识了一条隧道。
4.L2TP协议驱动程序再将封装后的数据报提交给TCP/IP协议驱动程序,并告之驱动程序,将L2TP数据报作为UDP消息发送,两端UDP端口号均为1701。
5.TCP/IP协议驱动程序对报文添加IP报头和UDP报头。
然后由IPSec对报文进行分析,
选择与之相匹配的安全策略,并在此安全策略的基础上,给数据报的UDP消息部分添加相应的ESP报头、报尾,进行IPSec加密、封装。
完成IPSec封装后,将原先的IP报头中协议字段值设置为50,同时将该IP报头添加在ESP报文外。
之后,TCP/IP协议驱动程序将结果报文提交给拨往本地ISP的拨号连接接口,该接口符合网络驱动程序接口规范NDIS。
6.NDIS再次将数据报提交给NDISWAN。
7.由NDISWAN提供数据链路层PPP报头、报尾,并将最终形成的PPP帧提交给与拨号硬件相对应的WAN微端口驱动程序。