当前,由于侧重点不同,VPN可以分为两类:
一类侧重于网络层的信息保护,提供各种加密安全机制以便灵活地支持认证、完整性、访问控制和密码服务,保证信息传送过程中的保密性和不可篡改性。这类协议包括IPSec、PPTP、L2TP等等。其中,IPSec己经成为国际标准的协议,并得到几乎所有主流安全厂商的支持,如Cisco、Checkpoint、Netscreen等等。主要的应用领域为各种涉及信息安全和加密的应用,如金融、证券、地税、财政、工商、商检、信息中心、科委等各部门,上下级机构传送敏感的信息、建设安全OA系统、召开保密视频会议、保证业务流程中数据的机密性与完整性。
另一类VPN技术以MPLS技术为代表,主要考虑的问题是如何保证网络的服务质量(QoS)。通过定义资源预留协议、QoS协议和主机行为,来保证网络服务的水平,如时延、带宽等等。
VPN服务目的是在共享的基础网络设施上,向用户提供安全的网络连接。合理和实用的VPN解决方案应能够抗拒非法入侵、防范网络阻塞,而且应能保证安全、稳定的网络通信。同时,VPN还应该具有良好的可管理性、可伸缩性等特征。目前,MPLS VPN和IPSec VPN两种技术架构正逐渐被应用于新兴电讯服务的基础网络领域
在理论上,MPLS VPN,在RFC 2547定义了允许服务提供商使用其IP骨干网为用户提供VPN服务的一种机制。RFC 2547也被称为MPLS VPN,因为BGP被用来在提供商骨干网中发布VPN路由信息,而MPLS被用来将VPN业务从一个VPN站点转发至另一个站点。MPLS VPN能够利用公用骨干网络强大的传输能力,降低企业内部网络/Internet的建设成本,极大地提高用户网络运营和管理的灵活性,同时能够满足用户对信息传输安全性、实时性、宽频带和方便性的需要。
IPSec是由IETF 的IPSec 工作组定义的一种开放源代码框架。IPSec 的工作组对数据源认证、数据完整性、重播保护、密钥管理以及数据机密性等主要的有关方面定义了特定协议。IPSec通过激活系统所需要的安全协议、确定用于服务的算法及所要求的密钥来提供安全服务。由于这些服务在IP层提供,能被更高层次的协议所利用(如TCP、UDP、ICMP、BGP等),并且对于应用程序和终端用户来说是透明的,所以,应用和终端用户不需要更改程序和进行安全方面的专门培训,同时对现有网络的改动也最小。
2 MPLS VPN体系结构
RFC 2547中定义了三种类型的路由器:CE(用户网边缘路由器)在用户侧为用户所有,接收和分发用户网络路由,CE连接到提供商的PE(骨干网边缘路由器);PE处理VPN-IPv4路由,这是MPLS VPN的核心;位于骨干网核心的P(骨干网核心路由器)负责MPLS包的转发。
VPN是若干个用户站点的集合,而站点是VPN中一个孤立的IP网络,比如可以是公司总部或分支机构等。用户接入MPLS VPN的方式是每个站点提供一个或多个CE同骨干网PE的连接,每个站点在PE中由各个VRF(虚拟路由转发实例)来表示,它包含了与一个站点相关的路由表、转发表、接口、路由实例以及路由策略等。PE上的接口可以绑定到唯一一个VRF上,一个VRF也可以被绑定到多个接口上,但PE之间不能交换VRF信息。
当边缘设备在两个VPN站点使用相同的地址前缀,就会在路由解析时出现冲突,MPLS VPN使用VPN-IPv4地址族和MP-BGP(多协议扩展BGP)来解决这一问题。一个VPN-IPv4地址(12字节)是由8字节的RD(路由标示)和4字节的IPv4地址组成。这样就可以把相同的地址前缀翻译成不同的VPN-IPv4地址,也就可以分别为每个VPN站点生成与该VPN-IPv4地址对应的不同路由。
MPLS VPN中有两种重要的数据流,一种是进行路由分发和LSP(标记转发路径)确定的控制流,另一种是用户的VPN业务流。存在两种控制机制,一种负责不同PE间路由信息的交换,另一种负责建立通过提供商骨干网的LSP。
路由分发基于BGP的扩展共同体属性,以目的路由为基准进行过滤。当一条VPN路由插入到BGP中后,VPN路由目标扩展共同体属性就与其相关联,这些都来源于路由学习建立的VRF相关BGP出口列表。每一个PE也包含与每一个VRF对应的入口列表,入口列表类似于路由器中允许接入VRF的ACL定义。例如,PE中某一条特定VRF的入口列表包含目的接口A和C,但不包含B,则包含接口A和C的VPN路由能够接入VRF,B的则不能。
VPN 隧道的LSP的建立可以通过LDP或RSVP来完成。LDP在PE之间建立尽力而为的LSP,当VPN需要QoS时,则必须通过RSVP建立具有QoS能力的路由LSP。
路由器CE1向CE2所在的网络发送数据。首先转发到默认网关PE1,PE1在与站点1对应的VRF中进行路由查询,PE2广播的到站点2的路由对应标记5,同时查询BGP的下一跳路由,PE1查找到PE2的路由LSP在转发分组到特定分组之前需加标记100,即入口路由器P1在分组上加两个标记,栈底的5使PE2将分组转发到特定CE,栈顶的100用来在网络中转发分组。
分组在路由器P1处交换标记,用标记2替代100,P2作为LSP的倒数第2个路由器在转发分组到PE2前弹出栈顶标记,PE2利用栈底标记5来标识下一跳的CE,弹出标记5后将IPv4包转发到CE2。