IP 隧道技术:基础篇
隧道技术是一种通过使用互联网络的基础设施在网络之间传递数据的方式。使用隧道传递的数据(或负载)可以是不同协议的数据桢(此字不正确)或包。隧道协议将这些其它协议的数据桢或包重新封装在新的包头中发送。新的包头提供了路由信息,从而使封装的负载数据能够通过互联网络传递。
被封装的数据包在隧道的两(电脑没声音)个端点之间通过公共互联网络进行路由。被封装的数据包在公共互联网络上传递时所经过的逻辑路径称为隧道。一旦到达网络终点,数据将被解包并转发到最终目的地。注意隧道技术是指包括数据封装,传输和解包在内的全过程。
隧道所使用的传输网络可以是任何类型的公共互联网络,本文主要以目前普遍使用Internet为例进行说明。此外,在企业网络同样可以创建隧道。隧道技术在经过一段时间的发展和完善之后,目前较为成熟的技术包括:
1.IP网络上的SNA隧道技术
当系统网络结构(System Network Architecture)的数据流通过企业IP网络传送时,SNA数据桢将被封装在UDP和IP协议包头中。
2.IP网络上的NovellNetWareIPX隧道技术
当一个IPX数据包被发送到NetWare服务器或IPX路由器时,服务器或路由器用UDP和IP包头封装IPX数据包后通过IP网络发送。另一端的IP-TO-IPX路由器在去除UDP和IP包头之后,把数据包转发到IPX目的地。
近几年不断出现了一些新的隧道技术,本文将主要介绍这些新技术。具体包括:
1.点对点隧道协议(PPTP)
PPTP协议允许对IP,IPX或NetBEUI数据流进行加密,然后封装在IP包头中通过企业IP网络或公共互联网络发送。
2.第2层隧道协议(L2TP)
L2TP协议允许对IP,IPX或NetBEUI数据流进行加密,然后通过支持点对点数据报传递的任意网络发送,如IP,X.25,桢中继或ATM。
3.安全IP(IPSec)隧道模式
IPSec隧道模式允许对IP负载数据进行加密,然后封装在IP包头中通过企业IP网络或公共IP互联网络如Internet发送。
隧道协议
为创建隧道,隧道的客户机和服务器双方必须使用相同的隧道协议。
隧道技术可以分别以第2层或第3层隧道协议为基础。上述分层按照开放系统互联(OSI)的参考模型划分。第2层隧道协议对应OSI模型中的数据链路层,使用桢作为数据交换单位。PPTP,L2TP和L2F(第2层转发)都属于第2层隧道协议,都是将数据封装在点对点协议(PPP)桢中通过互联网络发送。第3层隧道协议对应OSI模型中的网络层,使用包作为数据交换单位。IP overIP以及IPSec隧道模式都属于第3层隧道协议,都是将IP包封装在附加的IP包头中通过IP网络传送。
隧道技术的实现
对于象PPTP和L2TP这样的第2层隧道协议,创建隧道的过程类似于在双方之间建立会话;隧道的两(电脑没声音)个端点必须同意创建隧道并协商隧道各种配置变量,如地址分配,加密或压缩等参数。绝大多数情况下,通过隧道传输的数据都使用基于数据报的协议发送。隧道维护协议被用来作为管理隧道的机制。
第3层隧道技术通常假定所有配置问题已经通过手工过程完成。这些协议不对隧道进行维护。与第3层隧道协议不同,第2层隧道协议(PPTP和L2TP)必须包括对隧道的创建,维护和终止。
隧道一旦建立,数据就可以通过隧道发送。隧道客户端和服务器使用隧道数据传输协议准备传输数据。例如,当隧道客户端向服务器端发送数据时,客户端首先给负载数据加上一个隧道数据传送协议包头,然后把封装的数据通过互联网络发送,并由互联网络将数据路由到隧道的服务器端。隧道服务器端收到数据包之后,去除隧道数据传输协议包头,然后将负载数据转发到目标网络。
隧道协议和基本隧道要求
因为第2层隧道协议(PPTP和L2TP)以完善的PPP协议为基础,因此继承了一整套的特性。
数据传输阶段
一旦完成上述 4阶段的协商,PPP就开始在连接对等双方之间转发数据。每个被传送的数据报都被封装在PPP包头内,该包头将会在到达接收方之后被去除。如果在阶段1选择使用数据压缩并且在阶段4完成了协商,数据将会在被传送之间进行压缩。类似的,如果如果已经选择使用数据加密并完成了协商,数据(或被压缩数据)将会在传送之前进行加密。
点对点隧道协议(PPTP)
PPTP是一个第2层的协议,将PPP数据桢封装在IP数据报内通过IP网络,如Internet传送。PPTP还可用于专用局域网络之间的连接。RFC草案“点对点隧道协议”对PPTP协议进行了说明和介绍。该草案由PPTP论坛的成员公司,包括微软,Ascend,3Com,和ECI等公司在1996年6月提交至IETF。可在如下站点 http://www.ietf.org 参看草案的在线拷...桓鯬PTP数据包。
第2层转发(L2F)
L2F是Cisco公司提出隧道技术,作为一种传输协议L2F支持拨号接入服务器将拨号数据流封装在PPP桢内通过广域网链路传送到L2F服务器(路由器)。L2F服务器把数据包解包之重新注入(inject)网络。与PPTP和L2TP不同,L2F没有确定的客户方。应当注意L2F只在强http://.制隧道中有效。(自愿和强http://.制隧道的介绍参看“隧道类型”)。
第2层隧道协议(L2TP)
L2TP结合了PPTP和L2F协议。设计者希望L2TP能够综合PPTP和L2F的优势。
L2TP是一种网络层协议,支持封装的PPP桢在IP,X.25,桢中继或ATM等的网络上进行传送。当使用IP作为L2TP的数据报传输协议时,可以使用L2TP作为Internet网络上的隧道协议。L2TP还可以直接在各种WAN媒介上使用而不需要使用IP传输层。草案RFC“第2层隧道协议”对L2TP进行了说明和介绍。该文档于1998年1月被提交至IETF。可以在以下网站http://www.ietf.org 获得草案拷贝。
IP网上的L2TP使用UDP和一系列的L2TP消息对隧道进行维护。L2TP同样使用UDP将L2TP协议封装的PPP桢通过隧道发送。可以对封装PPP桢中的负载数据进行加密或压缩。图8所示为如何在传输之前组装一个L2TP数据包。
PPTP与L2TP
PPTP和L2TP都使用PPP协议对数据进行封装,然后添加附加包头用于数据在互联网络上的传输。尽管两(电脑没声音)个协议非常相似,但是仍存在以下几方面的不同:
IPSec隧道模式
IPSEC是第3层的协议标准,支持IP网络上数据的安全传输。本文将在“高级安全”一部分中对IPSEC进行详细的总体介绍,此处仅结合隧道协议讨论IPSEC协议的一个方面。除了对IP数据流的加密机制进行了规定之外,IPSEC还制定了IPoverIP隧道模式的数据包格式,一般被称作IPSEC隧道模式。一个IPSEC隧道由一个隧道客户和隧道服务器组成,两(电脑没声音)端都配置使用IPSEC隧道技术,采用协商加密机制。
为实现在专用或公共IP网络上的安全传输,IPSEC隧道模式使用的安全方式封装和加密整个IP包。然后对加密的负载再次封装在明文IP包头内通过网络发送到隧道服务器端。隧道服务器对收到的数据报进行处理,在去除明文IP包头,对内容进行解密之后,获的最初的负载IP包。负载IP包在经过正常处理之后被路由到位于目标网络的目的地。
IPSEC隧道模式具有以下功能和局限: