更新时间:2022-05-12 16:20
虚拟隧道协议隧道技术是一种通过公共网络的基础设施,在专用网络或专用设备之间实现加密数据通信的技术。通信的内容可以是任何通信协议的数据包。隧道协议将这些协议的数据包重新封装在新的包中发送。新的包头提供了路由信息,从而使封装的数据能够通过公共网络传递,传递时所经过的逻辑路径称为隧道。当数据包到达通信终点后,将被拆封并转发到最终目的地。隧道技术是指包括数据封装、传输和数据拆封在内的全过程。
第二层对应到数据链路(Data-Link)层,以帧(frame)为单元交换资料。PPTP、L2TP及Layer2Forwarding(L2F)都是第二层的隧道协议,这些协议都会将载量封装在「点对点通讯协议(PPP)」帧中,再以隧道协议封装,再通过网络传送。因为第二层隧道协议是以PPP通讯协议为基础,因此也就继承了一些很有用的功能,例如用户验证、动态地址指派、数据压缩、数据加密等。若再配合使用ExtensibleAuthenticationProtocol(EAP),就可以支持各种先进的用户验证方法,如一次性密码及智能卡等。
第三层对应到网络(Network)层,以数据包(packet)为资料交换单位。IP-over-IP及IPSec隧道模式,就是第三层隧道协议的范例,这些协议会先将IP数据包处理(如压缩、加密)后,封装上额外的IP标头,然后再将它们通过IP网络传送。
对于第二层隧道技术来说,隧道就像是一个session。隧道的两个端点必须同意该隧道的建立,并协商两者间的设定,例如地址的指派或加密、压缩的参数等。隧道必须具有建立、维护,然后终止的过程。
第三层隧道技术通常会假设所有关于设定方面的问题,并非在通讯过程中协商,而会在事前以手动方式处理。对于这些协议来说,可能就没有隧道维护阶段。
一但隧道建立之后,就可以开始传送数据。隧道的客户端或服务器端会使用隧道传输协议来准备要传送的资料,当资料到达另一端之后,就会移除隧道传输协议的标头,再将资料转送到目标网络上。如图1所示。
依隧道建立方式的不同,我们可以分为自愿型隧道及义务型隧道两种类型。
自愿型隧道(VoluntaryTunneling)
当用户使用隧道客户端软件,发出建立虚拟连接的请求,来连接到目标隧道服务器时,由于用户的计算机就是隧道的端点之一,且自愿作为隧道的客户端,所以称为自愿型隧道。为了达到此功能,客户端计算机上必须安装适当的隧道协议。
在拨接的情况下,客户端必须在建立隧道之前,先建立一个拨号连接到网络。这是最常见的隧道类型。最佳的例子,就是拨接到Internet的用户,他们必须先拨接到ISP连上Internet,才能建立通过Internet的隧道。
对于和LAN连接的计算机来说,客户端已经与网络连接,而该网络已提供将资料传送到隧道服务器端的服务。这种情况通常发生在公司LAN上的用户,公司LAN已连上Internet,因此他们不需要拨号连接,就能直接建立通过Internet的隧道。认为VPN需要拨号连接是很常见的错误观念。事实上它只需要IP网络,使用拨号连接到Internet,是准备建立隧道的预备动作,但并不属于隧道协议本身的一部份。
义务型隧道(CompulsoryTunneling)
某些具备VPN能力的远程访问服务器(RemoteAccessServer),可以被设定作为隧道的客户端,它与隧道服务器端间建立隧道,且义务为远程拨接用户服务,所以称为义务型隧道。用户的计算机不再是一个隧道端点,取而代之的是位于用户计算机及隧道服务器之间的远程访问服务器。用户计算机上不需要安装隧道客户端软件,也不需要隧道协议,因此我们也可以说,用户被迫(被迫与义务是同义的)使用远程访问服务器所代为建立的隧道。
随着支持隧道协议的不同,这种设备也有不同的名称,如PPTP的FrontEndProcessor(FEP)、L2TP的L2TPAccessConcentrator(LAC)或IPSec的IPSecurityGateway。
FEP可被设定成利用隧道来处理所有的拨接客户端。或者,FEP也可被设定成根据用户名称或目的地不同,利用隧道来处理个别的拨接客户端。FEP与隧道服务器之间的隧道,可以被多个拨接客户端所共享,因此该隧道会等到最后一位隧道用户中断连接之后才终止。