虚拟专用网(VPN)是一种利用公众网络资源来建立专用通信网络的技术,它可以使企业利用公众网的资源将分散在各地的办事机构和客户等动态地连接起来,使网络提供商、企业和最终客户三者都获利。VPN对于网络提供商和企业都蕴含着极大的商机,已经成为提供新一代电信业务的基石。但传统IP网络在实现VPN扩展性、安全性、治理性和服务质量保证等方面都有很大的先天缺陷,急需改造。
传统的帧中继和ATM网络提供的VPN虽然安全性较好,但也存在扩展性差、治理和维护复杂等缺陷。多协议标记交换(MPLS)技术的出现,使整个Internet的体系结构都发生了变化。采用MPLS技术实现VPN的技术方案将大大改善传统IP网络的缺陷,又能提供和帧中继或ATM网络一样的安全性保证,可以很好地适应VPN业务的需求。因此MPLSVPN技术被美国《Telecommunications》杂志评为2002年十大热门技术之一。本文将仔细讨论基于MPLS网络的二层VPN技术实施方案,并通过分析比较,给网络提供商和企业实现VPN业务提出一些建议。
一、VPN技术概述
1.VPN实现方式的技术分类
VPN有多种实现方式,具体可以分为用户治理的VPN解决方案(CPE-VPN)和提供商实施的VPN解决方案(PP-VPN)。CPE-VPN方案是用户自己设置、治理并维护VPN网关设备,通过公共IP网在各个分支机构和公司总部之间建立基于标准VPN隧道的连接,隧道协议通常采用二层隧道协议(L2TP)、点到点隧道协议(PPTP)、IPsec、IPinIP和通用路由选择封装(GRE)等,并且利用各种加密技术和网络地址转换(NAT)技术来保障数据传输的安全。
VPN隧道连接的建立与治理完全由用户自己负责,提供商不需要调整或改变网络的结构与性能。这种方式也就是通常所说的“自建VPN”方式。PP-VPN方案是指在提供商的公共数据网上设置VPN网关设备,用于专线接入用户或远程拨号接入用户。利用该网关设备,可以在全网范围内根据具体的VPN网络需求,通过隧道封装、虚拟路由器或MPLS等技术建立VPN,并且可以采用加密技术以保障数据传输的安全。VPN连接的建立完全由提供商负责,对用户透明。这种方式也就是通常所说的“外包VPN”方式。
按照VPN实现的网络层次进行分类,VPN可以分为二层VPN和三层VPN。二层VPN是指构成VPN的隧道封装在网络参考模型的第二层(即数据链路层)上来完成。客户将其三层路由映射到数据链路层的网络,提供商为客户的每个远端节点提供一个二层链路。这种方式下客户路由对提供商是透明的。传统的VPN大多是通过租用数据专线(帧中继或ATM)来组建的,都属于二层VPN。三层VPN是指在网络参考模型的第三层(即网络层)利用一些非凡的技术来实现企业用户各个节点之间的互连。这种方式下,提供商路由器参与客户三层路由,并治理与VPN相关的路由表,将路由发布给远端节点。
CPE-VPN方案的相应标准已经稳定并且已被实施,企业中具有许多专有的实施方案;PP-VPN方案中有关基于MPLS提供三层VPN的讨论也已经很多。因此,下面将集中讨论PP-VPN方案中基于MPLS网络提供的二层VPN技术。
2.MPLSVPN网络模型
MPLSVPN的网络模型,其中:客户边缘(CE:CustomerEdge)设备可以是路由器或二层交换机,它位于客户端,提供到网络提供商的接入;提供商边缘(PE:ProviderEdge)路由器主要维护与节点相关的转发表,与其他PE路由器交换VPN路由信息,使用MPLS网络中的标记交换路径(LSP)转发VPN业务,这就是MPLS网络中的标记边缘路由器(LER);提供商路由器(P)使用已建立的LSP对VPN数据进行透明转发,不维护与VPN有关的路由信息,这就是MPLS网络中的标记交换路由器(LSR)。
二、基于MPLS的二层VPN
过去,企业VPN网大多是通过租用数据专线(帧中继或ATM)来组建的二层VPN。提供二层VPN业务时,网络提供商只需为客户提供二层数据链路层的连通性,由客户来控制路由并可以灵活地选择三层协议,且客户VPN的安全性相对较高。但是对网络提供商来说,过去FR或ATM网络中的一般Internet流量和VPN流量是完全分离的,而且配置传统的二层VPN存在全网状连接的N2问题,因此这种传统的叠加式二层VPN为网络维护和治理带来了沉重的负担。目前,采用MPLS技术的网络已经被普遍认为是下一代核心网络的发展方向,而MPLS技术最主要的优势之一就是可以很好地支持VPN业务。网络提供商采用基于MPLS网络提供二层VPN技术,可以仅维护和治理单一的网络基础设施来同时提供二层VPN业务、三层VPN业务以及其他各种灵活的“尽力而为”或担保服务质量的IP业务,且VPN业务的配置实施将更加自动化。
基于MPLS网络的二层VPN技术实现方案目前主要有两种,分别是Kompella等提出的二层VPN(以下称Kompella二层VPN)和Martini等提出的二层VPN(以下称Martini二层VPN)。这两种方案的数据平面基本相似,都可以支持多种数据链路层技术,如帧中继、ATMAAL5CPCS模式、ATM透明信元模式、以太网、以太网VLAN、思科HDLC和PPP等,它们的主要差别在于控制平面协议的使用。下面分别讨论两种方案的具体实施过程。
1.Kompella二层VPN
Kompella方案在实施二层VPN时分为以下三步:
第一步,建立LSP。网络在PE路由器间事先建立LSP,可采用RSVP-TE,LDP或CR-LDP中的任一种方法。这些LSP可被用于多种业务,包括传统Internet、二层VPN、三层VPN等。这一步实际上是网络提供商实施MPLS的一个必要步骤,与二层VPN的实施相对独立。
第二步,在PE路由器上实施VPN信息。这一步实际上是控制平面建立VPN数据传输通道的过程,是实施二层VPN的要害。首先,在PE2路由器上为每一个连接到它的CE设备建立一个VPN转发表(VFT),这个转发表包括该CE设备的身份识别码(ID)、可连接CE设备的最大数目N、标记值范围(预留N个连续的标记)、使用边界网关协议(BGP)时的路由目标共同体标识或使用标记分发协议(LDP)时的VPNID,分配给CE-PE连接的一组本地子接口ID。其次,为每个CE设备配置VFT表(这里以配置CE3的VFT为例),为VFT中的每个子接口ID分配相应的标记,即要到达CE3的其他CE设备需要使用的VPN标记,如子接口数据链路连接标识(DLCI)=44时,VPN标记=300;然后使用BGP协议来实现成员自动发现和成员间链路自动分配,使用基于BGP路由目标共同体和目的地址的路由过滤来配置VPN拓扑。接下来,PE2利用BGP或LDP协议向拓扑中的其他VPN成员(如PE1)发布VPN连接表(VCT),其中VCT是VFT的子集,包含VFT中除本地子接口ID之外的前四项。收到VCT的PE1路由器更新自己VFT中相关的子接口ID列表,如子接口DLCI=33是用于CE1去往CE3的,则为该子接口添加其VPN标记=300和相应的PE1到PE2的LSP隧道的LSP标记101。类似地可以配置其他VPN信息。
第三步,实施VPN数据转发。数据沿第二步建立的VPN通道转发的具体过程。CE1发往CE3的数据以DLCI=33发往PE1,在PE1处查找相应的VFT,将数据的帧中继头去掉,压入两层标记(VPN标记和LSP标记),核心网中的P路由器象处理普通MPLS分组一样只是根据LSP标记进行交换,根本不知道VPN的存在,直到出口前,执行倒数第二跳弹栈(pop)。在PE2处再根据VPN标记,查找相应的VFT表,用子接口DLCI=44恢复二层数据格式并转发给CE3。
2.Martini二层VPN
Martini二层VPN方案与Kompella二层VPN方案类似,数据转发过程也采用两层标记堆栈来提高转发状态的可扩展性,只是在Martini二层VPN方案中内部标记被称为虚链路(VC)标记,而不是VPN标记,外部标记仍称为LSP隧道标记。在控制平面,Martini二层VPN方案采用LDP来更新相应的接口信息,建立VPN通道。为此不同于发布VCT表,Martini二层VPN方案定义了一个新的虚链路类型长度值(TLV)参数,在LDP的标记映射和标记撤销消息中携带。这个VCTLV中包括面向CE设备的接口参数、接口的最大传输单元(MTU)、连接ATM信元的最大数量等信息。另外Martini二层VPN方案定义了在两层标记和数据净荷之间可选的一个32bit的控制字选项,可用于排序、对小数据包的填充以及与数据链路层协议相关的控制位的传送。其他的控制和处理过程与Kompella二层VPN方案相同。
三、基于MPLS的二层VPN特点
从以上分析可以清楚地看出MPLS二层VPN具有以下特点。
1.优点
基于MPLS网络的二层VPN主要优点表现为高可扩展性和可治理性,同时保持了传统二层VPN的安全性,可实现平滑过渡。
·可扩展性
采用两层标记堆栈在LSP隧道上承载VPN数据,核心路由器维护的状态信息与二层VPN的数量无关。提供商路由器的转发信息库和路由信息库随客户节点数的增加而线性增加,PE路由器也仅维护少量的连接到其CE路由器的信息。
·配置简单
配置传统二层VPN的负担主要来自全网状连接的N2问题。假如有N个CE设备在帧中继VPN中,就必须保证N×N-1/2条PVC连接,在每一个CE设备处必须配置到其他CE设备的(N-1)个DLCI。而且,每新加入一个CE设备就必须配置N条新的DLCIPVC并且更新全部已有CE设备增加到新CE设备的DLCI。而这些工作在MPLS二层VPN方案中,只需要在新增CE设备所连接的PE路由器上进行配置,剩下的工作都由PE路由器自动实施。
·安全性
网络提供商无需关心路由表的扩展性或地址空间的重叠,因为每个二层VPN都使用独立的路由信息。同时,客户也获得了和传统二层VPN一样的路由安全和数据保密。
·可以从传统二层VPN平滑过渡
从客户角度来看,采用MPLS的二层VPN和传统VPN是没有区别的。对网络提供商来说,则可以将现有的帧中继和ATMVPN合并到一个统一的IP/MPLS网络平台上,从而灵活提供多种业务,并且配置简单,大大降低治理和维护费用。
2.缺点
MPLS二层VPN也存在一些问题。首先,在同一个VPN内部所有CE设备到达PE路由器的线路类型必须一致,即同是ATM或同是帧中继等。另外,采用这种方案的客户必须具有路由专业技能,具备自行维护VPN内部的路由和负责三层以上的业务连通性的能力。
四、结语
下一代网络是以业务驱动的网络,其中VPN业务是目前可知的最有发展潜力的一种业务应用。采用统一的MPLS核心网络,网络提供商可以在提供传统Internet接入的同时,很好地支持二层VPN和三层VPN业务。对于不同的客户需求,可以采用不同的技术方案。例如,大型企业对安全性要求较高,资金和技术都比较雄厚,采用基于MPLS网络的二层VPN将是最佳选择,它不仅能满足这类用户对安全性的要求,还降低了网络和用户方的工作量,可以建立任意的连接,具有很好的网络可扩展性。中小企业用户可以根据需求采用基于MPLS的三层VPN等技术,将路由等复杂的工作交给网络提供商去做,降低维护费用。网络提供商应尽量采用同一网络基础设施来灵活提供不同客户群需要的业务。