二、详解隧道技术
隧道即基于公共网络或其它网络的特殊通道,用以实现数据的封装传输。隧道的本质是对该通道数据流的寻径和转发完全不依赖于隧道内载荷数据的地址信息。隧道协议事实上是利用公共或其他网络的传输媒体,在隧道的两端形成一个逻辑的点对点链接,只是这里点到点链接传送的帧信息部分是隧道的载荷数据,如可以是PPP分组、IP分组,甚至是TCP或UDP等报文数据。
2. 1 IPsec协议
IPsec (IP security)是IETF IPsec工作组为在IP层提供通信安全而制定的一个协议族,它包括安全协议部分和密域协商部分。安全协议部分定义对通信的保护规则,密域协商部分定义如何为安全协议协商保护参数。
设计IPse。的目的在于4个方面:为通信提供连接的主机级身份鉴别和数据的分组级源鉴别;为数据的机密性和完整性提供保护;为通信提供有限的流量保护功能;为数据传输提供抗重放攻击等服务,从而提供一定的通信QOS保证。
IPsec的安全协议定义了两种机制:ESP (Encapsulation Security Payload)和AH (Authentication Header)。
ESP机制能为通信提供机密性和完整性服务,以及为IPsec隧道提供抗重放攻击等服务。ESP规定如何对IP分组进行IPsec封装的规则,依据对IP分组的封装范围,ESP有传输模式和隧道模式两种模式。如果仅对IP分组的IP载荷(即上层协议数据部分如TCP/UDP等协议数据单元)进行封装,则称为传输模式ESP封装;如果对整个IP分组进行封装传输则称为隧道模式的ESP封装。这两种封装如下图所示。
498)this.style.width=498;" border=1>
498)this.style.width=498;" border=1>
AH机制为通信提供完整性服务以及抗重放攻击等服务。AH机制为IP分组插入一个AH头,提供安全服务。
依据AH头插入分组的位置,可将AH的实施分为两种模式:一种是将AH插入原IP分组的IP头和上层协议数据之间,称传输模式的AH封装;另一种是将AH头插入原IP分组和一个外部IP之间,称隧道模式的AH封装。这两种封装如下图所示。
498)this.style.width=498;" border=1>
498)this.style.width=498;" border=1>
2. 2形成隧道的方法
有两种方法形成隧道:一种称为封装隧道,它是通过封装协议,对上层数据分组进行透明封装传输,从而形成封装隧道的;另一种称为加密隧道,它是通过数据加密,形成数据的透明传输,从而形成加密隧道的。
加密和封装是密切相关的,加密本身不能形成隧道,被加密分组后必须通过封装传输,才能形成加密隧道。严格地将,封装是形成隧道的唯一方式。隧道中的数据有不同的存在形式:有明文的、没有任何形式保护的方式,有密文的方式,也有受完整性保护的方式。加密只是封装协议提供的一种安全服务。
人们习惯于封装和加密分开来看。这种习惯来源于实际中两种主流的封装协议类:一种为实现多协议传输的封装协议,如L2TP;另一种则强调具有安全功能的隧道封装协议,如IPseca。
典型的隧道协议包括如下几种:Microsoft公司的PPTP协议、L2F协议、L2TP协议、Microsoft公司的MPPE协议、Microsoft公司的DESE协议、IP/IP封装、GRE协议、IPsec协议。
2. 3隧道技术提供的服务
为使通过隧道构建的VPN满足人们的各种服务需求,如分组的透明传输、数据的安全性、服务质量的保证等,隧道技术应能提供以下8种服务:
a)数据安全性服务
VPN隧道机制应能支持不同层次的安全服务。这些安全服务包括不同强度的源鉴别、数据加密和数据完整性服务等。
b)多协议传输
构建VPN的另一个主要动机就是借用己有的网络基础设施,实现分组在异构网络上的传输。人们通常希望隧道机制能实现对不同类型的协议分组封装传输。
c)信号协议
隧道的端点往往是不固定的,其接入可能是暂时的、随机的,而且一条隧道往往要跨越不同的管理域。因此,采用手动隧道配置甚至是SNMP的MIB变量进行管理和配置,是低效而且不安全的。为隧道机制设计一个信号协议,以实现隧道的自动建立、配置、维护和关闭,显然是意义重大的。它大大减少了人为干预,省时省事,又提高了隧道的安全性。
d)复用
这里的复用包含两方面内容:两个服务提供商(SP)之间可以同时存在多条隧道;在同一条隧道内,能够同时封装多条用户会话。
复用的好处是显而易见的:两个服务商之间同时存在多条隧道,有利于区分通信,以提供不同的QOS保障,达到通信效能的优化;而同一条隧道内封装多条用户会话,则有利于会话的集中统一管理,提高协议的实现效率。
e)分组排序、分段与重组功能
VPN既然是对物理租用网络的功能模拟,显然用户也希望它能支持分组排序。支持排序有利于VPN功能应用的透明实施,以及VPN隧道协议的高效实现。隧道机制应支持隧道级的分组分段/重组机制,这有利于提高系统整体效能。隧道级的封装显然比借助隧道内的上层协议的分段更省事。
f)隧道维护功能
一个典型的隧道机制应给出何时建立隧道的规则:在网络开通即永久性建立隧道,还是使用管理命令触发或是数据驱动方式建立隧道。
典型的隧道机制应该在隧道的存活期间对隧道进行动态维护,以维护其安全性及有效性。隧道机制还应规定如何探测隧道另一端的存活性,以便在对端死亡的时候释放本地资源。
g)系统开销最小化
系统开销的节省包括带宽节省以及系统处理节省,这种节省的好处是显而易见的。既然VPN隧道需要通过封装来实现,增大系统开销在所难免,设计者们要做的事是尽可能减少这种开销。
h) QOS的保证
隧道机制作为一种链路机制,用户也希望它为流量提供如延迟、吞吐量、优先级等QOS的保证。