早先的企业用户为了完成各分支机构间的数据、话音的传送,需要建立企业专用网络。由于10年前网络技术及网络规模的限制,只能租用专线、自购设备、投入大量资金及人员构建自己实实在在的专用网络(PN,Private Network )。随着数据通信技术的发展,特别是ATM、Frame Relay(简称FR)技术的出现,企业用户可以通过租用面向连接的逻辑通道PVC组建与专线网络性质一样的网络,但是由于在物理层带宽及介质的非独享性,所以叫虚拟专用网络(VPN,Virtual Private Network)。近几年接入网络及骨干网络层次的细化,特别是Internet的兴起,为企业用户提供了更加广泛的网络基础和灵活的网络应用,随之而来的就是IP VPN技术,即通过多种隧道技术和加密技术保证企业用户数据在穿透Internet时的无干扰性和安全性。
依据以上企业用户对自身网络建设的需求和发展,可以给出一个简单而准确的虚拟专用网络的定义。VPN是利用公共网络资源来构建的专用网络,它是通过特殊设计的硬件或软件直接在共享网络中通过隧道、加密技术来保证用户数据的安全性。其中,隧道技术可以基于IP、帧中继、ATM等。由于采用先进的VPN技术和有关设备,屏蔽了公共网络的影响,同时对需要在公共网络中传输的数据进行加密处理,使得整个企业网络逻辑上成为一个单独的透明内部网络,具有安全性、可靠性和可管理性。
待选的VPN技术
实现VPN必定会涉及具体的技术,下面简单介绍一下目前比较流行的技术。
传统的数据网络技术 ATM、FR技术通过面向连接的技术在用户两端建立点对点或者点对多点的虚连接(PVC或SVC),该虚连接为透明通道,可以承载多种协议和业务,用户通过FRAD(帧中继接入设备)或ATM交换机作为用户侧设备,整个网络具有严格的流量控制和呼叫信令体制。
隧道技术 网络服务提供商(NSP)在公共网络中建立专用的隧道,让数据包通过这条隧道传输,为用户模仿点对点连接。现有两种类型的隧道协议,一种是二层隧道协议,用于传输二层网络协议,它主要应用于构建 Access VPN。另一种是三层隧道协议,用于传输三层网络协议,它主要应用于构建 Intranet VPN 和 Extranet VPN。
二层隧道协议主要有三种。一种是微软、3Com等公司支持的 PPTP(Point to Point Tunneling Protocol,点对点隧道协议),在 Windows NT 4.0以上版本中即有支持。另一种是 Cisco、北方电讯等公司支持的 L2F(Layer 2 Forwarding,二层转发协议),在 Cisco 路由器中有支持。而由 IETF 起草,微软、Cisco、3Com等公司参予的 L2TP(Layer 2 Tunneling Protocol,二层隧道协议)结合了上述两个协议的优点,成为 IETF 有关二层隧道协议的工业标准。
用于传输三层网络协议的隧道协议叫三层隧道协议。三层隧道协议并非是一种很新的技术,早已出现的 RFC 1701 Generic Routing Encapsulation( GRE)协议就是个三层隧道协议。新出来的 IETF 的 IP 层加密标准协议 IPSec 协议也是个三层隧道协议,下面我们主要对IPSec协议和L2TP协议进行简要的介绍。
不同VPN技术的对比
IPSec
IPSec ,即IP 安全协议,不是一个单独的协议,而是一组开放协议的总称,它给出了应用于IP层上网络数据安全的一整套体系结构,它包括网络安全协议 Authentication Header (AH) 协议和 Encapsulating Security Payload (ESP)协议、密钥管理协议 Internet Key Exchange (IKE)协议和用于网络验证及加密的一些算法等。IPSec 规定了如何在对等层之间选择安全协议、确定安全算法和密钥交换,向上提供了访问控制、数据源验证、数据加密等网络安全服务。
IPSec协议在特定的通信方之间提供数据的私有性、完整性保护,并能对数据源进行验证。IPSec 使用 IKE 进行协议及算法的协商,并采用由 IKE 生成的密码来加密和验证。IPSec用来保证数据包在Internet网上传输时的私有性、完整性和真实性。IPSec在IP层提供这些安全服务,对IP及所承载的数据提供保护。这些服务是通过两个安全协议AH和ESP,通过加密等过程实现的。这些机制的实现不会对用户、主机或其他Internet 组件造成影响; 用户可以选择不同的加密算法,而不会对实现的其他部分造成影响。
IPSec提供的网络安全服务具有以下特点。
私有性 IPSec在传输数据包之前将其加密,以保证数据的私有性;
完整性 IPSec在目的地要验证数据包,以保证该数据包在传输过程中没有被替换;
真实性 IPSec 端要验证所有受 IPSec 保护的数据包;
反重复性 IPSec防止了数据包被捕捉并重新投放到网上,即目的地会拒绝老的或重复的数据包; 它通过与AH或ESP一起工作的序列号实现。
IPSec协议本身定义了如何在IP数据包中增加字段来保证IP包的完整性、私有性和真实性,这些协议还规定了如何加密数据包。使用IPSec,数据就可以在公网上传输,而不必担心数据被监视、修改或伪造了。IPSec提供了两个主机之间、两个安全网关之间或主机和安全网关主机之间的保护。
IPSec定义了两个新的数据包头增加到IP包,这些数据包头用于保证IP数据包的安全性。这两个数据包头由AH和ESP规定。在网关上实现 IPSec,AH 将插到标准IP包头后面,它保证数据包的完整性和真实性,防止黑客截断数据包或向网络中插入伪造的数据包。AH采用了安全哈希算法来对数据包进行保护。AH没有对用户数据进行加密。ESP将需要保护的用户数据进行加密后再封装到IP包中,ESP可以保证数据的完整性、真实性和私有性。
IPSec有隧道和传送两种工作方式。在隧道方式中,用户的整个IP数据包被用来计算ESP头,且被加密,ESP头和加密用户数据被封装在一个新的IP数据包中。在传送方式中,只是传输层(如TCP、UDP、ICMP)数据被用来计算ESP头,ESP头和被加密的传输层数据被放置在原IP包头后面。当IPSec通信的一端为安全网关时,必须采用隧道方式。
Internet 密钥交换协议(IKE)用于在两个通信实体协商和建立安全相关,交换密钥。安全相关(Security Association)是 IPSec 中的一个重要概念。一个安全相关表示两个或多个通信实体之间经过了身份认证,且这些通信实体都能支持相同的加密算法,成功地交换了会话密钥,可以开始利用 IPSec 进行安全通信。IPSec 协议本身没有提供在通信实体间建立安全相关的方法,利用 IKE 建立安全相关。IKE 定义了通信实体间进行身份认证、协商加密算法以及生成共享的会话密钥的方法。IKE中身份认证采用共享密钥和数字签名两种方式,密钥交换采用 Diffie Hellman 协议。
L2TP
L2TP二层隧道协议支持封装的PPP帧在IP、X.25、帧中继或ATM等网络上进行传送。当使用IP作为L2TP的数据报传输协议时即为IP VPN。在L2TP隧道中LAC 表示 L2TP 访问集中器(L2TP Access Concentrator ),是附属在交换网络上的具有 PPP 端系统和 L2TP 协议处理能力的设备,LAC 一般就是一个网络接入服务器 NAS(Network Access Server),用于为用户通过 PSTN/ISDN 提供网络接入服务。LNS 表示 L2TP 网络服务器(L2TP Network Server),是 PPP 端系统上用于处理 L2TP 协议服务器端部分的软件。在一个 LNS 和 LAC 对之间存在着两种类型的连接,一种是隧道连接,它定义了一个 LNS 和 LAC 对; 另一种是会话连接,它复用在隧道连接之上,用于表示承载在隧道连接中的每个 PPP 会话过程。L2TP 连接的维护以及 PPP 数据的传送都是通过 L2TP 消息的交换来完成的,这些消息再通过 UDP 的 1701 端口承载于 TCP/IP 之上。L2TP 消息可以分为两种类型,一种是控制消息,另一种是数据消息,控制消息用于隧道连接和会话连接的建立与维护,数据消息用于承载用户的 PPP 会话数据包。 IP网上的L2TP使用UDP和一系列的L2TP消息对隧道进行维护。L2TP同样使用UDP将L2TP协议封装的PPP争辩通过隧道发送,可以对封装PPP帧中的负载数据进行加密或压缩。L2TP 数据消息的传输不采用重传机制,所以它无法保证传输的可靠性,但这一点可以通过上层协议如 TCP 等得到保证。
VPN的分类
那么针对以上谈到的技术,我们可以对VPN进行分类。
在VPN业务模式上分为基于企业自行布置的VPN(CE-BASED)和基于网络服务商(NSP)的VPN(NETWORK-BASED)。前者VPN中又可以细分为两种类型: 典型企业自行布置VPN和由运营商支持的自行布置VPN。第一种类型中运营商根本就不知道用户的VPN需求,只是提供简单的IP、ATM等服务,企业用户由内部的网络管理人员在自己两端设备间建立TUNNEL。第二种类型运营商知道用户业务的性质,在进行简单服务的同时提供并配置管理用户侧设备。基于网络服务商的VPN是指TUNNEL终结在服务供应商的设备上,服务供应商通过其网内设备提供VPN服务,而做到用户根本就不知道VPN的存在,或者说用户侧设备在配置和管理上等同于连接在一个真实网络。
目前,我们所经常听到或者看到一些谈到VPN的分类内容,都是认为在技术层次上分两类:采用L2TP、PPTP等二层隧道技术的二层VPN或采用IPSec技术的三层VPN,笔者认为该种分法虽然规整但有不是特别合理之处。我们提到的二层、三层技术均是依据OSI七层协议简单分割,而在实际应用技术中,众所周知无论是IP技术还是ATM技术均存在层次简化和层次功能集扩大的事实,如果单纯采用层次划分,不但不能在技术层次上明确表达意思,而且还容易在VPN实现及功能上诱导客户,例如单纯强调FR、ATM VPN的安全性、可靠性或者IP VPN的易操作性、易扩展性。同时隧道技术的本质在于用户的数据被封装在其他数据包中透明传输,例如L2TP支持IP、FR、ATM等封装,那么在封装传输过程中体现出来的技术实质应该为承载协议的技术特点,所以统一采用两层VPN一言以蔽之有其不合理之处。笔者认为结合VPN的发展(由独享