隧道技术(Tunneling)是一种通过使用互联网络的基础设施在网络之间传递数据的方式。使用隧道传递的数据(或负载)可以是不同协议的数据帧或包。隧道协议将其它协议的数据帧或包重新封装然后通过隧道发送。新的帧头提供路由信息,以便通过互联网传递被封装的负载数据。

  这里所说的隧道类似于点到点的连接。这种方式能够使来自许多信息源的网络业务在同一个基础设施中通过不同的隧道进行传输。隧道技术使用点对点通信协议代替了交换连接,通过路由网络来连接数据地址。隧道技术允许授权移动用户或已授权的用户在任何时间、任何地点访问企业网络。

  通过隧道的建立,可实现:

  * 将数据流强制送到特定的地址

  * 隐藏私有的网络地址

  * 在IP网上传递非IP数据包

  * 提供数据安全支持

  近来出现了一些新的隧道技术,并在不同的系统中得到运用和拓展。

  隧道技术

  为创建隧道,隧道的客户机和服务器双方必须使用相同的隧道协议。隧道技术可分别以第2层或第3层隧道协议为基础。第2层隧道协议对应于OSI模型的数据链路层,使用帧作为数据交换单位。PPTP(点对点隧道协议)、L2TP(第二层隧道协议)和L2F(第2层转发协议)都属于第2层隧道协议,是将用户数据封装在点对点协议(PPP)帧中通过互联网发送。第3层隧道协议对应于OSI模型的网络层,使用包作为数据交换单位。IPIP(IP over IP)以及IPSec隧道模式属于第3层隧道协议,是将IP包封装在附加的IP包头中,通过IP网络传送。无论哪种隧道协议都是由传输的载体、不同的封装格式以及用户数据包组成的。它们的本质区别在于,用户的数据包是被封装在哪种数据包中在隧道中传输。

  点对点隧道协议

  PPTP(Point to Point Tunneling Protocol)提供PPTP客户机和PPTP服务器之间的加密通信。PPTP客户机是指运行了该协议的PC机,如启动该协议的Windows95/98;PPTP服务器是指运行该协议的服务器,如启动该协议的WindowsNT服务器。PPTP是PPP协议的一种扩展。它提供了一种在互联网上建立多协议的安全虚拟专用网(VPN)的通信方式。远端用户能够透过任何支持PPTP的ISP访问公司的专用网。

  通过PPTP,客户可采用拨号方式接入公用IP网。拨号用户首先按常规方式拨到ISP的接入服务器(NAS),建立PPP连接;在此基础上,用户进行二次拨号建立到PPTP服务器的连接,该连接称为PPTP隧道,实质上是基于IP协议的另一个PPP连接,其中的IP包可以封装多种协议数据,包括TCP/IP、IPX和NetBEUI。PPTP采用了基于RSA公司RC4的数据加密方法,保证了虚拟连接通道的安全。对于直接连到互联网的用户则不需要PPP的拨号连接,可以直接与PPTP服务器建立虚拟通道。PPTP把建立隧道的主动权交给了用户,但用户需要在其PC机上配置PPTP,这样做既增加了用户的工作量,又会给网络带来隐患。另外,PPTP只支持IP作为传输协议。

  第二层转发协议

  L2F(Layer Two Forwarding protocol )是由Cisco公司提出的可以在多种介质,如ATM、帧中继、IP网上建立多协议的安全虚拟专用网的通信。远端用户能通过任何拨号方式接入公用IP网,首先按常规方式拨到ISP的接入服务器(NAS),建立PPP连接;NAS根据用户名等信息,建立直达HGW服务器的第二重连接。在这种情况下,隧道的配置和建立对用户是完全透明的。其体系结构见图1。

  第二层隧道协议

  L2TP(Layer Two Tunneling Protocol)结合了L2F和PPTP的优点,允许用户从客户端或访问服务器端建立VPN连接。L2TP是把链路层的PPP帧装入公用网络设施,如IP、ATM、帧中继中进行隧道传输的封装协议。其体系结构见图1。

  Cisco、Ascend、Microsoft和RedBack公司的专家们在修改了十几个版本后,终于在1999年8月公布了L2TP的标准RFC2661。目前用户拨号访问Internet时,必须使用IP协议,并且其动态得到的IP地址也是合法的。L2TP的好处在于支持多种协议,用户可以保留原有的IPX、Appletalk等协议或公司原有的IP地址。L2TP还解决了多个PPP链路的捆绑问题,PPP链路捆绑要求其成员均指向同一个NAS,L2TP则允许在物理上连接到不同NAS的PPP链路,在逻辑上的终点为同一个物理设备。L2TP扩展了PPP连接,在传统的方式中用户通过模拟电话线或ISDN/ADSL与网络访问服务器建立一个第2层的连接,并在其上运行PPP,第2层连接的终点和PPP会话的终点均设在同一个设备上(如NAS)。L2TP作为PPP的扩充提供了更强大的功能,包括允许第2层连接的终点和PPP会话的终点分别设在不同的设备上。

  L2TP主要由LAC(L2TP Access Concentrator)和LNS(L2TP Network Server)构成。LAC支持客户端的L2TP,发起呼叫,接收呼叫和建立隧道;LNS是所有隧道的终点。在传统的PPP连接中,用户拨号连接的终点是LAC,而L2TP能把PPP协议的终点延伸到LNS。

  L2TP的建立过程如图2。

  1.用户通过公用电话网或ISDN拨号呼叫本地接入服务器LAC;LAC接受呼叫并进行基本的识别过程,这一过程可以采用几种标准,如域名、呼叫线路识别(CLID)或拨号ID业务(DNIS)等。

  2.当用户被确认为合法企业用户时,就建立一个通向LNS的拨号VPN隧道。

  3.企业内部的安全服务器如TACACS+、RADIUS对拨号用户进行验证。

  4.LNS与远程用户交换PPP信息,分配IP地址。LNS可采用企业专用地址(未注册的IP地址)或服务提供商提供的地址空间分配IP地址。因为内部源IP地址与目的地IP地址实际上都通过服务提供商的IP网络在PPP信息包内传送,企业专用地址对提供者的网络是透明的。

  5.端到端的数据从拨号用户传到LNS。

  在实际应用中,LAC将拨号用户的PPP帧封装后,传送到LNS,后者去掉封装包头,取出PPP帧,再去掉PPP帧头,最后获得网络层数据包。

  L2TP方式给服务提供商和用户带来了许多方便。用户不需要在PC板上安装专门的客户端软件,企业网可以使用未注册的IP地址,并在本地管理认证数据库,从而降低了应用成本和培训维护费用。

  与PPTP和L2F相比,L2TP的优点在于提供了差错和流量控制;L2TP使用UDP封装和传送PPP帧。面向无连接的UDP无法保证网络数据的可靠传输,L2TP使用Nr(下一个希望接受的信息序列号)和Ns(当前发送的数据包序列号)字段进行流量和差错控制。双方通过序列号来确定数据包的顺序和缓冲区,一旦丢失数据,根据序列号可以进行重发。

  作为PPP的扩展协议,L2TP支持标准的安全特性CHAP和PAP,可以进行用户身份认证。L2TP定义了控制包的加密传输,每个被建立的隧道分别生成一个独一无二的随机钥匙,以便对付欺骗性的攻击,但是它对传输中的数据并不加密。

  通用路由封装

  通用路由封装(GRE:Generic Routing Encapsulation)在RFC1701/RFC1702中定义,它规定了怎样用一种网络层协议去封装另一种网络层协议的方法。GRE的隧道由两端的源IP地址和目的IP地址来定义,它允许用户使用IP封装IP、IPX、AppleTalk,并支持全部的路由协议,如RIP、OSPF、IGRP、EIGRP。通过GRE,用户可以利用公用IP网络连接IPX网络和AppleTalk网络,还可以使用保留地址进行网络互联,或对公网隐藏企业网的IP地址。

  GRE的包头包含了协议类型(用于标明乘客协议的类型);校验和包括了GRE的包头和完整的乘客协议与数据;密钥(用于接收端验证接收的数据);序列号(用于接收端数据包的排序和差错控制)和路由信息(用于本数据包的路由)。

  GRE只提供了数据包的封装,它没有防止网络侦听和攻击的加密功能。所以在实际环境中它常和IPsec一起使用,由IPsec为用户数据的加密,给用户提供更好的安全服务。

  IP安全协议

  IP安全协议(IPSec:IP Security)实际上是一套协议包而不是一个独立的协议,这一点对于我们认识IPSec是很重要的。从1995年开始IPSec的研究以来,IETF IPSec工作组在它的主页上发布了几十个Internet草案文献和12个RFC文件。其中,比较重要的有RFC2409 IKE(互连网密钥交换)、RFC2401 IPSec协议、RFC2402 AH验证包头、RFC2406 ESP加密数据等文件。

  IPSec安全体系包括3个基本协议:AH协议为IP包提供信息源验证和完整性保证;ESP协议提供加密机制;密钥管理协议(ISAKMP)提供双方交流时的共享安全信息。ESP和AH协议都有相关的一系列支持文件,规定了加密和认证的算法。最后,解释域(DOI)通过一系列命令、算法、属性和参数连接所有的IPSec组文件。

  隧道技术应用

  虚拟专用网络

  VPN是Internet技术迅速发展的产物,其简单的定义是,在公用数据网上建立属于自己的专用数据网。也就是说不再使用长途专线建立专用数据网,而是充分利用完善的公用数据网建立自己的专用网。它的优点是,既可连到公网所能达到的任何地点,享受其保密性、安全性和可管理性,又降低网络的使用成本。

  VPN依靠Internet服务提供商(ISP)和其他的网络服务提供商(NSP)在公用网中建立自己的专用“隧道”,不同的信息来源,可分别使用不同的“隧道”进行传输。

  新出台的标准ISE CHEIP6版保证用户数据的安全加密。由于用户对企业网传输个人数据很敏感,因此集成度更高的VPN技术不久将会流行起来。

  Linux 中的IP隧道

  为了在TCP/IP网络中传输其他协议的数据包,Linux采用了一种IP隧道技术。在已经使用多年的桥接技术中就是通过在源协议数据包上再套上一个IP协议帽来实现。

  利用IP隧道传送的协议包也包括IP数据包,Linux的IPIP包封指的就是这种情况。移动IP(Mobile-IP)和IP多点广播(IP-Multicast)是两个流行的例子。目前,IP隧道技术在VPN中也显示出极大的魅力。

  移动IP是在全球Internet上提供移动功能的一种服务,它允许节点在切换链路时仍可保持正在进行的通信。它提供了一种IP路由机制,使移动节点以一个永久的IP地址连接到任何链路上。与特定主机路由技术和数据链路层方案不同,移动IP还要解决安全性和可靠性问题,并与传输媒介无关。移动IP的可扩展性使其可以在整个互联网上应用。

  GPRS隧道协议

  随着隧道技术的发展,各种业务已经开始根据本业务的特点制定相应的隧道协议。GPRS(General Packet Radio Service)中的隧道协议GTP(GPRS Tunnel Protocol)就是一例。

  GPRS是GSM提供的分组交换和分组传输方式的新的承载业务,可以应用在PLMN(Public Land Mobile Network)内部或应用在GPRS网与外部互联分组数据网(IP、X.25)之间的分组数据传送,GPRS能提供到现有数据业务的无缝连接。它在GSM网络中增加了两个节点:服务GPRS支持节点(SGSN─serving GPRS support node)和网关GPRS支持节点(GGSN─Gateway GPRS support node)。

  SGSN是GPRS骨干网与无线接入网之间的接口,它将分组交换到正确的基站子系统(BSS)。其任务包括提供对移动台的加密、认证、会话(session)管理、移动性管理和逻辑链路管理。它也提供到HLR等数据库的连接。

  通过GPRS隧道协议可为多种协议的数据分组通过GPRS骨干网提供隧道。GTP根据所运载的协议需求,利用TCP或UDP协议来分别提供可靠的连接(如支持X.25的分组传输)和无连接服务(如IP分组)。