目录
[BGP/MPLS IP VPN简介](#BGP/MPLS IP VPN简介)
[VPN Target](#VPN Target)
[BGP/MPLS IP VPN的路由发布](#BGP/MPLS IP VPN的路由发布)
[BGP/MPLS IP VPN的报文转发](#BGP/MPLS IP VPN的报文转发)
[Intranet VPN](#Intranet VPN)
[Extranet VPN](#Extranet VPN)
[Hub and Spoke](#Hub and Spoke)
[VPN FRR](#VPN FRR)
[VPN GR](#VPN GR)
BGP/MPLS IP VPN简介
定义
BGP/MPLS IP VPN是一种L3VPN(Layer 3 Virtual Private Network)。它使用BGP(Border Gateway Protocol)在服务提供商骨干网上发布VPN路由,使用MPLS(Multiprotocol Label Switch)在服务提供商骨干网上转发VPN报文。这里的IP是指VPN承载的是IP(Internet Protocol)报文。
BGP/MPLS IP VPN的基本模型如图1所示。
图1 BGP/MPLS IP VPN模型
BGP/MPLS IP VPN的基本模型由三部分组成:CE、PE和P。
-
CE(Customer Edge):用户网络边缘设备,有接口直接与服务提供商网络相连。CE可以是路由器或交换机,也可以是一台主机。通常情况下,CE"感知"不到VPN的存在,也不需要支持MPLS。
-
PE(Provider Edge):是服务提供商网络的边缘设备,与CE直接相连。在MPLS网络中,对VPN的所有处理都发生在PE上,对PE性能要求较高。
-
P(Provider):服务提供商网络中的骨干设备,不与CE直接相连。P设备只需要具备基本MPLS转发能力,不维护VPN信息。
PE和P设备仅由服务提供商管理;CE设备仅由用户管理,除非用户把管理权委托给服务提供商。
一台PE设备可以接入多台CE设备。一台CE设备也可以连接属于相同或不同服务提供商的多台PE设备。
目的
传统的VPN通过在所有站点间建立全连接隧道或者永久虚链路PVC(Permanent Virtual Circuit)的方式实现,不易维护和扩展,尤其是向已有的VPN加入新的站点时,需要同时修改所有接入此VPN站点的边缘节点的配置。
BGP/MPLS IP VPN基于对等体模型,这种模型使得服务提供商和用户可以交换路由,服务提供商转发用户站点间的数据而不需要用户的参与。相比较传统的VPN,BGP/MPLS IP VPN更容易扩展和管理。新增一个站点时,只需要修改提供该站点业务的边缘节点的配置。
BGP/MPLS IP VPN支持地址空间重叠、支持重叠VPN、组网方式灵活、可扩展性好,并能够方便地支持MPLS TE,成为在IP网络运营商提供增值业务的重要手段,因此得到越来越多的应用。
基本概念
Site
在介绍VPN时经常会提到"Site",Site(站点)的含义可以从下述几个方面理解:
-
Site是指相互之间具备IP连通性的一组IP系统,并且,这组IP系统的IP连通性不需通过运营商网络实现。
-
Site的划分是根据设备的拓扑关系,而不是地理位置,尽管在大多数情况下一个Site中的设备地理位置相邻。地理位置隔离的两组IP系统,如果它们使用专线互联,不需要通过运营商网络就可以互通,这两组IP系统也组成一个Site。
-
一个Site中的设备可以属于多个VPN,换言之,一个Site可以属于多个VPN。
-
Site通过CE连接到运营商网络,一个Site可以包含多个CE,但一个CE只属于一个Site。
根据Site的情况,建议CE设备选择方案如下:
如果Site只是一台主机,则这台主机就作为CE设备;
如果Site是单个子网,则使用交换机作为CE设备;
如果Site是多个子网,则使用路由器作为CE设备。
对于多个连接到同一运营商网络的Site,通过制定策略,可以将它们划分为不同的集合(set),只有属于相同集合的Site之间才能通过运营商网络互访,这种集合就是VPN。
地址空间重叠
VPN是一种私有网络,不同的VPN独立管理自己的地址范围,也称为地址空间(address space)。不同VPN的地址空间可能会在一定范围内重合,例如,VPN1和VPN2都使用10.110.10.0/24网段地址,这就发生了地址空间的重叠(address spaces overlapping)。
以下两种情况允许VPN使用重叠的地址空间:
- 两个VPN没有共同的Site
- 两个VPN有共同的Site,但此Site中的设备不与两个VPN中使用重叠地址空间的设备互访
VPN实例
在BGP/MPLS IP VPN中,不同VPN之间的路由隔离通过VPN实例(VPN-instance)实现。
PE为每个直接相连的Site建立并维护专门的VPN实例,VPN实例中包含对应Site的VPN成员关系和路由规则。具体来说,VPN实例中的信息包括:IP路由表、标签转发表、与VPN实例绑定的接口以及VPN实例的管理信息。VPN实例的管理信息包括RD(Route Distinguisher,路由标识符)、路由过滤策略、成员接口列表等。
VPN、Site、VPN实例之间的关系如下:
- VPN是多个Site的组合。一个Site可以属于多个VPN。
- 每一个Site在PE上都关联一个VPN实例。VPN实例综合了它所关联的Site的VPN成员关系和路由规则。多个Site根据VPN实例的规则组合成一个VPN。
- VPN实例与VPN不是一一对应的关系,VPN实例与Site之间存在一一对应的关系。
VPN实例也称为VPN路由转发表VRF(VPN Routing and Forwarding table)。PE上存在多个路由转发表,包括一个公网路由转发表,以及一个或多个VPN路由转发表。
公网路由转发表与VPN实例存在以下不同:
-
公网路由表包括所有PE和P设备的IPv4路由,由骨干网的路由协议或静态路由产生。
-
VPN路由表包括属于该VPN实例的所有Site的路由,通过CE与PE之间或者两个PE之间的VPN路由信息交互获得。
-
公网转发表是根据路由管理策略从公网路由表提取出来的转发信息;而VPN转发表是根据路由管理策略从对应的VPN路由表提取出来的转发信息。
可以看出,PE上的各VPN实例之间相互独立,并与公网路由转发表相互独立。
可以将每个VPN实例看作一台虚拟的设备,维护独立的地址空间并有连接到私网的接口。
RD和VPN-IPv4地址
传统BGP无法正确处理地址空间重叠的VPN的路由。假设VPN1和VPN2都使用了10.110.10.0/24网段的地址,并各自发布了一条去往此网段的路由。虽然本端PE通过不同的VPN实例可以区分地址空间重叠的VPN的路由,但是这些路由发往对端PE后,由于不同VPN的路由之间不进行负载分担,因此对端PE将根据BGP选路规则只选择其中一条VPN路由,从而导致去往另一个VPN的路由丢失。
PE之间使用MP-BGP(Multiprotocol Extensions for BGP-4,BGP-4的多协议扩展)来发布VPN路由,并使用VPN-IPv4地址来解决上述问题。
VPN-IPv4地址共有12个字节,包括8字节的路由标识符RD(Route Distinguisher)和4字节的IPv4地址前缀。
RD用于区分使用相同地址空间的IPv4前缀,增加了RD的IPv4地址称为VPN-IPv4地址(即VPNv4地址)。PE从CE接收到IPv4路由后,转换为全局唯一的VPN-IPv4路由,并在公网上发布。
RD的结构使得每个服务供应商可以独立地分配RD,但为了在CE双归属的情况下保证路由正常,必须保证PE上的RD全局唯一。
VPN Target
BGP/MPLS IP VPN使用BGP扩展团体属性-VPN Target(也称为Route Target)来控制VPN路由信息的发布。
每个VPN实例关联一个或多个VPN Target属性。有两类VPN Target属性:
- Export Target:本地PE从直接相连Site学到IPv4路由后,转换为VPN-IPv4路由,并为这些路由设置Export Target属性。Export Target属性作为BGP的扩展团体属性随路由发布。
- Import Target:PE收到其它PE发布的VPN-IPv4路由时,检查其Export Target属性。当此属性与PE上某个VPN实例的Import Target匹配时,PE就把路由加入到该VPN实例中。
在BGP/MPLS IP VPN网络中,通过VPN Target属性来控制VPN路由信息在各Site之间的发布和接收。VPN Export Target和Import Target的设置相互独立,并且都可以设置多个值,能够实现灵活的VPN访问控制,从而实现多种VPN组网方案。
例如:某VPN实例的Import Target包含100:1,200:1和300:1,当收到的路由信息的Export Target为100:1、200:1、300:1中的任意值时,都可以被注入到该VPN实例中。
基本原理
私网标签分配
在BGP/MPLS IP VPN中,PE通过MP-BGP发布私网路由给骨干网的其他相关的PE前,需要为私网路由分配MPLS标签(私网标签)。当数据包在骨干网传输时,携带私网标签。
PE上分配私网标签的方法有如下两种:
- 基于路由的MPLS标签分配:为VPN路由表的每一条路由分配一个标签(one label per route)。这种方式的缺点是:当路由数量比较多时,设备入标签映射表ILM(Incoming Label Map)需要维护的表项也会增多,从而提高了对设备容量的要求。
- 基于VPN实例的MPLS标签分配:为整个VPN实例分配一个标签,该VPN实例里的所有路由都共享一个标签。使用这种分配方法的好处是节约了标签。
注意:
MP-BGP为私网路由分配标签的前提是PE上使能MPLS功能。
私网路由交叉
两台PE之间通过MP-BGP传播的路由是VPNv4路由。当接收到VPNv4路由,PE先进行如下处理:
-
检查其下一跳是否可达。如果下一跳不可达,该路由被丢弃。
-
对于RR发送过来的VPNv4路由,如果收到的路由中cluster_list包含自己的cluster_id,则丢弃这条路由。
-
进行BGP的路由策略过滤,如果不通过,则丢弃该路由。
之后,PE把没有丢弃的路由与本地的各个VPN实例的Import Target属性匹配。VPNv4路由与本地VPN实例的Import VPN-Target进行匹配的过程称为私网路由交叉。
PE上有种特殊的路由,即来自本地CE的属于不同VPN的路由。对于这种路由,如果其下一跳直接可达或可迭代成功,PE也将其与本地的其他VPN实例的Import Target属性匹配,该过程称为本地交叉。例如:CE1所在的Site属于VPN1,CE2所在的Site属于VPN2,且CE1和CE2同时接入PE1。当PE1收到来自CE1的VPN1的路由时,也会与VPN2对应的VPN实例的Import Target属性匹配。为了能够将报文正确转发出去,BGP设备必须先找到一个直接可达的地址,通过这个地址到达路由表中指示的下一跳。在上述过程中,去往直接可达地址的路由被称为依赖路由,BGP路由依赖于这些路由指导报文转发。根据下一跳地址找到依赖路由的过程就是路由迭代。
公网隧道迭代
为了将私网流量通过公网传递到另一端,需要有一条公网隧道承载这个私网流量。因此私网路由交叉完成后,需要根据目的IPv4前缀进行路由迭代,查找合适的隧道(本地交叉的路由除外);只有隧道迭代成功,该路由才被放入对应的VPN实例路由表。将路由迭代到相应的隧道的过程叫做隧道迭代。
隧道迭代成功后,保留该隧道的标识符(Tunnel ID),供后续转发报文时使用。Tunnel ID用于唯一标识一条隧道。VPN报文转发时根据Tunnel ID查找对应的隧道,然后从隧道上发送出去。
私网路由的选择规则
经过路由交叉和隧道迭代的路由并不是全部被放入VPN实例路由表。从本地CE收到的路由和本地交叉路由也不是全部被放入VPN实例路由表。
对于到同一目的地址的多条路由,如果不进行路由的负载分担,按如下规则选择其中的一条:
-
同时存在直接从CE收到的路由和交叉成功后的同一目的地址路由,则优选从CE收到的路由。
-
同时存在本地交叉路由和从其他PE接收并交叉成功后的同一目的地址路由,则优选本地交叉路由。
对于到同一目的地址的多条路由,如果进行路由的负载分担,则:
-
优先选择从本地CE收到的路由。只有一条从本地CE收到的路由而有多条交叉路由的情况下,也只选择从本地CE收到的路由。
-
只在从本地CE收到的路由之间分担或只在交叉路由之间分担,不会在本地CE收到的路由和交叉路由之间分担。
-
负载分担的AS_PATH属性必须完全相同。
BGP/MPLS IP VPN的路由发布
基本BGP/MPLS IP VPN组网中,VPN路由信息的发布涉及CE和PE,P设备只维护骨干网的路由,不需要了解任何VPN路由信息。PE设备一般维护所有VPN路由。
VPN路由信息的发布过程包括三部分:本地CE到入口PE、入口PE到出口PE、出口PE到远端CE。完成这三部分后,本地CE与远端CE之间建立可达路由,VPN路由信息能够在骨干网上发布。
下面分别对这三部分进行介绍。
-
本地CE到入口PE的路由信息交换
CE与直接相连的PE建立邻居或对等体关系后,把本站点的IPv4路由发布给PE。CE与PE之间可以使用静态路由、RIP(Routing Information Protocol)、OSPF(Open Shortest Path First)、IS-IS(Intermediate System to Intermediate System)或BGP(Border Gateway Protocol)。无论使用哪种路由协议,CE发布给PE的都是标准的IPv4路由。
-
入口PE到出口PE的路由信息交换
-
PE从CE学到VPN路由信息后,存放到VPN实例中。同时,为这些标准IPv4路由增加RD,形成VPN-IPv4路由。
-
入口PE通过MP-BGP的Update报文把VPN-IPv4路由发布给出口PE。Update报文中携带Export VPN Target属性及MPLS标签。
-
出口PE收到VPN-IPv4路由后,在下一跳可达的情况下进行路由交叉、隧道迭代和路由优选,决定是否将该路由加入到VPN实例的路由表。被加入到VPN路由表的路由,本地PE为其保留如下信息以供后续转发报文时使用:
-
MP-BGP Update消息中携带的MPLS标签值
-
Tunnel ID
-
-
-
出口PE到远端CE的路由信息交换
远端CE有多种方式可以从出口PE学习VPN路由,包括静态路由、RIP、OSPF、IS-IS和BGP,与本地CE到入口PE的路由信息交换相同。此处不再赘述。值得注意的是,出口PE发布给远端CE的路由是普通IPv4路由。
下面以图1(PE-CE之间使用BGP,公网隧道为LSP)为例,说明将CE2的一条路由发送到CE1的过程。
图1 CE2->CE1的路由发布过程
-
在CE2的BGP IPv4单播地址族下引入IGP(Interior Gateway Protocol)路由。
-
CE2将该路由随EBGP的Update消息一起发布给Egress PE。Egress PE从连接CE2的接口收到Update消息,把该路由转化为VPN IPv4路由,加入对应的VPN实例路由表。
-
Egress PE 为该路由分配MPLS标签,并将标签和VPN IPv4路由信息加入MP-IBGP的Update消息中的NLRI字段中,Export-RT属性加入MP-BGP Update消息的扩展团体属性字段中,将Update消息发送给Ingress PE。
-
Ingress PE对该路由进行路由交叉。交叉成功则根据路由目的IPv4地址进行隧道迭代,查找合适的隧道。如果迭代成功,则保留该隧道的Tunnel ID和标签,并将路由加入该VPN实例路由表。
-
Ingress PE把该路由通过BGP Update消息发布给CE1。此时路由是普通IPv4路由。
-
CE1收到该路由后,把该路由加入BGP路由表。通过在IGP中引入BGP路由的方法可使CE1把该路由加入IGP路由表。
上面过程只是将CE2的路由发布给CE1。要实现CE1与CE2的互通,还需要将CE1的路由发布给CE2,其过程与上面的步骤类似,此处不再赘述。
BGP/MPLS IP VPN的报文转发
在基本BGP/MPLS IP VPN应用中(不包括跨域的情况),VPN报文转发采用两层标签方式:
- 第一层(公网)标签在骨干网内部进行交换,指示从PE到对端PE的一条LSP。VPN报文利用这层标签,可以沿LSP到达对端PE;
- 第二层(私网)标签在从对端PE到达CE时使用,指示报文应被送到哪个Site,或者更具体一些,到达哪一个CE。这样,对端PE根据内层标签可以找到转发报文的接口。
特殊情况下,属于同一个VPN的两个Site连接到同一个PE,这种情况下只需要知道如何到达对端CE。
以图2为例说明BGP/MPLS IP VPN报文的转发过程。图2是CE1发送报文给CE2的过程。其中,I-L表示内层标签,O-L表示外层标签。
图2 VPN报文转发过程
-
CE1发送一个VPN报文。
-
Ingress PE从绑定了VPN实例的接口上接收VPN数据包后进行如下操作:
-
先根据绑定的VPN实例的RD查找对应VPN的转发表。
-
匹配目的IPv4前缀,查找对应的Tunnel ID。
-
将报文打上对应的标签(I-L),根据Tunnel-ID找到隧道。
-
将报文从隧道发送出去。此例的隧道是LSP,则打上公网(外层)MPLS标签头(O-L1)。
接着,该报文携带两层MPLS标签穿越骨干网。骨干网的每台P设备都对该报文进行外层标签交换。
-
-
Egress PE收到该携带两层标签的报文,交给MPLS协议处理。MPLS协议将去掉外层标签(此例最后的外层标签是O-L2,但如果应用了倒数第二跳弹出,则此标签会在到达Egress PE之前的一跳弹出,Egress PE只能收到带有内层标签的报文)。
-
此时Egress PE就可以看见内层标签,发现该标签处于栈底,将内层标签剥离。
-
Egress PE将报文从对应出接口发送给CE2。此时报文是个纯IP报文。
这样,报文就成功地从CE1传到CE2了。CE2按照普通的IP转发过程将报文传送到目的地。
基本组网
Intranet VPN
最简单的情况下,一个VPN中的所有用户形成闭合用户群,相互之间能够进行流量转发,VPN中的用户不能与任何本VPN以外的用户通信。这种组网方式的VPN叫做Intranet VPN,其站点通常是属于同一个组织。
对于这种组网,需要为每个VPN分配一个VPN Target,作为该VPN的Export Target和Import Target,并且,此VPN Target不能被其他VPN使用。
Extranet VPN
如果一个VPN用户希望访问其他VPN中的某些站点,可以使用Extranet组网方案。
对于这种组网,如果某个VPN需要访问共享站点,则该VPN的Export Target必须包含在共享站点的VPN实例的Import Target中,而其Import Target必须包含在共享站点VPN实例的Export Target中。
Hub and Spoke
如果希望在VPN中设置中心访问控制设备,其它用户的互访都通过中心访问控制设备进行,可以使用Hub and Spoke组网方案。其中,中心访问控制设备所在站点称为Hub站点,其他用户站点称为Spoke站点。Hub站点侧接入VPN骨干网的设备叫Hub-CE;Spoke站点侧接入VPN骨干网的设备叫Spoke-CE。VPN骨干网侧接入Hub站点的设备叫Hub-PE,接入Spoke站点的设备叫Spoke-PE。
Spoke站点需要把路由发布给Hub站点,再通过Hub站点发布给其他Spoke站点。Spoke站点之间不直接发布路由。Hub站点对Spoke站点之间的通讯进行集中控制。
对于这种组网情况,需要设置两个VPN Target,一个表示"Hub",另一个表示"Spoke"。如图3所示。
图3 Hub&Spoke组网方案
各Site在PE上的VPN实例的VPN Target设置规则为:
-
Spoke-PE:Export Target为"Spoke",Import Target为"Hub"。任意Spoke-PE的Import Route Target属性不与其它Spoke-PE的Export Route Target属性相同;
-
Hub-PE:Hub-PE上需要使用两个接口或子接口。
-
一个用于接收Spoke-PE发来的路由,其VPN实例的Import Target为"Spoke";
-
另一个用于向Spoke-PE发布路由,其VPN实例的Export Target为"Hub"。
-
在图3中,Spoke站点之间的通信通过Hub站点进行(图中箭头所示为Site2的路由向Site1的发布过程):
-
Hub-PE能够接收所有Spoke-PE发布的VPN-IPv4路由;
-
Hub-PE发布的VPN-IPv4路由能够为所有Spoke-PE接收;
-
Hub-PE将从Spoke-PE学到的路由发布给Hub-CE,并将从Hub-CE学到的路由发布给所有Spoke-PE。因此,Spoke站点之间可以通过Hub站点互访;
-
任意Spoke-PE的Import Target属性不与其它Spoke-PE的Export Target属性相同。因此,任意两个Spoke-PE之间不直接发布VPN-IPv4路由,Spoke站点之间不能直接互访。
跨域VPN
随着MPLS VPN解决方案的广泛应用,服务的终端用户的规格和范围也在增长,在一个企业内部的站点数目越来越大,某个地理位置与另外一个服务提供商相连的需求变得非常的普遍,例如国内运营商的不同城域网之间,或相互协作的运营商的骨干网之间都存在着跨越不同自治域的情况。
一般的MPLS VPN体系结构都是在一个自治系统AS(Autonomous System)内运行,任何VPN的路由信息都是只能在一个AS内按需扩散,没有提供AS内的VPN信息向其他AS扩散的功能。因此,为了支持运营商之间的VPN路由信息交换,就需要扩展现有的协议和修改MPLS VPN体系框架,提供一个不同于基本的MPLS VPN体系结构所提供的互连模型------跨域(Inter-AS)的MPLS VPN,以便可以穿过运营商间的链路来发布路由前缀和标签信息。
RFC中提出了三种跨域VPN解决方案,分别是:
-
跨域VPN-OptionA(Inter-Provider Backbones Option A)方式:需要跨域的VPN在ASBR(AS Boundary Router)间通过专用的接口管理自己的VPN路由,也称为VRF-to-VRF;
-
跨域VPN-OptionB(Inter-Provider Backbones Option B)方式:ASBR间通过MP-EBGP发布标签VPN-IPv4路由,也称为EBGP redistribution of labeled VPN-IPv4 routes;
-
跨域VPN-OptionC(Inter-Provider Backbones Option C)方式:PE间通过Multi-hop MP-EBGP发布标签VPN-IPv4路由,也称为Multihop EBGP redistribution of labeled VPN-IPv4 routes。
跨域VPN-OptionA方式
-
跨域VPN-OptionA概述 跨域VPN-OptionA是基本BGP/MPLS IP VPN在跨域环境下的应用,ASBR之间不需要运行MPLS,也不需要为跨域进行特殊配置。这种方式下,两个AS的边界ASBR直接相连,ASBR同时也是各自所在自治系统的PE。两个ASBR都把对端ASBR看作自己的CE设备,将会为每一个VPN创建VPN实例,使用EBGP方式向对端发布IPv4路由。
在图1中,对于AS100的ASBR1来说,AS200的ASBR2只是它的一台CE设备;同样,对于ASBR2,ASBR1也只是一台接入的CE设备。图中,VPN LSP(Label Switched Path)表示私网隧道,LSP表示公网隧道。
图1 跨域OptionA的组网图
-
跨域VPN-OptionA的路由发布 在PE和ASBR之间运行MP-IBGP协议交换VPN-IPv4路由信息。两个ASBR之间可以运行普通的PE-CE路由协议(BGP或IGP多实例)或静态路由来交互VPN信息;但这是不同AS之间的交互,建议使用EBGP。
例如CE1将目的地址为10.1.1.1/24的路由发布给CE2,其流程如图2所示。其中,D表示目的地址,NH表示下一跳,L1和L2表示所携带的私网标签。。
图2 跨域VPN-OptionA的路由信息发布
-
跨域VPN-OptionA的报文转发以LSP为公网隧道的报文转发流程如图3所示。其中,L1和L2表示私网标签,Lx和Ly表示公网外层隧道标签。
图3 跨域VPN-OptionA的报文转发
-
跨域VPN-OptionA的特点
- 优点是配置简单:由于ASBR之间不需要运行MPLS,也不需要为跨域进行特殊配置。
- 缺点是可扩展性差:由于ASBR需要管理所有VPN路由,为每个VPN创建VPN实例。这将导致ASBR上的VPN-IPv4路由数量过大。并且,由于ASBR间是普通的IP转发,要求为每个跨域的VPN使用不同的接口,从而提高了对PE设备的要求。如果跨越多个自治域,中间域必须支持VPN业务,不仅配置量大,而且对中间域影响大。在需要跨域的VPN数量比较少的情况,可以优先考虑使用。
跨域VPN-OptionB方式
-
跨域VPN-OptionB概述 如图4所示,跨域VPN-OptionB中,两个ASBR通过MP-EBGP交换它们从各自AS的PE设备接收的标签VPN-IPv4路由。图中,VPN LSP表示私网隧道,LSP表示公网隧道。
图4 跨域VPN-OptionB的组网图
跨域VPN-OptionB方案中,ASBR接收本域内和域外传过来的所有跨域VPN-IPv4路由,再把VPN-IPv4路由发布出去。但MPLS VPN的基本实现中,PE上只保存与本地VPN实例的VPN Target相匹配的VPN路由。通过对标签VPN-IPv4路由进行特殊处理,让ASBR不进行VPN Target匹配把收到的VPN路由全部保存下来,而不管本地是否有和它匹配的VPN实例。
这种方案的优点是所有的流量都经过ASBR转发,使流量具有良好的可控性,但ASBR的负担重。可以同时使用BGP路由策略(如对RT的过滤),使ASBR上只保存部分VPN-IPv4路由。
-
跨域VPN-OptionB的路由发布以图5为例说明路由发布过程。本例中,CE1将10.1.1.1/24的路由发布给CE2。NH表示下一跳,L1、L2和L3表示所携带的私网标签。图中省略了公网IGP路由和标签的分配。 图5 跨域VPN-OptionB的路由信息发布
具体过程如下:
- CE1通过BGP、OSPF或RIP方式将路由发布给AS100内的PE1。
- AS100内的PE1先通过MP-IBGP方式把标签VPNv4路由发布给AS100的ASBR1,或发布给路由反射器RR(Route Reflector),由RR反射给ASBR1。
- ASBR1通过MP-EBGP方式把标签VPNv4路由发布给ASBR2。由于MP-EBGP在传递路由时,需要改变路由的下一跳,ASBR1向外发布时给这些VPNv4路由信息分配新标签。
- ASBR2通过MP-IBGP方式把标签VPNv4路由发布给AS200内的PE3,或发布给RR,由RR反射给PE3。当ASBR2向域内的MP-IBGP对等体发布路由时,将下一跳改为自己。
- AS200内的PE3通过BGP、OSPF或RIP方式将路由发布给CE2。
在ASBR1和ASBR2上都对VPNv4路由交换内层标签,域间的标签由BGP携带,因此ASBR之间不需要运行LDP(Label Distribution Protocol)或RSVP(Resource Reservation Protocol)等协议。
-
跨域VPN-OptionB的报文转发 在跨域VPN-OptionB方式的报文转发中,在两个ASBR上都要对VPN的LSP做一次交换。以LSP为公网隧道的报文转发流程如图6所示。其中,L1、L2和L3表示私网标签。Lx和Ly表示公网外层隧道标签。
图6 跨域VPN-OptionB的报文转发
-
跨域VPN-OptionB的特点
- 不同于OptionA,OptionB方案不受ASBR之间互连链路数目的限制。
- 局限性:VPN的路由信息是通过AS之间的ASBR来保存和扩散的,当VPN路由较多时,ASBR负担重,容易成为故障点。因此在MP-EBGP方案中,需要维护VPN路由信息的ASBR一般不再负责公网IP转发。
跨域VPN-OptionC方式
-
跨域VPN-OptionC概述 前面介绍的两种方式都能够满足跨域VPN的组网需求,但这两种方式也都需要ASBR参与VPN-IPv4路由的维护和发布。当每个AS都有大量的VPN路由需要交换时,ASBR就很可能阻碍网络进一步的扩展。
解决上述问题的方案是:ASBR不维护或发布VPN-IPv4路由,PE之间直接交换VPN-IPv4路由。
-
ASBR通过MP-IBGP向各自AS内的PE设备发布标签IPv4路由,并将到达本AS内PE的标签IPv4路由通告给它在对端AS的ASBR对等体,过渡AS中的ASBR也通告带标签的IPv4路由。这样,在入口PE和出口PE之间建立一条LSP;
-
不同AS的PE之间建立Multihop方式的EBGP连接,交换VPN-IPv4路由;
-
ASBR上不保存VPN-IPv4路由,相互之间也不通告VPN-IPv4路由。
图7为跨域VPN-OptionC的组网图,其中,VPN LSP表示私网隧道,LSP表示公网隧道。BGP LSP主要作用是两个PE之间相互交换Loopback信息,由两部分组成,例如图中从PE1到PE3方向建立BGP LSP1,PE3到PE1方向建立BGP LSP2。
图7 跨域VPN-OptionC方式组网图
为提高可扩展性,可以在每个AS中指定一个路由反射器RR,由RR保存所有VPN-IPv4路由,与本AS内的PE交换VPN-IPv4路由信息。两个AS的RR之间建立MP-EBGP连接,通告VPN-IPv4路由。
图8 采用RR的跨域VPN OptionC方式组网图
-
-
跨域VPN-OptionC的路由发布 跨域VPN-OptionC关键实现是公网跨域隧道的建立。例如在CE1中有一条10.1.1.1/24的路由信息,其发布流程如图9所示。D表示目的地址,NH表示下一跳,L3表示所携带的私网标签,L9、L10表示BGP LSP的标签。图中省略了公网IGP路由和标签的分配。
图9 跨域VPN-OptionC的路由信息发布
-
跨域VPN-OptionC的报文转发 以LSP为公网隧道的报文转发流程如图10所示。其中,L3表示私网标签,L10和L9表示BGP LSP的标签,Lx和Ly表示域内公网外层隧道标签。
图10 跨域VPN-OptionC的报文转发
报文从PE3向PE1转发时,需要在PE3上打上三层标签,分别为VPN路由的标签、BGP LSP的标签和公网LSP的标签。到ASBR2时,只剩下两层标签,分别是VPN的路由标签和BGP LSP的标签;进入ASBR1后,BGP LSP终结,之后就是普通的MPLS VPN的转发流程。
-
跨域VPN-OptionC的特点
- VPN路由在入口PE和出口PE之间直接交换,不需要中间设备的保存和转发。
- VPN的路由信息只出现在PE设备上,而P和ASBR只负责报文的转发,使得中间域的设备可以不支持MPLS VPN业务,只需支持MPLS转发,ASBR设备不再成为性能瓶颈。因此跨域VPN-OptionC更适合在跨越多个AS时使用。
- 更适合支持MPLS VPN的负载分担。
- 缺点是维护一条端到端的PE连接管理代价较大。
MCE
定义
MCE是Multi-VPN-Instance CE(多实例CE)的简称,具有MCE功能的设备可以在BGP/MPLS IP VPN组网应用中承担多个VPN实例的CE功能,减少用户网络设备的投入。
HoVPN
定义
HoVPN,即分层VPN,是Hierarchy of VPN的简称,是将PE的功能分布到多个PE设备上,多个PE承担不同的角色,并形成层次结构,共同完成一个PE的功能。因此,HoVPN有时也被称为分层PE(Hierarchy of PE,HoPE)。
VPN FRR
概述
在网络高速发展的今天,运营商网络发生故障时的端到端业务收敛时间已经成为承载网的重要指标。MPLS TE FRR(Fast Reroute)是最常用的快速倒换技术之一,它的基本思路是在两个PE设备之间建立端到端的TE隧道,并且为需要保护的主用LSP(标签交换路径)事先建立好备用LSP,当设备检测到主用LSP不可用时(节点故障或者链路故障),将流量倒换到备用LSP上,从而实现业务的快速倒换。
从MPLS TE FRR技术的原理看,对于作为TE隧道起始点和终结点的两个PE设备之间的链路故障和节点故障,MPLS TE FRR能够实现快速的业务倒换。但是这种技术不能解决作为隧道起始点和终结点的PE设备的故障,一旦PE节点发生故障,只能通过端到端的路由收敛、LSP收敛来恢复业务,其业务收敛时间与MPLS VPN内部路由的数量、承载网的跳数密切相关,VPN私网路由数量越大,收敛时间越长,导致大量的流量丢失。
VPN FRR利用基于VPN的私网路由快速切换技术,通过预先在远端PE中设置指向主用PE和备用PE的主备用转发项,并结合PE故障快速探测,旨在解决CE双归PE的MPLS VPN网络中,PE节点故障导致的端到端业务收敛时间长的问题。同时对于VPN FRR技术,其收敛时间只取决于远端PE故障的检测并修改对应隧道状态的时间,由此解决了私网路由数目越多,PE节点故障恢复时间越长的问题。
VPN GR
概述
VPN GR(Graceful Restart)是GR技术在VPN场景中的应用。VPN GR实现在承载VPN业务的设备发生主备倒换时VPN流量不中断。
实现VPN GR的目的:
-
减少主备倒换时路由震荡对全网的影响;
-
减少对重要VPN业务的影响;
-
减少PE或CE单点故障,提高VPN环境整网的可靠性。
隧道策略
VPN业务在选择隧道时,默认是选择LSP隧道,且不进行隧道负载分担,即只能选择一条LSP隧道。
当VPN业务需要优先选择TE隧道、指定特定的TE隧道,或者VPN业务有多条隧道可供选择,需要进行负载分担来充分利用网络资源,需要对VPN应用隧道策略。目前,隧道策略分为两种,且这两种方式不能同时配置。
- 隧道类型优先级策略:可指定选择隧道的顺序及负载分担的条数。其选择隧道的规则是:排列在前的隧道只要是Up的就会被选中,不管它是否已经被其他业务选中;排列在后的一般不会被选中,除非要求负载分担或者排在前面的隧道都是Down的。例如:对于到同一目的地的隧道策略,如果隧道策略选择CR-LSP和LSP,CR-LSP排在LSP前面,且负载分担条数为3,则选择隧道的规则为:
- 优先选择可用的CR-LSP隧道。如果可用的CR-LSP隧道超过3条,则直接返回前3条CR-LSP隧道;
- 如果CR-LSP隧道不足3条,则继续选择LSP隧道。假设已经选择1条可用的CR-LSP隧道,则此时最多可以选择2条LSP隧道,可用的LSP隧道不足2条,则根据实际情况返回找到的隧道。如果多于2条LSP隧道,则只选择前2条。
- 隧道绑定策略:指定TE隧道承载相应的VPN业务。对于同一个目的地址,支持指定多条TE隧道来进行负载分担。同时在指定的隧道都不可用的情况下,可以选择是否使用其他隧道,以最大程度保证流量不断。其选择隧道的规则如下:
- 指定的TE隧道组中有可用的隧道,则选中指定的可用TE隧道,并在指定的TE隧道中进行负载分担。
- 指定的TE隧道均不可用,缺省情况下不选择任何隧道;可以通过配置,在未指定的其他隧道中按照LSP、CR-LSP的顺序选择一条可用隧道。