摘 要 从数据转发过程、VPN路由协议等方面阐述了MPLS VPN的原理,介绍了VRF、路由区分符和路由目标等重要概念,分析了路由目标在控制VPN拓扑方面的重要作用,总结了MPLS VPN的技术特点。
关键词 MPLS VPN VRF 路由目标
1 概述
传统的VPN通常建立在ATM/DDN/FR网上,随着IP网的大规模部署及ATM技术应用的衰落,在IP网上提供VPN业务被认为是一种非常经济的方式,随着MPLS技术的出现,基于MPLS的VPN技术发展迅速并已获得商用。根据RFC 2764中对IP VPN技术的分类,IP VPN可划分为:VLL(Virtual Leased Lines)、VPDN(Virtual Private Dial Networks)、VPRN(Virtual Private Routed Networks)和VPLS(Virtual Private LAN Segment)四种。MPLS VPN属于VPRN。
2 MPLS路由器的结构
MPLS路由器结构与传统的仅支持逐跳路由的路由器结构有所不同,MPLS中的标签交换路由器(LSR)结构如图1所示,图中实线为传统路由器部分,虚线为LSR增加的部分,LSR分为路由模块和转发模块,路由模块中的路由协议可以是OSPF或IS-IS,也可以是它们基于流量工程的扩展,MPLS信令可以是RSVP或CR-LDP,标签分组根据转发模块中的标签转发表来交换标签,IP转发表用于传统逐跳路由的第三层查找。MPLS通常采用拓扑驱动方式,路由器根据路由表项来建立LSP 。
3 MPLS VPN的数据转发过程
MPLS VPN中的路由器有三种:P路由器、PE路由器和CE路由器。P路由器为运营商主干路由器,负责VPN分组外层标签的交换;PE路由器为运营商边界路由器,存放着VRF表和全局路由表,VRF中存放着VPN路由,全局路由表中存放着运营商的域内路由;CE路由器为客户端路由器,由客户负责维护。当CE路由器将一个VPN分组转发给入口PE路由器后,PE路由器查找该VPN对应的VRF,从VRF中得到一个VPN标签和下一跳出口PE路由器的地址,VPN标签作为内层标签打在VPN分组上,根据下一跳出口PE路由器的地址可以在全局路由表中查出到达该PE路由器应打上的域内路由的标签,即外层标签,于是VPN分组被打上了两层标签,主干网的P路由器根据外层标签转发VPN分组,在最后一个P路由器处,外层标签弹出,VPN分组只剩下内层标签(此过程被称作次末级弹出机制),接着VPN分组被发往出口PE路由器。出口PE路由器根据内层标签查找到相应的出口后,将VPN分组上的内层标签删除,将不含标签的VPN分组转发给正确的CE路由器,CE路由器根据自己的路由表将分组转发到正确的目的地。
4 MP-iBGP 协议
在基于MP-iBGP协议的MPLS VPN体系中,存在两个层面的路由,即域内路由和VPN路由。 所有的PE路由器及P路由器上要运行主干网的域内路由(OSPF或IS-IS等),生成的路由表将触发主干网中LSP的建立(拓扑驱动方式),通过CR-LDP或RSVP等信令协议建立LSP,产生的标签转发表用于VPN分组外层标签的交换。PE路由器之间运行MP-iBGP协议,该协议跨越主干的P路由器在PE之间分发VPN标签,形成VPN路由,MP-iBGP发布的一条VPN路由包含的信息有:IPv4地址、路由区分符(RD)、路由目标(RT)、VPN标签和下一跳PE地址,其中RD用来消除IPv4地址的歧义,以重用IPv4地址;RT用来控制VRF的导入和导出策略,从而控制网络的连通和拓扑;下一跳PE地址是连接域内路由和VPN路由的纽带,在PE路由器上根据在VRF中得到的下一跳PE地址可以在全局路由表中查找到到达该地址应打上的外层标签。
由于运行MP-iBGP协议的PE路由器之间必须构成全网状网的会话(因为运行iBGP的路由器不能转发收到的iBGP路由,这种机制用于避免路由环路),因此在大规模的网络应用中存在可扩展性的问题,解决的方法是采用路由反射器或路由域联合,路由反射器允许路由器转发收到的iBGP路由,以避免全网状的会话;采用路由域联合可以将路由域划分成多个区域,这样,只有区域内的路由器需要构成全网状的连接,减少了域内iBGP路由器的邻接数,当然采用路由域联合需考虑对跨域连接的规划。
5 VPN路由转发实例(VRF)、路由区分符(RD)和路由目标(RT)的概念
5.1 VPN路由转发实例(VRF)
VPN IP路由表及相关的VPN IP转发表被统称为VPN路由和转发实例。在极端的情况下,可以为连接到PE路由器上的每个站点都分配一个VRF来存放VPN路由,但连接在同一PE路由器上的站点如果满足以下三个条件则可以共享一个VRF:(1)各站点属于同一个VPN; (2)路由信息相同; (3)站点之间允许相互直接通信。通常PE路由器上每个用户的端口与一个特定的VRF相关联,从该端口输入的VPN分组将根据各自对应的VRF查找其VPN标签和下一跳的出口PE路由器地址。VRF隔离了不同的VPN。
5.2 路由区分符(RD)
由于VPN数量巨大且不少原先的VPN用户不愿修改自身的IPv4地址,因此有必要允许不同的VPN客户使用相同的IPv4地址,对于不同VPN中相同的地址,采用RD可以实现IPv4地址的重用。PE路由器通过MP-iBGP协议通告站点的路由时,将同时携带各路由的RD,即将IPv4地址转化为VPN-IPv4地址,PE路由器在收到MP-iBGP通告的路由后,将查看该路由的RD,然后将VPN-IPv4地址转化成IPv4地址,即将地址中的RD去掉,将其导入到相应的VRF中。由于不同VPN被VRF隔离了,因此不同VPN中相同的IPv4地址,将被导入到不同的VRF中。在同一个VPN中,地址必须是唯一的;当多个VPN之间需要相互通信时(例如有公共的站点),则要求地址必须在多个VPN中是唯一的,此时多个VPN只能使用同一个RD。
5.3 路由目标(RT)
RT来控制VRF的导入和导出策略,以构成各种复杂的VPN拓扑。一个VPN有可能不止使用一个RT,RT的具体使用与VPN的拓扑结构密切相关, 对于全网状相接的VPN可以用一个RT,对于非全网状相连的VPN,一个VPN往往需要多个RT。当从PE导出VPN路由时,要用RT对VPN路由进行标记,在往VRF中导入路由时,可以使用多个RT,只要有一个VPN路由中附带的RT与导入路由中的任意RT相同,都将被导入到该VRF中。
6 通过RT控制网络的拓扑
下面的例子可以看出RT在控制VPN的连通性和拓扑结构中的重要作用。
VPN A和VPN B的逻辑结构如图2所示,它们拥有共同的站点C,这种结构被称作重叠VPN,VPN A中各站点之间均可以相互通信,VPN B中的两个站点B1、B2只能和中心站点C通信,对应这种拓扑结构。图3给出了各PE路由器上的VRF导入导出策略和包含的站点路由。由于两个VPN之间存在站点间的通信,因此这两个VPN中的站点地址必须唯一,它们可以使用一个统一的RD,以区分其他VPN中重用的地址。站点A2和A3同属一个VPN,其路由信息相同且可以相互通信,因此可以共用一个VRFA23;其他站点分别都有各自的VRF,本拓扑中共使用了三个RT,即100:1、100:2和100:3。PE2通过MP-iBGP协议通告A2、A3和B2的路由(因为这三个站点与其相连),其中A2和A3的路由标记为RT=100:1,B2的路由标记为RT=100:3;PE3通告C的路由,标记为RT=100:2;PE1收到这些通告后,发现VRF A1 允许导入标记RT=100:1和100:2的路由,于是PE1将A2、A3和C的路由导入到VRF A1中,而不会将B2的路由导入到VRF A1中;PE1上的VRF B1只允许导入RT=100:2的路由,因此VRF B1拒绝导入A2、A3和B2的路由而只导入C的路由;PE2和PE3上的VRF所包含的路由可以用类似的方法分析出来。最后看一看各VRF中所包含的路由,由于C站点可以访问任何一个站点,因此VRF C上具有所有站点的路由,当然,各站点也都可以访问C站点,因此C站点的路由也出现在所有的VRF中;B1、B2站点除了可以访问站点C外,不能访问其他任何站点,它们相互之间也不能访问,因此其VRF中只包含站点C的路由和自己的路由;站点A1、A2、A3和C可以两两互相访问,因此他们各自的VRF中均包含了A1、A2、A3和C的路由。从这个例子可以看出,利用RT可以非常方便地控制VPN的拓扑结构,构成各种结构的VPN。
7 MPLS VPN的技术特点
MPLS VPN技术具有如下四个方面的技术特点。
7.1 能提供QoS或CoS的保证
主干的MPLS网络可以通过RSVP以面向连接的方式提供集成服务,也可以通过划分类以面向无连接的方式提供差分服务,另外,还可以通过流量工程技术间接地为QoS的实现提供一定的资源保障。基于流的集成服务因其需要信令的支持造成可扩展性较差,不适合在骨干网上应用,MPLS骨干网上服务质量的保证主要依靠基于类的差分服务和流量工程来满足,另外在传统的尽力而为的IP网上的专线技术IPSec/GRE等也可以构建VPN,但这些技术无法保证QoS。
7.2 安全性较高
MPLS骨干不负责维护任何VPN路由,只进行标签交换,因此其安全性与二层的ATM技术相当。在PE路由器上,各VPN路由通过VRF来隔离,也具有良好的安全性。
7.3 可扩展性好
MPLS VPN的路由只存在于PE路由器上,PE路由器只保存与之相连的客户站点的VPN路由,骨干的P路由器无需任何VPN路由的知识,这大大减少了VPN路由的维护量。另外,MPLS VPN通过二层标签栈区分域内路由和VPN路由,使网络具有较好的可扩展性。
7.4 减轻客户的维护负担
MPLS VPN技术中的VPN路由存在于运营商的PE路由器上,由运营商替客户维护路由,其初衷是为了减轻用户的管理和维护负担,以利于将VPN业务向各类高中低端客户大规模推广,然而在网络安全性越来越重要的今天,这个最初看来是优点的初衷却成为发展高端大客户的障碍,通常银行等金融系统的客户更信赖ATM/FR/DDN等二层专线技术,他们不可能将与安全相关的路由功能让运营商来维护,因此三层的MPLS VPN技术很难吸引传统的大客户,这种情况最终导致了二层MPLS VPN的出现,二层的VPN只提供连接(类似传统的ATM/DDN/FR专线),VPN路由仍由客户维护,运营商与客户责任明确。仅提供二层连接的MPLS VPN技术更容易被高端客