隧道技术的实质是如何利用一种网络层的协议来传输另一种网络层的协议,其基本功能是封装和加密,主要利用隧道协议来实现。封装是构建隧道的基本手段。从隧道的两端来看,封装就是用来创建、维持和撤销一个隧道,来实现信息的隐蔽和抽象。而如果流经隧道的数据不加密,那么整个隧道就暴露在公共网络中,VPN的安全性和私有性就得不到体现。
网路隧道技术涉及了3种网络协议:网络隧道协议、隧道协议下面的承载协议和隧道协议所承载的被承载协议。
隧道协议作为VPN IP层的底层,将VPN IP分组进行安装封装;隧道协议同时作为公用IP网的一种特殊形式,将封装的VPN分组利用公网内的IP协议栈进行传输,以实现隧道内的功能。隧道协议在这个协议体系中起着承上启下的作用。
隧道协议存在多种可能的实现方式,按照工作的层次,可分为两类:一类是二层隧道协议,用于传输二层网络协议,它主要应用于构建拨号VPN(Access VPN);另一类是三层隧道协议,用于传输三层网络协议,它主要应用于构建内部网VPN(Intranet VPN)和外联网(VPN Extranet VPN)。
二层隧道协议
二层隧道协议指用公用网络来封装和传输二层(数据链路层)协议,此时在隧道内传输的是数据链路层的帧。
在点到点的二层链路上,最常用的二层协议是PPP协议,隧道协议实现中,首先将IP分组封装在二层的PPP协议帧中,也就是会所,先把各种网络协议封装在PPP中,再把整个数据包装入二层隧道协议中。这种双层封装方法形成的数据包在公用网络中传输。
第二层隧道协议具有简单易行的优点,但是它们的可扩展性不太好,而且提供内在的安全机制安全强度低,因此它们不支持企业和企业的外部客户以及供应商之间通信的保密性需求,不适合用来构建连接企业内部网和企业的外部客户和供应商的企业外部网VPN。
三层隧道协议
三层隧道协议是用公用网来封装和传输三层(网路层)协议(如IP、IPX、AppleTalk等),此时在隧道内传输的是网路层的分组。三层隧道协议并非是一种很新的技术,早已出现的RFC 1701 通路路由封装协议就是一个三层隧道协议。IETF制定的IP层加密标准协议IPSec 也是一个三层速到协议,利用IPSec(ESP/AN)的隧道模式构成的VPN隧道。