随着MPLS技术的成熟,其应用越来越流行,尤其是在VPN方面。通过运营商提供的VPN服务,将分布在各地的站点通过运营商的网络连接起来,避免了租用专线,节省了大量的成本。近年来,由于MPLS VPN业务的迅猛发展,企业的站点数量也在不断增长,企业间经常发生并购与整合的现象,使得其不同分支站点可能属于不同的运营商。因此,对于大型电信运营商来说,目前需要解决的问题是如何部署一个易扩展、易维护的跨域MPLS L3 VPN。
跨域VPN有以下两种最普遍的形式。一种情况是对于一个大型电信运营商网络,一般会为一个省分配一个 AS,要
求跨省为客户提供MPLS VPN业务;或者是在一个省级网络范围内,也经常为每个地市的城域网分配一个保留的AS,要求跨地市提供 MPLS VPN业务。另一种情况是VPN客户网络穿越了多个不同的运营商网络,运营商之间相互合作(特别是国际业务方面与国外运营商之间的合作)。
普通的MPLS VPN体系结构都是在一个AS内运行的,任何VPN的路由信息都是只能在一个AS内按需扩散的,没有提供AS内的VPN信息向其他AS扩散的功能。如下图所示,为了支持运营商不同AS之间的 VPN路由信息交换,就需要扩展现有的协议和修改MPLS VPN体系框架,提供一个不同于基本的MPLS VPN体系结构所提供的互连模型跨域(Inter-AS)的 MPLS VPN,以便可以穿过运营商间的链路来发布路由前缀和标签信息。
目前,业务主流的跨域MPLS VPN 的互通方式有三种,这种解决方案由RFC4364定义,它们分别如下:
在不同的情况下,这几种解决方案都有不同的优缺点,在实际的网络环境中,OptionB和 Option C也有不同的变种,这里只介绍它们的常规实现方案。
概述:
需要在PE和ASBR之间建立MP-INGP对等体关系,在各AS域中的ASBR上为每一个VPN创建一个VPN实例(实现不同VPN路由之间的隔离),并分别与一个物理接口或子接口进行绑定,然后使用普通的IGP或BGP路由方式(最好使用EBGP方式)向对端发布普通的单播IPv4路由,以实现ASBR间的三层互联。
我们只通过单方向来解释控制平面的工作过程,同时假设在站点Site1有一VPN路由Client1连接,如上图,现在需要把Client1这条路由从CE1穿过AS100和AS200传递到CE2:
报文转发原理:
通过前文的过程分析,我们从反向来分析转发平面的工作过程,即CE2要发送一个目的地为Client1的IP报文给CE1,如上图所示:
跨域VPN-OptionA的特点:
优点:配置简单,由于ASBR之间不需要运行MPLS,也不需要为跨域进行特殊配置。
缺点:可扩展性差,由于ASBR需要管理所有VPN路由,为每个VPN创建VPN实例。这将导致ASBR上的VPN-IPv4路由数量过大。并且,由于ASBR间是普通的IP转发,要求为每个跨域的VPN使用不同的接口,从而提高了对PE设备的要求。如果跨越多个自治域,中间域必须支持VPN业务,不仅配置量大,而且对中间域影响大。在需要跨域的VPN数量比较少的情况,可以优先考虑使用。
ASBR间通过MP-EBGP发布标签VPN-IPv4路由,也称为EBGP redistribution of labeled VPN-IPv4 routes。
跨域VPN-OptionB方案中,ASBR接收本域内和域外传过来的所有跨域VPN-IPv4路由,再把VPN-IPv4路由发布出去。但MPLS VPN的基本实现中,PE上只保存与本地VPN实例的VPN Target相匹配的VPN路由。因此,可以在ASBR上配置不做RT过滤来传递路由,因此无需在ASBR创建VPN实例,无需绑定任何接口。
可以在网络中叠加部署RR设备,专门负责客户侧VPN路由的传递。
路由发布原理:
一、无RR的场景:
我们只通过单方向来解释控制平面的工作过程,同时假设在站点Site1有一VPN路由Client1连接:
二、带RR的场景:
当VPN实例数量较多时,可以部署专门的RR设备。如图,AS内的PE和ASBR设备只与RR设备建立MP-BGP邻居关系,由RR负责路由的反射传递,PE和ASBR之间无需建立BGP邻居。
RR只负责控制平面的VPNv4路由传递,数据转发时,流量不经过RR。
数据转发原理:
通过上文的过程分析,我们从反向来分析转发平面的工作过程:
optionB的特点:
优点:不同于OptionA,OptionB方案不受ASBR之间互连链路数目的限制。
缺点:VPN的路由信息是通过AS之间的ASBR来保存和扩散的,当VPN路由较多时,ASBR负担重,容易成为故障点。因此在MP-EBGP方案中,需要维护VPN路由信息的ASBR一般不再负责公网IP转发。
PE或RR间通过Multi-hop MP-EBGP发布标签VPN-IPv4路由,也称为Multihop EBGP redistribution of labeled VPN-IPv4 routes。
跨域VPN-OptionC中,ASBR通过MP-IBGP向各自AS内的PE设备发布标签IPv4路由,并将到达本AS内PE的标签IPv4路由通告给它在对端AS的ASBR对等体,过渡自治系统中的ASBR也通告带标签的IPv4路由。这样,在入口PE和出口PE之间建立一条BGP LSP。
不同AS的PE之间建立Multihop方式的EBGP连接,交换VPNv4路由。ASBR上不保存VPN-IPv4路由,相互之间也不通告VPNv4路由。
当网络规模较大时,可以在方案中部署RR设备,专门负责用户侧路由的传递。即,PE与RR建立MP-IBGP邻居,RR1与RR2建立MP-EBGP邻居,路由传递为PE1-RR1-RR2-PE2,PE之间无需直接建立BGP邻居关系,当VPN数量较多时,引入RR的方式可以减轻PE的工作负担。
在此方案中,ASBR不再维护或是通告VPNv4路由(所以如上图,此处将ASBR-PE路由器改名为ASBR)。ASBR只需要维护所有去往PE的带标签路由,并通过EBGP通告给对端AS。在transit AS内的ASBR也同样需要使用EBGP通告这些带标签的IPv4路由。这样在不同AS的PE之间给会建立一条LSP,从而可以建立起PE之间的多跳MP-EBGP连接并进行VPNv4路由的通告。
如果每个AS的P路由器都能够知道去往其他AS的PE路由器的路由,那情况会比较简单。但是如果P不知道,那么当PE收到从CE收到VPN数据时,就要加上三层标签,底层标签是由对端PE分配的与VPN路由相关联的VPN标签,中间的标签是ASBR分配的与去往对端PE的路由相关联的标签,外层标签则是与去往下一跳ASBR的路由相关联的标签。
为了进一步扩展性能,多跳MP-EBGP会话可以建立在不同的AS的VPN RR之间。并且当这些VPN RR通告VPNv4路由时不改变下一跳信息。PE只与VPN RR建立MP-iBGP会话。
注意:为了方便,如上图,使用的是对称的LSP进行示意,但是实际上在控制平面和数据平面的工作过程上,两端AS的LSP结构是不对称的。下文将会详细讲解。
对于建立BGP隧道的理解:
由于P设备没有到达对端PE的路由条目,在收到了MP-BGP传递的条目时,并不知道该如何发给对端AS域的设备(下一跳是对端PE的地址),导致路由条目被丢弃,为了防止这个情况发生,需要建立一条从PE源设备到目的AS的ASBR的隧道,通过这条隧道帮助转发MP-BGP路由报文,隧道目的地址也就是本AS的ASBR。这样内部便有了一个新的目的地址代替原来的目的地址给P设备建立MPLS隧道(也就是BGP隧道下一跳,本端ASBR的地址),这样便能够保证报文能够正常到达。BGP隧道建立的过程,是由ASBR发送本端的MP-BGP对应IP地址的标签到对端ASBR,再到PE,完成隧道的建立。
报文发送过程:
一、无RR场景:
我们只通过单方向来解释控制平面的工作过程,同时假设在站点Site1有一VPN路由Client1连接,并且P1与P2路由器都没有去往另一个AS的PE的路由,以上图为例:
二、带RR场景:
VPNv4邻居:本端PE只与本端RR建立VPNv4邻居,本端RR与对端RR建立VPNv4邻居,实现了跨域VPN路由的传递。
ASBR,P,PE同RR建立BGP单播IPv4邻居:
带RR场景中,RR负责控制平面IPv4的路由反射、VPNv4路由的传递,转发平面的流量不经过RR。
流量转发过程:
通过上文的过程分析,我们从反向来分析转发平面的工作过程:
跨域VPN-OptionC方案二与方案一大体相似。不同之处在于,方案一中,需要使用三层标签,即VPN label,BGP LSP, Tunnel LSP来承载流量,而方案二只需要两层。
方案一,ASBR在收到对端ASBR发来的BGP标签路由后,需要配置策略产生一个新的标签并发布给AS内的PE或者RR设备,以建立一条完整的BGP LSP。方案二中,ASBR需要配置MPLS触发为BGP标签路由分发标签,因此在AS内的PE上可以看到去往对端PE的LDP LSP,而非BGP LSP。同理,方案二支持RR设备的部署。
在此方案中,ASBR不再维护或是通告VPNv4路由。ASBR只需要维护所有去往PE的带标签路由,并通过EBGP通告给对端ASBR。
对端ASBR收到带BGP标签路由后,MPLS LDP会触发为该BGP标签路由产生标签,并在AS内的LDP邻居间传递。因此,在PE上可以看到去往对端PE的LDP LSP。
为了进一步扩展性能,多跳MP-EBGP会话可以建立在不同的AS的VPN RR之间,本AS内的PE只需要与RR建立MP-IBGP即可。这些VPN RR通告VPNv4路由时不改变下一跳信息,进而当对端PE转发流量时,可以迭代至正确的隧道。
报文发送过程:
一、无RR场景:
我们只通过单方向来解释控制平面的工作过程,同时假设在站点Site1有一VPN路由Client1连接,并且P1与P2路由器都没有去往另一个AS的PE的路由,以上图为例:
二、带RR场景:
VPNv4邻居:
本端PE只与本端RR建立VPNv4邻居,本端RR与对端RR建立VPNv4邻居,实现了跨域VPN路由的传递。带RR场景中,RR只负责控制平面VPNv4路由的传递,转发平面的流量不经过RR。
通过上文的过程分析,我们从反向来分析转发平面的工作过程:
为什么optionC方式2只有两层标签:
因为P设备在方式2中已经有对端AS的路由了,能够直接建立MPLS VPN隧道,这个隧道就相当于一个跨AS的长隧道,由两个短AS的短隧道+ASBR之间的BGP标签隧道组成。既然是一个长隧道,所以每一台设备之间都需要协议交互连接,而两个AS之间没有直接启用MPLS LDP协议分发标签,这显然是不行的,所以需要通过ASBR之间的BGP标签进行链接,所以在整个隧道的上游(按照流量走向划分),其隧道为了和下游联动,必须将LDP于BGP协议衔接,分配能够正常衔接的标签。
OptionC方式的特点:
优点:
缺点:
维护一条端到端的PE连接管理代价较大。