MPLS L3VPN技术介绍


MPLS L3VPN

MPLS L3VPN概述

MPLS L3VPN是服务提供商VPN解决方案中一种基于PEL3VPN技术,它使用BGP在服务提供商骨干网上发布VPN路由,使用MPLS在服务提供商骨干网上转发VPN报文。

MPLS L3VPN组网方式灵活、可扩展性好,并能够方便地支持MPLS QoSMPLS TE,因此得到越来越多的应用。

MPLS L3VPN模型由三部分组成:CEPEP

l              CECustomer Edge)设备:用户网络边缘设备,有接口直接与SPService Provider,服务提供商)相连。CE可以是路由器或交换机,也可以是一台主机。CE“感知”不到VPN的存在,也不需要必须支持MPLS

l              PEProvider Edge)路由器:服务提供商边缘路由器,是服务提供商网络的边缘设备,与用户的CE直接相连。在MPLS网络中,对VPN的所有处理都发生在PE上。

l              PProvider)路由器:服务提供商网络中的骨干路由器,不与CE直接相连。P设备只需要具备基本MPLS转发能力。

1是一个MPLS L3VPN组网方案的示意图。

图 1 MPLS L3VPN组网

 

CEPE的划分主要是根据SP与用户的管理范围,CEPE是两者管理范围的边界。

CE设备通常是一台路由器,当CE与直接相连的PE建立邻接关系后,CE把本站点的VPN路由发布给PE,并从PE学到远端VPN的路由。CEPE之间使用BGP/IGP交换路由信息,也可以使用静态路由。

PECE学到CE本地的VPN路由信息后,通过BGP与其它PE交换VPN路由信息。PE路由器只维护与它直接相连的VPN的路由信息,不维护服务提供商网络中的所有VPN路由。

P路由器只维护到PE的路由,不需要了解任何VPN路由信息。

当在MPLS骨干网上传输VPN流量时,入口PE做为Ingress LSRLabel Switch Router,标签交换路由器),出口PE做为Egress LSRP路由器则做为Transit LSR

MPLS L3VPN的基本概念

1. Site

在介绍VPN时经常会提到“Site”,Site(站点)的含义可以从下述几个方面理解:

l              Site是指相互之间具备IP连通性的一组IP系统,并且,这组IP系统的IP连通性不需通过服务提供商网络实现;

l              Site的划分是根据设备的拓扑关系,而不是地理位置,尽管在大多数情况下一个Site中的设备地理位置相邻;

l              一个Site中的设备可以属于多个VPN,换言之,一个Site可以属于多个VPN

l              Site通过CE连接到服务提供商网络,一个Site可以包含多个CE,但一个CE只属于一个Site

对于多个连接到同一服务提供商网络的Sites,通过制定策略,可以将它们划分为不同的集合(set),只有属于相同集合的Sites之间才能通过服务提供商网络互访,这种集合就是VPN

2. 地址空间重叠

VPN是一种私有网络,不同的VPN独立管理自己使用的地址范围,也称为地址空间(Address Space)。

不同VPN的地址空间可能会在一定范围内重合,比如,VPN1VPN2都使用了10.110.10.0/24网段的地址,这就发生了地址空间重叠(Overlapping Address Spaces)。

3. VPN实例

MPLS VPN中,不同VPN之间的路由隔离通过VPN实例(VPN-instance)实现。

PE为每个直接相连的Site建立并维护专门的VPN实例。VPN实例中包含对应SiteVPN成员关系和路由规则。如果一个Site中的用户同时属于多个VPN,则该SiteVPN实例中将包括所有这些VPN的信息。

为保证VPN数据的独立性和安全性,PE上每个VPN实例都有相对独立的路由表和LFIBLabel Forwarding Information Base,标签转发表)。

具体来说,VPN实例中的信息包括:标签转发表、IP路由表、与VPN实例绑定的接口以及VPN实例的管理信息。VPN实例的管理信息包括RDRoute Distinguisher,路由标识符)、路由过滤策略、成员接口列表等。

4. VPN-IPv4地址

传统BGP无法正确处理地址空间重叠的VPN的路由。假设VPN1VPN2都使用了10.110.10.0/24网段的地址,并各自发布了一条去往此网段的路由,BGP将只会选择其中一条路由,从而导致去往另一个VPN的路由丢失。

PE路由器之间使用MP-BGP来发布VPN路由,并使用VPN-IPv4地址族来解决上述问题。

VPN-IPv4地址共有12个字节,包括8字节的RD4字节的IPv4地址前缀,如 2所示。

图 2 VPN-IPv4地址结构

 

PECE接收到普通IPv4路由后,需要将这些私网VPN路由发布给对端PE。私网路由的独立性是通过为这些路由附加RD实现的。

SP可以独立地分配RD,但必须保证RD的全局唯一性。这样,即使来自不同服务提供商的VPN使用了同样的IPv4地址空间,PE路由器也可以向各VPN发布不同的路由。

建议为PE上每个VPN实例配置专门的RD,以保证到达同一CE的路由都使用相同的RDRD0VPN-IPv4地址相当于全局唯一的IPv4地址。

RD的作用是添加到一个特定的IPv4前缀,使之成为全局唯一的VPN IPv4前缀。

RD或者是与自治系统号(ASN)相关的,在这种情况下,RD是由一个自治系统号和一个任意的数组成;或者是与IP地址相关的,在这种情况下,RD是由一个IP地址和一个任意的数组成。

RD有三种格式,通过2字节的Type字段区分:

l              Type0时,Administrator子字段占2字节,Assigned number子字段占4字节,格式为:16bits自治系统号:32bits用户自定义数字。例如:100:1

l              Type1时,Administrator子字段占4字节,Assigned number子字段占2字节,格式为:32bitsIPv4地址:16bits用户自定义数字。例如:172.1.1.1:1

l              Type2时,Administrator子字段占4字节,Assigned number子字段占2字节,格式为:32bits自治系统号:16bits用户自定义数字,其中的自治系统号最小值为65536。例如:65536:1

为保证RD的全局唯一性,建议不要将Administrator子字段的值设置为私有AS号或私有IP地址。

5. VPN Target属性

MPLS L3VPN使用BGP扩展团体属性——VPN Target(也称为Route Target)来控制VPN路由信息的发布。

PE路由器上的VPN实例有两类VPN Target属性:

l              Export Target属性:在本地PE将从与自己直接相连的Site学到的VPN-IPv4路由发布给其它PE之前,为这些路由设置Export Target属性;

l              Import Target属性:PE在接收到其它PE路由器发布的VPN-IPv4路由时,检查其Export Target属性,只有当此属性与PEVPN实例的Import Target属性匹配时,才把路由加入到相应的VPN路由表中。

也就是说,VPN Target属性定义了一条VPN-IPv4路由可以为哪些Site所接收,PE路由器可以接收哪些Site发送来的路由。

RD类似,VPN Target也有三种格式:

l              16bits自治系统号:32bits用户自定义数字,例如:100:1

l              32bits IPv4地址:16bits用户自定义数字,例如:172.1.1.1:1

l              32bits自治系统号:16bits用户自定义数字,其中的自治系统号最小值为65536。例如:65536:1

6. MP-BGP

MP-BGPMultiprotocol extensions for BGP-4)在PE路由器之间传播VPN组成信息和路由。MP-BGP向下兼容,既可以支持传统的IPv4地址族,又可以支持其他地址族(比如VPN-IPv4地址族)。使用MP-BGP既确保VPN的私网路由只在VPN内发布,又实现了MPLS VPN成员间的通信。

7. 路由策略(Routing Policy

在通过入口、出口扩展团体来控制VPN路由发布的基础上,如果需要更精确地控制VPN路由的引入和发布,可以使用入方向或出方向路由策略。

入方向路由策略根据路由的VPN Target属性进一步过滤可引入到VPN实例的路由,它可以拒绝接收引入列表中的团体选定的路由,而出方向路由策略则可以拒绝发布输出列表中的团体选定的路由。

VPN实例创建完成后,可以选择是否需要配置入方向或出方向路由策略。

8. 隧道策略Tunneling Policy

隧道策略用于选择给特定VPN实例的报文使用的隧道。

隧道策略是可选配的,VPN实例创建完成后,就可以配置隧道策略。缺省情况下,选择LSP做为隧道,不进行负载分担(负载分担条数为1)。另外,隧道策略只在同一AS域内生效。

MPLS L3VPN的报文转发

在基本MPLS L3VPN应用中(不包括跨域的情况),VPN报文转发采用两层标签方式:

l              第一层(外层)标签在骨干网内部进行交换,指示从PE到对端PE的一条LSPVPN报文利用这层标签,可以沿LSP到达对端PE

l              第二层(内层)标签在从对端PE到达CE时使用,指示报文应被送到哪个Site,或者更具体一些,到达哪一个CE。这样,对端PE根据内层标签可以找到转发报文的接口。

特殊情况下,属于同一个VPN的两个Site连接到同一个PE,这种情况下只需要知道如何到达对端CE

3为例,说明VPN报文的转发:

图 3 VPN报文转发示意图

 

(1)        Site 1发出一个目的地址为1.1.1.2IP报文,由CE 1将报文发送至PE 1

(2)        PE 1根据报文到达的接口及目的地址查找VPN实例表项,匹配后将报文转发出去,同时打上内层和外层两个标签。

(3)        MPLS网络利用报文的外层标签,将报文传送到PE 2(报文在到达PE 2前一跳时已经被剥离外层标签,仅含内层标签)。

(4)        PE 2根据内层标签和目的地址查找VPN实例表项,确定报文的出接口,将报文转发至CE 2

(5)        CE 2根据正常的IP转发过程将报文传送到目的地。

MPLS L3VPN的网络架构

MPLS L3VPN网络中,通过VPN Target属性来控制VPN路由信息在各Site之间的发布和接收。VPN Export TargetImport Target的设置相互独立,并且都可以设置多个值,能够实现灵活的VPN访问控制,从而实现多种VPN组网方案。

1. 基本的VPN组网方案

最简单的情况下,一个VPN中的所有用户形成闭合用户群,相互之间能够进行流量转发,VPN中的用户不能与任何本VPN以外的用户通信。

对于这种组网,需要为每个VPN分配一个VPN Target,作为该VPNExport TargetImport Target,并且,此VPN Target不能被其他VPN使用。

图 4 基本的VPN组网方案

 

4中,PE上为VPN 1分配的VPN Target值为100:1,为VPN 2分配的VPN Target值为200:1VPN 1的两个Site之间可以互访,VPN 2的两个Site之间也可以互访,但VPN 1VPN 2Site之间不能互访。

2. Hub&Spoke组网方案

如果希望在VPN中设置中心访问控制设备,其它用户的互访都通过中心访问控制设备进行,可以使用Hub&Spoke组网方案,从而实现中心设备对两端设备之间的互访进行监控和过滤等功能。

对于这种组网,需要设置两个VPN Target,一个表示“Hub”,另一个表示“Spoke”。

SitePE上的VPN实例的VPN Target设置规则为:

l              连接Spoke站点(Site 1Site 2)的Spoke-PEExport Target为“Spoke”,Import Target为“Hub”;

l              连接Hub站点(Site 3)的Hub-PEHub-PE上需要使用两个接口或子接口,一个用于接收Spoke-PE发来的路由,其VPN实例的Import Target为“Spoke”;另一个用于向Spoke-PE发布路由,其VPN实例的Export Target为“Hub”。

图 5 Hub&Spoke组网方案

 

5中,Spoke站点之间的通信通过Hub站点进行(图中箭头所示为Site 2的路由向Site 1的发布过程):

l              Hub-PE能够接收所有Spoke-PE发布的VPN-IPv4路由;

l              Hub-PE发布的VPN-IPv4路由能够为所有Spoke-PE接收;

l              Hub-PE将从Spoke-PE学到的路由发布给其他Spoke-PE,因此,Spoke站点之间可以通过Hub站点互访。

l              任意Spoke-PEImport Target属性不与其它Spoke-PEExport Target属性相同。因此,任意两个Spoke-PE之间不直接发布VPN-IPv4路由,Spoke站点之间不能直接互访。

3. Extranet组网方案

如果一个VPN用户希望提供部分本VPN的站点资源给非本VPN的用户访问,可以使用Extranet组网方案。

对于这种组网,如果某个VPN需要访问共享站点,则该VPNExport Target必须包含在共享站点的VPN实例的Import Target中,而其Import Target必须包含在共享站点VPN实例的Export Target中。

图 6 Extranet组网方案

 

6中,VPN 1Site 3能够被VPN 1VPN 2访问:

l              PE 3能够接受PE 1PE 2发布的VPN-IPv4路由;

l              PE 3发布的VPN-IPv4路由能够为PE 1PE 2接受;

l              基于以上两点,VPN 1Site 1Site 3之间能够互访,VPN 2Site 2VPN 1Site 3之间能够互访。

PE 3不把从PE 1接收的VPN-IPv4路由发布给PE 2,也不把从PE 2接收的VPN-IPv4路由发布给PE 1IBGP邻居学来的条目是不会再发送给别的IBGP邻居),因此,VPN 1Site 1VPN 2Site 2之间不能互访。

MPLS L3VPN路由信息发布

在基本MPLS L3VPN组网中,VPN路由信息的发布涉及CEPEP路由器只维护骨干网的路由,不需要了解任何VPN路由信息。PE路由器也只维护与它直接相连的VPN的路由信息,不维护所有VPN路由。因此,MPLS L3VPN网络具有良好的可扩展性。

VPN路由信息的发布过程包括三部分:本地CE到入口PE、入口PE到出口PE、出口PE到远端CE。完成这三部分后,本地CE与远端CE之间将建立可达路由,VPN私网路由信息能够在骨干网上发布。

下面分别对这三部分进行介绍。

1. 本地CE到入口PE的路由信息交换

CE与直接相连的PE建立邻接关系后,把本站点的VPN路由发布给PE

CEPE之间可以使用静态路由、RIPOSPFIS-ISEBGP。无论使用哪种路由协议,CE发布给PE的都是标准的IPv4路由。

2. 入口PE到出口PE的路由信息交换

PECE学到VPN路由信息后,为这些标准IPv4路由增加RDVPN Target属性,形成VPN-IPv4路由,存放到为CE创建的VPN实例中。

入口PE通过MP-BGPVPN-IPv4路由发布给出口PE。出口PE根据VPN-IPv4路由的Export Target属性与自己维护的VPN实例的Import Target属性,决定是否将该路由加入到VPN实例的路由表。

PE之间通过IGP来保证内部的连通性。

3. 出口PE到远端CE的路由信息交换

远端CE有多种方式可以从出口PE学习VPN路由,包括静态路由、RIPOSPFIS-ISEBGP,与本地CE到入口PE的路由信息交换相同。

跨域VPN

实际组网应用中,某用户一个VPN的多个Site可能会连接到使用不同AS号的多个服务提供商,或者连接到一个服务提供商的多个AS。这种VPN跨越多个自治系统的应用方式被称为跨域VPNMulti-AS VPN)。

RFC 2547bis中提出了三种跨域VPN解决方案,分别是:

l              VRF-to-VRFASBR间使用子接口管理VPN路由,也称为Inter-Provider Option A

l              EBGP Redistribution of labeled VPN-IPv4 routesASBR间通过MP-EBGP发布标签VPN-IPv4路由,也称为Inter-Provider Option B

l              Multihop EBGP redistribution of labeled VPN-IPv4 routesPE间通过MP-EBGP发布标签VPN-IPv4路由,也称为Inter-Provider Option C

下面逐一对这些方案进行介绍。

1. ASBR间使用子接口管理VPN路由

这种方式下,两个ASPE路由器直接相连,PE路由器同时也是各自所在自治系统的边界路由器ASBR

作为ASBRPE之间通过多个子接口相连,两个PE都把对方作为自己的CE设备对待,使用传统的EBGP方式向对端发布IPv4路由。报文在AS内部作为VPN报文,采用两层标签转发方式;在ASBR之间则采用普通IP转发方式。

理想情况下,每个跨域的VPN都有一对子接口与之对应,用来交换VPN路由信息。

图 7 ASBR间使用子接口管理VPN路由组网图

 

使用子接口实现跨域VPN的优点是实现简单:两个作为ASBRPE之间不需要为跨域进行特殊配置。

缺点是可扩展性差:作为ASBRPE需要管理所有VPN路由,为每个VPN创建VPN实例。这将导致PE上的VPN-IPv4路由数量过于庞大。并且,为每个VPN单独创建子接口也提高了对PE设备的要求。

2. ASBR间通过MP-EBGP发布标签VPN-IPv4路由

这种方式下,两个ASBR通过MP-EBGP交换它们从各自ASPE路由器接收的标签VPN-IPv4路由。

路由发布过程可分为以下步骤:

(1)        AS 100内的PE先通过MP-IBGP方式把标签VPN-IPv4路由发布给AS 100的边界路由器PE,或发布给为ASBR PE反射路由的路由反射器;

(2)        作为ASBRPE通过MP-EBGP方式把标签VPN-IPv4路由发布给AS 200PE(也是AS 200的边界路由器);

(3)        AS 200ASBR PE再通过MP-IBGP方式把标签VPN-IPv4路由发布给AS 200内的PE,或发布给为PE反射路由的路由反射器。

这种方式的ASBR需要对标签VPN-IPv4路由进行特殊处理,因此也称为ASBR扩展方式。

图 8 ASBR间通过MP-EBGP发布标签VPN-IPv4路由组网图

 

在可扩展性方面,通过MP-EBGP发布标签VPN-IPv4路由优于ASBR间通过子接口管理VPN

采用MP-EBGP方式时,需要注意:

l              ASBR之间不对接收的VPN-IPv4路由进行VPN Target过滤,因此,交换VPN-IPv4路由的各AS服务提供商之间需要就这种路由交换达成信任协议;

l              VPN-IPv4路由交换仅发生在私网对等点之间,不能与公网交换VPN-IPv4路由,也不能与没有达成信任协议的MP-EBGP对等体交换VPN-IPv4路由。

3. PE间通过MP-EBGP发布标签VPN-IPv4路由

前面介绍的两种方式都能够满足跨域VPN的组网需求,但这两种方式也都需要ASBR参与VPN-IPv4路由的维护和发布。当每个AS都有大量的VPN路由需要交换时,ASBR就很可能成为阻碍网络进一步扩展的瓶颈。

解决上述可扩展性问题的方案是:ASBR不维护或发布VPN-IPv4路由,PE之间直接交换VPN-IPv4路由。

两个ASBR通过MP-IBGP向各自AS内的PE路由器发布标签IPv4路由。

ASBR上不保存VPN-IPv4路由,相互之间也不通告VPN-IPv4路由。

ASBR保存ASPE的带标签的IPv4路由,并通告给其它AS的对等体。另一个自治系统中的ASBR也通告带标签的IPv4路由。这样,在入口PE和出口PE之间建立起一条LSP

不同ASPE之间建立Multihop方式的EBGP连接,交换VPN-IPv4路由。

图 9 PE间通过Multi-hop MP-EBGP发布标签VPN-IPv4路由组网图

 

为提高可扩展性,可以在每个AS中指定一个路由反射器RRRoute Reflector),由RR保存所有VPN-IPv4路由,与ASPE交换VPN-IPv4路由信息。两个ASRR之间建立跨域VPNv4连接,通告VPN-IPv4路由。如 10所示。

图 10 采用RR的跨域VPN OptionC方式组网图

 

运营商的运营商

1. 简介

MPLS L3VPN服务提供商的用户可能也是一个服务提供商。这种情况下,前者称为提供商运营商(Provider Carrier)或一级运营商(First Carrier),后者称为客户运营商(Customer Carrier)或二级运营商(Second Carrier)。这种组网模型称为运营商的运营商(Carriers’ carriers),低级别的SP作为更高级别SPCE

为保持良好的可扩展性,一级运营商并不引入二级运营商的外部路由,只引入为不同站点的二级运营商交换报文的路由。二级运营商维护的外部路由通过在相关二级运营商路由器间建立BGP会话交换。这可以大大减少一级运营商网络中需要维护的路由数量。

2. 实现

与普通MPLS L3VPN相比,配置运营商的运营商的主要区别在于一级运营商PE接入二级运营商CE这一部分:

l              如果一级运营商PE与二级运营商CE位于同一个AS内,则它们之间配置IGPLDP

l              如果一级运营商PE与二级运营商CE位于不同的AS,则它们之间配置MP-EBGPMP-EBGPPECE之间交换的路由分配标签。

无论哪种情况,CE上都需要使能MPLS。并且,CE上虽然有二级运营商的VPN路由,但它们并不把这些路由发布给一级运营商的PE,只在二级运营商PE之间交换。

二级运营商可能只是普通ISP,也可能是MPLS L3VPN服务提供商。

二级运营商是普通ISP时,其PE不需要运行MPLS,与CE之间运行IGPPE 3PE 4之间通过IBGP会话交换二级运营商的VPN路由。如 11所示。

图 11 二级运营商是ISP

 

二级运营商是MPLS L3VPN服务提供商时,其PE也需要运行MPLS,与CE之间运行IGPLDPPE 3PE 4之间通过MP-IBGP会话交换二级运营商的VPN路由。如 12所示。

图 12 二级运营商是MPLS L3VPN服务提供商

 

 

如果一级运营商和二级运营商之间存在等价路由,则建议在一级运营商和二级运营商之间建立对应的等价LSP

 

嵌套VPN

1. 产生背景

在基本的MPLS L3VPN模型中,由运营商经营MPLS VPN骨干网,通过PE设备提供VPN服务。VPN用户通过CE设备与运营商的PE设备互连,接入MPLS VPN网络,实现属于用户VPN的不同Site之间的通信。在这种情况下,用户网络是普通的IP网络,VPN用户不能再划分子VPN

实际组网中,VPN用户网络复杂多样,繁简不同。当VPN用户内部需要进一步划分多个VPN时,传统的解决方案是直接在运营商的PE设备上配置用户内部的VPN。这种方案实现简单,缺点是将导致PE上承载的VPN数量急剧增加,并且,如果用户内部需要调整VPN关系,也必须通过运营商操作。这不仅增加了网络的运营成本,也带来了管理和安全方面的问题。

嵌套VPN是一种更为完善的解决方案,它的主要思想是在普通MPLS L3VPNPECE之间传递VPNv4路由,由用户管理自己内部的VPN划分,运营商不参与用户内部VPN的管理。如 13所示,用户在运营商MPLS VPN网络上所属的VPNVPN A,在用户网络内部划分子VPNVPN A-1VPN A-2。运营商PE设备把用户网络当作普通VPN用户对待,不参与子VPN的划分。VPN用户的CE设备(CE 1CE 2CE 7CE 8)和运营商PE设备之间传递包括子VPN路由信息的VPNv4路由,从而实现用户网络内部子VPN路由信息的传递。

图 13 嵌套VPN组网应用

 

2. 路由信息的传播过程

嵌套VPN中,路由信息的传播过程为:

(1)        运营商的PE设备与VPN用户的CE设备交互VPNv4路由,VPNv4路由携带用户内部的VPN信息。

(2)        运营商的PE设备收到VPNv4路由后,保留用户内部的VPN信息,并附加用户在运营商网络上的MPLS VPN属性,即将该VPNv4路由的RD更换为用户所处运营商网络VPNRD,同时将用户所处运营商网络VPNERTExport Route-target,引出路由标识)添加到路由的扩展团体属性列表中。运营商的PE设备维护用户内部的VPN信息。

(3)        运营商的PE设备向其他运营商PE设备发布这些携带综合VPN信息的VPNv4路由。

(4)        其他的运营商PE设备收到VPNv4路由后,与本地的VPN进行匹配,每个VPN接收属于自己的路由,然后将路由扩散到自己连接的子VPNCE设备(如1. 13中的CE 3CE 4CE 5CE 6):如果运营商PECE设备之间是IPv4连接,直接扩散IPv4路由;如果和CE设备之间是VPNv4连接,表示通过私网连接的是一个用户MPLS VPN网络,向CE扩散VPNv4路由。

3. 技术优点

嵌套VPN技术的主要优点是:

l              实现了VPN聚合功能,可以把用户的多个内部VPN聚合成一个用户VPN,接入运营商的MPLS VPN网络;

l              支持对称组网方式和非对称组网方式,即属于同一VPN用户的不同Site包括的用户内部VPN数目可以相同,也可以不同;

l              支持用户内部VPN的多层嵌套。

嵌套VPN技术降低了用户接入VPN网络的复杂度和成本,为用户提供多样化的VPN组网方式,实现了用户对内部VPN以及多层VPN之间的互访权限控制管理。

多角色主机

CE进入PE的报文的VPN属性由入接口绑定的VPN决定,这就决定了由同一入接口经PE转发的所有CE设备都必须属于同一VPN。但在实际组网中,一个CE设备可能需要经过一个物理接口访问多个VPN,这可以通过设置不同的逻辑接口来实现,但会增加额外的配置负担,使用起来也有局限性。

多角色主机,是通过在PE上配置策略路由,使来自CE的报文可以访问多个VPN

为使其它VPN的信息能够从PE发送到CE,需要在其它VPN上配置静态路由,并指定连接CE的接口作为下一跳。

在实际应用中,应合理进行地址规划,使每个VPN的地址段相对集中,以提高PE的转发效率。

HoVPN

1. 产生背景

(1)        分层模型与平面模型

MPLS L3VPN解决方案中,PE设备最为关键,它完成两方面的功能:首先是为用户提供接入功能,这需要PE具有大量接口;然后是管理和发布VPN路由,处理用户报文,这需要PE设备具有大容量存储和高转发能力。

目前的网络设计大多采用经典的分层结构,例如,城域网的典型结构是三层模型:核心层、汇聚层、接入层。从核心层到接入层,对设备的性能要求依次下降,网络的规模则依次扩大。

MPLS L3VPN是一种平面模型,对网络中所有PE设备的性能要求相同,当网络中某些PE在性能和可扩展性方面存在问题时,整个网络的性能和可扩展性将受到影响。

由于MPLS L3VPN的平面模型与典型的分层网络模型不相符,在每一个层次上部署PE都会遇到扩展性问题,不利于大规模部署VPN

(2)        HoVPN

为解决可扩展性问题,MPLS L3VPN必然要从平面模型转变为分层模型。

MPLS L3VPN领域,分层VPNHierarchy of VPN,简称HoVPN)解决方案的提出,实现了将PE的功能分布到多个PE设备上,多个PE承担不同的角色,并形成层次结构,共同完成一个PE的功能。

HoVPN对处于较高层次的设备的路由能力和转发性能要求较高,而对处于较低层次的设备的相应要求也较低,符合典型的分层网络模型。

2. HoVPN的实现

(1)        HoVPN的基本结构

图 14 HoVPN的基本结构

 

14中,直接连结用户的设备称为下层PEUnderlayer PE)或用户侧PEUser-end PE),简写为UPE;连结UPE并位于网络内部的设备称为上层PESuperstratum PE)或运营商侧PESevice Provider-end PE),简写为SPE

多个UPESPE构成分层式PE,共同完成传统上一个PE的功能。

SPEUPE的分工是:

l              UPE主要完成用户接入功能。UPE维护其直接相连的VPN Site的路由,但不维护VPN中其它远程Site的路由或仅维护它们的聚合路由;UPE为其直接相连的Site的路由分配内层标签,并通过MP-BGPVPN路由发布此标签给SPE

l              SPE主要完成VPN路由的管理和发布。SPE维护其通过UPE连接的VPN所有路由,包括本地和远程Site的路由,SPE将路由信息发布给UPE,并携带标签。SPE发布的路由信息可以是VPN实例的缺省路由(或聚合路由),也可以是通过路由策略的路由信息。通过后者可以实现对同一VPN下不同站点之间互访的控制。

由于分工的不同,对SPEUPE的要求也不同:SPE的路由表容量大,转发性能强,但接口资源较少;UPE的路由容量和转发性能较低,但接入能力强。HoVPN充分利用了SPE的性能和UPE的接入能力。

需要说明的是,SPEUPE是相对的概念。在多个层次的PE结构中,上层PE相对于下层就是SPE,下层PE相对于上层就是UPE

分层式PE从外部来看同传统上的PE没有区别,可以同普通PE共存于一个MPLS网络。

(2)        SPE-UPE

SPEUPE之间运行MP-BGP,可以是MP-IBGP,也可以是MP-EBGP,这取决于UPESPE是否属于同一个AS

采用MP-IBGP时,为了在IBGP对等体之间通告路由,SPE将作为路由反射器,把来自IBGP对等体UPEVPN路由发布给IBGP对等体SPE,但SPE不作为其它PE的路由反射器。

(3)        HoVPN的嵌套与扩展

HoVPN支持分层式PE的嵌套:

l              一个分层式PE可以作为UPE,同另一个SPE组成新的分层式PE

l              一个分层式PE可以作为SPE,同多个UPE组成新的分层式PE

l              以上这种嵌套可以多次进行。

通过分层式PE的嵌套,理论上可以将VPN无限扩展与延伸。

图 15 分层式PE的嵌套

 

15是一个三层的分层式PE,称中间的PEMPEMiddle-level PE)。SPEMPE之间,以及MPEUPE之间,均运行MP-BGP

MP-BGP为上层PE发布下层PE上的所有VPN路由,为下层PE发布上层PEVPN实例缺省路由或通过路由策略的VPN路由。

SPE维护了这个分层式PE接入的所有SiteVPN路由,路由数目最多;UPE只维护它所直接连接的SiteVPN路由,路由数目最少;MPE的路由数目介于SPEUPE之间。

OSPF VPN扩展

1. PE上的OSPF多实例

OSPF是应用广泛的一种IGP协议,很多情况下,VPN客户端通过BGP对等体连接,客户端内部则经常以OSPF作为内部路由协议。如果能够在PE-CE之间使用OSPF,则CE上就不需要再为到PE的连接支持其它路由协议,从而简化CE的管理和配置。并且,如果客户需要通过传统的OSPF骨干区域提供MPLS L3VPN服务,在PECE之间使用OSPF可以简化这种转换。

为了在PE-CE间运行OSPFPE必须支持OSPF多实例,每个OSPF实例与一个VPN实例对应,使用自己的接口、路由表。

下面具体介绍在PE-CE间配置OSPF需要了解的知识。

(1)        PECE间的OSPF区域配置

PECE之间的OSPF区域可以是非骨干区域,也可以是骨干区域。

OSPF VPN扩展应用中,MPLS VPN骨干网被看作是骨干区域area 0。由于OSPF要求骨干区域连续,因此,所有VPN站点的area 0必须与MPLS VPN骨干网相连。

即:如果VPN站点存在OSPF area 0,则CE接入的PE必须通过area 0与这个VPN站点的骨干区域相连(可以通过Virtual-link实现逻辑上的连通)。

(2)        BGP/OSPF交互

PE-CE间运行OSPF后,PEPE通过BGP发布VPN路由,PE通过OSPFCE发布VPN路由。

对于普通OSPF,即使两个不同站点属于同一VPN,它们也会被看作属于不同的自治系统。这样,在一个站点学到的路由,将被作为外部路由传送给另一站点。这种处理方式导致了比较高的OSPF路由协议流量,并带来了一些原本可以避免的网络管理问题。

目前的OSPF可以解决上述问题。通过适当配置,运行OSPF的不同站点之间彼此看作是直接相连的。这样,PE路由器交换OSPF路由信息时就好像是通过一条专线相连。改善了网络管理并使OSPF的应用更为有效。

16为例,PE 1PE 2通过MPLS骨干网相连,CE 11CE 21CE 22都属于VPN 1。假设图中所有路由器属于同一个域,即,CE 11CE 21CE 22属于同一个OSPF域(OSPF domain)。

VPN 1路由的发布过程可以描述为:首先在PE 1上将CE 11OSPF路由引入BGP;然后通过BGP将这些VPN路由发布给PE 2;在PE 2上将BGPVPN路由引入到OSPF,再发布给CE 21CE 22

图 16 OSPFVPN中的使用

 

如果使用标准的BGP/OSPF交互过程,PE 2将把BGP VPN路由通过Type5 LSAs(即ASE LSAs)发布给CE 21CE 22。但CE 11CE 21CE 22是同一个OSPF域,它们之间的路由发布应该使用Type3 LSAs,即区域间路由。

为了解决上述问题,PE使用一种经过修改的BGP/OSPF交互过程(简称为BGP/OSPF互操作功能),发布从一个Site到另一个Site的路由,将这种路由与真正的AS-External路由进行区分。这一过程需要BGP使用扩展团体属性,携带可以标识OSPF属性的信息。

在实现中,要求每个OSPF域有一个可配置的域IDDomain ID)。一般建议:与每个VPN实例相关的网络中的所有OSPF实例要么配置一个相同的域ID,要么都使用缺省的域ID。这样在收到BGPVPN路由时,域ID相同的是来自同一VPN实例的路由。

(3)        路由环的检测

假设PECE之间通过OSPF骨干区域相连,且同一个VPN站点(Site)连接到多个不同PE。这种情况下,当一个PE通过LSAVPN站点发布从MPLS/BGP学的BGP VPN路由时,LSA可能被另一个PE接收到,造成路由环。

为了防止产生路由环,对于从MPLS/BGP学到的BGP VPN路由,无论PECE间是否通过OSPF骨干区域相连,PE在生成Type3 LSA时,都会设置标志位DNPE路由器的OSPF进程在进行路由计算时,忽略DN置位的Type3 LSAs

如果PE需要向CE发布一条来自其它OSPF域的路由,则PE应表明自己是ASBR,并将该路由作为Type5 LSA发布。

2. OSPF伪连接

通常情况下,BGP对等体之间通过BGP扩展团体属性在MPLS VPN骨干网上承载路由信息。另一端PE上运行的OSPF可利用这些信息来生成PECEType3 summary LSA,这些路由是区域间路由。

17所示:在OSPFPE-CE连接中,同一个OSPF区域中有两个Site连接到不同的PE,两个Site属于同一个VPN,它们之间存在一条区域内OSPF链路(backdoor link)。这种情况下,通过PE连接两个Site的路由将作为区域间路由(Inter-Area Route),由于其优先级低于经过backdoor链路的区域内路由(Intra-Area Route),不会被OSPF优选。

图 17 Sham-link应用示意图

 

上述情况导致VPN流量总是通过后门路由转发,而不走骨干网。为了避免这一问题,可以在PE路由器之间建立OSPF伪连接(Sham-link),使经过MPLS VPN骨干网的路由也成为OSPF区域内路由。

Sham-link作为区域内的一条点到点链路,包含在Type1 LSA中发布。用户可以通过调整度量值在Sham-linkbackdoor之间进行选路。

Sham-link被看成是两个VPN实例之间的链路,每个VPN实例中必须有一个Sham-link的端点地址,它是PE路由器上VPN地址空间中的一个有32位掩码的Loopback接口地址。同一个OSPF进程的Sham-link可以共用端点地址,但不同OSPF进程不能拥有两条端点地址完全相同的Sham-link

Sham-link的端点地址被BGP作为VPN-IPv4地址发布。如果路由经过了Sham-link,它就不能再以VPN-IPv4路由的形式被引入到BGP

Sham-link可以在任何区域配置。Sham-link需要手工配置,并且,本端VPN实例中必须有到Sham-link目的地址的路由。

3. Multi-VPN-Instance CE

OSPF多实例通常运行在PE路由器上,在局域网内部运行OSPF多实例的路由器称为Multi-VPN-Instance CE,即多实例CE。与PE上的OSPF多实例相比,Multi-VPN-Instance CE不需要支持BGP/OSPF互操作功能。

Multi-VPN-Instance CE主要用于以较低的成本解决局域网的安全问题。

单纯使用传统路由器很难实现局域网中不同业务的完全隔离。目前,在一台路由器上可以运行多个OSPF进程,这些OSPF进程可以是公网进程,也可以是某个VPN实例的进程。因此,在一台路由器上可以运行多个OSPF进程,将不同的进程绑定到不同的VPN实例。

在实际应用中,通过为不同的业务建立各自的OSPF实例,可以实现不同业务的隔离,保证各自的安全性。

BGPAS号替换

MPLS L3VPN中,如果PECE之间运行EBGP,由于BGP使用AS号检测路由环路,为保证路由信息的正确发送,需要为物理位置不同的站点分配不同的AS号。

如果物理分散的CE复用相同的AS号,就应该在PE上配置BGPAS号替换功能。此功能是BGP的出口策略,在发布路由时有效。

使能了BGPAS号替换功能后,当PE向指定对等体中的CE发布路由时,如果路由的AS_PATH中有与CE相同的AS号,将被替换成PEAS号后再发布。

图 18 BGP AS号替换应用示意图

 

18中,CE 1CE 2都使用AS800,在PE 2上使能针对CE 2AS号替换功能。当CE 1发来的Update信息从PE 2发布给CE 2时,PE 2发现AS_PATH中存在与CE 2相同的AS800,就把它替换为自己的AS100,这样,CE 2就可以正确接收CE 1的路由信息。

对于PE使用不同接口连接多个CE的情况,如上图中的CE 2CE 3,也可以使用BGPAS号替换功能。

Multi-VPN-Instance CE

BGP/MPLS VPN以隧道的方式解决了在公网中传送私网数据的问题,但传统的BGP/MPLS VPN架构要求每个VPN实例单独使用一个CEPE相连,如 1所示。

随着用户业务的不断细化和安全需求的提高,很多情况下一个私有网络内的用户需要划分成多个VPN,不同VPN用户间的业务需要完全隔离。此时,为每个VPN单独配置一台CE将加大用户的设备开支和维护成本;而多个VPN共用一台CE,使用同一个路由表项,又无法保证数据的安全性。

使用以太网交换机提供的MCE功能,可以有效解决多VPN网络带来的用户数据安全与网络成本之间的矛盾,它使用CE设备本身的VLAN接口编号与网络内的VPN进行绑定,并为每个VPN创建和维护独立的路由转发表(Multi-VRF)。这样不但能够隔离私网内不同VPN的报文转发路径,而且通过与PE间的配合,也能够将每个VPN的路由正确发布至对端PE,保证VPN报文在公网内的传输。

1. MCE工作原理

下面以 19为例介绍MCE对多个VPN的路由表项进行维护,并与PE交互VPN路由的过程。

图 19 MCE工作原理示意图

 

19所示,左侧私网内有两个VPN站点:Site1Site2,分别通过MCE设备接入MPLS骨干网,其中VPN1VPN2的用户,需要分别与远端Site2内的VPN1用户和Site1内的VPN2用户建立VPN隧道。

通过配置MCE功能,可以在MCE设备上为VPN1VPN2创建各自的路由转发表,并使用Vlan-interface2接口与VPN1进行绑定、Vlan-interface3VPN2进行绑定。在接收路由信息时,MCE设备根据接收接口的编号,即可判断该路由信息的来源,并将其维护到对应VPN的路由转发表中。

l              同时,在PE1上也需要将连接MCE的接口(子接口)与VPN进行绑定,绑定的方式与MCE设备一致。MCEPE1之间通过Trunk链路连接,并允许VLAN2VLAN3的报文携带VLAN Tag传输,从而使PE1在接收时可以根据报文所属VLAN判别该报文属于哪一个VPN,将报文在指定的隧道内传输。

附件下载

联系我们