IPsecL2TP
一、第二层隧道协议(L2TP)和安全IPIPSec
第二层隧道协议L2TPLayer Two Tunneling Protocol)是PPTP和第二层转发L2F两种技术的结合,后者是由Cisco公司提出的隧道技术。为 了避免PPTPL2F两种互不兼容的隧道技术在市场上彼此竞争从而给用户造成困惑,带来不方便,IETF要求将两种技术结合在单一隧道协议中,并在该协 议中糅合PPTPL2F两者的优点,由此产生了L2TP。有关L2TP协议标准详见RFC 2661
L2TP协议将PPP帧封装后,可通过IPX.25,帧中继或ATM等网络进行传送。目前,仅定义了基于IP网络的L2TP IP网络中L2TP采用用户数据报协议UDP封装和传送PPP帧。L2TP隧道协议 可用于Internet,也可用于其他企业专用Intranet中。
IP网上的L2TP不仅采用UDP封装用户数据,还通过UDP消息对隧道进行维护。PPP帧的有效载荷即用户传输数据,可以经过加密、压缩或两者的混合处 理,但需要指出的是,与PPTP不同,在Windows 2000中,L2TP客户机不采用MPPEL2TP连接进行加密,L2TP连接加密由IPSec ESP提供。
Windows 2000中,创建一条未经IPSec加密的L2TP连接是有可能的,但在这种情形下,由于用户私有数据没有经过加密处理,因此该L2TP连接不属于VPN 连接。非加密L2TP连接一般用于临时性的对基于IPSecL2TP连接进行故障诊断和排除,在这种情况下,可以省略IPSec认证和协商过程。
PPTP类似,L2TP协议假定在L2TP客户机和L2TP服务器之间有连通且可用的IP网络。因此如果L2TP 户机本身已经是某IP网络的组成部分,那么即可通过该IP网络与L2TP服务器取得连接;而如果L2TP客户机尚未连入网络,譬 如在Internet拨号用户的情形下,L2TP客户机必须首先拨打NAS建立IP连接。这里所说的L2TP客户机也就是使用L2TP隧道协议和 IPSec安全协议的VPN客户机,而L2TP服务器亦即使用L2TP隧道协议和IPSec安全协议的VPN服务器。
创建L2TP隧道时必须使用与PPP连接相同的认证机制,诸如EAPMS?CHAPCHAPSPAP,和PAP。基于InternetL2TP 务器亦即使用L2TP协议的拨号服务器,它的一个接口在外部网络Internet上,另一个接口在目标专用网络Intranet上。
L2TP隧道维护控制消息和隧道化用户传输数据具有相同的包格式。
二、基于L2TP控制消息的隧道维护
PPTP不同,L2TP不是通过一条单独的TCP连接来进行隧道维护。L2TP客户机和服务器之间的呼叫控制和管理均以发送UDP消息的方式进行。在Windows 2000中,L2TP客户机和服务器都使用UDP1701端口。
注:在Windows 2000中,L2TP客户机和服务器始终使用UDP1701端口,但Windows 2000 L2TP服务器也支持使用非1701 UDP端口的L2TP客户机。
IP网上的L2TP控制消息以UDP数据报形式发送。在Windows 2000实现中,L2TP控制消息即UDP数据报经过IPSec ESP的加密,见下图:

图一、L2TP控制消息
由于UDP提供的是无连接的数据包服务,因此L2TP采用将消息序列化的方式来保证L2TP消息的按序递交。在L2TP控制消息中,Next- Received字段(类似于TCP中的确认字段)和Next-Sent字段(类似于TCP中序列号字段)用于维持控制消息的序列化。无序数据包将被丢 弃。Next-Received字段和Next-Sent字段同样用于用户传输数据的按序递交和流控制。
L2TP支持一条隧道内的多路呼叫。在L2TP的控制消息中以及L2TP数据帧的报头内,Tunnel ID标识了一条隧道而Call ID标识了该隧道内的一路呼叫。
下表列出了一些主要的L2TP控制消息。
消息类型       用途
Start-Control-Connection-Request        L2TP客户机发出,请求建立控制连接。L2TP隧道要求在其他任何L2TP消息发送之前首先建立控制连接。该消息包含一个隧道标识Tunnel- ID
Start-Control-Connection-Reply        L2TP服务器对Start-Control-Connection-Request消息的应答。
Start-Control-Connection-Connected        Start-Control-Connection-Reply消息的应答,表示隧道建立成功。
Outgoing-Call-Request        L2TP客户机发出,请求建立一路呼叫,该消息包含一个Call ID用于标识特定隧道中的一路呼叫。
Outgoing-Call-Reply        L2TP服务器对Outgoing-Call-Request消息的应答。
Start-Control-Connection-Connected        Outgoing-Call-Reply消息的应答,表示呼叫建立成功。
Hello        作为保持连线机制,可由L2TP客户机或服务器任一方发出。如果Hello消息得不到确认,则L2TP隧道逐渐终止。
WAN-Error-Notify        L2TP服务器向所有VPN客户机发出,指示服务器的PPP接口处于错误状态。
Set-Link-Info        可由L2TP客户机或服务器任一方发出,设置PPP协商选项。
Call-Disconnect-Notify        L2TP客户机或服务器任一方发出,指示隧道内一路呼叫将被终止。
Stop-Control-Connection-Notification        L2TP客户机或服务器任一方发出,指示隧道将被终止。
L2TP 控制消息的确切格式,请参阅L2TP Internet 草案。
表二、L2TP控制消息
三、L2TP数据封装
L2TP用户传输数据的隧道化过程采用多层封装的方法。图二显示了封装后在隧道中传输的基于IPSecL2TP数据包格式。

图二、L2TP数据包封装
1L2TP封装
初始PPP有效载荷如IP数据报、IPX数据报或NetBEUI帧等首先经过PPP报头和L2TP报头的封装。
2UDP封装
L2TP帧进一步添加UDP报头进行UDP封装,在UDP报头中,源端和目的端端口号均设置为1701
3IPSec封装
基于IPSec安全策略,UDP消息通过添加IPSec封装安全负载ESP报头、报尾和IPSec认证报尾(Auth trailer),进行IPSec加密封装。
4IP封装
IPSec数据报外再添加IP报头进行IP封装,IP报头中包含VPN客户机和服务器的源端和目的端IP地址。
5)数据链路层封装
数据链路层封装是L2TP帧多层封装的的最后一层,依据不同的外发物理网络再添加相应的数据链路层报头和报尾。例如,如果L2TP帧将在以太网上传输,则 用以太网报头和报尾对L2TP帧进行数据链路层封装;如果L2TP帧将在点-WAN上传输,如模拟电话网或ISDN等,则用PPP报头和报尾对L2TP 帧进行数据链路层封装。
6)基于IPSecL2TP隧道化数据的解封装过程
在接收到L2TP帧后,L2TP客户机或服务器将做如下解封装处理:
1.处理并去除数据链路层报头和报尾
2.处理并去除IP报头
3.用IPSec ESP认证报尾对IP有效载荷和IPSec ESP报头进行认证
4.用IPSec ESP报头对数据报的加密部分进行解密
5.处理UDP报头并将数据报提交给L2TP协议
6L2TP协议依据L2TP报头中Tunnel IDCall ID分解出某条特定的tcp ip协议在哪里设置L2TP隧道
7.依据PPP报头分解出PPP有效载荷,并将它转发至相关的协议驱动程序做进一步处理
四、基于IPSecL2TP数据包和Windows 2000网络体系结构
下图描述了某使用modem进行远程访问的VPN连接中,VPN客户机端L2TP数据包在Windows 2000网络体系结构中的封装流程。

图三、L2TP数据包的封装流程
具体步骤如下:
1IP数据报、IPX数据报或NetBEUI帧由各自协议提交给对应于VPN连接的虚拟接口。该接口符合网络驱动程序接口规范NDIS
2NDIS将数据报提交给NDISWANNDISWAN可选择对数据进行压缩处理后,添加PPP报头进行第一步封装。该PPP报头仅含一个PPP协议 标识域,不附加任何帧校正序列FCS或其他标记。
3NDISWANPPP帧提交给L2TP协议驱动程序,该驱动程序负责在PPP帧外添加L2TP报头进行第二步封装。在L2TP报头中,Tunnel IDCall ID的组合标识了一条隧道。
4L2TP协议驱动程序再将封装后的数据报提交给TCP/IP协议驱动程序,并告之驱动程序,将L2TP数据报作为UDP消息发送,两端UDP端口号均 1701
5TCP/IP协议驱动程序对报文添加IP报头和UDP报头。然后由IPSec对报文进行分析,选择与之相匹配的安全策略,并在此安全策略的基础上,给 数据报的UDP消息部分添加相应的ESP报头、报尾,进行IPSec加密、封装。
完成IPSec封装后,将原先的IP报头中协议字段值设置为50,同时将该IP报头添加在ESP报文外。之后,TCP/IP协议驱动程序将结果报文提交给 拨往本地ISP的拨号连接接口,该接口符合网络驱动程序接口规范NDIS
6NDIS再次将数据报提交给NDISWAN
7.由NDISWAN提供数据链路层PPP报头、报尾,并将最终形成的PPP帧提交给与拨号硬件相对应的WAN微端口驱动程序。

我不刻原文在哪里了,请原谅!

[ 本帖最后由 QUSHIQIANG 2005-12-14 11:22 编辑 ]
图1.JPG (10.63 KB)
下载次数:37
2005-12-14 11:22
1
图2.JPG (17.18 KB)
下载次数:29
2005-12-14 11:22
2
图3.JPG (29.23 KB)
下载次数:26
2005-12-14 11:22
3

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。