摘要MPLS VPN技术是未来构建VPN的发展方向,越来越受到客户和运营商的青睐。BGP/MPLS VPN是第三层MPLS VPN技术。本文在对VRF、RD、RT几个重要概念进行解释之后,对BGP/MPLS VPN的数据转发过程和路由信息分发过程进行了较为详细的叙述。最后通过分析BGP/MPLS VPN的特点,分析了其市场前景。
关键词 多协议标签交换(MPLS) 虚拟局域网(VPN)
一、VPN技术概述
VPN(Virtual Private Network)是基于公网,利用隧道、加密等技术,为用户提供的虚拟专用网络,它给用户一种直接连接到私人局域网的感觉。
1. 传统VPN组网方式
传统VPN组网方式分成两种,一种是专线VPN,一种是基于客户端设备的VPN (CPE-based VPN)。
专线VPN使用DDN电路或者虚电路(如ATM PVC、FR PVC 等)连接客户的站点,形成一个叠加式的二层VPN网络。这种方式的VPN,成本高、建设周期长、网络拓展性不好,并且可管理性差。
CPE-based VPN:其VPN功能都集成在各种各样的CPE设备之中,运营商的公网为客户提供透明的数据传输。因为VPN是跨越不可信任的公网构建而成的,所以一般CPE-based VPN都采用隧道、加密、认证等方式来防止数据被复制、篡改和丢失。这种方式的VPN,其最大缺点就在于需要客户投入较大的人力、物力去管理和维护VPN,同时加密机制也会对设备的转发性能和网络的拓展性产生很大的影响。
2. Provider Provisioned VPN(PP-VPN):随着通信技术的不断发展,特别是MPLS技术的出现,基于运营商网络的VPN,即PP-VPN应运而生。PP-VPN整个操作是作为一个运营商的外包资源实现在网络上,而不是在客户端设备上。这种方式的VPN,降低了客户的投入,增加了运营商的收入,同时又具有较好的网络拓展性、可管理性,因而赢得了越来越多客户和运营商的青睐。基于MPLS的VPN就属于PP-VPN。
二、MPLS VPN简介
MPLS(Multi-Protocol Label Switch,多协议标签交换)是由IETF提出的新一代IP骨干网络交换标准,是一种集成式的IP Over ATM技术。它融合了IP路由技术灵活性和ATM交换技术简洁性的优点,在面向无连接的IP网络中引入了MPLS面向连接的属性,提供了类似于虚电路的标签交换业务。
MPLS VPN有三种类型的路由器,CE路由器、PE路由器和P路由器。其中,CE路由器是客户端路由器,为用户提供到PE路由器的连接;PE路由器是运营商边缘路由器,也就是MPLS网络中的标签边缘路由器 (LER),它根据存放的路由信息将来自CE路由器或标签交换路径(LSP)的VPN数据处理后进行转发,同时负责和其他PE路由器交换路由信息;P路由器是运营商网络主干路由器,也就是MPLS网络中的标签交换路由器(LSR),它根据分组的外层标签对VPN数据进行透明转发,P路由器只维护到PE路由器的路由信息而不维护VPN相关的路由信息。
根据PE路由器是否参与客户的路由,MPLS VPN分成Layer3 MPLS VPN和Layer2 MPLS VPN。其中Layer3 MPLS VPN遵循RFC2547bis标准,使用BGP在PE路由器之间分发路由信息,使用MPLS技术在VPN站点之间传送数据,因而又称为BGP/MPLS VPN。
三、BGP/MPLS VPN中几个重要的概念
1. VRF
BGP/MPLS VPN的安全举措之一就是路由隔离和信息隔离,它是通过VPN路由转发(VPN Routing && Forwarding:VRF)表和MPLS中的LSP来实现的。在PE路由器上,存在有多个VRF表,这些VRF表是和PE路由器上的一个或多个子接口相对应的,用于存放这些子接口所属VPN的路由信息。通常情况下,VRF表中只包含一个VPN的路由信息,但是当子接口属于多个VPN时,其所对应的VRF表中就包含了子接口所属的所有VPN的路由信息。
对于每一个VRF表,都具有路由区分符(Route Distinguisher:RD)和路由目标(Route Target:RT)两大属性。
2. RD
VPN中IP地址的规划是由客户自行制订的,因而有可能会出现客户选择在RFC1918中定义的私有地址作为他们的站点地址或者不同的VPN使用相同的地址域,也就是所谓的地址重叠现象。地址重叠的后果之一就是BGP无法区分来自不同VPN的重叠路由,从而导致某个站点不可达。
为了解决这个问题,BGP/MPLS VPN除了采用在PE路由器上使用多个VRF表的方法,还引入了RD的概念。RD具有全局唯一性,通过将8个字节的RD作为IPv4地址前缀的扩展,使不唯一的IPv4地址转化为唯一的VPN-IPv4地址。VPN-IPv4地址对客户端设备来说是不可见的,它只用于骨干网络上路由信息的分发。
RD和VRF表之间建立了一一对应的关系。通常情况下,对于不同PE路由器上属于同一个VPN的子接口,为其所对应的VRF表分配相同的RD,换句话说,就是为每一个VPN分配一个唯一的RD。但是对于重叠VPN,即某个站点属于多个VPN的情况,由于PE路由器上的某个子接口属于多个VPN,此时,该子接口所对应的VRF表只能被分配一个RD,从而多个VPN共享一个RD。
||||||
3. RT
RT的作用类似于BGP中扩展团体属性,用于路由信息的分发。它分成Import RT和Export RT,分别用于路由信息的导入、导出策略。当从VRF表中导出VPN路由时,要用Export RT对VPN路由进行标记;在往VRF表中导入VPN路由时,只有所带RT标记与VRF表中任意一个Import RT相符的路由才会被导入到VRF表中。RT使得PE路由器只包含和其直接相连的VPN的路由,而不是全网所有VPN的路由,从而节省了PE路由器的资源,提高了网络拓展性。
RT具有全局唯一性,并且只能被一个VPN使用。通过对Import RT和Export RT的合理配置,运营商可以构建不同拓扑类型的VPN,如重叠式VPN和Hub-and-spoke VPN。
四、BGP/MPLS VPN的体系结构
1. BGP/MPLS VPN的体系结构
体系结构主要分成数据面和控制面。数据面定义了VPN数据的转发过程;控制面则定义了LSP的建立和VPN路由信息的分发过程。在此,我们主要讨论一下数据的转发过程和路由信息的分发过程。
2. 数据转发过程
在MPLS网络中传输的VPN数据采用外标签(又称隧道标签)和内标签(又称VPN标签)两层标签栈结构,它们分别对应于两个层面的路由:域内路由和VPN路由。域内路由即MPLS中的LSP是由PE路由器和P路由器通过运行标签分发协议(Label Distribution Protocol:LDP)或资源预留协议(Resource Reservation Protocol:RSVP)建立的,它所产生的标签转发表用于VPN分组外层标签的交换。VPN路由是由PE路由器之间通过运行MP-iBGP建立的,该协议跨越骨干网的P路由器分发VPN标签形成VPN路由。
在PE路由器上除了VRF表外,还有MPLS路由表,该表用于存放VPN标签和子接口的对应关系,为出口PE路由器到CE路由器之间的数据转发提供依据。
具体数据转发过程如下:当CE路由器通过某个子接口将一个VPN分组发给入口PE路由器后,PE路由器查找该子接口对应的VRF表,从VRF表中得到VPN标签、初始外层标签以及到出口PE路由器的输出接口。当VPN分组被打上两层标签之后,就通过输出接口发送到相应LSP上的第一个P路由器。骨干网中P路由器根据外层标签逐跳转发VPN分组,直至最后一个P路由器弹出外层标签,将只含有VPN标签的分组转发给出口PE路由器。出口PE路由器根据VPN标签,查找MPLS路由表得到对应的输出接口,在弹出VPN标签后通过该接口将VPN分组发送给正确的CE路由器,从而实现了整个数据转发过程。特别的,当出口PE路由器和入口PE路由器是同一个路由器时,PE路由器对收到的VPN分组将不经过任何处理直接转发给目的CE路由器。
3. 路由信息分发过程
在MPLS VPN中,因为采用了两层标签栈结构,所以P路由器并不参与VPN路由信息的交互,客户路由器是通过CE和PE路由器之间、PE路由器之间的路由交互知道属于某个VPN的网络拓扑信息。
(1)CE-PE路由器之间通过采用静态/缺省路由,或采用IGP(RIPv2、OSPF)等动态路由协议,或建立EBGP连接等方式进行路由信息的交互。
当入口PE路由器从某个子接口接收到来自CE路由器的路由信息时,除了将该路由导入对应的VRF表,PE路由器还要为该路由分配一个VPN标签。该VPN标签用以识别接收路由信息的子接口,因此从同一个子接口接收到的路由信息将被分配同样的VPN标签,从而PE路由器可以将收到的VPN分组转发到合适的子接口。
(2)PE-PE之间通过采用MP-iBGP进行路由信息的交互。PE路由器通过维持iBGP网状连接或使用路由反射器来确保路由信息被分发给所有的PE路由器。
当入口PE路由器分发路由信息时,将同时携带路由所在VRF表的RD,即将路由的IPv4地址转化为VPN-IPv4地址。分发的具体路由信息包括该路由的VPN-IPv4地址前缀、下一跳BGP即入口PE路由器的VPN-IPv4地址(其中RD=0)、分配给该路由的VPN标签和该路由所在VRF表的Export RT。该路由信息我们称为带有标签的VPN-IPv4路由信息。
当出口PE路由器收到路由信息时,将查看该路由的RT,如果RT和其任意VRF表中任意一个Import RT相符时,就将该路由存入VPN-IPv4.RIB表。在进行路由选择之后,将最优路由中的VPN-IPv4地址转化成IPv4地址,即去掉地址中的RD,导入到相应的VRF表中。
五、跨越多个运营商网络的MPLS VPN的实现
在某个客户的MPLS/VPN跨越多个运营商网络的情况下,如果假定运营商所用地址域不重叠,那么可以通过下述方法来解决:①为了分发带有标签的IPv4路由信息,在边缘路由器上建立EBGP连接;②为了分发带有标签的VPN-IPv4路由信息,在属于不同运营商的PE路由器之间建立多跳的EBGP连接。值得注意的是,这种用于不同运营商之间的EBGP解决方案同样适用于一个具有多个AS值的运营商。
六、结束语
1. BGP/MPLS VPN的特点
①作为PP-VPN,提高了用户网络管理效率,降低了用户在网络管理方面投入的费用。
②解决了纯三层IP VPN所不能解决的地址重叠和重叠VPN的问题。
③具有较好的网络拓展性,解决了传统VPN在实现用户节点全网状连接时的N2问题。
④不需要采用加密、认证等手段,通过路由隔离、地址隔离等多种方式,实现与传统VPN相类似的安全保证。
⑤运营商勿需经过网络调整可以同时为用户提供VPN业务和一些相关的IP增值业务(如Internet接入,防火墙,NAT等)。
⑥支持用户各种Qos和Cos业务需求。
但是BGP/MPLS VPN也具有它的局限性,比如只能支持IP技术,不能支持IP多播应用等。
2. 市场前景
综上所述,BGP/MPLS VPN可以作为传统的基于二层专线的VPN、纯三层的IP VPN和隧道方式的VPN的替代技术,是未来构建VPN技术的发展方向。但是由于VPN路由存在于PE路由器上,由运营商代替用户维护路由,所以对于一些网络安全意识较高的高端用户,他们更倾向于使用传统的二层VPN技术或者新兴的Layer2 MPLS VPN。因此,目前BGP/MPLS VPN应定位于缺乏专门技术人员而想尽量节省资金的那些以接入互联网为主,其次才是通过互联网访问公司内部网络的中小规模的企业VPN用户。运营商在向BGP/MPLS VPN演进过程中,可采用循序渐进的方式,在保持原有业务的同时,将BGP/MPLS VPN业务作为传统VPN的补充,在积累一定运营经验后再进行全网的推广。