当今网络飞速发展,网络带宽每6-9个月就翻一番,人们能够更加快速、方便地访问互联网,享受更多、更精致的服务。但是,您是否意识到您的一切活动都是在门户大开的情况下进行着的,随时都有可能在门外出现一个身影将您的所作所为尽收眼底,将您的机密堂而皇之的盗走,这一切对于讲究隐私和安全的时代来说是难以想象和不允许的,但是这一切又每时每刻都在上演着。
  出现这一切的罪魁祸首是网络信息传输的透明性。为了使不同类型的网络和不同厂商的网络设备能够互相兼容,网络技术都遵循着国际标准化组织ISO)的OSI七层模型,因此在网络中传送的数据流都具有相同的封装格式,数据流中所包含的原始有用信息也位于格式中的固定位置。当别有用心的人(例如黑客)监听到网络的数据流后(这种监听在网络中很容易就可以做到)只需按参照格式便能得到其中的原始有用信息。
  如何给自己的网络上把放心锁,从而使自己能够安全的在网上娱乐和办公呢?针对这种需求,人们提出了虚拟专用网络VPN(Virtual Private Network)技术。其目的是为了保证通信的安全性,使用公共网络(例如互联网),通过三层或二层隧道(非透明性)实现专用通信。VPN的优点包括:仅仅依靠VPN技术就能为多种TCP/IP通信提供保密性;VPN技术实现所采用的三层或二层隧道能够支持多种网络协议;能够为信任的客户端与VPN服务器之间所有的TCP/IP通信提供加密服务;VPN的使用不影响公共网络的大众使用等。
  对于构建VPN 来说,网络隧道(Tunneling)技术是个关键技术。网络隧道技术指的是利用一种网络协议来传输另一种网络协议,也就是将现有的透明网络信息进行再次封装,从而保证网络信息传输的安全性。它主要利用网络隧道协议来实现这种功能,具体包括二层隧道协议(用于传输二层网络协议)和三层隧道协议(用于传输三层网络协议)。
  二层隧道协议L2TP(Layer 2 Tunneling Protocol)是一种基于点对点协议PPP的二层隧道协议。在由L2TP构建的VPN中,有两种类型的服务器,一种是L2TP 访问集中器LAC(L2TP Access Concentrator ),它是附属在网络上的具有 PPP 端系统和 L2TP 协议处理能力的设备,LAC一般就是一个网络接入服务器,用于为用户提供网络接入服务;另一种是L2TP 网络服务器LNS(L2TP Network Server),是 PPP 端系统上用于处理 L2TP 协议服务器端部分的软件。
  在LNS 和 LAC 之间存在着两种类型的连接,一种是隧道(tunnel)连接,它定义了一个 LNS 和 LAC 对;另一种是会话(session)连接,它复用在隧道连接之上,用于表示承载在隧道连接中的每个 PPP 会话过程。
L2TP 连接的维护以及 PPP 数据的传送都是通过 L2TP 消息的交换来完成的,L2TP 消息可以分为两种类型,一种是控制消息,另一种是数据消息。控制消息用于隧道连接和会话连接的建立与维护,数据消息用于承载用户的 PPP 会话数据包。这些消息都通过 UDP 的 1701 端口承载于 TCP/IP 之上。
  L2TP层的数据传输具有非常强的扩展性和可靠性。控制消息中的参数用 AVP 值对(Attribute Value Pair)来表示,使得协议具有很好的扩展性;控制消息的传输过程中应用了消息丢失重传和定时检测通道连通性等机制来保证 L2TP 层传输的可靠性。数据消息用于承载用户的 PPP 会话数据包。虽然L2TP 数据消息的传输不采用重传机制,无法保证传输的可靠性,但这一点可以通过上层协议如 TCP 等得到保证;数据消息的传输可以根据应用的需要灵活地采用流控或不流控机制,可以在传输过程中动态地使用消息序列号从而动态地激活消息顺序检测和流量控制功能;在采用流量控制的过程中,对于失序消息的处理采用了缓存重排序的方法来提高数据传输的有效性。
  所使用的网络设备是武汉烽火网络公司的F-Engine R4000和F-Engine S2000产品。该VPN将用户接入端的PPPOE和远程访问的L2TP结合在一起。用户远程访问按如下步骤进行。
  1、用户认证
  用户端通过在PPPOE拨号软件中输入用户名和密码,向用户接入端的F-Engine R4000(LAC)提出远程访问请求,F-Engine R4000和VPN Server交互用户名和密码,对用户进行认证,认证后则向用户反馈认证结果。
  2、建立隧道
  如果认证成功VPN Server则向远程网络的F-Engine R4000(LNS)提出隧道建立申请,并将用户信息提交给LNS,LNS对用户进行第二次身份认证,如认证通过则给用户ID、动态IP地址和访问权限,并将此反馈给用户。
  3、远程访问
  用户通过两次认证后则能够以所给的用户ID、IP地址和权限进行远程访问,同时用户接入端的F-Engine R4000(LAC)把用户上网时间和流量提交给VPN Server开始对用户进行计费。
  在第一次用户认证时采用的是PPPOE方式,网络数据信息从用户电脑到接入网设备F-Engine R4000(LAC)之间经过IP-PPP-PPPOE-MAC四层封装,在通过第一次用户认证后,接入网设备F-Engine R4000(LAC)除掉了网络信息的PPPOE和PPP封装,封装格式成为IP-MAC,即在接入网设备F-Engine R4000(LAC)上实现了PPPOE的终结。在隧道建立起后,将从接入网设备F-Engine R4000(LAC)出来的数据信息作为一个整体封装在基于PPP协议的L2TP数据的最低层,其格式为IP-PPP-L2TP-UDP-IP-MAC,这里最上层的IP已经不是原有的IP,即IP地址已经更改成远程网络F-Engine R4000(LNS)分配和认可的IP地址,到达目的远程网络后,经过远程网络F-Engine R4000(LNS)的解封装,除去了中间的PPP、L2TP、UDP和IP封装,数据封装格式重新成为IP-MAC,新数据信息里的IP地址仍然是远程网络F-Engine R4000(LNS)认可的IP地址而不是用户原有的IP地址。因此在网络数据传输过程中,用户原始数据经过L2TP封装到最低层,因为L2TP封装的复杂性,就算有人能够截获数据流,也很难按照原有的网络ISO模型对其进行分析以获取有用信息;在远程网络端,用户的IP信息被分配和认可的IP信息取代,即用户的信息是相对保密,从而保护了用户不被侵犯;整个传输过程对用户而言是非透明的,用户无法知晓L2TP传输机制,从而保证了传输过程的安全性。
  L2TP构建VPN除了上述的优点外还有如下优势:
  1、灵活的身份验证机制以及高度的安全性
  L2TP是基于PPP协议的,因此它除继承了 PPP 的所有安全特性外, 还可以对隧道端点进行验证,这使得通过 L2TP 所传输的数据更加难以被攻击。而且根据特定的网络安全要求,还可以方便地在 L2TP 之上采用隧道加密、端对端数据加密或应用层数据加密等方案来提高数据的安全性。
  2、内部地址分配支持
  LNS可以放置于企业网的防火墙之后,它可以对于远端用户的地址进行动态的分配和管理,可以支持 DHCP 和私有地址应用。远端用户所分配的地址不是Internet地址而是企业内部的私有地址,这样方便了地址的管理并可以增加安全性。
  3、网络计费的灵活性
  可以在LAC和LNS两处同时计费,即ISP处(用于产生帐单)及企业处(用于付费及审记)。L2TP 能够提供数据传输的出入包数,字节数及连接的起始、结束时间等计费数据,可以根据这些数据方便地进行网络计费。
  4、可靠性
  L2TP 协议可以支持备份 LNS,当一个主 LNS 不可达之后,LAC(接入服务器)可以重新与备份 LNS 建立连接,这样增加了 VPN 服务的可靠性和容错性。
  5、统一的网络管理
  L2TP 协议将很快地成为标准的 RFC 协议,有关 L2TP 的标准 MIB 也将很快地得到制定,这样可以统一地采用 SNMP 网络管理方案进行方便的网络维护与管理。