二层隧道协议主要有三种。一种是微软、Ascend、3COM 等公司支持的 PPTP(Point to Point Tunneling Protocol,点对点隧道协议),在 Windows NT 4.0以上版本中即有支持。另一种是 Cisco、北方电信等公司支持的L2F(Layer 2 Forwarding,二层转发协议),在 Cisco 路由器中有支持。而由 IETF 起草,微软 Ascend 、Cisco、 3COM 等公司参与的 L2TP(Layer 2 Tunneling Protocol,二层隧道协议)结合了上述两个协议的优点,将很快地成为 IETF 有关二层隧道协议的工业标准。 L2TP 作为更优更新的标准,已经得到了如:Cisco Systems,Microsoft,Ascend,3Com 等的支持,以后还必将为更多的网络厂商所支持,将是使用最广泛的 VPN 协议。
下面将简单介绍一下 L2TP 网络协议。应用 L2TP 所构建的典型 VPN 服务的结构 其中,LAC 表示 L2TP 访问集中器(L2TP Access Concentrator ),是附属在交换网络上的具有 PPP 端系统和 L2TP 协议处理能力的设备,LAC 一般就是一个网络接入服务器 NAS(Network Access Server)它用于为用户通过 PSTN/ISDN 提供网络接入服务;LNS表示 L2TP 网络服务器(L2TP Network Server),是 PPP 端系统上用于处理 L2TP 协议服务器端部分的软件。
在一个 LNS 和 LAC 对之间存在着两种类型的连接,一种是隧道(tunnel)连接,它定义了一个 LNS 和 LAC 对;另一种是会话(session)连接,它复用在隧道连接之上,用于表示承载在隧道连接中的每个 PPP 会话过程。 L2TP 连接的维护以及 PPP 数据的传送都是通过 L2TP 消息的交换来完成的,这些消息再通过 UDP的 1701 端口承载于 TCP/IP 之上。L2TP 消息可以分为两种类型,一种是控制消息,另一种是数据消息。控制消息用于隧道连接和会话连接的建立与维护。数据消息用于承载用户的 PPP 会话数据包。
L2TP 连接的维护以及 PPP 数据的传送都是通过 L2TP 消息的交换来完成的,这些消息再通过UDP的1701端口承载于 TCP/IP之上。 控制消息中的参数用 AVP 值对(Attribute Value Pair)来表示,使得协议具有很好的扩展性;在控制消息的传输过程中还应用了消息丢失重传和定时检测通道连通性等机制来保证了 L2TP 层传输的可靠性。数据消息用于承载用户的 PPP 会话数据包。L2TP 数据消息的传输不采用重传机制,所以它无法保证传输的可靠性,但这一点可以通过上层协议如 TCP 等得到保证;数据消息的传输可以根据应用的需要灵活地采用流控或不流控机制,甚至可以在传输过程中动态地使用消息序列号从而动态地激活消息顺序检测和流量控制功能;在采用流量控制的过程中,对于失序消息的处理采用了缓存重排序的方法来提高数据传输的有效性。
L2TP 还具有适用于VPN 服务的以下几个特性:
灵活的身份验证机制以及高度的安全性 L2TP 可以选择多种身份验证机制(CHAP、PAP 等),继承了 PPP 的所有安全特性,L2TP 还可以对隧道端点进行验证,这使得通过 L2TP 所传输的数据更加难以被攻击。而且根据特定的网络安全要求还可以方便地在 L2TP 之上采用隧道加密、端对端数据加密或应用层数据加密等方案来提高数据的安全性。
内部地址分配支持 LNS可以放置于企业网的防火墙之后,它可以对于远端用户的地址进行动态的分配和管理,可以支持 DHCP 和私有地址应用(RFC1918)等方案。远端用户所分配的地址不是Internet地址而是企业内部的私有地址,这样方便了地址的管理并可以增加安全性。
网络计费的灵活性
可以在LAC和LNS两处同时计费,即ISP处(用于产生帐单)及企业处(用于付费及审记)。L2TP 能够提供数据传输的出入包数,字节数及连接的起始、结束时间等计费数据,可以根据这些数据方便地进行网络计费。
可靠性
L2TP 协议可以支持备份 LNS,当一个主 LNS 不可达之后,LAC(接入服务器)可以重新与备份 LNS 建立连接,这样增加了 VPN 服务的可靠性和容错性。 统一的网络管理 L2TP 协议将很快地成为标准的 RFC 协议,有关 L2TP 的标准 MIB 也将很快地得到制定,这样可以统一地采用 SNMP 网络管理方案进行方便的网络维护与管理。