08-MPLS L3VPN配置
本章节下载: 08-MPLS L3VPN配置 (2.29 MB)
设备支持两种运行模式:独立运行模式和IRF模式,缺省情况为独立运行模式。有关IRF模式的介绍,请参见“虚拟化技术配置指导”中的“IRF”。
MPLS L3VPN是一种三层VPN技术,它使用BGP在服务提供商骨干网上发布用户站点的私网路由,使用MPLS在服务提供商骨干网上转发用户站点之间的私网报文,从而实现通过服务提供商的骨干网连接属于同一个VPN、位于不同地理位置的用户站点。
MPLS L3VPN组网方式灵活,可扩展性好,并能够方便地支持MPLS QoS和MPLS TE,因此得到了广泛的应用。
图1-1 MPLS L3VPN基本网络架构
MPLS L3VPN的基本网络架构如图1-1所示。MPLS L3VPN网络中设备的角色分为以下几种:
· CE(Customer Edge,用户网络边缘)设备:直接与服务提供商网络相连的用户网络侧设备。CE“感知”不到VPN的存在,也不需要支持MPLS。
· PE(Provider Edge,服务提供商网络边缘)设备:与CE相连的服务提供商网络侧设备。在MPLS L3VPN网络中,对VPN的所有处理都发生在PE上。
· P(Provider,服务提供商网络)设备:服务提供商网络中的骨干设备,不与CE直接相连。P只需要在骨干网中将用户网络报文转发给正确的远端PE,不需要维护和处理VPN信息。
Site(站点)的含义可以从下述几个方面理解:
· Site是指相互之间具备IP连通性的一组IP系统,并且这组IP系统的IP连通性不需通过服务提供商网络实现;
· Site的划分是根据设备的拓扑关系,而不是地理位置,尽管在大多数情况下一个Site中的设备地理位置相邻;
· 一个Site中的设备可以属于多个VPN,换言之,一个Site可以属于多个VPN;
· Site通过CE连接到服务提供商网络,一个Site可以包含多个CE,但一个CE只属于一个Site。
对于多个连接到同一服务提供商网络的Site,通过制定策略,可以将它们划分为不同的集合(set),只有属于相同集合的Sites之间才能通过服务提供商网络互访,这种集合就是VPN。
在MPLS L3VPN中,不同VPN之间的路由隔离通过VPN实例(VPN-instance)实现,VPN实例又称为VRF(Virtual Routing and Forwarding,虚拟路由和转发)实例。PE上每个VPN实例都有相对独立的路由表和LFIB(Label Forwarding Information Base,标签转发信息库),确保VPN数据的独立性和安全性。
PE通过将与Site连接的接口与VPN实例关联,实现该Site与VPN实例的关联。一个Site只能与一个VPN实例关联;不同的Site可以关联同一个VPN实例。VPN实例中包含了与其关联的Site所属的所有VPN的成员关系和路由规则等信息。
VPN实例中的信息包括:LFIB、IP路由表、与VPN实例关联的接口以及VPN实例的管理信息。VPN实例的管理信息包括RD(Route Distinguisher,路由标识符)、VPN Target属性、路由过滤策略等。
VPN是一种私有网络,不同的VPN独立管理自己使用的地址范围,也称为地址空间(Address Space)。不同VPN的地址空间可能会在一定范围内重合,比如,VPN 1和VPN 2都使用了10.110.10.0/24网段的地址,这就发生了地址空间重叠(Overlapping Address Spaces)。
传统BGP无法正确处理地址空间重叠的VPN的路由。假设VPN 1和VPN 2都使用了10.110.10.0/24网段的地址,并各自发布了一条去往此网段的路由,BGP只会选择其中一条路由,从而导致去往另一个VPN的路由丢失。
MPLS L3VPN使用VPN-IPv4地址(又称为VPNv4地址)来解决上述问题。
图1-2 VPN-IPv4地址结构
如图1-2所示,VPN-IPv4地址共有12个字节,包括8字节的RD和4字节的IPv4地址前缀。其中,RD的作用是将其添加到一个IPv4地址前缀前,使之成为全局唯一的VPN-IPv4地址前缀。PE从CE接收到普通IPv4路由后,为IPv4地址前缀添加RD,将其转变为VPN-IPv4路由,并使用MP-BGP(Multiprotocol Border Gateway Protocol,多协议边界网关协议)将VPN-IPv4路由发布给对端PE,从而实现通过RD区分不同VPN的相同IPv4地址前缀。
RD有三种格式,通过2字节的Type字段区分:
· Type为0时,Administrator子字段占2字节,Assigned number子字段占4字节,格式为:16位自治系统号:32位用户自定义数字,例如:100:1。
· Type为1时,Administrator子字段占4字节,Assigned number子字段占2字节,格式为:32位IPv4地址:16位用户自定义数字,例如:172.1.1.1:1。
· Type为2时,Administrator子字段占4字节,Assigned number子字段占2字节,格式为:32位自治系统号:16位用户自定义数字,其中的自治系统号最小值为65536,例如:65536:1。
为了保证VPN-IPv4地址全球唯一,建议不要将Administrator子字段的值设置为私有AS号或私有IP地址。
MPLS L3VPN使用BGP扩展团体属性——VPN Target(也称为Route Target)来控制VPN路由信息的发布。
VPN Target属性分为如下两类:
· Export Target属性:本地PE从与自己直接相连的Site学习到IPv4路由后,将其转换为VPN-IPv4路由,为VPN-IPv4路由设置Export Target属性并发布给其它PE。
· Import Target属性:PE在接收到其它PE发布的VPN-IPv4路由时,检查其Export Target属性。只有当此属性与PE上某个VPN实例的Import Target属性匹配时,才把路由加入到该VPN实例的路由表中。
VPN Target属性定义了一条VPN-IPv4路由可以为哪些Site所接收,PE可以接收哪些Site发送来的路由。
与RD类似,VPN Target也有三种格式:
· 16位自治系统号:32位用户自定义数字,例如:100:1。
· 32位IPv4地址:16位用户自定义数字,例如:172.1.1.1:1。
· 32位自治系统号:16位用户自定义数字,其中的自治系统号最小值为65536,例如:65536:1。
MP-BGP(Multiprotocol Border Gateway Protocol,多协议边界网关协议)是对BGP协议的扩展,它可以为多种网络层协议传递路由信息,如IPv4组播、IPv6单播、IPv6组播、VPN-IPv4等。
在MPLS L3VPN中,PE之间利用MP-BGP来传递VPN-IPv4路由,既实现了VPN的私网路由在不同站点之间的传递,又确保了私网路由只在VPN内发布。
在MPLS L3VPN组网中,VPN路由信息的发布涉及CE和PE。P路由器只维护骨干网的路由,不需要了解任何VPN路由信息。PE路由器只维护与它直接相连的VPN的路由信息,不维护所有VPN路由。
VPN路由信息的发布过程包括三部分:本地CE到入口PE、入口PE到出口PE、出口PE到远端CE。完成这三部分后,本地CE与远端CE之间将建立可达路由。
CE使用静态路由、RIP、OSPF、IS-IS、EBGP或IBGP,将本站点的VPN路由发布给PE。CE发布给PE的是标准的IPv4路由。
PE从CE学到VPN路由信息后,将其存放到相应的VPN实例的路由表中。PE为这些标准IPv4路由增加RD和Export Target属性,并为这些路由分配MPLS标签,形成VPN-IPv4路由。
入口PE通过MP-BGP把VPN-IPv4路由(包括Export Target属性和MPLS标签)发布给出口PE。出口PE将VPN-IPv4路由的Export Target属性与自己维护的VPN实例的Import Target属性进行匹配。如果出口PE上某个VPN实例的Import Target属性与路由的Export Target属性中存在相同的属性值,则将该路由加入到该VPN实例的路由表中。
与本地CE到入口PE的路由信息交换相同,远端CE可以通过多种方式从出口PE学习VPN路由,包括静态路由、RIP、OSPF、IS-IS、EBGP和IBGP。
在基本MPLS L3VPN应用中(不包括跨域的情况),PE转发VPN报文时为报文封装如下内容:
· 外层标记:又称为公网标记。VPN报文在骨干网上沿着公网隧道从一端PE传送到另一端PE。公网隧道可以是LSP隧道、MPLS TE隧道和GRE隧道。当公网隧道为LSP隧道或MPLS TE隧道时,公网标记为MPLS标签,称为公网标签;当公网隧道为GRE隧道时,公网标记为GRE封装。
· 内层标签:又称为私网标签,用来指示报文应被送到哪个Site。对端PE根据私网标签可以找确定报文所属的VPN实例,通过查找该VPN实例的路由表,将报文正确地转发到相应的Site。PE之间在通过MP-BGP发布VPN-IPv4路由时,将为私网路由分配的私网标签通告给对端PE。
图1-3 VPN报文转发示意图
(1) Site 1发出一个目的地址为1.1.1.2的IP报文,由CE 1将报文发送至PE 1。
(2) PE 1根据报文到达的接口及目的地址查找对应VPN实例的路由表,根据匹配的路由表项为报文添加私网标签,并查找到报文的下一跳为PE 2。
(3) PE 1在公网路由表内查找到达PE 2的路由,根据查找结果为报文封装公网标签或进行GRE封装,并沿着公网隧道转发该报文。
(4) MPLS网络内,P根据报文的公网标记转发报文,将报文转发到PE 2。如果公网标记为MPLS标签,则报文在到达PE 2的前一跳时剥离公网标签,仅保留私网标签;如果为GRE封装,则由PE 2剥离报文的GRE封装。
(5) PE 2根据私网标签确定报文所属的VPN实例,通过查找该VPN实例的路由表,确定报文的出接口,剥离私网标签后将报文转发至CE 2。
(6) CE 2根据正常的IP转发过程将报文转发给目的主机。
属于同一个VPN的两个Site连接到同一个PE时,PE不需要为VPN报文封装外层标记和内层标签,只需查找对应VPN实例的路由表,找到报文的出接口,将报文转发至相应的Site。
GRE的详细介绍,请参见“三层技术-IP业务配置指导”中的“GRE”。
在MPLS L3VPN网络中,通过VPN Target属性来控制VPN路由信息在各Site之间的发布和接收。VPN Export Target和Import Target的设置相互独立,并且都可以设置多个值,能够实现灵活的VPN访问控制,从而实现多种VPN组网方案。
最简单的情况下,一个VPN中的所有用户形成闭合用户群,相互之间能够进行流量转发,VPN中的用户不能与任何本VPN以外的用户通信。
对于这种组网,需要为每个VPN分配一个VPN Target,作为该VPN的Export Target和Import Target,且此VPN Target不能被其他VPN使用。
图1-4 基本的VPN组网方案
如图1-4所示,PE上为VPN 1分配的VPN Target值为100:1,为VPN 2分配的VPN Target值为200:1。VPN 1的两个Site之间可以互访,VPN 2的两个Site之间也可以互访,但VPN 1和VPN 2的Site之间不能互访。
使用Hub&Spoke组网方案可以实现在VPN中设置中心访问控制设备,其它用户的互访都通过中心访问控制设备进行,通过中心设备对其他设备之间的互访进行监控和过滤等。其中:
· 中心访问控制设备所在的站点称为Hub站点;该站点的CE称为Hub-CE;与该站点连接的PE称为Hub-PE。
· 其他分支站点称为Spoke站点;分支站点的CE称为Spoke-CE;与分支站点连接的PE称为Spoke-PE。
对于这种组网,VPN Target设置规则为:
· Spoke-PE:Export Target为“Spoke”,Import Target为“Hub”;
· Hub-PE:Hub-PE上需要使用两个接口或子接口连接Hub-CE,两个接口或子接口分别属于不同的VPN实例。一个VPN实例用于接收Spoke-PE发来的路由,其Import Target为“Spoke”;另一个VPN实例用于向Spoke-PE发布路由,其Export Target为“Hub”。
按照上述规则设置VPN Target,可以实现:
· Hub-PE能够接收所有Spoke-PE发布的VPN-IPv4路由。
· Hub-PE发布的VPN-IPv4路由能够为所有Spoke-PE接收。
· Hub-PE将从Spoke-PE学到的路由发布给其他Spoke-PE,因此,Spoke站点之间可以通过Hub站点互访。
· 任意Spoke-PE的Import Target属性不与其它Spoke-PE的Export Target属性相同。因此,任意两个Spoke-PE之间不直接发布VPN-IPv4路由,Spoke站点之间不能直接互访。
图1-5 Hub&Spoke组网方案
如图1-5所示,以站点1向站点2发布路由为例,Spoke站点之间的路由发布过程为:
(1) Spoke-CE 1将站点1内的私网路由发布给Spoke-PE 1。
(2) Spoke-PE 1将该路由转变为VPN-IPv4路由,通过MP-BGP发布给Hub-PE。
(3) Hub-PE将该路由学习到VPN 1-in的路由表中,并将其转变为标准IPv4路由发布给Hub-CE。
(4) Hub-CE将该路由再次发布给Hub-PE,Hub-PE将其学习到VPN 1-out的路由表中。
(5) Hub-PE将VPN 1-out路由表中的私网路由转变为VPN-IPv4路由,通过MP-BGP发布给Spoke-PE 2。
(6) Spoke-PE 2将VPN-IPv4路由转变为标准IPv4路由发布到站点2。
Spoke站点之间通过Hub站点完成路由交互后,Spoke站点之间的通信将通过Hub站点进行。
如果一个VPN用户希望提供本VPN的部分站点资源给非本VPN的用户访问,可以使用Extranet组网方案。
对于这种组网,需要访问共享站点的VPN实例的Export Target必须包含在共享站点VPN实例的Import Target中,而其Import Target必须包含在共享站点VPN实例的Export Target中。
图1-6 Extranet组网方案
在图1-6中,VPN 1的Site 3为共享站点,通过设置VPN Target实现:
· PE 3能够接受PE 1和PE 2发布的VPN-IPv4路由。
· PE 3发布的VPN-IPv4路由能够为PE 1和PE 2接受。
基于以上两点,VPN 1的Site 1和Site 3之间能够互访,VPN 2的Site 2和VPN 1的Site 3之间也能够互访。
PE 3不把从PE 1接收的VPN-IPv4路由发布给PE 2,也不把从PE 2接收的VPN-IPv4路由发布给PE 1(从IBGP邻居学来的路由不会再发送给其他的IBGP邻居)。因此,VPN 1的Site 1和VPN 2的Site 2之间不能互访。
实际组网应用中,某用户一个VPN的多个Site可能会连接到使用不同AS号的多个服务提供商,或者连接到一个服务提供商的多个AS。这种VPN跨越多个自治系统的应用方式被称为跨域VPN(Multi-AS VPN)。
跨域VPN解决方案分为以下几种:
· ASBR间建立VRF-to-VRF连接(VRF-to-VRF connections between ASBRs),也称为Inter-Provider Option A。
· ASBR间通过MP-EBGP发布VPN-IPv4路由(EBGP redistribution of labeled VPN-IPv4 routes between ASBRs),也称为Inter-Provider Option B;
· PE间通过MP-EBGP发布VPN-IPv4路由(Multi-hop EBGP redistribution of labeled VPN-IPv4 routes between PE routers),也称为Inter-Provider Option C。
这种方式下,两个AS的PE路由器作为各自所在自治系统的边界路由器ASBR,通过多个子接口直接相连。两个PE都把对方当作自己的CE设备,通过EBGP会话向对端发布普通的IPv4单播路由,并将需要跨域的VPN实例与至少一个子接口关联。
图1-7 ASBR间建立VRF-to-VRF连接组网图
如图1-7所示,VPN 1内路由从CE 1发布到CE 3的过程为:
(1) PE 1从CE 1学习到私网路由后,通过MP-IBGP发布给ASBR 1。
(2) ASBR 1比较Route Target属性,将PE 1发布的VPN-IPv4路由学习到相应的VPN实例路由表中,并作为IPv4单播路由通过EBGP会话发布给它的CE设备,即ASBR 2。
(3) ASBR 2从它的CE(ASBR 1)接收到IPv4单播路由后,将其加入与接收路由的子接口绑定的VPN实例的路由表中,并通过MP-IBGP发布给PE 3。
(4) PE 3接收到路由后,将其发布给CE 3。
报文转发过程中,在AS内部作为VPN报文,采用两层标签的方式转发;在ASBR之间则采用IP转发方式。
这种方式的优点是实现简单,两个作为ASBR的PE之间不需要为跨域进行特殊配置。缺点是可扩展性差:作为ASBR的PE需要管理所有VPN的路由,为每个VPN创建VPN实例,导致PE上的VPN-IPv4路由数量过于庞大;并且,PE上需要为每个跨域的VPN单独创建子接口,提高了对PE设备的要求。
这种方式下,两个ASBR通过MP-EBGP交换它们从各自AS的PE路由器接收的VPN-IPv4路由。
图1-8 ASBR间通过MP-EBGP发布VPN-IPv4路由组网图
如图1-8所示,VPN 1内路由从CE 1发布到CE 3的过程为:
(1) PE 1从CE 1学习到私网路由后,通过MP-IBGP发布给ASBR 1。假设PE 1为私网路由分配的私网标签为L1。
(2) ASBR 1接收PE 1发布的VPN-IPv4路由,并作为VPN-IPv4路由通过MP-EBGP将其发布给ASBR 2。ASBR 1发布该路由时,将路由的下一跳地址改为自身的地址,为路由分配新的私网标签L2,并为新的私网标签L2和旧的私网标签L1建立关联。
(3) ASBR 2从ASBR 1接收到VPN-IPv4路由后,通过MP-IBGP将路由发布给PE 3。ASBR 2在发布路由时,将路由的下一跳地址改为自身的地址,为路由分配新的私网标签L3,并为新的私网标签L3和旧的私网标签L2建立关联。
(4) PE 3接收到路由后,将其发布给CE 3。
完成路由发布后,报文从CE 3到CE 1的转发过程为:
(1) PE 3接收到报文后,为其封装两层标签——私网标签L3和从PE 3到ASBR 2的公网隧道的标签,并将报文转发给ASBR 2。
(2) ASBR 2剥离公网标签后,将私网标签L3替换为L2,并将报文发送给ASBR 1。ASBR 1和ASBR 2之间的报文只带一层私网标签。
(3) ASBR 1将私网标签L2替换为L1,添加从ASBR 1到PE 1的公网隧道的标签,并将报文转发给PE 1。
(4) PE 1剥离公网标签、私网标签后,将报文转发给CE 1。
采用这种方式时,ASBR需要接收所有跨域VPN的私网路由,因此,ASBR上不能根据Route Target属性对接收的VPN-IPv4路由进行过滤。
这种方式的扩展性优于Inter-Provider Option A。缺点是ASBR仍然需要参与VPN私网路由的维护和发布。
这种方式下,不同AS的PE之间建立多跳MP-EBGP会话,通过该会话直接在PE之间发布VPN-IPv4路由。此时,一端PE上需要具有到达远端PE的路由以及该路由对应的标签,以便在两个PE之间建立跨越AS的公网隧道。Inter-Provider Option C通过如下方式建立公网隧道:
· 利用LDP等标签分发协议在AS内建立公网隧道;
· ASBR通过BGP发布带标签的IPv4单播路由,实现跨域AS域建立公网隧道。带标签的IPv4单播路由是指为IPv4单播路由分配MPLS标签,并同时发布IPv4单播路由和标签,以便将路由和标签关联。
图1-9 PE间通过Multi-hop MP-EBGP发布VPN-IPv4路由组网图
如图1-9所示,VPN 1内路由从CE 1发布到CE 3的过程比较简单,为:PE 1从CE 1学习到私网路由后,将其作为VPN-IPv4路由通过多跳MP-EBGP会话发布给PE 3(假设PE 1为CE 1分配的私网标签为Lx);PE 3将私网路由发布给CE 3。
Inter-Provider Option C的难点是建立跨越AS域的公网隧道。以PE 3到PE 1为例,公网隧道建立过程为:
(1) 在AS 100内,通过LDP等标签分发协议建立从ASBR 1到PE 1的公网隧道。假设ASBR 1上该公网隧道的出标签为L1。
(2) ASBR 1通过EBGP会话向ASBR 2发布带标签的IPv4单播路由,将PE 1地址对应的路由及ASBR 1为其分配的标签(假设为L2)发布给ASBR 2,路由的下一跳地址为ASBR 1。这样,就建立了从ASBR 2到ASBR 1的公网隧道,ASBR 1上公网隧道的入标签为L2。
(3) ASBR 2通过IBGP会话向PE 3发布带标签的IPv4单播路由,将PE 1地址对应的路由及ASBR 2为其分配的标签(假设为L3)发布给PE 3,路由的下一跳地址为ASBR 2。这样,就建立了从PE 3直接到ASBR 2的公网隧道,ASBR 2上公网隧道的入标签为L3,出标签为L2。
(4) MPLS报文不能直接从PE 3转发给ASBR 2,在AS 200内,还需要通过LDP等标签分发协议逐跳建立另一条从PE 3到ASBR 2的公网隧道。假设PE 3上该公网隧道的出标签为Lv。
完成路由发布和公网隧道的建立后,报文从CE 3转发到CE 1的过程为:
(1) PE 3接收到CE 3发送的报文后,查找路由表,发现下一跳地址为PE 1,私网标签为Lx,则为报文封装标签Lx;PE 3继续查找到达PE 1的路由,下一跳为ASBR 2,标签为L3,则在标签Lx外封装一层标签L3;PE 3查找到达ASBR 2的路由,出标签为Lv,则在标签L3外再封装标签Lv。
(2) 在AS 200内,路由器根据最外层标签,将报文转发到ASBR 2。
(3) ASBR 2剥离最外层标签,将L3替换为L2,并将报文转发给ASBR 1。
(4) ASBR 1将L2替换为L1,并转发报文。
(5) 在AS 100内,路由器根据最外层标签,将报文转发到PE 1。
(6) PE 1剥离最外层标签,根据私网标签Lx,将报文转发给CE 1。
如图1-10所示,为提高可扩展性,可以在每个AS中指定一个RR(Route Reflector,路由反射器),与同一AS的PE交换VPN-IPv4路由信息,由RR保存所有VPN-IPv4路由。两个AS的RR之间建立多跳MP-EBGP会话,通告VPN-IPv4路由。
图1-10 采用RR的跨域VPN OptionC方式组网图
Inter-Provider Option A和Inter-Provider Option B都需要ASBR参与VPN-IPv4路由的维护和发布。当每个AS都有大量的VPN路由需要交换时,ASBR很可能成为阻碍网络进一步扩展的瓶颈。Inter-Provider Option C中PE之间直接交换VPN-IPv4路由,具有很好的可扩展性。
MPLS L3VPN服务提供商的用户可能也是一个服务提供商。这种情况下,前者称为提供商运营商(Provider Carrier)或一级运营商(First Carrier),后者称为客户运营商(Customer Carrier)或二级运营商(Second Carrier)。这种组网模型称为运营商的运营商(Carriers’ carriers)。
运营商的运营商通过在二级运营商的路由器之间建立BGP会话直接交互二级运营商连接的用户网络的路由,实现一级运营商不引入二级运营商的用户网络路由,只引入二级运营商的骨干网路由,从而大大减少一级运营商网络中需要维护的路由数量,提高可扩展性。
由于一级运营商不引入二级运营商的用户网络路由,为了保证用户网络的报文能够跨越一级运营商传递,在一级运行商PE和接入一级运营商的二级运营商CE(在二级运营商内其为PE设备,以下简称为二级运营商CE)之间需要为二级运营商骨干网的路由分配标签。一级运行商PE和二级运营商CE之间需要进行如下配置:
· 如果一级运营商PE与二级运营商CE位于同一个AS内,则它们之间配置IGP和LDP;否则,它们之间配置MP-EBGP,通过MP-EBGP为PE与CE之间交换的IPv4单播路由分配标签。
· 无论二者是否位于同一个AS,二级运营商CE上都需要使能MPLS。并且,二级运营商CE上虽然有二级运营商的用户网络路由,但它们并不把这些路由发布给一级运营商PE,只在二级运营商PE之间交换。
二级运营商可能只是普通ISP,也可能是MPLS L3VPN服务提供商。
· 如图1-11所示,二级运营商是普通ISP时,其PE不需要运行MPLS,与二级运营商CE之间运行IGP。PE 3和PE 4之间通过IBGP会话交换二级运营商的用户网络路由(IPv4单播路由)。
· 如图1-12所示,二级运营商是MPLS L3VPN服务提供商时,其PE也需要运行MPLS,与二级运营商CE之间运行IGP和LDP。PE 3和PE 4之间通过MP-IBGP会话交换二级运营商的用户网络路由(VPN-IPv4路由)。
嵌套VPN通过在MPLS L3VPN的PE和CE之间传递VPNv4路由,使得用户可以管理自己内部的VPN,根据实际需要在用户网络内部进一步划分VPN,运营商不参与用户内部VPN的管理。如图1-13所示,用户网络在运营商MPLS VPN网络上所属的VPN为VPN A,在用户网络内部划分子VPN:VPN A-1和VPN A-2。运营商PE设备把用户网络当作普通VPN用户对待,不参与子VPN的划分。运营商CE设备(CE 1和CE 2)和运营商PE设备之间传递包括子VPN路由信息的VPNv4路由,从而实现用户网络内部子VPN路由信息的传递。
嵌套VPN支持对称组网方式和非对称组网方式,即属于同一用户网络的不同Site包括的用户内部VPN数目可以相同,也可以不同。嵌套VPN还支持用户内部VPN的多层嵌套。
图1-13 嵌套VPN组网应用
嵌套VPN中,路由信息的传播过程为:
(1) 用户PE从用户CE接收到私网路由后,通过MP-BGP将VPN-IPv4路由发布给运营商CE设备。
(2) 运营商CE设备通过MP-BGP将VPN-IPv4路由发布给运营商的PE设备。
(3) 运营商的PE设备收到VPN-IPv4路由后,保留用户网络内部的VPN信息,并附加用户在运营商网络上的MPLS VPN属性,即将该VPN-IPv4路由的RD更换为用户所处运营商网络VPN的RD,同时将用户所处运营商网络VPN的Export Target添加到路由的扩展团体属性列表中。运营商的PE设备维护用户网络内部的VPN信息。
(4) 运营商的PE设备向其他运营商PE设备发布这些携带综合VPN信息的VPN-IPv4路由。
(5) 其他的运营商PE设备收到VPN-IPv4路由后,与本地VPN的Import Target进行匹配,每个VPN接收属于自己的路由,并将路由发布给运营商CE设备。如果运营商PE和运营商CE设备之间是IPv4连接(如CE 7和CE 8),则直接发布IPv4路由;如果是VPN-IPv4连接(如CE 1和CE 2),则表示通过私网连接的是一个用户MPLS VPN网络,运营商PE向运营商CE发布VPN-IPv4路由。
(6) 用户PE通过运营商CE接收到VPN-IPv4路由后,与本地VPN的Import Target进行匹配,每个VPN接收属于自己的路由,并发布给自己连接的用户CE设备(如图1-13中的CE 3、CE 4、CE 5和CE 6)。
HoVPN(Hierarchy of VPN,分层VPN),又称为HoPE(Hierarchy of PE,分层PE),用来避免PE成为网络的瓶颈,以便于大规模部署VPN网络。
HoVPN将PE划分为UPE(Underlayer PE or User-end PE,下层PE或用户侧PE)和SPE(Superstratum PE or Service Provider-end PE,上层PE或运营商侧PE)。UPE和SPE分工不同,二者构成分层式PE,共同完成传统上一个PE的功能。分层式PE可以同普通PE共存于一个MPLS网络。
图1-14 HoVPN的基本结构
· UPE直接连接用户网络,主要完成用户接入功能。UPE维护其直接相连的VPN Site的路由,但不维护VPN中其它远程Site的路由或仅维护它们的聚合路由;UPE为其直接相连的Site的路由分配内层标签,并通过MP-BGP随VPN路由发布此标签给SPE。UPE的路由容量和转发性能较低,但接入能力强。
· SPE连接UPE并位于运营商网络内部,主要完成VPN路由的管理和发布。SPE维护其通过UPE连接的VPN所有路由,包括本地和远程Site的路由,SPE将路由信息发布给UPE,并携带标签。SPE发布的路由信息可以是VPN实例的缺省路由(或聚合路由),也可以是通过路由策略的路由信息。通过后者可以实现对同一VPN下不同站点之间互访的控制。SPE的路由表容量大,转发性能强,但接口资源较少。
SPE和UPE之间运行MP-IBGP或MP-EBGP。采用MP-IBGP时,SPE需要作为多个UPE的路由反射器,在UPE之间反射路由。
HoVPN支持分层式PE的嵌套:
· 一个分层式PE可以作为UPE,同另一个SPE组成新的分层式PE;
· 一个分层式PE可以作为SPE,同多个UPE组成新的分层式PE;
分层式PE的嵌套可以进行多次。在分层式PE的嵌套中,SPE和UPE是相对的概念,上层PE相对于下层就是SPE,下层PE相对于上层就是UPE。
图1-15 分层式PE的嵌套
图1-15是一个三层的分层式PE,称中间的PE为MPE(Middle-level PE)。SPE和MPE之间,以及MPE和UPE之间,均运行MP-BGP。MP-BGP为上层PE发布下层PE上的所有VPN路由,为下层PE发布上层PE的VPN实例缺省路由或通过路由策略的VPN路由。SPE维护了这个分层式PE接入的所有Site的VPN路由,路由数目最多;UPE只维护它所直接连接的Site的VPN路由,路由数目最少;MPE的路由数目介于SPE和UPE之间。
本节重点介绍OSPF对VPN的扩展,如果需要了解OSPF的基本知识,请参见“三层技术-IP路由配置指导”中的“OSPF”。
在PE-CE间运行OSPF交互私网路由时,PE必须支持OSPF多实例,即每个OSPF进程与一个VPN实例绑定,通过该OSPF进程学习到的路由添加到对应VPN实例的路由表中,以实现不同VPN实例路由的隔离。
PE与CE之间的OSPF区域可以是非骨干区域,也可以是骨干区域。
在OSPF VPN扩展应用中,MPLS VPN骨干网被看作是骨干区域area 0。由于OSPF要求骨干区域连续,因此,所有站点的area 0必须与MPLS VPN骨干网相连(物理连通或通过Virtual-link实现逻辑上的连通)。
如果在PE和CE间运行OSPF,则PE上需要将PE之间传递的BGP路由引入到OSPF路由中,再将该路由通过OSPF发布给CE。这样就会导致即使不同的站点属于同一个OSPF路由域,在一个站点学到的路由,也将作为外部路由发布给另一站点。通过为属于同一个OSPF路由域的站点配置相同的域ID(Domain ID),可以解决上述问题。
图1-16 BGP/OSPF交互示意图
以图1-16为例,CE 11、CE 21和CE 22属于同一个VPN,且属于同一个OSPF路由域。配置Domain ID前,VPN 1内路由从CE 11发布到CE 21和CE 22的过程为:首先在PE 1上将CE 11的OSPF路由引入BGP;然后通过BGP将这些VPN路由发布给PE 2;在PE 2上将BGP路由引入到OSPF,再通过AS External LSA(即Type-5 LSA)或NSSA External LSA(即Type-7 LSA)发布给CE 21和CE 22。
配置Domain ID后,路由传递过程为:在PE 1上将OSPF路由引入到BGP时,将Domain ID附加到BGP VPNv4路由上,作为BGP的扩展团体属性传递给PE 2。PE 2接收到BGP路由后,将本地配置的Domain ID与路由中携带的Domain ID进行比较。如果相同,且为区域内或区域间路由,则在PE 2将路由重新引入到OSPF时,该路由作为Network Summary LSA(即Type-3 LSA)发布给CE 21和CE 22;否则,该路由将作为AS External LSA(即Type-5 LSA)或NSSA External LSA(即Type-7 LSA)发布给CE 21和CE 22。
如图1-17所示,同一个站点连接到多个不同PE的情况下,当一个PE通过OSPF向站点发布从MP-BGP学习到的私网路由时,该路由可能被另一个PE接收到,造成路由环路。
OSPF VPN扩展通过如下方法避免路由环路:
· 对于Type-3 LSA,通过DN(Down Bit)标识位避免路由环路:当PE设备将BGP路由引入OSPF,并生成Type-3 LSA时,PE为生成的LSA设置DN位。其他PE接收到CE发布的Type-3 LSA后,如果该LSA的DN位置位,则计算路由时忽略该LSA,从而避免再次通过BGP协议发布该路由造成路由环路。
· 对于Type-5 LSA和Type-7 LSA,通过Route Tag(VPN引入路由的外部路由标记)避免路由环路:为连接同一站点的PE设备配置相同的Route Tag。一台PE设备将BGP路由引入OSPF,并生成Type-5 LSA或Type-7 LSA时,为该Type-5或Type-7 LSA添加本地配置的外部路由标记。其他PE接收到CE发布的Type-5或Type-7 LSA后,将其中的外部路由标记值与本地配置的值进行比较。如果相同,则在进行路由计算时忽略该LSA,从而避免路由环路。
· 通过PE连接的路由:该路由为区域间(域ID相同)或外部路由(未配置域ID或域ID不同)。
· CE之间直接相连的路由:该路由为区域内路由,称为backdoor链路。
前者的优先级低于后者,导致VPN流量总是通过backdoor链路转发,而不走骨干网。为了避免这种情况发生,可以在PE路由器之间建立OSPF伪连接(Sham-link),使经过MPLS VPN骨干网的路由也成为OSPF区域内路由。通过调整度量值,使得VPN流量通过骨干网中的Sham-link转发。
图1-18 Sham-link应用示意图
Sham-link是VPN内的一条虚拟点到点链路,该链路在Type-1 LSA中发布。Sham-link通过源IP地址和目的IP地址来唯一标识。源IP地址和目的IP地址分别为本端PE和远端PE上属于该VPN的地址,通常情况下采用32位掩码的Loopback接口地址。
为了保证一端PE的VPN实例路由表中具有到达Sham-link目的IP地址的路由,确保路由可达,PE上需要将Sham-link的源IP地址作为VPN-IPv4地址通过MP-BGP发布;为了避免路由环路,Sham-link路由不会通过MP-BGP发布。即,一端PE只会通过MP-BGP发布Sham-link的源IP地址,不会发布Sham-link的目的IP地址。
在MPLS L3VPN中,如果PE和CE之间运行EBGP,由于BGP使用AS号检测路由环路,为保证路由信息的正确发送,需要为物理位置不同的站点分配不同的AS号。
如果物理位置不同的CE复用相同的AS号,则需要在PE上配置BGP的AS号替换功能,当PE向指定对等体(CE)发布路由时,如果路由的AS_PATH中存在CE所在的AS号,则PE将该AS号替换成PE的AS号后,再发布该路由,以保证私网路由能够正确发布。
使能BGP的AS号替换功能后,PE向对等体组中所有已建立连接的CE重新发送所有路由,并对发送路由中的AS_PATH属性按上述规则替换。
图1-19 BGP AS号替换和SoO应用示意图
在图1-19中,Site 1和Site 2都使用AS号800,在PE 2上使能针对CE 2的AS号替换功能。当CE 1发来的Update信息从PE 2发布给CE 2时,PE 2发现AS_PATH中存在与CE 2相同的AS号800,就把它替换为自己的AS号100,这样,CE 2就可以正确接收CE 1的路由信息。
PE使用不同接口连接同一站点的多个CE时,如图1-19中的CE 2和CE 3,使用BGP的AS号替换功能,会导致CE 3发布的路由通过PE 2和CE 2再次发布到Site 2,引起路由环路。此时,通过在PE 2上为对等体CE 2和CE 3配置相同的SoO属性,可以避免路由环路。PE 2从CE 2或CE 3接收到路由后为路由添加SoO属性;向CE 2或CE 3发布路由时检查路由的SoO属性。由于CE 3发布路由的SoO属性与CE 2的SoO属性相同,PE 2不会将该路由发布给CE 2,从而避免路由环路。
SoO属性的详细介绍,请参见“三层技术-IP路由配置指导”中的“BGP”。
MPLS L3VPN FRR(Fast Reroute,快速重路由)功能用来在CE双归属(即一个CE同时连接两个PE)的组网环境下,通过为流量转发的主路径指定一条备份路径,并通过BFD检测主路径的状态,实现当主路径出现故障时,将流量迅速切换到备份路径,大大缩短了故障恢复时间。在使用备份路径转发报文的同时,会重新进行路由优选,优选完毕后,使用新的最优路由来转发报文。
MPLS L3VPN快速重路由的路径备份方式分为如下几种。
(1) VPNv4路由备份VPNv4路由
图1-20 VPNv4路由备份VPNv4路由示意图
如图1-20所示,在入节点PE 1上指定VPN 1的FRR备份下一跳为PE 3,则PE 1接收到PE 2和PE 3发布的到达CE 2的VPNv4路由后,PE 1会记录这两条VPNv4路由,并将PE 2发布的VPNv4路由当作主路径,PE 3发布的VPNv4路由当作备份路径。
在PE 1上配置BFD检测LSP或MPLS TE隧道功能,通过BFD检测PE 1到PE 2之间公网隧道的状态。当公网隧道正常工作时,CE 1和CE 2通过主路径CE 1—PE 1—PE 2—CE 2通信。当PE 1检测到该公网隧道出现故障时,PE 1将通过备份路径CE 1—PE 1—PE 3—CE 2转发CE 1访问CE 2的流量。
在这种备份方式中,PE 1负责主路径检测和流量切换。
BFD检测LSP或MPLS TE隧道功能的详细介绍,请参见“MPLS配置指导”中“MPLS OAM”。
(2) VPNv4路由备份IPv4路由
图1-21 VPNv4路由备份IPv4路由示意图
如图1-21所示,在出节点PE 2上指定VPN 1的FRR备份下一跳为PE 3,则PE 2接收到CE 2发布的IPv4路由和PE 3发布的到达CE 2的VPNv4路由后,PE 2会记录这两条路由,并将CE 2发布的IPv4路由当作主路径,PE 3发布的到达CE 2的VPNv4路由当作备份路径。同时,PE 2通过ARP或Echo方式的BFD会话检测PE 2—CE 2这条路径的状态。当此路径正常工作时,CE 1和CE 2通过主路径CE 1—PE 1—PE 2—CE 2通信。当PE 2检测到路径PE 2—CE 2出现故障时,快速切换到路径PE 2—PE 3—CE 2,CE 1将通过备份路径CE 1—PE 1—PE 2—PE 3—CE 2访问CE 2。从而,避免路由收敛(切换到路径CE 1—PE 1—PE 3—CE 2)前,流量转发中断。
在这种备份方式中,PE 2负责主路径检测和流量切换。
(3) IPv4路由备份VPNv4路由
图1-22 IPv4路由备份VPNv4路由示意图
如图1-22所示,在PE 2上指定VPN 1的FRR备份下一跳为CE 2,则PE 2接收到CE 2发布的IPv4路由和PE 3发布的到达CE 2的VPNv4路由后,PE 2会记录这两条路由,并将PE 3发布的到达CE 2的VPNv4路由当作主路径,CE 2发布的IPv4路由当作备份路径。
在PE 2上配置BFD检测LSP或MPLS TE隧道功能,通过BFD检测PE 2到PE 3之间公网隧道的状态。当公网隧道正常工作时,CE 1和CE 2通过主路径CE 1—PE 1—PE 2—PE 3—CE 2通信。当PE 2检测到该公网隧道出现故障时,PE 2将通过备份路径CE 1—PE 1—PE 2—CE 2转发CE 1访问CE 2的流量。
在这种备份方式中,PE 2负责主路径检测和流量切换。
传统的MPLS L3VPN架构要求每个用户站点单独使用一个CE与PE相连,如图1-1所示。随着用户业务的不断细化和安全需求的提高,一个私有网络内的用户可能需要划分成多个VPN,不同VPN用户间的业务需要完全隔离。此时,为每个VPN单独配置一台CE将加大用户的设备开支和维护成本;而多个VPN共用一台CE,使用同一个路由表项,又无法保证数据的安全性。
MCE(Multi-VPN-Instance CE,多VPN实例CE)功能通过在CE设备上建立VPN实例,为不同的VPN提供逻辑独立的路由转发表和地址空间,使多个VPN可以共享一个CE。该CE设备称为MCE设备。MCE功能有效地解决了多VPN网络带来的用户数据安全与网络成本之间的矛盾。
图1-23 MCE工作原理示意图

如图1-23所示,MCE组网的关键是在MCE与用户站点之间、MCE与PE之间交互私网路由,并将其正确学习到相应VPN实例的路由表中。其他处理与传统的MPLS L3VPN相同,此处不再赘述。
· MCE与用户站点之间的私网路由交互:在MCE设备上为VPN 1和VPN 2创建VPN实例,并使用GigabitEthernet1/0/1接口与VPN 1进行绑定、GigabitEthernet1/0/2接口与VPN 2进行绑定。在接收路由信息时,MCE设备根据路由的接收接口,即可判断该路由信息的来源,并将其维护到对应VPN实例的路由表中。
· MCE与PE之间的私网路由交互:MCE和PE 1之间通过以太网子接口连接。在MCE上将接口GigabitEthernet1/0/3.1与VPN 1绑定;将GigabitEthernet1/0/3.2与VPN 2绑定。在PE 1上为VPN 1和VPN 2创建VPN实例,并将连接MCE的接口GigabitEthernet1/0/3.1和GigabitEthernet1/0/3.2与VPN实例绑定,绑定的方式与MCE设备一致。从而,使得MCE与PE之间交互的私网路由可以准确地学习到对应VPN实例的路由表中。
MCE与VPN站点之间、MCE与PE之间可以使用静态路由、RIP、OSPF、IS-IS、EBGP或IBGP交换路由信息。
MCE设备上可以配置DHCP服务器或DHCP中继功能,实现为私网内的DHCP客户端动态分配IP地址。MCE作为DHCP服务器时,不同私网的IP地址空间不能重叠。
与MPLS L3VPN相关的协议规范有:
· RFC 3107:Carrying Label Information in BGP-4
· RFC 4360:BGP Extended Communities Attribute
· RFC 4364:BGP/MPLS IP Virtual Private Networks (VPNs)
· RFC 4577:OSPF as the Provider/Customer Edge Protocol for BGP/MPLS IP Virtual Private Networks (VPNs)
表1-1 MPLS L3VPN配置任务简介
|
配置OSPF伪连接 |
||
|
配置Multi-VPN-Instance CE |
||
|
配置Egress PE上私网路由标签操作方式 |
||
|
配置BGP的AS号替换和SoO属性 |
||
|
配置MPLS L3VPN快速重路由 |
||
配置MPLS L3VPN的关键在于管理VPN私网路由在MPLS骨干网上的发布,包括PE-CE间的路由发布管理以及PE-PE间的路由发布管理。
表1-2 基本MPLS L3VPN配置任务简介
|
配置VPN实例 |
创建VPN实例 |
||
|
配置VPN实例与接口关联 |
|||
|
配置VPN实例的路由相关属性 |
|||
|
配置PE-CE间的路由交换 |
|||
|
配置PE-PE间的路由交换 |
|||
在配置基本MPLS L3VPN之前,需完成以下任务:
· 对MPLS骨干网(PE、P)配置IGP,实现骨干网的IP连通性
· 对MPLS骨干网(PE、P)配置MPLS基本能力
· 对MPLS骨干网(PE、P)配置MPLS LDP,建立LDP LSP
VPN实例不仅可以将VPN私网路由与公网路由隔离,还可以隔离不同VPN实例的路由,这一特点使得VPN实例的使用不限于MPLS L3VPN。
配置VPN实例的操作是在PE或MCE设备上进行的。
VPN实例在实现中与Site关联。VPN实例不是直接对应于VPN,一个VPN实例综合了和它所对应Site的VPN成员关系和路由规则。
|
创建VPN实例,并进入VPN实例视图 |
||
|
配置VPN实例的RD |
缺省情况下,没有指定VPN实例的RD |
|
|
(可选)配置VPN实例的描述信息 |
缺省情况下,未配置VPN实例的描述信息 |
|
|
(可选)配置VPN实例的ID |
缺省情况下,没有指定VPN实例的ID |
执行ip binding vpn-instance命令将删除接口上已经配置的IP地址,因此需要重新配置接口的IP地址。
VPN实例配置完成后,还需要与连接CE的接口进行关联。
表1-4 配置VPN实例与接口关联
|
将当前接口与VPN实例关联 |
需要注意的是,当ATM接口/ATM子接口下创建了两个或两个以上的PVC时,该接口不支持关联VPN实例 有关ATM的详细介绍,请参见“二层技术-广域网接入配置指导”中的“ATM” |
表1-5 配置VPN实例的路由相关属性
|
||||
|
||||
|
进入VPN实例视图或IPv4 VPN视图 |
进入VPN实例视图 |
VPN实例视图下配置的路由相关属性既可以用于IPv4 VPN,也可以用于IPv6 VPN 既可以在VPN实例视图下,也可以在IPv4 VPN视图下,配置IPv4 VPN的路由相关属性。如果同时在两个视图下配置了路由相关属性,则IPv4 VPN采用IPv4 VPN视图下配置的路由相关属性 |
||
|
配置VPN实例的VPN Target |
vpn-target vpn-target&<1-8> [ both | export-extcommunity | import-extcommunity ] |
缺省情况下,没有指定VPN实例的VPN Target |
|
|
|
配置VPN实例支持的最大激活路由前缀数 |
routing-table limit number { warn-threshold | simply-alert } |
缺省情况下,没有配置VPN实例支持的最多路由数 配置一个VPN实例可以支持的最大激活路由前缀数,可以防止PE路由器上保存过多的激活路由前缀信息 一个PE路由器最多可以支持的激活路由前缀数取值范围为1~1039360 |
|
|
|
对当前VPN实例应用入方向路由策略 |
缺省情况下,允许所有VPN Target属性匹配的路由通过 执行本配置时,需要创建路由策略。路由策略的详细介绍,请参见“三层技术-IP路由配置指导”中的“路由策略” |
|
||
|
对当前VPN实例应用出方向路由策略 |
执行本配置时,需要创建路由策略。路由策略的详细介绍,请参见“三层技术-IP路由配置指导”中的“路由策略” |
|
||
|
配置VPN实例的隧道策略 |
缺省情况下,隧道策略为按照LSP隧道->GRE隧道->CR-LSP隧道的优先级顺序选择隧道,负载分担条数为1 为VPN实例配置隧道策略之前必须先创建隧道策略,否则将采用缺省策略 隧道策略的创建及配置方法,请参见“MPLS配置指导”中的“隧道策略” |
|
||
配置PE-CE间路由交换可以使用静态路由、RIP、OSPF、IS-IS、EBGP和IBGP路由协议。具体采用哪种协议请根据配置的实际需要。
表1-6 配置PE-CE间使用静态路由
|
为指定VPN实例配置静态路由 |
该配置在PE上进行,CE上的配置方法与普通静态路由相同 静态路由的详细配置请参见“三层技术-IP路由配置指导”中的“静态路由” |
一个RIP进程只能属于一个VPN实例。如果在启动RIP进程时不绑定到VPN实例,则该进程属于公网进程。有关RIP的介绍和详细配置,请参见“三层技术-IP路由配置指导”中的“RIP”。
表1-7 配置PE-CE间使用RIP
|
创建PE-CE间的RIP实例,并进入RIP视图 |
该配置在PE上进行,CE上配置普通RIP即可 |
|
VPN实例绑定的OSPF进程中不使用系统视图下配置的公网Router ID,因此用户需要在启动进程时手工配置Router ID,或者所要绑定的VPN实例中至少有一个接口配置了IP地址。
一个OSPF进程只能属于一个VPN实例。如果在启动OSPF进程时不绑定到VPN实例,则该进程属于公网进程。有关OSPF的介绍和详细配置,请参见“三层技术-IP路由配置指导”中的“OSPF”。
表1-8 配置PE-CE间使用OSPF
|
创建PE-CE间的OSPF实例,并进入OSPF视图 |
ospf [ process-id | router-id router-id | vpn-instance vpn-instance-name ] * |
该配置在PE上进行,CE上配置普通OSPF即可 删除VPN实例后,相关的所有OSPF进程也将全部被删除 |
|
(可选)配置OSPF域标识符 |
缺省情况下,OSPF域标识符为0 该配置在PE上进行 OSPF进程的域ID包含在此进程生成的路由中,在将OSPF路由引入BGP时,域ID被附加到BGP路由上,作为BGP的扩展团体属性传递 配置域ID时需要注意: · 每个OSPF进程只能配置一个域ID,不同进程的域ID可以相同 · 同一个VPN的所有OSPF进程应配置相同的域ID,以保证路由发布的正确性 |
|
|
(可选)配置OSPF扩展团体属性的类型编码 |
ext-community-type { domain-id type-code1 | router-id type-code2 | route-type type-code3 } |
缺省情况下,OSPF扩展团体属性Domain ID的类型编码是0x0005,Router ID的类型编码是0x0107,Route Type的类型编码是0x0306 该配置在PE上进行 |
|
配置OSPF区域,并进入OSPF区域视图 |
||
|
缺省情况下,接口不属于任何区域且OSPF功能处于关闭状态 |
一个IS-IS进程只能属于一个VPN实例。如果在启动IS-IS进程时不绑定到VPN实例,则该进程属于公网进程。有关IS-IS的介绍和详细配置,请参见“三层技术-IP路由配置指导”中的“IS-IS”。
表1-9 配置PE-CE间使用IS-IS
|
创建PE-CE间的IS-IS实例,并进入IS-IS视图 |
该配置在PE上进行,CE上配置普通IS-IS即可 |
|
|
配置指定接口上使能IS-IS路由进程 |
缺省情况下,IS-IS功能在接口上处于关闭状态,且没有任何IS-IS进程与其关联 |
(1) PE上的配置
表1-10 PE上的配置
|
进入BGP视图 |
||
|
进入BGP-VPN实例视图 |
BGP-VPN实例视图下的配置任务与BGP视图下的相同,有关介绍和详细配置,请参见“三层技术-IP路由配置指导”中的“BGP” |
|
|
将CE配置为VPN私网EBGP对等体 |
BGP的配置中有对等体和对等体组的配置,有关介绍和详细说明请参见“三层技术-IP路由配置指导”中的“BGP”。本章中不将对等体和对等体组加以区分 |
|
|
创建BGP-VPN IPv4单播地址族,并进入BGP-VPN IPv4单播地址族视图 |
||
|
使能本地路由器与指定对等体/对等体组交换IPv4单播路由信息的能力 |
缺省情况下,本地路由器不能与对等体交换IPv4单播路由信息 |
|
|
引入本端CE路由 |
PE需要将到本端CE的路由引入VPN路由表中,以发布给对端PE |
|
|
(可选)配置允许本地AS号在所接收的路由的AS_PATH属性中出现,并可同时配置允许重复的次数 |
缺省情况下,不允许本地AS号在接收路由的AS_PATH属性中出现 通常情况下,BGP通过AS号检测路由环路。但在Hub&Spoke组网方式下,如果在PE和CE之间运行EBGP,当PE将路由信息通告给CE时带上本自治系统的AS号,再从CE接收路由更新时,路由更新消息中会带有本自治系统的AS号,这样PE就不能接收这条路由更新信息,此时需要配置允许路由环路 |
(2) CE上的配置
表1-11 CE上的配置
|
进入BGP视图 |
||
|
将PE配置为对等体 |
||
|
创建BGP IPv4单播地址族,并进入BGP IPv4单播地址族视图 |
缺省情况下,没有创建BGP IPv4单播地址族 |
|
|
使能本地路由器与指定对等体/对等体组交换IPv4单播路由信息的能力 |
缺省情况下,本地路由器不能与对等体交换IPv4单播路由信息 |
|
|
CE需要将自己所能到达的VPN网段地址发布给接入的PE,通过PE发布给对端CE |
PE和CE之间使用IBGP路由协议只适用于基本的MPLS L3VPN组网环境,Hub&Spoke、Extranet、跨域VPN、运营商的运营商、嵌套VPN和HoVPN组网中,PE和CE之间不能配置IBGP。
(1) PE上的配置
表1-12 PE上的配置
|
进入BGP视图 |
||
|
进入BGP-VPN实例视图 |
BGP-VPN实例视图下的配置任务与BGP视图下的相同,有关介绍和详细配置,请参见“三层技术-IP路由配置指导”中的“BGP” |
|
|
将CE配置为VPN私网IBGP对等体 |
||
|
创建BGP-VPN IPv4单播地址族,并进入BGP-VPN IPv4单播地址族视图 |
||
|
使能本地路由器与指定对等体/对等体组交换IPv4单播路由信息的能力 |
缺省情况下,本地路由器不能与对等体交换IPv4单播路由信息 |
|
|
将CE配置为路由反射器的客户端 |
缺省情况下PE不会向IBGP对等体(包括VPNv4的IBGP对等体)发送从IBGP对等体CE学习的路由,只有将CE配置为路由反射器的客户端后,才能向其它IBGP对等体发送从该CE学习的路由 |
|
(2) CE上的配置
表1-13 CE上的配置
|
进入BGP视图 |
||
|
将PE配置为IBGP对等体 |
||
|
创建BGP IPv4单播地址族,并进入BGP IPv4单播地址族视图 |
缺省情况下,没有创建BGP IPv4单播地址族 |
|
|
使能本地路由器与指定对等体/对等体组交换IPv4单播路由信息的能力 |
缺省情况下,本地路由器不能与对等体交换IPv4单播路由信息 |
|
|
CE需要将自己所能到达的VPN网段地址发布给接入的PE,通过PE发布给对端CE |
表1-14 配置PE-PE间的路由交换
|
进入BGP视图 |
||
|
将对端PE配置为对等体 |
||
|
指定与对等体/对等体组创建BGP会话时建立TCP连接使用的源接口 |
peer { group-name | ip-address } connect-interface interface-type interface-number |
缺省情况下,BGP使用到达BGP对等体的最佳路由的出接口作为与对等体/对等体组创建BGP会话时建立TCP连接的源接口 |
|
创建BGP VPNv4地址族,并进入BGP VPNv4地址族视图 |
||
|
使能本地路由器与指定对等体交换VPNv4路由信息的能力 |
BGP VPNv4路由的属性需要在BGP VPNv4地址族视图下配置。BGP VPNv4路由的很多配置都与BGP IPv4单播路由相同,详细配置请参见“三层技术-IP路由配置指导”中的“BGP”。
如果承载VPN路由的MPLS骨干网跨越多个AS,就需要配置跨域VPN。
跨域VPN有三种解决方案,详细描述请参见“1.1.6 跨域VPN”。请根据实际组网情况,选择合适的跨域VPN方案。
跨域VPN-OptionA的实现比较简单,当PE上的VPN数量及VPN路由数量都比较少时可以采用这种方案。跨域VPN-OptionA的配置可以描述为:对各AS分别进行基本MPLS L3VPN配置,对于ASBR,将对端ASBR看作自己的CE配置即可。即:跨域VPN-OptionA方式需要在PE和ASBR上分别配置VPN实例,前者用于接入CE,后者用于接入对端ASBR。配置方法请参见“1.3 配置基本MPLS L3VPN”。
在跨域VPN-OptionA方式中,对于同一个VPN,同一AS内的ASBR与PE的VPN实例的VPN Target应能匹配;不同AS的PE之间的VPN实例的VPN Target则不需要匹配。
跨域VPN-OptionB的配置主要包括以下内容:
· PE上的配置:
配置基本MPLS L3VPN,并指定同一AS内的ASBR为MP-IBGP对等体。对于同一个VPN,不同AS的PE上为该VPN实例配置的VPN Target需要匹配。
· ASBR上的配置:
¡ 在连接AS内部路由器的接口上配置路由协议、使能MPLS能力、使能LDP能力,以便在AS内建立公网隧道。
¡ 指定同一AS内的PE为MP-IBGP对等体,不同AS的ASBR为MP-EBGP对等体;
¡ 配置不对VPNv4路由进行VPN Target过滤,使得ASBR可以保存所有VPNv4路由信息,以通告给对端ASBR;
¡ 在ASBR之间使能MPLS能力,使其具有转发标签报文的能力,不需要配置MPLS LDP等标签分发协议。
配置跨域VPN-OptionB时,需要注意:ASBR在将VPNv4路由发布给MP-IBGP对等体时,始终会将下一跳修改为自身的地址,不受peer next-hop-local命令的控制。
PE的配置请参见“1.3 配置基本MPLS L3VPN”,以下配置是在ASBR上进行的。
表1-16 配置跨域VPN-OptionB的ASBR
|
进入连接对端ASBR接口的接口视图 |
||
|
缺省情况下,接口的MPLS能力处于关闭状态 |
||
|
进入BGP视图 |
||
|
创建BGP对等体 |
本配置中,需要将同一AS的PE配置为IBGP对等体,不同AS的ASBR配置为EBGP对等体 |
|
|
进入BGP VPNv4地址族视图 |
||
|
使能本地路由器与同一AS的PE、不同AS的ASBR交换VPNv4路由信息的能力 |
||
|
不对VPNv4路由进行VPN Target过滤 |
缺省情况下,PE对收到的VPNv4路由进行VPN Target过滤,通过过滤的路由会被加入到路由表中,没有通过过滤的路由将被丢弃 |
跨域VPN-OptionB的配置主要包括以下内容:
· PE上的配置:
¡ 配置基本MPLS L3VPN,并指定另一AS内的PE为MP-EBGP对等体。对于同一个VPN,不同AS的PE上为该VPN实例配置的VPN Target需要匹配。
¡ 由于PE之间不是直连,因此需要配置peer ebgp-max-hop命令,允许本地路由器同非直连网络上的邻居建立EBGP会话。
¡ 指定同一AS的ASBR为IBGP对等体,并使能二者之间交换带标签的IPv4单播路由的能力。
· ASBR上的配置:
¡ 在连接AS内部路由器的接口上配置路由协议、使能MPLS能力、使能LDP能力,以便在AS内建立公网隧道。
¡ 指定同一AS内的PE为IBGP对等体,不同AS的ASBR为EBGP对等体,分别使能二者之间交换带标签的IPv4单播路由的能力。
¡ 在ASBR之间使能MPLS能力,使其具有转发标签报文的能力,不需要配置MPLS LDP等标签分发协议。
¡ ASBR上还可以配置路由策略,来灵活控制向IBGP或EBGP对等体发布的哪些IPv4单播路由带有MPLS标签。
除了上述配置外,还需要在PE或ASBR上配置通过BGP发布PE地址对应的路由,配置方法请参见“三层技术-IP路由配置指导”中的“BGP”。
PE上基本MPLS L3VPN的配置方法请参见“1.3 配置基本MPLS L3VPN”,表1-17只罗列跨域VPN-OptionC中PE的特殊配置。
|
进入BGP视图 |
||
|
配置本AS的ASBR为IBGP对等体 |
||
|
将另一AS的PE配置为EBGP对等体 |
||
|
创建BGP IPv4单播地址族,并进入BGP IPv4单播地址族视图 |
缺省情况下,没有创建BGP IPv4单播地址族 |
|
|
使能本地路由器与本AS的ASBR交换IPv4单播路由信息的能力 |
缺省情况下,本地路由器不能与对等体交换IPv4单播路由信息 |
|
|
配置与本AS的ASBR之间能够交换带标签的IPv4路由 |
缺省情况下,不具有与对等体/对等体组交换带标签IPv4路由的能力 |
|
|
退回BGP视图 |
||
|
进入BGP VPNv4地址族视图 |
||
|
使能本地路由器与另一AS的PE交换VPNv4路由信息的能力 |
||
|
(可选)配置向对等体/对等体组发送路由时不改变下一跳 |
该步骤用于使用RR通告VPNv4路由的情况:在RR上执行本配置,使得RR之间通告VPNv4路由时,路由的下一跳不会被改变 |
为了建立跨越AS域的公网隧道,ASBR需要为PE地址对应的路由分配MPLS标签,并同时发布该路由和标签。通常情况下,ASBR通过BGP发布的路由不仅包括PE地址,还包括其他路由。此时,可以通过配置路由策略,实现只对满足某些条件的路由分配标签,其它路由仍作为普通IPv4路由发布。
跨域VPN-OptionC中,路由策略常用的配置为:
· if-match mpls-label:用来匹配带有MPLS标签的报文。
· apply mpls-label:实现向对等体发布IPv4路由时,为其添加MPLS标签。本命令可以和if-match子句配合使用。例如,和if-match mpls-label配合使用时,表示如果报文中带有MPLS标签,则为其分配新的MPLS标签,并发布该路由及新分配的标签。
有关路由策略的详细介绍,请参见“三层技术-IP路由配置指导”中的“路由策略”。
表1-18 配置ASBR
|
|||
|
|||
|
route-policy route-policy-name { deny | permit } node node-number |
|||
|
(可选)为IPv4路由分配标签 |
缺省情况下,没有为IPv4路由分配标签 |
||
|
进入BGP视图 |
|
||
|
配置本AS的PE为IBGP对等体 |
|
||
|
将另一AS的ASBR配置为EBGP对等体 |
|
||
|
创建BGP IPv4单播地址族,并进入BGP IPv4单播地址族视图 |
缺省情况下,没有创建BGP IPv4单播地址族 |
|
|
|
使能本地路由器与本AS的PE、另一AS的ASBR交换IPv4单播路由信息的能力 |
缺省情况下,本地路由器不能与对等体交换IPv4单播路由信息 |
|
|
|
配置与本AS的PE及另一AS的ASBR之间能够交换带标签的IPv4路由 |
缺省情况下,不具有与对等体/对等体组交换带标签IPv4路由的能力 |
|
|
|
向本AS的PE发布路由时将下一跳改为自己的地址 |
缺省情况下,BGP发言者在向IBGP对等体/对等体组发布路由时不会将下一跳改为自己的地址 |
|
|
|
(可选)对来自对等体/对等体组的路由或发布给对等体/对等体组的路由应用路由策略 |
peer { group-name | ip-address } route-policy route-policy-name { export | import } |
缺省情况下,没有为对等体/对等体组指定路由策略 |
|
如果网络中VPN接入数量比较多,管理者想要管理权限层次化(通过VPN划分访问权限),且不想让外部知道用户网络内部VPN的部署情况,可以使用嵌套VPN的组网方式。在嵌套VPN组网方式中,用户通过较低的管理复杂度和组网成本,就可以实现内部VPN网络的层次化管理。
嵌套VPN组网中,需要进行以下配置:
· 用户PE和用户CE之间的配置:PE上配置VPN实例;配置PE和CE之间的路由交换。
· 用户PE和运营商CE之间的配置:配置通过BGP VPNv4路由交互用户网络内部子VPN的路由;为了确保运营商CE能够接收所有的BGP VPNv4路由,需要在运营商CE上通过undo policy vpn-target命令配置运营商CE不根据RT对VPNv4路由进行过滤。
· 运营商CE和运营商PE之间的配置:在PE上配置VPN实例,并使能嵌套VPN功能;配置PE和CE之间交互BGP VPNv4路由。
· 运营商PE之间的配置:配置PE和PE之间交互BGP VPNv4路由。
在嵌套VPN组网中,用户PE也可以直接连接运营商PE,与运营商PE交互VPNv4路由,不需要在网络中部署运营商CE。此时,用户PE同时作为运营商CE设备,在用户PE上要进行运营商CE的相关配置。
用户CE、用户PE、运营商CE上的配置与MPLS L3VPN基本配置相似,运营商PE上的配置与MPLS L3VPN基本配置有所不同。运营商PE上的配置如表1-19所示。
配置嵌套VPN时,需要注意:
· 同一用户网络的不同子VPN之间地址空间不能重叠。
· 建议嵌套VPN中对等体CE的地址不要与公网中对等体的地址重叠。
· 目前,嵌套VPN不支持多跳EBGP组网方式,因此运营商PE和运营商CE之间必须使用直连接口地址建立邻居关系。
表1-19 运营商PE上的嵌套VPN配置
|
进入BGP视图 |
||
|
进入BGP VPNv4地址族视图 |
||
|
使能嵌套VPN功能 |
缺省情况下,嵌套VPN功能处于禁止状态 |
|
|
退回BGP视图 |
||
|
进入BGP-VPN实例视图 |
||
|
配置对等体CE或CE所属对等体组的AS号 |
||
|
创建BGP-VPN VPNv4地址族,并进入BGP-VPN VPNv4地址族视图 |
||
|
激活对等体CE或CE所属的对等体组,使能与其交换BGP-VPNv4路由信息的能力 |
||
|
(可选)为BGP对等体/对等体组配置SoO属性 |
缺省情况下,没有为BGP对等体/对等体组配置SoO属性 |
在HoVPN组网中,UPE上仅需进行MPLS L3VPN基本配置,SPE上除了MPLS L3VPN基本配置外,还需进行以下配置:
· 指定BGP对等体或对等体组为UPE。
· 配置SPE向UPE发送路由的方式:向UPE发送指定VPN实例的缺省路由或通过路由策略的路由。
· 创建BGP-VPN实例:由于SPE上没有接口与用户网络直接相连,因此,SPE上不需要配置VPN实例与接口关联。为了根据RT属性将学习到的VPNv4路由添加到相应VPN实例的BGP路由表中,SPE上需要创建BGP-VPN实例。
配置HoVPN时,建议不要同时配置peer default-route-advertise vpn-instance命令和peer upe route-policy命令。
表1-20 配置HoVPN的SPE
|
进入BGP视图 |
|||
|
创建BGP对等体 |
|
||
|
进入BGP VPNv4地址族视图 |
|||
|
使能本地路由器与指定对等体交换VPNv4路由信息的能力 |
|||
|
配置BGP对等体或对等体组为UPE |
缺省情况下,BGP对等体或对等体组不是HoVPN的UPE |
||
|
向UPE发送指定VPN实例的缺省路由 |
peer { group-name | ip-address } default-route-advertise vpn-instance vpn-instance-name |
执行peer default-route-advertise vpn-instance命令后,不论本地路由表中是否存在缺省路由,SPE都会向UPE发布一条下一跳地址为本地地址的缺省路由 只有BGP对等体或对等体组是UPE时,执行peer default-route-advertise vpn-instance命令后,设备才会向BGP对等体或对等体组发布VPN实例缺省路由 |
|
|
向UPE发送通过路由策略的路由 |
peer { group-name | ip-address } upe route-policy route-policy-name export |
||
|
退回BGP视图 |
|||
|
创建BGP-VPN实例,并进入BGP-VPN实例视图 |
|||
在VPN PE间配置伪连接Sham-link后,Sham-link将被视为OSPF区域内路由。这一特性使经过MPLS VPN骨干网的路由成为OSPF区域内路由,避免VPN流量经后门路由转发。
Sham-link的源地址和目的地址应使用32位掩码的Loopback接口地址,且该Loopback接口需要绑定到VPN实例中,并通过BGP发布。
在配置OSPF伪连接之前,需完成以下任务:
· 配置基本MPLS L3VPN(PE-CE间使用OSPF)
· 配置用户CE所在局域网的OSPF
|
创建Loopback接口,并进入Loopback接口视图 |
||
|
将Loopback接口与VPN实例关联 |
缺省情况下,接口不关联任何VPN实例,属于公网接口 |
|
|
配置Loopback接口的地址 |
缺省情况下,未配置Loopback接口的地址 |
表1-22 发布Loopback接口的路由
|
进入BGP视图 |
||
|
进入BGP-VPN实例视图 |
||
|
进入BGP-VPN IPv4单播地址族视图 |
||
|
引入直连路由(将Loopback主机路由引入BGP) |
|
进入OSPF视图 |
ospf [ process-id | router-id router-id | vpn-instance vpn-instance-name ] * |
建议用户启动OSPF进程时手工配置路由器ID |
|
配置VPN引入路由的外部路由标记值 |
缺省情况下,若MPLS骨干网上配置了BGP路由协议,并且BGP的AS号不大于65535,则外部路由标记值的前面两个字节固定为0xD000,后面的两个字节为本端BGP的AS号;否则,外部路由标记值为0 |
|
|
进入OSPF区域视图 |
||
|
创建一条OSPF伪连接 |
Multi-VPN-Instance CE可以看作一种通过路由隔离实现业务隔离的组网方案。配置MCE的关键为:
· 配置MCE与站点之间的路由交换
· 配置MCE与PE之间的路由交换
在MCE组网方案中,路由计算时需要关闭PE上的路由环路检测功能,防止路由丢失;同时禁止各路由协议互操作功能,以节省系统资源。
在配置Multi-VPN-Instance CE之前,需要先在MCE上创建VPN实例,并将MCE连接站点和PE的接口与VPN实例绑定。
MCE可以通过静态路由与Site连接。传统CE配置的静态路由对全局生效,无法解决多VPN间的地址重叠问题。MCE功能可以将静态路由与VPN实例相绑定,将各VPN之间的静态路由进行隔离。
表1-24 配置MCE与站点之间使用静态路由
|
为指定VPN实例配置静态路由 |
该配置在MCE上进行,站点上的配置方法与普通静态路由相同 |
|
一个RIP进程只能属于一个VPN实例。如果在启动RIP进程时不绑定到VPN实例,则该进程属于公网进程。通过在MCE上将RIP进程与VPN实例绑定,可以使不同VPN内的私网路由通过不同的RIP进程在Site和MCE间进行交互,保证了私网路由的隔离和安全。RIP的介绍和详细配置,请参见“三层技术-IP路由配置指导”中的“RIP”。
表1-25 配置MCE与站点之间使用RIP
|
创建MCE与站点间的RIP实例,并进入RIP视图 |
该配置在MCE上进行,站点上配置普通RIP即可 |
|
|
缺省情况下,接口上的RIP功能处于关闭状态 |
||
|
引入由PE发布的远端站点的路由 |
import-route protocol [ process-id | all-processes | allow-ibgp ] [ allow-direct | cost cost | route-policy route-policy-name | tag tag ] * |
缺省情况下,RIP未引入其它路由 |
一个OSPF进程只能属于一个VPN实例。如果在启动OSPF进程时不绑定到VPN实例,则该进程属于公网进程。
通过在MCE上将OSPF进程与VPN实例绑定,可以使不同VPN内的私网路由通过不同的OSPF进程在Site和MCE间进行交互,保证了私网路由的隔离和安全。
OSPF的介绍和详细配置,请参见“三层技术-IP路由配置指导”中的“OSPF”。
表1-26 配置MCE与站点之间使用OSPF
|
创建MCE与站点间的OSPF实例,并进入OSPF视图 |
ospf [ process-id | router-id router-id | vpn-instance vpn-instance-name ] * |
该配置在MCE上进行,站点上配置普通OSPF即可 VPN实例绑定的OSPF进程中不使用系统视图下配置的公网Router ID,因此用户需要在启动进程时手工配置Router ID 一个OSPF进程只能属于一个VPN实例,但一个VPN实例可以使用多个OSPF进程为其传播私网路由 |
|
(可选)配置OSPF域标识符 |
缺省情况下,OSPF域标识符为0 该配置在MCE上进行 同一VPN内的OSPF进程应配置相同的域ID,以保证路由发布的正确性 |
|
|
引入由PE发布的远端站点的路由 |
||
|
配置OSPF区域,进入OSPF区域视图 |
||
|
缺省情况下,接口不属于任何区域且OSPF功能处于关闭状态 |
一个IS-IS进程只能属于一个VPN实例。如果在启动IS-IS进程时不绑定到VPN实例,则该进程属于公网进程。
通过在MCE上将IS-IS进程与VPN实例绑定,可以使不同VPN内的私网路由通过不同的IS-IS进程在Site和MCE间进行交互,保证了私网路由的隔离和安全。
IS-IS协议的介绍和详细配置,请参见“三层技术-IP路由配置指导”中的“IS-IS”。
表1-27 配置MCE与站点之间使用IS-IS
|
创建MCE与站点间的IS-IS实例,并进入IS-IS视图 |
该配置在MCE上进行,站点上配置普通IS-IS即可 |
|
|
创建并进入IS-IS IPv4单播地址族视图 |
address-family ipv4 [ unicast ] |
缺省情况下,没有创建IS-IS IPv4单播地址族视图 |
|
引入由PE发布的远端站点的路由 |
缺省情况下,IS-IS不引入其它协议的路由信息 如果import-route命令中不指定引入的级别,则默认为引入路由到Level-2路由表中 |
|
|
使能接口IS-IS并指定要关联的IS-IS进程号 |
MCE与站点间使用EBGP交换路由信息时,需要在MCE上为每个VPN实例配置BGP对等体,并在站点上引入相应VPN内的IGP路由信息。
MCE使用EBGP交换路由信息时,还可以通过Filter-policy对接收/发布的路由进行过滤。
(1) MCE上的配置
表1-28 配置MCE与站点之间使用EBGP
|
启动BGP,并进入BGP视图 |
||
|
进入BGP-VPN实例视图 |
BGP-VPN实例视图下的配置任务与BGP视图下的相同,有关介绍和详细配置,请参见“三层技术-IP路由配置指导”中的“BGP” |
|
|
配置EBGP对等体或对等体组 |
缺省情况下,设备上不存在任何BGP对等体和对等体组 |
|
|
进入BGP-VPN IPv4单播地址族视图 |
||
|
使能本地路由器与指定对等体交换IPv4单播路由信息的能力 |
缺省情况下,本地路由器不能与对等体交换IPv4单播路由信息 |
|
|
配置对于从对等体/对等体组接收的路由,允许本地AS号在接收路由的AS_PATH属性中出现,并配置允许出现的次数 |
缺省情况下,不允许本地AS号在接收路由的AS_PATH属性中出现 |
|
|
引入由PE发布的远端站点的路由 |
缺省情况下,BGP不会引入IGP路由协议的路由信息 |
|
|
filter-policy { acl-number | prefix-list prefix-list-name } export [ protocol process-id ] |
||
|
filter-policy { acl-number | prefix-list prefix-list-name } import |
|
启动BGP,并进入BGP视图 |
||
|
将MCE配置为EBGP对等体 |
缺省情况下,设备上不存在任何BGP对等体和对等体组 |
|
|
进入BGP IPv4单播地址族视图 |
||