一. VPN技术分类
VPN的技术分两类,一类是基于MPLS(多协议标记交换)和L2TP(第二层隧道协议)等标准的VPN技术,一般用于ISP布署自己的骨干网络并对外提供VPN服务。它的侧重点在于在Internet上开出类似于专线性能的数据通道,信息安全方面考虑得很少或没有考虑,即使有ISP采用L2TP+IPSec的方案来提升VPN方案的安全性,也只能实现点到点的安全,而且不能提供细粒度的安全服务,不适合企业构造复杂的、安全性要求非常高的商业逻辑和应用。因此,在推动MPLS的VPN解决方案的同时,建议用户布署CPE(客户端设备,采用IPSec协议的VPN设备),以提升方案的安全性和灵活性。 另一种就是基于IPSec的VPN技术。它的侧重点在于安全保密,融合了加密、认证、密钥管理等密码技术。目前,企业构建自己的VPN网络时基本都是采用这种技术。
二.VPN的实现原理
有很多种方法可以实现VPN。目前大家经常看到的有MPLS、IPSEC、L2tp/pp2p、SSL等类型。
众所周知,由于公共IP的短缺,我们在组建局域网时,通常使用保留地址作为内部IP,这些保留地址Internet上是无法被路由的,所以在正常情况下我们无法直接通过Internet访问到在局域网内的主机。为了实现这一目的, 我们需要使用VPN隧道技术,其实现过程可以通过下面的图示说明:
1. 通常情况下,VPN网关采用双网卡结构,外网卡使用公共IP接入Internet; 2. 如果网络一的终端A需要访问网络二的终端B,其发出的访问数据包的目标地址为终端B的IP (内部IP);
3. 网络一的VPN网关在接收到终端A发出的访问数据包时对其目标地址进行检查,如果目标地址属于网络二的地址,则将该数据包进行封装,封装的方式根据所采用的VPN技术不同而不同,同时VPN网关会构造一个新的数据包(VPN数据包),并将封装后的原数据包作为VPN数据包的负载,VPN数据包的目标地址为网络二的VPN网关的外部地址;
4. 网络一的VPN网关将VPN数据包发送到Internet,由于VPN数据包的目标地址是网络二的VPN网关的外部地址,所以该数据包将被Internet中的路由正确地发送到网络二的VPN网关;
5. 网络二的VPN网关对接收到的数据包进行检查,如果发现该数据包是从网络一的VPN网关发出的,即可判定该数据包为VPN数据包,并对该数据包进行解包
VPN数据包的包头剥离,在将负载通VPN技术反向
处理还原成原始的数据包;
6. 网络二的VPN网关将还原后的原始数据包发送至目标终端,由于原始数据包的目标地址是终端B的IP,所以该数据包能够被正确地发送到终端B。在终端B看来,它收到的数据包就从终端A直接发过来的一样;
7. 从终端B返回终端A的数据包处理过程与上述过程一样,这样两个网络内的终端就可以相互通讯了。
通过上述说明我们可以发现,在VPN网关对数据包进行处理时,有两个参数对于VPN隧道通讯十分重要:原始数据包的目标地址(VPN目标地址)和远程VPN网关地址。根据VPN目标地址,VPN网关能够判断对哪些数据包需要进行VPN处理,对于不需要处理的数据包通常情况下可直接转发到上级路由;远程VPN网关地址则指定了处理后的VPN数据包发送的目标地址,即VPN隧道的另一端VPN网关地址。由于网络通讯是双向的,在进行VPN通讯时,隧道两端的VPN网关都必须知道VPN目标地址和与此对应的的远端VPN网关地址。
三.VPN
技术比较
VPN技术非常复杂,它涉及到通信技术、密码技术和现代认证技术,是一项交叉科学。目前,CPE-based VPN主要包含两种技术:隧道技术与安全技术。
一、隧道技术
-----隧道技术的基本过程是在源局域网与公网的接口处将数据(可以是ISO 七层模型中的数据链路层或网络层数据)作为负载封装在一种可以在公网上传输的数据格式中,在目的局域网与公网的接口处将数据解封装,取出负载。被封装的数据包在互联网上传递时所经过的逻辑路径被称为“隧道”。
-----要使数据顺利地被封装、传送及解封装,通信协议是保证的核心。目前VPN隧道协议有4种:点到点隧道协议PPTP、第二层隧道协议L2TP、网络层隧道协议IPSec以及SOCKS v5,它们在OSI 七层模型中的位置如表所示。各协议工作在不同层次,无所谓谁更有优势。但我们应该注意,不同的网络环境适合不同的协议,在选择VPN产品时,应该注意选择。
1.点到点隧道协议—PPTP
----- PPTP协议将控制包与数据包分开,控制包采用TCP控制,用于严格的状态查询及信令信息;数据包部分先封装在PPP协议中,然后封装到GRE V2协议中。目前,PPTP协议基本已被淘汰,不再使用在VPN产品中。
2.第二层隧道协议—L2TP
----- L2TP是国际标准隧道协议,它结合了PPTP协议以及第二层转发L2F协议的优点,能以隧道方式使PPP包通过各种网络协议,包括ATM、SONET和帧中继。但是L2TP没有任何加密措施,更多是和IPSec协议结合使用,提供隧道验证。
3.IPSec协议
----- IPSec协议是一个范围广泛、开放的VPN安全协议,工作在OSI模型中的第三层——网络层。它提供所有在网络层上的数据保护和透明的安全通信。IPSec协议可以设置成在两种模式下运行:一种是隧道模式,一种是传输模式。在隧道模式下,IPSec把IPv4数据包封装在安全的IP帧中。传输模式是为了保护端到端的安全性,不会隐藏路由信息。1999年底,IETF安全工作组完成了IPSec的扩展,在IPSec协议中加上了ISAKMP协议,其中还包括密钥分配协议IKE和Oakley。
-----一种趋势是将L2TP和IPSec结合起来: 用L2TP作为隧道协议,用IPSec协议保护数据。目前,市场上大部分VPN采用这类技术。
表 4种隧道协议在OSI七层模型中的位置
----优点:它定义了一套用于保护私有性和完整性的标准协议,可确保运行在TCP/IP协议上的VPN之间的互操作性。
----缺点:除了包过滤外,它没有指定其他访问控制方法,对于采用NAT方式访问公共网络的情况难以处理。
----适用场合:最适合可信LAN到LAN之间的VPN。
4.SOCKS v5协议
----SOCKS v5工作在OSI模型中的第五层——会话层,可作为建立高度安全的VPN的基础。SOCKS v5协议的优势在访问控制,因此适用于安全性较高的VPN。 SOCKS v5现在被IETF建议作为建立VPN的标准。
-----优点:非常详细的访问控制。在网络层只能根据源目的的IP地址允许或拒绝被通过,在会话层控制手段更多一些;由于工作在会话层,能同低层协议如IPV4、IPSec、PPTP、L2TP一起使用;用SOCKS v5的代理服务器可隐藏网络地址结构;能为认证、加密和密钥管理提供“插件”模块,让用户自由地采用所需要的技术。SOCKS v5可根据规则过滤数据流,包括Java Applet和Actives控制。