07-MPLS L3VPN配置
本章节下载: 07-MPLS L3VPN配置 (2.5 MB)
MPLS L3VPN是一种三层VPN技术,它使用BGP在服务提供商骨干网上发布用户站点的私网路由,使用MPLS在服务提供商骨干网上转发用户站点之间的私网报文,从而实现通过服务提供商的骨干网连接属于同一个VPN、位于不同地理位置的用户站点。
MPLS L3VPN组网方式灵活,可扩展性好,并能够方便地支持MPLS QoS,因此得到了广泛的应用。
图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。
对于多个连接到同一服务提供商网络的Sites,通过制定策略,可以将它们划分为不同的集合(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地址来解决上述问题。
图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实例配置RD时,需要保证RD的全局唯一性。建议不要将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标签,称为公网标签。
· 内层标签:又称为私网标签,用来指示报文应被送到哪个Site。对端PE根据私网标签可以找到报文所属的VPN实例,通过查找该VPN实例的路由表,将报文正确地转发到相应的Site。PE之间在通过MP-BGP发布VPNv4路由时,将为私网路由分配的私网标签通告给对端PE。
属于同一个VPN的两个Site连接到同一个PE时,PE不需要为VPN报文封装外层标记和内层标签,只需查找对应VPN实例的路由表,找到报文的出接口,将报文转发至相应的Site。
图1-3 VPN报文转发示意图
如图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根据私网标签确定报文的出接口,剥离私网标签后将报文转发至CE 2。
(6) CE 2根据正常的IP转发过程将报文转发给目的主机。
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)。
RFC 2547bis中提出了三种跨域VPN解决方案,分别是:
· VRF-to-VRF:ASBR间使用子接口管理VPN路由,也称为Inter-Provider Option A;
· EBGP Redistribution of labeled VPN-IPv4 routes:ASBR间通过MP-EBGP发布标签VPN-IPv4路由,也称为Inter-Provider Option B;
· Multihop EBGP redistribution of labeled VPN-IPv4 routes:PE间通过MP-EBGP发布标签VPN-IPv4路由,也称为Inter-Provider Option C。
下面逐一对这些方案进行介绍。
这种方式下,两个AS的PE路由器直接相连,PE路由器同时也是各自所在自治系统的边界路由器ASBR。
作为ASBR的PE之间通过多个子接口相连,两个PE都把对方作为自己的CE设备对待,使用传统的EBGP方式向对端发布IPv4路由。报文在AS内部作为VPN报文,采用两层标签转发方式;在ASBR之间则采用普通IP转发方式。
理想情况下,每个跨域的VPN都有一对子接口与之对应,用来交换VPN路由信息。
图1-7 ASBR间使用子接口管理VPN路由组网图
使用子接口实现跨域VPN的优点是实现简单:两个作为ASBR的PE之间不需要为跨域进行特殊配置。
缺点是可扩展性差:作为ASBR的PE需要管理所有VPN路由,为每个VPN创建VPN实例。这将导致PE上的VPN-IPv4路由数量过于庞大。并且,为每个VPN单独创建子接口也提高了对PE设备的要求。
这种方式下,两个ASBR通过MP-EBGP交换它们从各自AS的PE路由器接收的标签VPN-IPv4路由。
路由发布过程可分为以下步骤:
(1) AS 100内的PE先通过MP-IBGP方式把标签VPN-IPv4路由发布给AS 100的边界路由器PE,或发布给为ASBR PE反射路由的路由反射器;
(2) 作为ASBR的PE通过MP-EBGP方式把标签VPN-IPv4路由发布给AS 200的PE(也是AS 200的边界路由器);
(3) AS 200的ASBR PE再通过MP-IBGP方式把标签VPN-IPv4路由发布给AS 200内的PE,或发布给为PE反射路由的路由反射器。
这种方式的ASBR需要对标签VPN-IPv4路由进行特殊处理,因此也称为ASBR扩展方式。
图1-8 ASBR间通过MP-EBGP发布标签VPN-IPv4路由组网图
在可扩展性方面,通过MP-EBGP发布标签VPN-IPv4路由优于ASBR间通过子接口管理VPN。
采用MP-EBGP方式时,需要注意:
· ASBR之间不对接收的VPN-IPv4路由进行VPN Target过滤,因此,交换VPN-IPv4路由的各AS服务提供商之间需要就这种路由交换达成信任协议;
· VPN-IPv4路由交换仅发生在私网对等点之间,不能与公网交换VPN-IPv4路由,也不能与没有达成信任协议的MP-EBGP对等体交换VPN-IPv4路由。
前面介绍的两种方式都能够满足跨域VPN的组网需求,但这两种方式也都需要ASBR参与VPN-IPv4路由的维护和发布。当每个AS都有大量的VPN路由需要交换时,ASBR就很可能成为阻碍网络进一步扩展的瓶颈。
解决上述可扩展性问题的方案是:ASBR不维护或发布VPN-IPv4路由,PE之间直接交换VPN-IPv4路由。
两个ASBR通过IBGP向各自AS内的PE路由器发布标签IPv4路由。
ASBR上不保存VPN-IPv4路由,相互之间也不通告VPN-IPv4路由。
ASBR保存AS内PE的带标签的IPv4路由,并通告给其它AS的对等体。另一个自治系统中的ASBR也通告带标签的IPv4路由。这样,在入口PE和出口PE之间建立起一条LSP。
不同AS的PE之间建立Multihop方式的EBGP连接,交换VPN-IPv4路由。
图1-9 PE间通过Multi-hop MP-EBGP发布标签VPN-IPv4路由组网图
为提高可扩展性,可以在每个AS中指定一个RR(Route Reflector,路由反射器),由RR保存所有VPN-IPv4路由,与AS的PE交换VPN-IPv4路由信息。两个AS的RR之间建立跨域VPNv4连接,通告VPN-IPv4路由。如图1-10所示。
图1-10 采用RR的跨域VPN OptionC方式组网图
MPLS L3VPN服务提供商的用户可能也是一个服务提供商。这种情况下,前者称为提供商运营商(Provider Carrier)或一级运营商(First Carrier),后者称为客户运营商(Customer Carrier)或二级运营商(Second Carrier)。这种组网模型称为运营商的运营商(Carriers’ carriers),低级别的SP作为更高级别SP的CE。
为保持良好的可扩展性,一级运营商并不引入二级运营商连接的用户网络的路由,只引入为不同站点的二级运营商交换报文的路由。二级运营商维护的用户网络的路由通过在相关二级运营商路由器间建立BGP会话交换。这可以大大减少一级运营商网络中需要维护的路由数量。
与普通MPLS L3VPN相比,配置运营商的运营商的主要区别在于一级运营商PE接入二级运营商CE这一部分:
· 如果一级运营商PE与二级运营商CE位于同一个AS内,则它们之间配置IGP和LDP;
· 如果一级运营商PE与二级运营商CE位于不同的AS,则它们之间配置MP-EBGP。MP-EBGP为PE与CE之间交换的路由分配标签。
无论哪种情况,CE上都需要使能MPLS。并且,CE上虽然有二级运营商的VPN路由,但它们并不把这些路由发布给一级运营商的PE,只在二级运营商PE之间交换。
二级运营商可能只是普通ISP,也可能是MPLS L3VPN服务提供商。
二级运营商是普通ISP时,其PE不需要运行MPLS,与CE之间运行IGP。PE 3和PE 4之间通过IBGP会话交换二级运营商的VPN路由。如图1-11所示。
二级运营商是MPLS L3VPN服务提供商时,其PE也需要运行MPLS,与CE之间运行IGP和LDP。PE 3和PE 4之间通过MP-IBGP会话交换二级运营商的VPN路由。如图1-12所示。
如果一级运营商和二级运营商之间存在等价路由,则建议在一级运营商和二级运营商之间建立对应的等价LSP。
在基本的MPLS L3VPN模型中,由运营商经营MPLS VPN骨干网,通过PE设备提供VPN服务。用户网络通过CE设备与运营商的PE设备互连,接入MPLS VPN骨干网,实现属于用户网络的不同Site之间的通信。在这种情况下,用户网络是普通的IP网络,不能再划分子VPN。
实际组网中,用户网络复杂多样,繁简不同。当用户网络内部需要进一步划分多个VPN时,传统的解决方案是直接在运营商的PE设备上配置用户网络内部的VPN。这种方案实现简单,缺点是将导致PE上承载的VPN数量急剧增加,并且,如果用户网络内部需要调整VPN关系,也必须通过运营商操作。这不仅增加了网络的运营成本,也带来了管理和安全方面的问题。
嵌套VPN是一种更为完善的解决方案,它的主要思想是通过在MPLS L3VPN的PE和CE之间传递VPNv4路由,使得用户可以管理自己内部的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路由信息的传递。
图1-13 嵌套VPN组网应用
嵌套VPN中,路由信息的传播过程为:
(1) 运营商的PE设备与运营商CE设备交互VPNv4路由,VPNv4路由携带用户网络内部的VPN信息。
(2) 运营商的PE设备收到VPNv4路由后,保留用户网络内部的VPN信息,并附加用户在运营商网络上的MPLS VPN属性,即将该VPNv4路由的RD更换为用户所处运营商网络VPN的RD,同时将用户所处运营商网络VPN的Export Target添加到路由的扩展团体属性列表中。运营商的PE设备维护用户网络内部的VPN信息。
(3) 运营商的PE设备向其他运营商PE设备发布这些携带综合VPN信息的VPNv4路由。
(4) 其他的运营商PE设备收到VPNv4路由后,与本地VPN的Import Target进行匹配,每个VPN接收属于自己的路由,并将路由发布给运营商CE设备。如果运营商PE和运营商CE设备之间是IPv4连接(如CE 7和CE 8),则直接发布IPv4路由;如果是VPNv4连接(如CE 1和CE 2),则表示通过私网连接的是一个用户MPLS VPN网络,运营商PE向运营商CE发布VPNv4路由。
(5) 用户PE通过运营商CE接收到VPNv4路由后,与本地VPN的Import Target进行匹配,每个VPN接收属于自己的路由,并发布给自己连接的用户CE设备(如图1-13中的CE 3、CE 4、CE 5和CE 6)。
嵌套VPN技术的主要优点是:
· 实现了VPN聚合功能,可以把用户网络的多个内部VPN聚合成一个用户VPN,接入运营商的MPLS VPN网络;
· 支持对称组网方式和非对称组网方式,即属于同一用户网络的不同Site包括的用户内部VPN数目可以相同,也可以不同;
· 支持用户内部VPN的多层嵌套。
嵌套VPN技术降低了用户接入VPN网络的复杂度和成本,为用户提供多样化的VPN组网方式,实现了用户对内部VPN以及多层VPN之间的互访权限控制管理。
(1) 分层模型与平面模型
在MPLS L3VPN解决方案中,PE设备最为关键,它完成两方面的功能:首先是为用户提供接入功能,这需要PE具有大量接口;然后是管理和发布VPN路由,处理用户报文,这需要PE设备具有大容量存储和高转发能力。
目前的网络设计大多采用经典的分层结构,例如,城域网的典型结构是三层模型:核心层、汇聚层、接入层。从核心层到接入层,对设备的性能要求依次下降,网络的规模则依次扩大。
而MPLS L3VPN是一种平面模型,对网络中所有PE设备的性能要求相同,当网络中某些PE在性能和可扩展性方面存在问题时,整个网络的性能和可扩展性将受到影响。
由于MPLS L3VPN的平面模型与典型的分层网络模型不相符,在每一个层次上部署PE都会遇到扩展性问题,不利于大规模部署VPN。
(2) HoVPN
为解决可扩展性问题,MPLS L3VPN必然要从平面模型转变为分层模型。
在MPLS L3VPN领域,HoVPN(Hierarchy of VPN,分层VPN)解决方案的提出,实现了将PE的功能分布到多个PE设备上,多个PE承担不同的角色,并形成层次结构,共同完成一个PE的功能。HoVPN有时也被称为HoPE(Hierarchy of PE,分层PE)。
HoVPN对处于较高层次的设备的路由能力和转发性能要求较高,而对处于较低层次的设备的相应要求也较低,符合典型的分层网络模型。
(1) HoVPN的基本结构
图1-14 HoVPN的基本结构
在图1-14中,直接连结用户的设备称为UPE(Underlayer PE or User-end PE,下层PE或用户侧PE);连结UPE并位于网络内部的设备称为SPE(Superstratum PE or Service Provider-end PE,上层PE或运营商侧PE)。
多个UPE与SPE构成分层式PE,共同完成传统上一个PE的功能。
SPE与UPE的分工是:
· UPE主要完成用户接入功能。UPE维护其直接相连的VPN Site的路由,但不维护VPN中其它远程Site的路由或仅维护它们的聚合路由;UPE为其直接相连的Site的路由分配内层标签,并通过MP-BGP随VPN路由发布此标签给SPE;
· SPE主要完成VPN路由的管理和发布。SPE维护其通过UPE连接的VPN所有路由,包括本地和远程Site的路由,SPE将路由信息发布给UPE,并携带标签。SPE发布的路由信息可以是VPN实例的缺省路由(或聚合路由),也可以是通过路由策略的路由信息。通过后者可以实现对同一VPN下不同站点之间互访的控制。
由于分工的不同,对SPE和UPE的要求也不同:SPE的路由表容量大,转发性能强,但接口资源较少;UPE的路由容量和转发性能较低,但接入能力强。HoVPN充分利用了SPE的性能和UPE的接入能力。
需要说明的是,SPE和UPE是相对的概念。在多个层次的PE结构中,上层PE相对于下层就是SPE,下层PE相对于上层就是UPE。
分层式PE从外部来看同传统上的PE没有区别,可以同普通PE共存于一个MPLS网络。
(2) SPE-UPE
SPE和UPE之间运行MP-BGP,可以是MP-IBGP,也可以是MP-EBGP,这取决于UPE和SPE是否属于同一个AS。
采用MP-IBGP时,为了在IBGP对等体之间通告路由,SPE将作为路由反射器,把来自IBGP对等体UPE的VPN路由发布给IBGP对等体SPE,但SPE不作为其它PE的路由反射器。
(3) HoVPN的嵌套与扩展
HoVPN支持分层式PE的嵌套:
· 一个分层式PE可以作为UPE,同另一个SPE组成新的分层式PE;
· 一个分层式PE可以作为SPE,同多个UPE组成新的分层式PE;
· 以上这种嵌套可以多次进行。
通过分层式PE的嵌套,理论上可以将VPN无限扩展与延伸。
图1-15 分层式PE的嵌套
图1-15是一个三层的分层式PE,称中间的PE为MPE(Middle-level PE)。SPE和MPE之间,以及MPE和UPE之间,均运行MP-BGP。
“MPE”这种说法只是为了表述方便,在HoVPN模型中并没有MPE。
MP-BGP为上层PE发布下层PE上的所有VPN路由,为下层PE发布上层PE的VPN实例缺省路由或通过路由策略的VPN路由。
SPE维护了这个分层式PE接入的所有Site的VPN路由,路由数目最多;UPE只维护它所直接连接的Site的VPN路由,路由数目最少;MPE的路由数目介于SPE和UPE之间。
本节重点介绍OSPF对VPN的扩展,如果需要了解OSPF的基本知识,请参见“三层技术-IP路由配置指导”中的“OSPF”。
OSPF是应用广泛的一种IGP协议,很多情况下,VPN客户端通过BGP对等体连接,客户端内部则经常以OSPF作为内部路由协议。如果能够在PE-CE之间使用OSPF,则CE上就不需要再为到PE的连接支持其它路由协议,从而简化CE的管理和配置。并且,如果客户需要通过传统的OSPF骨干区域提供MPLS L3VPN服务,在PE和CE之间使用OSPF可以简化这种转换。
为了在PE-CE间运行OSPF,PE必须支持OSPF多实例,每个OSPF实例与一个VPN实例对应,使用自己的接口、路由表。
下面具体介绍在PE-CE间配置OSPF需要了解的知识。
(1) PE和CE间的OSPF区域配置
PE与CE之间的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后,PE与PE通过BGP发布VPN路由,PE通过OSPF向CE发布VPN路由。
对于普通OSPF,即使两个不同站点属于同一VPN,它们也会被看作属于不同的自治系统。这样,在一个站点学到的路由,将被作为外部路由传送给另一站点。这种处理方式导致了比较高的OSPF路由协议流量,并带来了一些原本可以避免的网络管理问题。
目前的OSPF可以解决上述问题。通过适当配置,运行OSPF的不同站点之间彼此看作是直接相连的。这样,PE路由器交换OSPF路由信息时就好像是通过一条专线相连。改善了网络管理并使OSPF的应用更为有效。
以图1-16为例,PE 1和PE 2通过MPLS骨干网相连,CE 11、CE 21和CE 22都属于VPN 1。假设图中所有路由器属于同一个域,即,CE 11、CE 21、CE 22属于同一个OSPF域(OSPF domain)。
VPN 1路由的发布过程可以描述为:首先在PE 1上将CE 11的OSPF路由引入BGP;然后通过BGP将这些VPN路由发布给PE 2;在PE 2上将BGP的VPN路由引入到OSPF,再发布给CE 21和CE 22。
图1-16 OSPF在VPN中的使用
如果使用标准的BGP/OSPF交互过程,PE 2将把BGP VPN路由通过Type5 LSAs(即ASE LSAs)发布给CE 21和CE 22。但CE 11与CE 21、CE 22是同一个OSPF域,它们之间的路由发布应该使用Type3 LSAs,即区域间路由。
为了解决上述问题,PE使用一种经过修改的BGP/OSPF交互过程(简称为BGP/OSPF互操作功能),发布从一个Site到另一个Site的路由,将这种路由与真正的AS-External路由进行区分。这一过程需要BGP使用扩展团体属性,携带可以标识OSPF属性的信息。
在实现中,要求每个OSPF域有一个可配置的域ID(Domain ID)。一般建议:同一个VPN的所有OSPF进程要么配置一个相同的域ID,要么都使用缺省的域ID。这样在收到BGP的VPN路由时,域ID相同的是来自同一VPN实例的路由。
(3) 路由环的检测
假设PE与CE之间通过OSPF骨干区域相连,且同一个VPN站点(Site)连接到多个不同PE。这种情况下,当一个PE通过LSA向VPN站点发布从MPLS/BGP学的BGP VPN路由时,LSA可能被另一个PE接收到,造成路由环。
为了防止产生路由环,对于从MPLS/BGP学到的BGP VPN路由,无论PE与CE间是否通过OSPF骨干区域相连,PE在生成Type3 LSA时,都会设置标志位DN。PE路由器的OSPF进程在进行路由计算时,忽略DN置位的Type3 LSA。
如果PE需要向CE发布一条来自其它OSPF域的路由,则PE应表明自己是ASBR,并将该路由作为Type5 LSA发布。
通常情况下,BGP对等体之间通过BGP扩展团体属性在MPLS VPN骨干网上承载路由信息。另一端PE上运行的OSPF可利用这些信息来生成PE到CE的Type3 summary LSA,这些路由是区域间路由。
如图1-17所示:在OSPF的PE-CE连接中,同一个OSPF区域中有两个Site连接到不同的PE,两个Site属于同一个VPN,它们之间存在一条区域内OSPF链路(backdoor link)。这种情况下,通过PE连接两个Site的路由将作为区域间路由(Inter-Area Route),由于其优先级低于经过backdoor链路的区域内路由(Intra-Area Route),不会被OSPF优选。
图1-17 Sham-link应用示意图
上述情况导致VPN流量总是通过backdoor链路转发,而不走骨干网。为了避免这一问题,可以在PE路由器之间建立OSPF伪连接(Sham-link),使经过MPLS VPN骨干网的路由也成为OSPF区域内路由。
Sham-link作为区域内的一条点到点链路,包含在Type1 LSA中发布。用户可以通过调整度量值在Sham-link和backdoor链路之间进行选路。
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目的地址的路由。
在MPLS L3VPN中,如果PE和CE之间运行EBGP,由于BGP使用AS号检测路由环路,为保证路由信息的正确发送,需要为物理位置不同的站点分配不同的AS号。
如果物理分散的CE复用相同的AS号,就应该在PE上配置BGP的AS号替换功能。此功能是BGP的出口策略,在发布路由时有效。
使能了BGP的AS号替换功能后,当PE向指定对等体中的CE发布路由时,如果路由的AS_PATH中有与CE相同的AS号,将被替换成PE的AS号后再发布。
使能BGP的AS号替换功能后,PE向对等体组中所有已建立连接的CE重新发送所有路由,并对发送路由中的AS_PATH属性按上述规则替换。
图1-18 BGP AS号替换应用示意图
在图1-18中,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的路由信息。
BGP/MPLS VPN以隧道的方式解决了在公网中传送私网数据的问题,但传统的BGP/MPLS VPN架构要求每个VPN实例单独使用一个CE与PE相连,如图1-1所示。
随着用户业务的不断细化和安全需求的提高,很多情况下一个私有网络内的用户需要划分成多个VPN,不同VPN用户间的业务需要完全隔离。此时,为每个VPN单独配置一台CE将加大用户的设备开支和维护成本;而多个VPN共用一台CE,使用同一个路由表项,又无法保证数据的安全性。
使用以太网交换机提供的MCE功能,可以有效解决多VPN网络带来的用户数据安全与网络成本之间的矛盾,它使用CE设备本身的VLAN接口编号与网络内的VPN进行绑定,并为每个VPN创建和维护独立的路由转发表。这样不但能够隔离私网内不同VPN的报文转发路径,而且通过与PE间的配合,也能够将每个VPN的路由正确发布至对端PE,保证VPN报文在公网内的传输。
下面以图1-19为例介绍MCE对多个VPN的路由表项进行维护,并与PE交互VPN路由的过程。
图1-19 MCE工作原理示意图
如图1-19所示,左侧私网内有两个VPN站点:Site 1和Site 2,分别通过MCE设备接入MPLS骨干网,其中VPN 1和VPN 2的用户,需要分别与远端Site 2内的VPN 1用户和Site 1内的VPN 2用户建立VPN隧道。
通过配置MCE功能,可以在MCE设备上为VPN 1和VPN 2创建各自的路由转发表,并使用Vlan-interface2接口与VPN 1进行绑定、Vlan-interface3与VPN 2进行绑定。在接收路由信息时,MCE设备根据接收接口的编号,即可判断该路由信息的来源,并将其维护到对应VPN的路由转发表中。
同时,在PE 1上也需要将连接MCE的接口(子接口)与VPN进行绑定,绑定的方式与MCE设备一致。MCE与PE 1之间通过Trunk链路连接,并允许VLAN 2和VLAN 3的报文携带VLAN Tag传输,从而使PE 1在接收时可以根据报文所属VLAN判别该报文属于哪一个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配置任务简介
配置任务 |
详细配置 |
说明 |
配置基本MPLS L3VPN |
完成基本MPLS L3VPN配置后,即可实现通过MPLS技术构建简单的VPN网络 如果部署一些特殊的MPLS L3VPN组网方案,例如跨域VPN、嵌套VPN等,除了配置基本MPLS L3VPN外,还需要根据相应章节进行其他的配置 |
|
配置跨域VPN |
||
配置嵌套VPN |
||
配置HoVPN |
||
配置OSPF伪连接 |
||
配置Multi-VPN-Instance CE |
||
配置Egress PE上私网路由标签操作方式 |
||
配置BGP的AS号替换 |
||
开启告警功能 |
配置MPLS L3VPN的关键在于管理VPN私网路由在MPLS骨干网上的发布,包括PE-CE间的路由发布管理以及PE-PE间的路由发布管理。
表1-2 基本MPLS L3VPN配置任务简介
配置任务 |
说明 |
详细配置 |
|
配置VPN实例 |
创建VPN实例 |
必选 |
|
配置VPN实例与接口关联 |
必选 |
||
配置VPN实例的路由相关属性 |
可选 |
||
配置PE-CE间的路由交换 |
必选 |
||
配置PE-PE间的路由交换 |
必选 |
||
配置BGP VPNv4路由 |
可选 |
在配置基本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成员关系和路由规则。
表1-3 创建VPN实例
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建VPN实例,并进入VPN实例视图 |
ip vpn-instance vpn-instance-name |
缺省情况下,设备上不存在任何VPN实例 |
配置VPN实例的保留VLAN |
reserve-vlan vlan-id |
缺省情况下,未指定VPN实例的保留VLAN 保留VLAN的配置仅在系统工作模式为标准模式时下才有效。关于系统工作模式的详细介绍,请参见“基础配置指导”中的“设备管理” 当系统工作模式为标准模式时,如果创建的VPN实例,不需要接入CE设备、需要配置组播VPN功能或绑定IP 隧道,则必须配置保留VLAN 当系统工作模式为标准模式时,如果VPN实例没有配置保留VLAN,则该VPN实例关联的私网VLAN接口上不能配置URPF功能 |
配置VPN实例的RD |
route-distinguisher route-distinguisher |
缺省情况下,没有指定VPN实例的RD |
(可选)配置VPN实例的描述信息 |
description text |
缺省情况下,未配置VPN实例的描述信息 |
(可选)配置VPN实例的ID |
vpn-id vpn-id |
缺省情况下,没有指定VPN实例的ID |
执行ip binding vpn-instance命令将删除接口上已经配置的IP地址,因此需要重新配置接口的IP地址。
VPN实例配置完成后,还需要与连接CE的接口进行关联。
表1-4 配置VPN实例与接口关联
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入接口视图 |
interface interface-type interface-number |
- |
将当前接口与VPN实例关联 |
ip binding vpn-instance vpn-instance-name |
缺省情况下,接口不关联任何VPN实例 |
VPN路由的发布控制过程如下:
· 当从CE学习到的一条VPN路由引入BGP时,BGP为它关联一个VPN Target扩展团体属性列表,通常这个列表是与CE相关联的VPN实例的输出路由属性列表。
· VPN实例根据VPN Target中的import-extcommunity决定可被接受并引入此VPN实例的路由。
· VPN实例根据VPN Target中的export-extcommunity对向外发布的路由进行VPN Target属性的修改。
表1-5 配置VPN实例的路由相关属性
操作 |
命令 |
说明 |
|
|
进入系统视图 |
system-view |
- |
|
|
进入VPN实例视图或IPv4 VPN视图 |
进入VPN实例视图 |
ip vpn-instance vpn-instance-name |
VPN实例视图下配置的路由相关属性既可以用于IPv4 VPN,也可以用于IPv6 VPN 既可以在VPN实例视图下,也可以在IPv4 VPN视图下,配置IPv4 VPN的路由相关属性。如果同时在两个视图下配置了路由相关属性,则IPv4 VPN采用IPv4 VPN视图下配置的路由相关属性 |
|
进入IPv4 VPN视图 |
ip vpn-instance vpn-instance-name |
|||
address-family ipv4 |
||||
配置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实例可以支持的最大激活路由前缀数,可以防止PE路由器上保存过多的激活路由前缀信息 缺省情况下,当前VPN实例支持的最多激活路由前缀数与系统工作模式相关 |
|
|
对当前VPN实例应用入方向路由策略 |
import route-policy route-policy |
缺省情况下,允许所有VPN Target属性匹配的路由通过 执行本配置时,需要创建路由策略。路由策略的详细介绍,请参见“三层技术-IP路由配置指导”中的“路由策略” |
|
|
对当前VPN实例应用出方向路由策略 |
export route-policy route-policy |
缺省情况下,不对发布的路由进行过滤 执行本配置时,需要创建路由策略。路由策略的详细介绍,请参见“三层技术-IP路由配置指导”中的“路由策略” |
|
|
配置VPN实例的隧道策略 |
tnl-policy tunnel-policy-name |
缺省情况下,选择的策略是LSP隧道,负载分担条数为1 为VPN实例配置隧道策略之前必须先创建隧道策略,否则将采用缺省策略 |
|
配置PE-CE间路由交换可以使用静态路由、RIP、OSPF、IS-IS、EBGP和IBGP路由协议。具体采用哪种协议请根据配置的实际需要。
表1-6 配置PE-CE间使用静态路由
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
为指定VPN实例配置静态路由 |
ip route-static vpn-instance s-vpn-instance-name dest-address { mask-length | mask } { interface-type interface-number [ next-hop-address ] | next-hop-address [ public ] [ track track-entry-number ] | vpn-instance d-vpn-instance-name next-hop-address [ track track-entry-number ] } [ permanent ] [ preference preference-value ] [ tag tag-value ] [ description description-text ] |
缺省情况下,没有配置静态路由 该配置在PE上进行,CE上的配置方法与普通静态路由相同 静态路由的详细配置请参见“三层技术-IP路由配置指导”中的“静态路由” |
一个RIP进程只能属于一个VPN实例。如果在启动RIP进程时不绑定到VPN实例,则该进程属于公网进程。有关RIP的介绍和详细配置,请参见“三层技术-IP路由配置指导”中的“RIP”。
表1-7 配置PE-CE间使用RIP
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建PE-CE间的RIP实例,并进入RIP视图 |
rip [ process-id ] vpn-instance vpn-instance-name |
该配置在PE上进行,CE上配置普通RIP即可 |
在指定网段上使能RIP |
network network-address |
缺省情况下,没有网段使能RIP |
VPN实例绑定的OSPF进程中不使用系统视图下配置的公网Router ID,因此用户需要在启动进程时手工配置Router ID,或者所要绑定的VPN实例中至少有一个接口配置了IP地址。
一个OSPF进程只能属于一个VPN实例。如果在启动OSPF进程时不绑定到VPN实例,则该进程属于公网进程。有关OSPF的介绍和详细配置,请参见“三层技术-IP路由配置指导”中的“OSPF”。
表1-8 配置PE-CE间使用OSPF
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建PE-CE间的OSPF实例,并进入OSPF视图 |
ospf [ process-id | router-id router-id | vpn-instance vpn-instance-name ] * |
该配置在PE上进行,CE上配置普通OSPF即可 删除VPN实例后,相关的所有OSPF进程也将全部被删除 |
(可选)配置OSPF域标识符 |
domain-id domain-id [ secondary ] |
缺省情况下,OSPF域标识符为0 该配置在PE上进行,CE上配置普通OSPF即可 OSPF进程的域ID包含在此进程生成的路由中,在将OSPF路由引入BGP中时,域ID被附加到BGP VPN路由上,作为BGP的扩展团体属性传递 每个OSPF进程只能配置一个域ID,不同进程的域ID相互没有影响。不同VPN内PE上OSPF进程域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区域视图 |
area area-id |
缺省情况下,没有配置OSPF区域 |
配置区域所包含的网段并在指定网段的接口上使能OSPF |
network ip-address wildcard-mask |
缺省情况下,接口不属于任何区域且OSPF功能处于关闭状态 |
一个IS-IS进程只能属于一个VPN实例。如果在启动IS-IS进程时不绑定到VPN实例,则该进程属于公网进程。有关IS-IS的介绍和详细配置,请参见“三层技术-IP路由配置指导”中的“IS-IS”。
表1-9 配置PE-CE间使用IS-IS
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建PE-CE间的IS-IS实例,并进入IS-IS视图 |
isis [ process-id ] vpn-instance vpn-instance-name |
该配置在PE上进行,CE上配置普通IS-IS即可 |
配置网络实体名称 |
network-entity net |
缺省情况下,没有配置NET |
退回系统视图 |
quit |
- |
进入接口视图 |
interface interface-type interface-number |
- |
配置指定接口上使能IS-IS路由进程 |
isis enable [ process-id ] |
缺省情况下,IS-IS功能在接口上处于关闭状态,且没有任何IS-IS进程与其关联 |
(1) PE上的配置
表1-10 PE上的配置
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入BGP视图 |
bgp as-number |
- |
进入BGP-VPN实例视图 |
ip vpn-instance vpn-instance-name |
BGP-VPN实例视图下的配置任务与BGP视图下的相同,有关介绍和详细配置,请参见“三层技术-IP路由配置指导”中的“BGP” |
将CE配置为VPN私网EBGP对等体 |
peer { group-name | ip-address } as-number as-number |
缺省情况下,设备上不存在任何BGP对等体 BGP的配置中有对等体和对等体组的配置,有关介绍和详细说明请参见“三层技术-IP路由配置指导”中的“BGP”。本章中不将对等体和对等体组加以区分 |
创建BGP-VPN IPv4单播地址族,并进入BGP-VPN IPv4单播地址族视图 |
address-family ipv4 [ unicast ] |
|
使能本地路由器与指定对等体/对等体组交换IPv4单播路由信息的能力 |
peer { group-name | ip-address } enable |
缺省情况下,本地路由器不能与对等体交换IPv4单播路由信息 |
引入本端CE路由 |
import-route protocol [ { process-id | all-processes } [ med med-value | route-policy route-policy-name ] * ] |
PE需要将到本端CE的路由引入VPN路由表中,以发布给对端PE |
(可选)配置允许本地AS号在所接收的路由的AS_PATH属性中出现,并可同时配置允许重复的次数 |
peer { group-name | ip-address } allow-as-loop [ number ] |
缺省情况下,不允许本地AS号在接收路由的AS_PATH属性中出现 通常情况下,BGP通过AS号检测路由环路。 |
(2) CE上的配置
表1-11 CE上的配置
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入BGP视图 |
bgp as-number |
- |
将PE配置为对等体 |
peer { group-name | ip-address } as-number as-number |
缺省情况下,设备上不存在任何BGP对等体 |
创建BGP IPv4单播地址族,并进入BGP IPv4单播地址族视图 |
address-family ipv4 [ unicast ] |
缺省情况下,没有创建BGP IPv4单播地址族 |
使能本地路由器与指定对等体/对等体组交换IPv4单播路由信息的能力 |
peer { group-name | ip-address } enable |
缺省情况下,本地路由器不能与对等体交换IPv4单播路由信息 |
(可选)配置路由引入 |
import-route protocol [ { process-id | all-processes } [ med med-value | route-policy route-policy-name ] * ] |
CE需要将自己所能到达的VPN网段地址发布给接入的PE,通过PE发布给对端CE |
PE和CE之间使用IBGP路由协议只适用于基本的MPLS L3VPN组网环境,Hub&Spoke、Extranet、跨域VPN、运营商的运营商、嵌套VPN和HoVPN组网中,PE和CE之间不能配置IBGP。
(1) PE上的配置
表1-12 PE上的配置
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入BGP视图 |
bgp as-number |
- |
进入BGP-VPN实例视图 |
ip vpn-instance vpn-instance-name |
BGP-VPN实例视图下的配置任务与BGP视图下的相同,有关介绍和详细配置,请参见“三层技术-IP路由配置指导”中的“BGP” |
将CE配置为VPN私网IBGP对等体 |
peer { group-name | ip-address } as-number as-number |
缺省情况下,设备上不存在任何BGP对等体 |
创建BGP-VPN IPv4单播地址族,并进入BGP-VPN IPv4单播地址族视图 |
address-family ipv4 [ unicast ] |
|
使能本地路由器与指定对等体/对等体组交换IPv4单播路由信息的能力 |
peer { group-name | ip-address } enable |
缺省情况下,本地路由器不能与对等体交换IPv4单播路由信息 |
将CE配置为路由反射器的客户端 |
peer { group-name | ip-address } reflect-client |
缺省情况下,没有配置路由发射器及其客户端 缺省情况下PE不会向IBGP对等体(包括VPNv4的IBGP对等体)发送从IBGP对等体CE学习的路由,只有将CE配置为路由反射器的客户端后,才能向其它IBGP对等体发送从该CE学习的路由 配置路由反射器后不会修改路由的下一跳。如果需要修改下一跳,则需在路由的接收端通过入策略进行修改 |
(可选)允许路由反射器在客户机之间反射路由 |
reflect between-clients |
缺省情况下,允许路由反射器在客户机之间反射路由 |
(可选)配置路由反射器的集群ID |
reflector cluster-id { cluster-id | ip-address } |
缺省情况下,每个路由反射器都使用自己的Router ID作为集群ID 如果一个集群中配置了多个路由反射器,请使用本命令为所有的路由反射器配置相同的集群ID,以避免产生路由环路 |
(2) CE上的配置
表1-13 CE上的配置
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入BGP视图 |
bgp as-number |
- |
将PE配置为IBGP对等体 |
peer { group-name | ip-address } as-number as-number |
缺省情况下,设备上不存在任何BGP对等体 |
创建BGP IPv4单播地址族,并进入BGP IPv4单播地址族视图 |
address-family ipv4 [ unicast ] |
缺省情况下,没有创建BGP IPv4单播地址族 |
使能本地路由器与指定对等体/对等体组交换IPv4单播路由信息的能力 |
peer { group-name | ip-address } enable |
缺省情况下,本地路由器不能与对等体交换IPv4单播路由信息 |
(可选)配置路由引入 |
import-route protocol [ { process-id | all-processes } [ med med-value | route-policy route-policy-name ] * ] |
CE需要将自己所能到达的VPN网段地址发布给接入的PE,通过PE发布给对端CE |
表1-14 配置PE-PE间的路由交换
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入BGP视图 |
bgp as-number |
- |
将对端PE配置为对等体 |
peer { group-name | ip-address } as-number as-number |
缺省情况下,设备上不存在任何BGP对等体 |
指定与对等体/对等体组创建BGP会话时建立TCP连接使用的源接口 |
peer { group-name | ip-address } connect-interface interface-type interface-number |
缺省情况下,BGP使用到达BGP对等体的最佳路由的出接口作为与对等体/对等体组创建BGP会话时建立TCP连接的源接口 |
创建BGP VPNv4地址族,并进入BGP VPNv4地址族视图 |
address-family vpnv4 |
|
使能本地路由器与指定对等体交换VPNv4路由信息的能力 |
peer { group-name | ip-address } enable |
缺省情况下,本地路由器不能与对等体交换VPNv4路由信息 |
BGP VPNv4路由的属性需要在BGP VPNv4地址族视图下配置。BGP VPNv4路由的很多配置都与BGP IPv4单播路由相同,详细配置请参见“三层技术-IP路由配置指导”中的“BGP”。
表1-15 配置BGP VPNv4路由
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入BGP视图 |
bgp as-number |
- |
进入BGP VPNv4地址族视图 |
address-family vpnv4 |
- |
配置对发布的路由信息进行过滤 |
filter-policy { acl-number | prefix-list prefix-list-name } export [ protocol process-id ] |
缺省情况下,不对发布的路由信息进行过滤 |
配置对接收的路由信息进行过滤 |
filter-policy { acl-number | prefix-list prefix-list-name } import |
缺省情况下,不对接收的路由信息进行过滤 |
配置向对等体/对等体组发布团体属性 |
peer { group-name | ip-address } advertise-community |
缺省情况下,不向对等体/对等体组发布团体属性 |
配置对于从对等体/对等体组接收的路由,允许本地AS号在接收路由的AS_PATH属性中出现,并配置允许出现的次数 |
peer { group-name | ip-address } allow-as-loop [ number ] |
缺省情况下,不允许本地AS号在接收路由的AS_PATH属性中出现 |
为对等体/对等体组设置基于AS路径过滤列表的BGP路由过滤策略 |
peer { group-name | ip-address } as-path-acl as-path-acl-number { export | import } |
缺省情况下,没有设置基于AS路径过滤列表的BGP路由过滤策略 |
向对等体/对等体组发送缺省路由 |
peer { group-name | ip-address } default-route-advertise vpn-instance vpn-instance-name |
缺省情况下,不向对等体/对等体组发送缺省路由 |
为对等体/对等体组设置基于ACL的BGP路由过滤策略 |
peer { group-name | ip-address } filter-policy acl-number { export | import } |
缺省情况下,没有设置基于ACL的BGP路由过滤策略 |
保存所有来自指定对等体/对等体组的原始路由更新信息,不管这些路由是否通过了路由策略的过滤 |
peer { group-name | ip-address } keep-all-routes |
缺省情况下,不保存来自对等体/对等体组的原始路由更新信息 |
配置向对等体/对等体组发布路由时,将下一跳属性修改为自身的地址 |
peer { group-name | ip-address } next-hop-local |
缺省情况下,向对等体/对等体组发布路由时,将下一跳属性修改为自身的地址 |
配置对等体/对等体组发布路由时不改变下一跳 |
peer { group-name | ip-address } next-hop-invariable |
缺省情况下,向EBGP对等体/对等体组发布路由时会将下一跳改为自己的地址 如果在跨域VPN OptionC组网中使用路由反射器RR(Route Reflector)通告VPNv4路由,则需要在路由反射器上通过本命令配置向BGP邻居和反射客户通告VPNv4路由时,不改变路由的下一跳,以保证私网路由下一跳不会被修改 |
为从指定对等体/对等体组接收的路由分配首选值 |
peer { group-name | ip-address } preferred-value value |
缺省情况下,从对等体/对等体组接收的路由的首选值为0 |
为对等体/对等体组设置基于地址前缀列表的BGP路由过滤策略 |
peer { group-name | ip-address } prefix-list prefix-list-name { export | import } |
缺省情况下,没有设置基于地址前缀列表的BGP路由过滤策略 |
配置向指定EBGP对等体/对等体组发送BGP更新消息时只携带公有AS号,不携带私有AS号 |
peer { group-name | ip-address } public-as-only |
缺省情况下,向EBGP对等体/对等体组发送BGP更新消息时,既可以携带公有AS号,又可以携带私有AS号 |
配置将本机作为路由反射器,并将对等体或对等体组作为路由反射器的客户 |
peer { group-name | ip-address } reflect-client |
缺省情况下,没有配置路由反射器及其客户 |
设置允许从指定对等体/对等体组收到的路由数量 |
peer { group-name | ip-address } route-limit prefix-number [ { alert-only | reconnect reconnect-time } | percentage-value ] * |
缺省情况下,不限制从对等体/对等体组接收的路由数量 |
对来自对等体/对等体组的路由或发布给对等体/对等体组的路由应用路由策略 |
peer { group-name | ip-address } route-policy route-policy-name { export | import } |
缺省情况下,没有为对等体/对等体组指定路由策略 |
对接收到的VPNv4路由使能VPN-Target过滤功能 |
policy vpn-target |
缺省情况下,对接收到的VPNv4路由使能VPN-Target过滤功能 |
允许路由反射器在客户机之间反射路由 |
reflect between-clients |
缺省情况下,允许路由反射器在客户机之间反射路由 |
配置路由反射器的集群ID |
reflector cluster-id { cluster-id | ip-address } |
缺省情况下,每个路由反射器都使用自己的Router ID作为集群ID |
创建路由反射器的反射策略 |
rr-filter extended-community-number |
缺省情况下,路由反射器不会对反射的路由进行过滤 |
如果承载VPN路由的MPLS骨干网跨越多个AS,就需要配置跨域VPN。
跨域VPN有三种解决方案,详细描述请参见“1.1.6 跨域VPN”。请根据实际组网情况,选择合适的跨域VPN方案。
在配置跨域VPN之前,需完成以下任务:
· 为各AS的MPLS骨干网分别配置IGP,实现同一AS内骨干网的IP连通性
· 为各AS的MPLS骨干网分别配置MPLS基本能力
· 为各AS的MPLS骨干网分别配置MPLS LDP,建立LDP LSP
· 为各AS分别进行基本MPLS L3VPN配置
在对各AS分别进行基本MPLS L3VPN配置时,根据所选择的跨域VPN方式,PE和ASBR-PE上还需要进行专门的配置。
跨域VPN-OptionA的实现比较简单,当PE上的VPN数量及VPN路由数量都比较少时可以采用这种方案。跨域VPN-OptionA的配置可以描述为:对各AS分别进行基本MPLS L3VPN配置,对于ASBR-PE,将对端ASBR-PE看作自己的CE配置即可。即:跨域VPN-OptionA方式需要在PE和ASBR-PE上分别配置VPN实例,前者用于接入CE,后者用于接入对端ASBR-PE。配置方法请参见“1.3 配置基本MPLS L3VPN”。
在跨域VPN-OptionA方式中,对于同一个VPN,同一AS内的ASBR-PE与PE的VPN实例的VPN Target应能匹配;不同AS的PE之间的VPN实例的VPN Target则不需要匹配。
配置跨域VPN-OptionB时,需要注意:
· 在跨域VPN-OptionB方式中,ASBR-PE需要保存所有VPNv4路由信息,以通告给对端ASBR-PE。这种情况下,ASBR-PE应接收所有的VPNv4路由信息,不对它们进行VPN Target过滤。
· 在跨域VPN-OptionB方式中,对于同一个VPN,不同AS的PE之间的VPN实例的VPN Target需要匹配。
· ASBR-PE在将VPNv4路由发布给MP-IBGP对等体时,始终会将下一跳修改为自身的地址,不受peer next-hop-local命令的控制。
· ASBR-PE之间通过BGP分配标签,建立BGP LSP。因此,在ASBR-PE之间不需要配置MPLS LDP。
以下配置是在作为ASBR-PE的路由器上进行配置的。
表1-16 配置跨域VPN-OptionB的ASBR-PE
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入连接对端ASBR-PE接口的接口视图 |
interface interface-type interface-number |
- |
配置接口IP地址 |
ip address ip-address { mask | mask-length } |
- |
退回系统视图 |
quit |
- |
进入BGP视图 |
bgp as-number |
- |
进入BGP VPNv4地址族视图 |
address-family vpnv4 |
- |
不对VPNv4路由进行VPN Target过滤 |
undo policy vpn-target |
缺省情况下,PE对收到的VPNv4路由进行VPN Target过滤 通过过滤的路由会被加入到路由表中,没有通过过滤的路由将被丢弃 |
同一AS内的PE和ASBR-PE之间建立普通的IBGP对等体关系,不同AS的PE之间建立MP-EBGP对等体关系。
同一AS内的PE和ASBR-PE之间应能够交换标签IPv4路由。
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入BGP视图 |
bgp as-number |
- |
配置本AS的ASBR-PE为IBGP对等体 |
peer { group-name | ip-address } as-number as-number |
缺省情况下,设备上不存在任何BGP对等体 |
将另一AS的PE配置为EBGP对等体 |
peer { group-name | ip-address } as-number as-number |
缺省情况下,设备上不存在任何BGP对等体 |
创建BGP IPv4单播地址族,并进入BGP IPv4单播地址族视图 |
address-family ipv4 [ unicast ] |
缺省情况下,没有创建BGP IPv4单播地址族 |
使能本地路由器与指定对等体/对等体组交换IPv4单播路由信息的能力 |
peer { group-name | ip-address } enable |
缺省情况下,本地路由器不能与对等体交换IPv4单播路由信息 |
配置与本AS的ASBR-PE之间能够交换带标签的IPv4路由 |
peer { group-name | ip-address } label-route-capability |
缺省情况下,不向IPv4对等体/对等体组发送标签路由 |
退回BGP视图 |
quit |
- |
进入BGP VPNv4地址族视图 |
address-family vpnv4 |
- |
使能本地路由器与指定对等体/对等体组交换VPNv4路由信息的能力 |
peer { group-name | ip-address } enable |
缺省情况下,本地路由器不能与对等体交换VPNv4路由信息 |
(可选)配置向对等体发送路由时不改变下一跳 |
peer { group-name | ip-address } next-hop-invariable |
该步骤用于使用RR(Route Reflector,路由反射器)通告VPNv4路由的情况:RR之间通告VPNv4路由时,路由的下一跳不能被改变 |
在跨域VPN-OptionC方式中,需要建立一条跨域的VPN LSP,相关PE、ASBR之间发布公网路由时携带MPLS标签信息。
ASBR-PE与本AS的PE建立普通IBGP对等体关系,与对端ASBR-PE建立普通EBGP对等体关系。都能够交换标签IPv4路由。
携带MPLS标签的公网路由通过MP-BGP发布。根据RFC 3107(Carrying Label Information in BGP-4)中的描述,一条路由的标签映射信息可以通过发布这条路由的BGP Update消息捎带(piggyback)。这种能力使用BGP的扩展属性实现,要求BGP对等体能够处理标签IPv4路由。
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入BGP视图 |
bgp as-number |
- |
配置本AS的PE为IBGP对等体 |
peer { group-name | ip-address } as-number as-number |
缺省情况下,设备上不存在任何BGP对等体 |
将对端ASBR-PE配置为EBGP对等体 |
peer { group-name | ip-address } as-number as-number |
缺省情况下,设备上不存在任何BGP对等体 |
创建BGP IPv4单播地址族,并进入BGP IPv4单播地址族视图 |
address-family ipv4 [ unicast ] |
缺省情况下,没有创建BGP IPv4单播地址族 |
使能本地路由器与指定对等体/对等体组交换IPv4单播路由信息的能力 |
peer { group-name | ip-address } enable |
缺省情况下,本地路由器不能与对等体交换IPv4单播路由信息 |
配置与本AS的PE及对端ASBR-PE之间能够交换带标签的IPv4路由 |
peer { group-name | ip-address } label-route-capability |
缺省情况下,不向IPv4对等体/对等体组发送标签路由 |
向本AS的PE发布路由时将下一跳改为自己 |
peer { group-name | ip-address } next-hop-local |
缺省情况下,BGP发言者在向IBGP对等体/对等体组发布路由时不会将下一跳改为自己的地址 |
ASBR-PE上需要配置路由策略,实现:
· 对于从本AS的PE接收的路由,在向对端ASBR-PE发布时,分配MPLS标签;
· 对于向本AS的PE发布的路由,如果是带标签的IPv4路由,为其分配新的MPLS标签。
对IPv4路由分配MPLS标签是通过路由策略控制的,只对满足某些条件的路由分配标签,其它路由还是普通IPv4路由。
有关路由策略的配置请参见“三层技术-IP路由配置指导”中的“路由策略”。
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建路由策略,并进入路由策略视图 |
route-policy route-policy-name { deny | permit } node node-number |
缺省情况下,设备上不存在任何路由策略 |
匹配带标签的IPv4路由 |
if-match mpls-label |
缺省情况下,不匹配路由信息的MPLS标签 |
为IPv4路由分配标签 |
apply mpls-label |
缺省情况下,IPv4路由不带标签 |
如果网络中VPN接入数量比较多,管理者想要管理权限层次化(通过VPN划分访问权限),且不想让外部知道用户网络内部VPN的部署情况,可以使用嵌套VPN的组网方式。在嵌套VPN组网方式中,用户通过较低的管理复杂度和组网成本,就可以实现内部VPN网络的层次化管理。
嵌套VPN组网中,需要进行以下配置:
· 用户PE和用户CE之间的配置:PE上配置VPN实例;配置PE和CE之间的路由交换。
· 用户PE和运营商CE之间的配置:配置通过BGP VPNv4路由交互用户网络内部子VPN的路由。
· 运营商CE和运营商PE之间的配置:在PE上配置VPN实例,并使能嵌套VPN功能;配置PE和CE之间交互BGP VPNv4路由;为了确保运营商CE能够接收所有的BGP VPNv4路由,需要在运营商CE上通过undo policy vpn-target命令配置运营商CE不根据RT对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-20所示。
配置嵌套VPN时,需要注意:
· 同一用户网络的不同子VPN之间地址空间不能重叠。
· 建议嵌套VPN中对等体CE的地址不要与公网中对等体的地址重叠。
· 目前,嵌套VPN不支持多跳EBGP组网方式,因此运营商PE和运营商CE之间必须使用直连接口地址建立邻居关系。
表1-20 运营商PE上的嵌套VPN配置
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入BGP视图 |
bgp as-number |
- |
进入BGP VPNv4地址族视图 |
address-family vpnv4 |
- |
使能嵌套VPN功能 |
nesting-vpn |
缺省情况下,嵌套VPN功能处于禁止状态 |
退回BGP视图 |
quit |
- |
进入BGP-VPN实例视图 |
ip vpn-instance vpn-instance-name |
- |
配置对等体CE或CE所属对等体组的AS号 |
peer { group-name | peer-address } as-number as-number |
缺省情况下,没有指定对等体或对等体组的AS号 |
创建BGP-VPN VPNv4地址族,并进入BGP-VPN VPNv4地址族视图 |
address-family vpnv4 |
|
激活对等体CE或CE所属的对等体组,使能与其交换BGP-VPNv4路由信息的能力 |
peer { group-name | peer-address } enable |
缺省情况下,未激活对等体和对等体组 |
对于层次化比较明显的VPN网络,可以采用HoVPN方案,以降低对PE设备的性能要求。
配置HoVPN时, 建议不要同时配置peer default-route-advertise vpn-instance命令和peer upe route-policy命令。
在配置HoVPN之前,需先在UPE和SPE上配置基本MPLS L3VPN。
操作 |
命令 |
说明 |
|
进入系统视图 |
system-view |
- |
|
进入BGP视图 |
bgp as-number |
- |
|
创建BGP对等体 |
peer { group-name | peer-address } as-number as-number |
缺省情况下,设备上不存在任何BGP对等体 |
|
进入BGP VPNv4地址族视图 |
address-family vpnv4 |
- |
|
使能本地路由器与指定对等体交换VPNv4路由信息的能力 |
peer { group-name | ip-address } enable |
缺省情况下,本地路由器不能与对等体交换VPNv4路由信息 |
|
配置BGP对等体或对等体组为UPE |
peer { group-name | ip-address } 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 |
在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
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建Loopback接口并进入Loopback接口视图 |
interface loopback interface-number |
- |
将Loopback接口绑定到VPN实例 |
ip binding vpn-instance vpn-instance-name |
缺省情况下,接口不关联到任何VPN实例,属于公网接口 |
配置Loopback接口的地址 |
ip address ip-address { mask | mask-length } |
缺省情况下,未配置Loopback接口的地址 |
表1-23 发布Loopback接口的路由
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入BGP视图 |
bgp as-number |
- |
进入BGP-VPN实例视图 |
ip vpn-instance vpn-instance-name |
- |
进入BGP-VPN IPv4单播地址族视图 |
address-family ipv4 [ unicast ] |
- |
引入直连路由(将Loopback主机路由引入BGP) |
import-route direct |
缺省情况下,不会引入直连路由 |
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入OSPF视图 |
ospf [ process-id | router-id router-id | vpn-instance vpn-instance-name ] * |
建议用户启动OSPF进程时手工配置路由器ID |
配置route tag |
route-tag tag-value |
缺省情况下,未配置route tag |
进入OSPF区域视图 |
area area-id |
- |
创建一条OSPF伪连接 |
sham-link source-ip-address destination-ip-address [ cost cost | dead dead-interval | hello hello-interval | { { hmac-md5 | md5 } key-id { cipher cipher-string | plain plain-string } | simple { cipher cipher-string | plain plain-string } } | retransmit retrans-interval | trans-delay delay ] * |
缺省情况下,设备上不存在任何OSPF伪连接 |
Multi-VPN-Instance CE可以看作一种通过路由隔离实现业务隔离的组网方案。配置MCE的关键为:
· 配置MCE与站点之间的路由交换
· 配置MCE与PE之间的路由交换
在MCE组网方案中,路由计算时需要关闭PE上的路由环路检测功能,防止路由丢失;同时禁止各路由协议互操作功能,以节省系统资源。
在配置Multi-VPN-Instance CE之前,需完成以下任务:
· 创建VPN实例、在MCE上将连接站点和PE的接口与VPN实例绑定
· 配置相关接口的链路层协议和网络层协议,保证路由可达
MCE可以通过静态路由与Site连接。传统CE配置的静态路由对全局生效,无法解决多VPN间的地址重叠问题。以太网交换机提供的MCE功能可以将静态路由与VPN实例相绑定,将各VPN之间的静态路由进行隔离。
表1-25 配置MCE与站点之间使用静态路由
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
为指定VPN实例配置静态路由 |
ip route-static vpn-instance s-vpn-instance-name dest-address { mask-length | mask } { interface-type interface-number [ next-hop-address ] | next-hop-address [ public ] [ track track-entry-number ] | vpn-instance d-vpn-instance-name next-hop-address [ track track-entry-number ] } [ permanent ] [ preference preference-value ] [ tag tag-value ] [ description description-text ] |
缺省情况下,没有配置静态路由 该配置在MCE上进行,站点上的配置方法与普通静态路由相同 |
(可选)配置静态路由的缺省优先级 |
ip route-static default-preference default-preference-value |
缺省情况下,静态路由的缺省优先级为60 |
一个RIP进程只能属于一个VPN实例。如果在启动RIP进程时不绑定到VPN实例,则该进程属于公网进程。通过在MCE上将RIP进程与VPN实例绑定,可以使不同VPN内的私网路由通过不同的RIP进程在Site和MCE间进行交互,保证了私网路由的隔离和安全。RIP的介绍和详细配置,请参见“三层技术-IP路由配置指导”中的“RIP”。
表1-26 配置MCE与站点之间使用RIP
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建MCE与站点间的RIP实例,并进入RIP视图 |
rip [ process-id ] vpn-instance vpn-instance-name |
该配置在MCE上进行,站点上配置普通RIP即可 |
在指定网段接口上使能RIP |
network network-address |
缺省情况下,接口上的RIP功能处于关闭状态 |
引入由PE发布的远端站点的路由 |
import-route protocol [ process-id | all-processes | allow-ibgp ] [ cost cost | route-policy route-policy-name | tag tag ] * |
缺省情况下,RIP未引入其它路由 |
(可选)配置引入路由的缺省度量值 |
default cost value |
缺省情况下,引入路由的缺省度量值为0 |
一个OSPF进程只能属于一个VPN实例。如果在启动OSPF进程时不绑定到VPN实例,则该进程属于公网进程。
通过在MCE上将OSPF进程与VPN实例绑定,可以使不同VPN内的私网路由通过不同的OSPF进程在Site和MCE间进行交互,保证了私网路由的隔离和安全。
OSPF的介绍和详细配置,请参见“三层技术-IP路由配置指导”中的“OSPF”。
表1-27 配置MCE与站点之间使用OSPF
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建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域标识符 |
domain-id domain-id [ secondary ] |
缺省情况下,OSPF域标识符为0 该配置在MCE上进行 同一VPN实例内的OSPF进程应配置有相同的域ID,以保证路由发布的正确性 |
引入由PE发布的远端站点的路由 |
import-route protocol [ process-id | all-processes | allow-ibgp ] [ cost cost | route-policy route-policy-name | tag tag | type type ] * |
缺省情况下,没有引入其他协议的路由信息 |
配置OSPF区域,进入OSPF区域视图 |
area area-id |
缺省情况下,没有配置OSPF区域 |
配置区域所包含的网段并在指定网段的接口上使能OSPF |
network ip-address wildcard-mask |
缺省情况下,接口不属于任何区域且OSPF功能处于关闭状态 |
一个IS-IS进程只能属于一个VPN实例。如果在启动IS-IS进程时不绑定到VPN实例,则该进程属于公网进程。
通过在MCE上将IS-IS进程与VPN实例绑定,可以使不同VPN内的私网路由通过不同的IS-IS进程在Site和MCE间进行交互,保证了私网路由的隔离和安全。
IS-IS协议的介绍和详细配置,请参见“三层技术-IP路由配置指导”中的“IS-IS”。
表1-28 配置MCE与站点之间使用IS-IS
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建MCE与站点间的IS-IS实例,并进入IS-IS视图 |
isis [ process-id ] vpn-instance vpn-instance-name |
该配置在MCE上进行,站点上配置普通IS-IS即可 |
配置网络实体名称 |
network-entity net |
缺省情况下,没有配置网络实体名称 |
引入由PE发布的远端站点的路由 |
import-route protocol [ process-id | all-processes | allow-ibgp ] [ cost cost | cost-type { external | internal } | [ level-1 | level-1-2 | level-2 ] | route-policy route-policy-name | tag tag ] * |
缺省情况下,IS-IS不引入其它协议的路由信息 如果import-route命令中不指定引入的级别,则默认为引入路由到Level-2路由表中 |
退回系统视图 |
quit |
- |
进入接口视图 |
interface interface-type interface-number |
- |
使能接口IS-IS并指定要关联的IS-IS进程号 |
isis enable [ process-id ] |
缺省情况下,接口上没有使能IS-IS |
MCE与站点间使用EBGP交换路由信息时,需要在MCE上为每个VPN实例配置BGP对等体,并在站点上引入相应VPN内的IGP路由信息。
MCE使用EBGP交换路由信息时,还可以通过Filter-policy对接收/发布的路由进行过滤。
(1) MCE上的配置
将OSPF路由引入到BGP时,该路由的原OSPF属性将无法恢复,造成该路由与从其他域引入的路由无法区分。为了区分原属于不同OSPF域的路由,在OSPF视图下需要通过domain-id命令配置OSPF进程的域ID(Domain ID)。OSPF进程的域ID包含在此进程生成的路由中,在将OSPF路由引入BGP中时,域ID被附加到BGP VPN路由上,作为BGP的扩展团体属性传递。
表1-29 配置MCE与站点之间使用EBGP
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
启动BGP,并进入BGP视图 |
bgp as-number |
缺省情况下,系统没有运行BGP |
进入BGP-VPN实例视图 |
ip vpn-instance vpn-instance-name |
BGP-VPN实例视图下的配置任务与BGP视图下的相同,有关介绍和详细配置,请参见“三层技术-IP路由配置指导”中的“BGP” |
配置EBGP对等体或对等体组 |
peer { group-name | ip-address } as-number as-number |
缺省情况下,设备上不存在任何BGP对等体和对等体组 |
进入BGP-VPN IPv4单播地址族视图 |
address-family ipv4 [ unicast ] |
- |
使能本地路由器与指定对等体交换IPv4单播路由信息的能力 |
peer { group-name | ip-address } enable |
缺省情况下,本地路由器不能与对等体交换IPv4单播路由信息 |
配置对于从对等体/对等体组接收的路由,允许本地AS号在接收路由的AS_PATH属性中出现,并配置允许出现的次数 |
peer { group-name | ip-address } allow-as-loop [ number ] |
缺省情况下,不允许本地AS号在接收路由的AS_PATH属性中出现 通常情况下,BGP通过AS号检测路由环路。如果在MCE和Site之间运行EBGP,当MCE将路由信息通告给Site时带上本自治系统的AS号,再从Site接收路由更新时,路由更新消息中会带有本自治系统的AS号,这样MCE就不能接收这条路由更新信息,此时需要配置允许路由环路 |
引入由PE发布的远端站点的路由 |
import-route protocol [ { process-id | all-processes } [ med med-value | route-policy route-policy-name ] * ] |
缺省情况下,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 |
缺省情况下,不对接收的路由信息进行过滤 |
(2) 站点上的配置
表1-30 站点上的配置
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
启动BGP,并进入BGP视图 |
bgp as-number |
缺省情况下,系统没有运行BGP |
将MCE配置为EBGP对等体 |
peer { group-name | ip-address } as-number as-number |
缺省情况下,设备上不存在任何BGP对等体和对等体组 |
进入BGP IPv4单播地址族视图 |
address-family ipv4 [ unicast ] |
- |
使能本地路由器与指定对等体交换IPv4单播路由信息的能力 |
peer { group-name | ip-address } enable |
缺省情况下,本地路由器不能与对等体交换IPv4单播路由信息 |
配置引入VPN内的IGP路由 |
import-route protocol [ { process-id | all-processes } [ med med-value | route-policy route-policy-name ] * ] |
缺省情况下,BGP不会引入IGP路由协议的路由信息 站点需要将自己所能到达的VPN网段地址发布给接入的MCE |
MCE与站点间使用IBGP交换路由信息时,需要在MCE上为每个VPN实例配置BGP对等体,并在站点上引入相应VPN内的IGP路由信息。
(1) MCE上的配置
表1-31 配置MCE与站点之间使用IBGP
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
启动BGP,并进入BGP视图 |
bgp as-number |
缺省情况下,系统没有运行BGP |
进入BGP-VPN实例视图 |
ip vpn-instance vpn-instance-name |
- |
配置IBGP对等体 |
peer { group-name | ip-address } as-number as-number |
缺省情况下,设备上不存在任何BGP对等体和对等体组 |
进入BGP-VPN IPv4单播地址族视图 |
address-family ipv4 [ unicast ] |
- |
使能本地路由器与指定对等体交换IPv4单播路由信息的能力 |
peer { group-name | ip-address } enable |
缺省情况下,本地路由器不能与对等体交换IPv4单播路由信息 |
(可选)配置本地设备作为路由反射器,对端设备作为路由反射器的客户端 |
peer { group-name | ip-address } reflect-client |
缺省情况下,没有配置路由反射器及其客户端 将站点配置为IBGP对等体时,从该站点学习的BGP路由不会向其它IBGP对等体(包括VPNv4对等体)发送。只有将站点配置为路由反射器的客户端后,才能向其它IBGP对等体发送从该站点学习的路由 |
引入由PE发布的远端站点的路由 |
import-route protocol [ { process-id | all-processes } [ med med-value | route-policy route-policy-name ] * ] |
缺省情况下,BGP不引入且不通告其它协议的路由 |
(可选)配置对发布的路由信息进行过滤 |
filter-policy { acl-number | prefix-list prefix-list-name } export [ protocol process-id ] |
缺省情况下,不对发布的路由信息进行过滤 |
(可选)配置对接收的路由信息进行过滤 |
filter-policy { acl-number | prefix-list prefix-list-name } import |
缺省情况下,不对接收的路由信息进行过滤 |
(2) 站点上的配置
表1-32 站点上的配置
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
启动BGP,并进入BGP视图 |
bgp as-number |
缺省情况下,系统没有运行BGP |
将MCE配置为IBGP对等体 |
peer { group-name | ip-address } as-number as-number |
缺省情况下,设备上不存在任何BGP对等体和对等体组 |
进入BGP IPv4单播地址族视图 |
address-family ipv4 [ unicast ] |
- |
使能本地路由器与指定对等体交换IPv4单播路由信息的能力 |
peer { group-name | ip-address } enable |
缺省情况下,本地路由器不能与对等体交换IPv4单播路由信息 |
配置引入VPN内的IGP路由 |
import-route protocol [ { process-id | all-processes } [ med med-value | route-policy route-policy-name ] * ] |
缺省情况下,BGP不引入且不通告其它协议的路由 站点需要将自己所能到达的VPN网段地址发布给接入的MCE |
由于在MCE设备上已经将站点内的私网路由信息与VPN实例进行了绑定,因此,只需要在MCE与PE之间将接口与VPN实例进行绑定、进行简单的路由配置、并将MCE上维护的站点内的VPN路由引入到MCE-PE间的路由协议中,便可以实现私网VPN路由信息的传播。
本节中的配置均在MCE上进行,PE上的配置与基本MPLS L3VPN组网中PE上的配置相同,详细介绍请参见“1.3.4 配置PE-CE间路由交换”。
表1-33 配置MCE与PE之间使用静态路由
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
为指定VPN实例配置静态路由 |
ip route-static vpn-instance s-vpn-instance-name dest-address { mask-length | mask } { interface-type interface-number [ next-hop-address ] | next-hop-address [ public ] [ track track-entry-number ] | vpn-instance d-vpn-instance-name next-hop-address [ track track-entry-number ] } [ permanent ] [ preference preference-value ] [ tag tag-value ] [ description description-text ] |
缺省情况下,设备上不存在任何静态路由 |
(可选)配置静态路由的缺省优先级 |
ip route-static default-preference default-preference-value |
缺省情况下,静态路由的缺省优先级为60 |
表1-34 配置MCE与PE之间使用RIP
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建MCE与PE间的RIP实例,并进入RIP视图 |
rip [ process-id ] vpn-instance vpn-instance-name |
- |
在指定网段接口上使能RIP |
network network-address |
缺省情况下,接口上的RIP功能处于关闭状态 |
引入站点内的VPN路由 |
import-route protocol [ process-id | all-processes | allow-ibgp ] [ cost cost | route-policy route-policy-name | tag tag ] * |
缺省情况下,RIP未引入其它路由 |
(可选)配置引入路由的缺省度量值 |
default cost value |
缺省情况下,引入路由的缺省度量值为0 |
表1-35 配置MCE与PE之间使用OSPF
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建MCE与PE间的OSPF实例,并进入OSPF视图 |
ospf [ process-id | router-id router-id | vpn-instance vpn-instance-name ] * |
- |
关闭OSPF实例的路由环路检测功能 |
vpn-instance-capability simple |
缺省情况下,OSPF实例的路由环路检测功能处于开启状态 需要在MCE上通过本命令关闭OSPF实例的路由环路检测功能。否则,MCE不会接收PE发送过来的OSPF路由,导致路由丢失 |
(可选)配置OSPF域标识符 |
domain-id domain-id [ secondary ] |
缺省情况下,OSPF域标识符为0 |
引入站点内的VPN路由 |
import-route protocol [ process-id | all-processes | allow-ibgp ] [ cost cost | route-policy route-policy-name | tag tag | type type ] * |
缺省情况下,没有引入其他协议的路由信息 |
(可选)配置对发布的路由进行过滤 |
filter-policy { acl-number | prefix-list prefix-list-name } export [ protocol [ process-id ] ] |
缺省情况下,没有对发布的路由信息进行过滤 |
(可选)配置引入外部路由时的参数缺省值(开销、标记、类型)(该配置仅连接PE端使用) |
default { cost cost | tag tag | type type } * |
缺省情况下,OSPF引入外部路由的度量值为1,外部路由标记值为1,引入的外部路由类型为Type2 |
配置OSPF区域,进入OSPF区域视图 |
area area-id |
缺省情况下,没有配置OSPF区域 |
配置区域所包含的网段并在指定网段的接口上使能OSPF |
network ip-address wildcard-mask |
缺省情况下,接口不属于任何区域且OSPF功能处于关闭状态 |
表1-36 配置MCE与PE之间使用IS-IS
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建MCE与PE间的IS-IS实例,并进入IS-IS视图 |
isis [ process-id ] vpn-instance vpn-instance-name |
- |
配置网络实体名称 |
network-entity net |
缺省情况下,没有配置网络实体名称 |
引入站点内的VPN路由 |
import-route protocol [ process-id | all-processes | allow-ibgp ] [ cost cost | cost-type { external | internal } | [ level-1 | level-1-2 | level-2 ] | route-policy route-policy-name | tag tag ] * |
缺省情况下,IS-IS不引入其它协议的路由信息 如果import-route命令中不指定引入的级别,则默认为引入路由到Level-2路由表中 |
(可选)对发布的路由进行过滤(该配置仅连接PE端使用) |
filter-policy { acl-number | prefix-list prefix-list-name | route-policy route-policy-name } export [ protocol [ process-id ] ] |
缺省情况下,IS-IS不对发布的路由信息进行过滤 |
退回系统视图 |
quit |
- |
进入接口视图 |
interface interface-type interface-number |
- |
使能接口IS-IS并指定要关联的IS-IS进程号 |
isis enable [ process-id ] |
缺省情况下,接口上没有使能IS-IS |
表1-37 配置MCE与PE之间使用EBGP
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
启动BGP,并进入BGP视图 |
bgp as-number |
缺省情况下,系统没有运行BGP |
进入BGP-VPN实例视图 |
ip vpn-instance vpn-instance-name |
- |
将PE配置为EBGP对等体 |
peer { group-name | ip-address } as-number as-number |
缺省情况下,设备上不存在任何BGP对等体和对等体组 |
进入BGP-VPN IPv4单播地址族视图 |
address-family ipv4 [ unicast ] |
- |
使能本地路由器与指定对等体交换IPv4单播路由信息的能力 |
peer { group-name | ip-address } enable |
缺省情况下,本地路由器不能与对等体交换IPv4单播路由信息 |
引入站点内的VPN路由 |
import-route protocol [ { process-id | all-processes } [ med med-value | route-policy route-policy-name ] * ] |
缺省情况下,BGP不引入且不通告其它协议的路由 |
(可选)配置对发布的路由信息进行过滤 |
filter-policy { acl-number | prefix-list prefix-list-name } export [ protocol process-id ] |
缺省情况下,不对发布的路由信息进行过滤 |
(可选)配置对接收的路由信息进行过滤 |
filter-policy { acl-number | prefix-list prefix-list-name } import |
缺省情况下,不对接收的路由信息进行过滤 |
表1-38 配置MCE与PE之间使用IBGP
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
启动BGP,并进入BGP视图 |
bgp as-number |
缺省情况下,系统没有运行BGP |
进入BGP-VPN实例视图 |
ip vpn-instance vpn-instance-name |
- |
将PE配置为IBGP对等体 |
peer { group-name | ip-address } as-number as-number |
缺省情况下,设备上不存在任何BGP对等体和对等体组 |
进入BGP-VPN IPv4单播地址族视图 |
address-family ipv4 [ unicast ] |
- |
使能本地路由器与指定对等体交换IPv4单播路由信息的能力 |
peer { group-name | ip-address } enable |
缺省情况下,本地路由器不能与对等体交换IPv4单播路由信息 |
引入站点内的VPN路由 |
import-route protocol [ { process-id | all-processes } [ med med-value | route-policy route-policy-name ] * ] |
缺省情况下,BGP不引入且不通告其它协议的路由 |
(可选)配置对发布的路由信息进行过滤 |
filter-policy { acl-number | prefix-list prefix-list-name } export [ protocol process-id ] |
缺省情况下,不对发布的路由信息进行过滤 |
(可选)配置对接收的路由信息进行过滤 |
filter-policy { acl-number | prefix-list prefix-list-name } import |
缺省情况下,不对接收的路由信息进行过滤 |
Egress PE上私网路由的标签操作方式根据标签查找FIB进行转发与根据标签查找出接口进行转发两种:
· 私网标签的POPGO转发方式:标签分配时,都明确了标签跟出接口和下一跳的对应关系,弹出标签后,直接从出接口发送。
· 私网标签的POP转发方式:忽略标签分配时明确的标签跟出接口和下一跳对应关系,弹出标签后,再查FIB表转发。
用户如需将两台设备配置成IRF,这两台设备的vpn popgo必须配置一致,即都为vpn popgo或都为undo vpn popgo,否则不能形成IRF。有关IRF的介绍,请参见“虚拟化技术配置指导”中的“IRF”。
表1-39 配置Egress PE上私网路由标签操作方式
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入BGP视图 |
bgp as-number |
- |
配置Egress PE上私网路由的标签操作方式为根据标签查找出接口转发 |
vpn popgo |
缺省情况下,Egress PE上私网路由的标签操作方式为根据标签查找FIB进行转发 |
在配置BGP的AS号替换之前,需完成以下任务:
· 配置基本MPLS L3VPN
· 不同Site的CE具有相同的AS号
不同Site的CE具有相同的AS号时,PE上需要开启BGP的AS号替换功能,从而避免路由被丢弃。
使能了BGP的AS号替换功能后,当PE向指定对等体中的CE发布路由时,如果路由的AS_PATH中有与CE相同的AS号,将被替换成PE的AS号后再发布。
表1-40 配置BGP的AS号替换
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入BGP视图 |
bgp as-number |
- |
进入BGP-VPN实例视图 |
ip vpn-instance vpn-instance-name |
- |
配置BGP对等体或对等体组 |
peer { group-name | ip-address } as-number as-number |
缺省情况下,设备上不存在任何BGP对等体和对等体组 |
使能BGP的AS号替换功能 |
peer { ip-address | group-name } substitute-as |
缺省情况下,BGP的AS号替换功能是被禁止的 本命令的介绍请参见“三层技术-IP路由命令参考”中的“BGP” |
开启L3VPN模块的告警功能后,在VPN实例内的路由数达到告警门限等情况下,L3VPN模块会产生RFC 4382中规定的告警信息。生成的告警信息将发送到设备的SNMP模块,通过设置SNMP中告警信息的发送参数,来决定告警信息输出的相关属性。
有关告警信息的详细介绍,请参见“网络管理和监控配置指导”中的“SNMP”。
表1-41 开启告警功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
开启L3VPN模块的告警功能 |
snmp-agent trap enable l3vpn |
缺省情况下,L3VPN模块的告警功能处于开启状态 |
当BGP配置变化后,可以通过软复位或复位BGP会话使新的配置生效。软复位BGP会话是指在不断开BGP邻居关系的情况下,更新BGP路由信息;复位BGP会话是指断开并重新建立BGP邻居关系的情况下,更新BGP路由信息。软复位需要BGP对等体具备路由刷新能力(支持ROUTE-REFRESH消息)。
请在用户视图下进行下列操作。
操作 |
命令 |
手工对VPNv4地址族下的BGP会话进行软复位 |
refresh bgp { ip-address | all | external | group group-name | internal } { export | import } vpnv4 [ vpn-instance vpn-instance-name ] |
复位VPNv4地址族下的BGP会话 |
reset bgp { as-number | ip-address | all | external | internal | group group-name } vpnv4 [ vpn-instance vpn-instance-name ] |
在完成上述配置后,在任意视图下执行display命令可以显示配置后MPLS L3VPN的运行情况,通过查看显示信息验证配置的效果。
display bgp group vpnv4、display bgp peer vpnv4和display bgp update-group vpnv4命令的详细介绍,请参见“三层技术-IP路由命令参考”中的“BGP”。
表1-43 显示MPLS L3VPN的运行状态
操作 |
命令 |
显示与VPN实例相关联的IP路由表(本命令的详细介绍请参见“三层技术-IP路由命令参考”中的“IP路由基础命令”) |
display ip routing-table vpn-instance vpn-instance-name [ statistics | verbose ] |
显示指定VPN实例信息 |
display ip vpn-instance [ instance-name vpn-instance-name ] |
显示指定VPN实例的FIB信息 |
display fib vpn-instance vpn-instance-name |
显示指定VPN实例中与指定目的IP地址匹配的FIB信息 |
display fib vpn-instance vpn-instance-name ip-address [ mask | mask-length ] |
显示BGP VPNv4对等体组信息 |
display bgp group vpnv4 [ vpn-instance vpn-instance-name ] [ group-name group-name ] |
显示BGP VPNv4对等体信息 |
|
显示BGP VPNv4路由信息 |
display bgp routing-table vpnv4 [ route-distinguisher route-distinguishe ] [ network-address [ { mask | mask-length } [ longest-match ] ] ] |
显示BGP VPNv4路由的通告信息 |
display bgp routing-table vpnv4 [ route-distinguisher route-distinguishe ] network-address [ mask | mask-length ] advertise-info |
显示匹配指定AS路径过滤列表的BGP VPNv4路由信息 |
display bgp routing-table vpnv4 [ route-distinguisher route-distinguishe ] as-path-acl as-path-acl-number |
显示匹配指定BGP团体列表的BGP VPNv4路由信息 |
display bgp routing-table vpnv4 [ route-distinguisher route-distinguishe ] community-list { { basic-community-list-number | comm-list-name } [ whole-match ] | adv-community-list-number } |
显示向指定对等体发布或者从指定对等体收到的BGP VPNv4路由信息 |
display bgp routing-table vpnv4 [ vpn-instance vpn-instance-name ] peer ip-address { advertised-routes | received-routes } [ network-address [ mask | mask-length ] | statistics ] |
显示BGP IPv4单播路由的入标签信息 |
display bgp routing-table ipv4 [ unicast ] [ vpn-instance vpn-instance-name ] inlabel |
显示BGP IPv4单播路由的出标签信息 |
display bgp routing-table ipv4 [ unicast ] [ vpn-instance vpn-instance-name ] outlabel |
显示所有BGP VPNv4路由的入标签信息 |
display bgp routing-table vpnv4 inlabel |
显示所有BGP VPNv4路由的出标签信息 |
display bgp routing-table vpnv4 outlabel |
显示BGP VPNv4路由的统计信息 |
display bgp routing-table vpnv4 statistics |
显示BGP VPNv4地址族下打包组的相关信息 |
display bgp update-group vpnv4 [ vpn-instance vpn-instance-name ] [ ip-address ] |
显示OSPF伪连接信息(独立运行模式) |
display ospf [ process-id ] sham-link [ area area-id ] [ standby slot slot-number ] |
显示OSPF伪连接信息(IRF模式) |
display ospf [ process-id ] sham-link [ area area-id ] [ standby chassis chassis-number slot slot-number ] |
缺省情况下,以太网接口、VLAN接口及聚合接口处于down状态。如果要使这些接口能够正常工作,请先使用undo shutdown命令使这些接口处于up。
· CE 1、CE 3属于VPN 1,CE 2、CE 4属于VPN 2;
· VPN 1使用的VPN Target属性为111:1,VPN 2使用的VPN Target属性为222:2。不同VPN用户之间不能互相访问;
· PE、P为支持MPLS的设备。
IP地址 |
IP地址 |
||||
|
GE2/0/1 |
||||
|
GE3/0/1 |
|
GE2/0/2 |
||
|
GE3/0/2 |
||||
|
GE2/0/1 |
|
|||
|
|||||
|
GE2/0/1 |
||||
|
|
|
(1) 在MPLS骨干网上配置IGP协议,实现骨干网PE和P的互通
# 配置PE 1。
[PE1] interface loopback 0
[PE1-LoopBack0] ip address 1.1.1.9 32
[PE1-LoopBack0] quit
[PE1] interface GigabitEthernet 2/0/1
[PE1-GigabitEthernet2/0/1] ip address 172.1.1.1 24
[PE1-GigabitEthernet2/0/1] quit
[PE1] ospf
[PE1-ospf-1] area 0
[PE1-ospf-1-area-0.0.0.0] network 172.1.1.0 0.0.0.255
[PE1-ospf-1-area-0.0.0.0] network 1.1.1.9 0.0.0.0
[PE1-ospf-1-area-0.0.0.0] quit
[PE1-ospf-1] quit
# 配置P。
[P] interface loopback 0
[P-LoopBack0] ip address 2.2.2.9 32
[P-LoopBack0] quit
[P] interface GigabitEthernet 2/0/1
[P-GigabitEthernet2/0/1] ip address 172.1.1.2 24
[P-GigabitEthernet2/0/1] quit
[P] interface GigabitEthernet 2/0/2
[P-GigabitEthernet2/0/2] ip address 172.2.1.1 24
[P-GigabitEthernet2/0/2] quit
[P] ospf
[P-ospf-1] area 0
[P-ospf-1-area-0.0.0.0] network 172.1.1.0 0.0.0.255
[P-ospf-1-area-0.0.0.0] network 172.2.1.0 0.0.0.255
[P-ospf-1-area-0.0.0.0] network 2.2.2.9 0.0.0.0
[P-ospf-1-area-0.0.0.0] quit
[P-ospf-1] quit
# 配置PE 2。
[PE2] interface loopback 0
[PE2-LoopBack0] ip address 3.3.3.9 32
[PE2-LoopBack0] quit
[PE2] interface GigabitEthernet 2/0/1
[PE2-GigabitEthernet2/0/1] ip address 172.2.1.2 24
[PE2-GigabitEthernet2/0/1] quit
[PE2] ospf
[PE2-ospf-1] area 0
[PE2-ospf-1-area-0.0.0.0] network 172.2.1.0 0.0.0.255
[PE2-ospf-1-area-0.0.0.0] network 3.3.3.9 0.0.0.0
[PE2-ospf-1-area-0.0.0.0] quit
[PE2-ospf-1] quit
配置完成后,PE 1、P、PE 2之间应能建立OSPF邻居,执行display ospf peer命令可以看到邻居达到FULL状态。执行display ip routing-table命令可以看到PE之间学习到对方的Loopback路由。
以PE 1为例:
[PE1] display ip routing-table protocol ospf
Summary Count : 5
OSPF Routing table Status : <Active>
Summary Count : 3
Destination/Mask Proto Pre Cost NextHop Interface
2.2.2.9/32 OSPF 10 1 172.1.1.2 GE2/0/1
3.3.3.9/32 OSPF 10 2 172.1.1.2 GE2/0/1
172.2.1.0/24 OSPF 10 2 172.1.1.2 GE2/0/1
OSPF Routing table Status : <Inactive>
Summary Count : 2
Destination/Mask Proto Pre Cost NextHop Interface
1.1.1.9/32 OSPF 10 0 1.1.1.9 Loop0
172.1.1.0/24 OSPF 10 1 172.1.1.1 GE2/0/1
[PE1] display ospf peer verbose
OSPF Process 1 with Router ID 1.1.1.9
Neighbors
Area 0.0.0.0 interface 172.1.1.1(GigabitEthernet2/0/1)'s neighbors
Router ID: 2.2.2.9 Address: 172.1.1.2 GR State: Normal
State: Full Mode: Nbr is Master Priority: 1
DR: 172.1.1.2 BDR: 172.1.1.1 MTU: 0
Options is 0x02 (-|-|-|-|-|-|E|-)
Dead timer due in 39 sec
Neighbor is up for 00:00:29
Authentication Sequence: [ 0 ]
Neighbor state change count: 6
(2) 在MPLS骨干网上配置MPLS基本能力和MPLS LDP,建立LDP LSP
# 配置PE 1。
[PE1] mpls ldp
[PE1-ldp] quit
[PE1] interface GigabitEthernet 2/0/1
[PE1-GigabitEthernet2/0/1] mpls enable
[PE1-GigabitEthernet2/0/1] mpls ldp enable
[PE1-GigabitEthernet2/0/1] quit
# 配置P。
[P] mpls ldp
[P-ldp] quit
[P] interface GigabitEthernet 2/0/1
[P-GigabitEthernet2/0/1] mpls enable
[P-GigabitEthernet2/0/1] mpls ldp enable
[P-GigabitEthernet2/0/1] quit
[P] interface GigabitEthernet 2/0/2
[P-GigabitEthernet2/0/2] mpls enable
[P-GigabitEthernet2/0/2] mpls ldp enable
[P-GigabitEthernet2/0/2] quit
# 配置PE 2。
[PE2] mpls ldp
[PE2-ldp] quit
[PE2] interface GigabitEthernet 2/0/1
[PE2-GigabitEthernet2/0/1] mpls enable
[PE2-GigabitEthernet2/0/1] mpls ldp enable
[PE2-GigabitEthernet2/0/1] quit
上述配置完成后,PE 1、P、PE 2之间应能建立LDP会话,执行display mpls ldp peer命令可以看到LDP会话的状态为Operational。执行display mpls ldp lsp命令,可以看到LDP LSP的建立情况。
以PE 1为例:
Total number of peers: 1
Peer LDP ID State LAM Role GR MD5 KA Sent/Rcvd
2.2.2.9:0 Operational DU Passive Off Off 5/5
[PE1] display mpls ldp lsp
Status codes: * - stale, L - liberal
FECs: 3 Ingress: 2 Transit: 2 Egress: 1
FEC In/Out Label Nexthop OutInterface
1.1.1.9/32 3/-
-/1151(L)
2.2.2.9/32 -/3 172.1.1.2 GE2/0/1
1151/3 172.1.1.2 GE2/0/1
3.3.3.9/32 -/1150 172.1.1.2 GE2/0/1
1150/1150 172.1.1.2 GE2/0/1
(3) 在PE设备上配置VPN实例,将CE接入PE
# 配置PE 1。
[PE1-vpn-instance-vpn1] route-distinguisher 100:1
[PE1-vpn-instance-vpn1] vpn-target 111:1
[PE1-vpn-instance-vpn1] quit
[PE1] ip vpn-instance vpn2
[PE1-vpn-instance-vpn2] route-distinguisher 100:2
[PE1-vpn-instance-vpn2] vpn-target 222:2
[PE1-vpn-instance-vpn2] quit
[PE1] interface GigabitEthernet 3/0/1
[PE1-GigabitEthernet3/0/1] ip binding vpn-instance vpn1
[PE1-GigabitEthernet3/0/1] ip address 10.1.1.2 24
[PE1-GigabitEthernet3/0/1] quit
[PE1] interface GigabitEthernet 3/0/2
[PE1-GigabitEthernet3/0/2] ip binding vpn-instance vpn2
[PE1-GigabitEthernet3/0/2] ip address 10.2.1.2 24
[PE1-GigabitEthernet3/0/2] quit
# 配置PE 2。
[PE2-vpn-instance-vpn1] route-distinguisher 200:1
[PE2-vpn-instance-vpn1] vpn-target 111:1
[PE2-vpn-instance-vpn1] quit
[PE2] ip vpn-instance vpn2
[PE2-vpn-instance-vpn2] route-distinguisher 200:2
[PE2-vpn-instance-vpn2] vpn-target 222:2
[PE2-vpn-instance-vpn2] quit
[PE2] interface GigabitEthernet 3/0/1
[PE2-GigabitEthernet3/0/1] ip binding vpn-instance vpn1
[PE2-GigabitEthernet3/0/1] ip address 10.3.1.2 24
[PE2-GigabitEthernet3/0/1] quit
[PE2] interface GigabitEthernet 3/0/2
[PE2-GigabitEthernet3/0/2] ip binding vpn-instance vpn2
[PE2-GigabitEthernet3/0/2] ip address 10.4.1.2 24
[PE2-GigabitEthernet3/0/2] quit
配置完成后,在PE设备上执行display ip vpn-instance命令可以看到VPN实例的配置情况。各PE能ping通自己接入的CE。
以PE 1和CE 1为例:
Total VPN-Instances configured : 2
VPN-Instance Name RD Create time
vpn1 100:1 2012/02/13 12:49:08
vpn2 100:2 2012/02/13 12:49:20
[PE1] ping -vpn-instance vpn1 10.1.1.1
Ping 10.1.1.1 (10.1.1.1): 56 data bytes, press CTRL_C to break
56 bytes from 10.1.1.1: icmp_seq=0 ttl=255 time=1.000 ms
56 bytes from 10.1.1.1: icmp_seq=1 ttl=255 time=2.000 ms
56 bytes from 10.1.1.1: icmp_seq=2 ttl=255 time=0.000 ms
56 bytes from 10.1.1.1: icmp_seq=3 ttl=255 time=1.000 ms
56 bytes from 10.1.1.1: icmp_seq=4 ttl=255 time=0.000 ms
--- Ping statistics for 10.1.1.1 ---
5 packet(s) transmitted, 5 packet(s) received, 0.0% packet loss
round-trip min/avg/max/std-dev = 0.000/0.800/2.000/0.748 ms
(4) 在PE与CE之间建立EBGP对等体,引入VPN路由
# 配置CE 1。
[CE1] bgp 65410
[CE1-bgp] peer 10.1.1.2 as-number 100
[CE1-bgp] address-family ipv4 unicast
[CE1-bgp-ipv4] peer 10.1.1.2 enable
[CE1-bgp-ipv4] import-route direct
[CE1-bgp-ipv4] quit
[CE1-bgp] quit
# 另外3个CE设备(CE 2~CE 4)配置与CE 1设备配置类似,配置过程省略。
# 配置PE 1。
[PE1-bgp] ip vpn-instance vpn1
[PE1-bgp-vpn1] peer 10.1.1.1 as-number 65410
[PE1-bgp-vpn1] address-family ipv4 unicast
[PE1-bgp-ipv4-vpn1] peer 10.1.1.1 enable
[PE1-bgp-ipv4-vpn1] import-route direct
[PE1-bgp-ipv4-vpn1] quit
[PE1-bgp-vpn1] quit
[PE1-bgp] ip vpn-instance vpn2
[PE1-bgp-vpn2] peer 10.2.1.1 as-number 65420
[PE1-bgp-vpn2] address-family ipv4 unicast
[PE1-bgp-ipv4-vpn2] peer 10.2.1.1 enable
[PE1-bgp-ipv4-vpn2] import-route direct
[PE1-bgp-ipv4-vpn2] quit
[PE1-bgp-vpn1] quit
[PE1-bgp] quit
# PE 2的配置与PE 1类似,配置过程省略。
配置完成后,在PE设备上执行display bgp peer ipv4 vpn-instance命令,可以看到PE与CE之间的BGP对等体关系已建立,并达到Established状态。
以PE 1与CE 1的对等体关系为例:
[PE1] display bgp peer ipv4 vpn-instance vpn1
BGP local router ID: 1.1.1.9
Local AS number: 100
Total number of peers: 1 Peers in established state: 1
Peer AS MsgRcvd MsgSent OutQ PrefRcv Up/Down State
10.1.1.1 65410 4 4 0 2 00:00:22 Established
(5) 在PE之间建立MP-IBGP对等体
# 配置PE 1。
[PE1-bgp] peer 3.3.3.9 as-number 100
[PE1-bgp] peer 3.3.3.9 connect-interface loopback 0
[PE1-bgp] address-family vpnv4
[PE1-bgp-vpnv4] peer 3.3.3.9 enable
[PE1-bgp-vpnv4] quit
[PE1-bgp] quit
# 配置PE 2。
[PE2-bgp] peer 1.1.1.9 as-number 100
[PE2-bgp] peer 1.1.1.9 connect-interface loopback 0
[PE2-bgp] address-family vpnv4
[PE2-bgp-vpnv4] peer 1.1.1.9 enable
[PE2-bgp-vpnv4] quit
[PE2-bgp] quit
配置完成后,在PE设备上执行display bgp peer vpnv4命令,可以看到PE之间的BGP对等体关系已建立,并达到Established状态。
BGP local router ID: 1.1.1.9
Local AS number: 100
Total number of peers: 1 Peers in established state: 1
Peer AS MsgRcvd MsgSent OutQ PrefRcv Up/Down State
3.3.3.9 100 3 6 0 0 00:00:32 Established
在PE设备上执行display ip routing-table vpn-instance命令,可以看到去往对端CE的路由。
以PE 1上的VPN 1为例:
[PE1] display ip routing-table vpn-instance vpn1
Destinations : 13 Routes : 13
Destination/Mask Proto Pre Cost NextHop Interface
0.0.0.0/32 Direct 0 0 127.0.0.1 InLoop0
10.1.1.0/24 Direct 0 0 10.1.1.2 GE3/0/1
10.1.1.0/32 Direct 0 0 10.1.1.2 GE3/0/1
10.1.1.2/32 Direct 0 0 127.0.0.1 InLoop0
10.1.1.255/32 Direct 0 0 10.1.1.2 GE3/0/1
10.3.1.0/24 BGP 255 0 3.3.3.9 GE2/0/1
127.0.0.0/8 Direct 0 0 127.0.0.1 InLoop0
127.0.0.0/32 Direct 0 0 127.0.0.1 InLoop0
127.0.0.1/32 Direct 0 0 127.0.0.1 InLoop0
127.255.255.255/32 Direct 0 0 127.0.0.1 InLoop0
224.0.0.0/4 Direct 0 0 0.0.0.0 NULL0
224.0.0.0/24 Direct 0 0 0.0.0.0 NULL0
255.255.255.255/32 Direct 0 0 127.0.0.1 InLoop0
同一VPN的CE能够相互Ping通,不同VPN的CE不能相互Ping通。
例如:CE 1能够Ping通CE 3(10.3.1.1),但不能Ping通CE 4(10.4.1.1)。
· Spoke-CE之间不能直接通信,只能通过Hub-CE转发Spoke-CE之间的流量。
· Spoke-CE与Spoke-PE之间、Hub-CE与Hub-PE之间配置EBGP交换VPN路由信息。
· Spoke-PE与Hub-PE之间配置OSPF实现PE内部的互通、配置MP-IBGP交换VPN路由信息。
IP地址 |
IP地址 |
||||
|
|||||
|
|||||
|
GE3/0/2 |
|
GE3/0/3 |
||
|
GE3/0/4 |
||||
|
|||||
|
|
||||
|
GE3/0/2 |
|
|
|
(1) 在MPLS骨干网上配置IGP协议,实现骨干网Spoke-PE、Hub-PE之间的互通
# 配置Spoke-PE 1。
<Spoke-PE1> system-view
[Spoke-PE1] interface loopback 0
[Spoke-PE1-LoopBack0] ip address 1.1.1.9 32
[Spoke-PE1-LoopBack0] quit
[Spoke-PE1] interface GigabitEthernet 3/0/2
[Spoke-PE1-GigabitEthernet3/0/2] ip address 172.1.1.1 24
[Spoke-PE1-GigabitEthernet 3/0/2] quit
[Spoke-PE1] ospf
[Spoke-PE1-ospf-1] area 0
[Spoke-PE1-ospf-1-area-0.0.0.0] network 172.1.1.0 0.0.0.255
[Spoke-PE1-ospf-1-area-0.0.0.0] network 1.1.1.9 0.0.0.0
[Spoke-PE1-ospf-1-area-0.0.0.0] quit
[Spoke-PE1-ospf-1] quit
# 配置Spoke-PE 2。
<Spoke-PE2> system-view
[Spoke-PE2] interface loopback 0
[Spoke-PE2-LoopBack0] ip address 3.3.3.9 32
[Spoke-PE2-LoopBack0] quit
[Spoke-PE2] interface GigabitEthernet 3/0/2
[Spoke-PE2-GigabitEthernet3/0/2] ip address 172.2.1.1 24
[Spoke-PE2-GigabitEthernet3/0/2] quit
[Spoke-PE2] ospf
[Spoke-PE2-ospf-1] area 0
[Spoke-PE2-ospf-1-area-0.0.0.0] network 172.2.1.0 0.0.0.255
[Spoke-PE2-ospf-1-area-0.0.0.0] network 3.3.3.9 0.0.0.0
[Spoke-PE2-ospf-1-area-0.0.0.0] quit
[Spoke-PE2-ospf-1] quit
# 配置Hub-PE。
<Hub-PE> system-view
[Hub-PE] interface loopback 0
[Hub-PE-LoopBack0] ip address 2.2.2.9 32
[Hub-PE-LoopBack0] quit
[Hub-PE] interface GigabitEthernet 3/0/3
[Hub-PE-GigabitEthernet3/0/3] ip address 172.1.1.2 24
[Hub-PE-GigabitEthernet3/0/3] quit
[Hub-PE] interface GigabitEthernet 3/0/4
[Hub-PE-GigabitEthernet3/0/4] ip address 172.2.1.2 24
[Hub-PE-GigabitEthernet3/0/2] quit
[Hub-PE] ospf
[Hub-PE-ospf-1] area 0
[Hub-PE-ospf-1-area-0.0.0.0] network 172.1.1.0 0.0.0.255
[Hub-PE-ospf-1-area-0.0.0.0] network 172.2.1.0 0.0.0.255
[Hub-PE-ospf-1-area-0.0.0.0] network 2.2.2.9 0.0.0.0
[Hub-PE-ospf-1-area-0.0.0.0] quit
[Hub-PE-ospf-1] quit
配置完成后,Spoke-PE 1、Spoke-PE 2、Hub-PE之间应能建立OSPF邻居,执行display ospf peer命令可以看到邻居达到Full状态。执行display ip routing-table命令可以看到PE之间学习到对方的Loopback路由。
(2) 在MPLS骨干网上配置MPLS基本能力和MPLS LDP,建立LDP LSP
# 配置Spoke-PE 1。
[Spoke-PE1] mpls lsr-id 1.1.1.9
[Spoke-PE1] mpls ldp
[Spoke-PE1-ldp] quit
[Spoke-PE1] interface GigabitEthernet 3/0/2
[Spoke-PE1-GigabitEthernet3/0/2] mpls enable
[Spoke-PE1-GigabitEthernet3/0/2] mpls ldp enable
[Spoke-PE1-GigabitEthernet3/0/2] quit
# 配置Spoke-PE 2。
[Spoke-PE2] mpls lsr-id 3.3.3.9
[Spoke-PE2] mpls ldp
[Spoke-PE2-ldp] quit
[Spoke-PE2] interface GigabitEthernet 3/0/2
[Spoke-PE2-GigabitEthernet3/0/2] mpls enable
[Spoke-PE2-GigabitEthernet3/0/2] mpls ldp enable
[Spoke-PE2-GigabitEthernet3/0/2] quit
# 配置Hub-PE。
[Hub-PE] mpls lsr-id 2.2.2.9
[Hub-PE] mpls ldp
[Hub-PE-ldp] quit
[Hub-PE] interface GigabitEthernet 3/0/3
[Hub-PE-GigabitEthernet3/0/3] mpls enable
[Hub-PE-GigabitEthernet3/0/3] mpls ldp enable
[Hub-PE-GigabitEthernet3/0/3] quit
[Hub-PE] interface GigabitEthernet 3/0/4
[Hub-PE-GigabitEthernet3/0/4] mpls enable
[Hub-PE-GigabitEthernet3/0/4] mpls ldp enable
[Hub-PE-GigabitEthernet3/0/4] quit
上述配置完成后,Spoke-PE 1、Spoke-PE 2、Hub-PE之间应能建立LDP会话,执行display mpls ldp peer命令可以看到LDP会话的状态为Operational。执行display mpls ldp lsp命令,可以看到LDP LSP的建立情况。
(3) 在Spoke-PE和Hub-PE设备上配置VPN实例,将CE接入PE
# 配置Spoke-PE 1。
[Spoke-PE1] ip vpn-instance vpn1
[Spoke-PE1-vpn-instance-vpn1] route-distinguisher 100:1
[Spoke-PE1-vpn-instance-vpn1] vpn-target 111:1 import-extcommunity
[Spoke-PE1-vpn-instance-vpn1] vpn-target 222:2 export-extcommunity
[Spoke-PE1-vpn-instance-vpn1] quit
[Spoke-PE1] interface GigabitEthernet 3/0/1
[Spoke-PE1-GigabitEthernet3/0/1] ip binding vpn-instance vpn1
[Spoke-PE1-GigabitEthernet3/0/1] ip address 10.1.1.2 24
[Spoke-PE1-GigabitEthernet3/0/1] quit
# 配置Spoke-PE 2。
[Spoke-PE2] ip vpn-instance vpn1
[Spoke-PE2-vpn-instance-vpn1] route-distinguisher 100:2
[Spoke-PE2-vpn-instance-vpn1] vpn-target 111:1 import-extcommunity
[Spoke-PE2-vpn-instance-vpn1] vpn-target 222:2 export-extcommunity
[Spoke-PE2-vpn-instance-vpn1] quit
[Spoke-PE2] interface GigabitEthernet 3/0/1
[Spoke-PE2-GigabitEthernet3/0/1] ip binding vpn-instance vpn1
[Spoke-PE2-GigabitEthernet3/0/1] ip address 10.2.1.2 24
[Spoke-PE2-GigabitEthernet3/0/1] quit
# 配置Hub-PE。
[Hub-PE] ip vpn-instance vpn1-in
[Hub-PE-vpn-instance-vpn1-in] route-distinguisher 100:3
[Hub-PE-vpn-instance-vpn1-in] vpn-target 222:2 import-extcommunity
[Hub-PE-vpn-instance-vpn1-in] quit
[Hub-PE] ip vpn-instance vpn1-out
[Hub-PE-vpn-instance-vpn1-out] route-distinguisher 100:4
[Hub-PE-vpn-instance-vpn1-out] vpn-target 111:1 export-extcommunity
[Hub-PE-vpn-instance-vpn1-out] quit
[Hub-PE] interface GigabitEthernet 3/0/1
[Hub-PE-GigabitEthernet3/0/1] ip binding vpn-instance vpn1-in
[Hub-PE-GigabitEthernet3/0/1] ip address 10.3.1.2 24
[Hub-PE-GigabitEthernet3/0/1] quit
[Hub-PE] interface GigabitEthernet 3/0/2
[Hub-PE-GigabitEthernet3/0/2] ip binding vpn-instance vpn1-out
[Hub-PE-GigabitEthernet3/0/2] ip address 10.4.1.2 24
[Hub-PE-GigabitEthernet3/0/2] quit
# 按图1-21配置各CE的接口IP地址,配置过程略。
配置完成后,在PE设备上执行display ip vpn-instance命令可以看到VPN实例的配置情况。各PE能ping通自己接入的CE。
以Spoke-PE 1和Spoke-CE 1为例:
[Spoke-PE1] display ip vpn-instance
Total VPN-Instances configured : 1
VPN-Instance Name RD Create time
vpn1 100:1 2009/04/08 10:55:07
[Spoke-PE1] ping -vpn-instance vpn1 10.1.1.1
Ping 10.1.1.1 (10.1.1.1): 56 data bytes, press CTRL_C to break
56 bytes from 10.1.1.1: icmp_seq=0 ttl=128 time=1.913 ms
56 bytes from 10.1.1.1: icmp_seq=1 ttl=128 time=2.381 ms
56 bytes from 10.1.1.1: icmp_seq=2 ttl=128 time=1.707 ms
56 bytes from 10.1.1.1: icmp_seq=3 ttl=128 time=1.666 ms
56 bytes from 10.1.1.1: icmp_seq=4 ttl=128 time=2.710 ms
--- Ping statistics for 10.1.1.1 ---
5 packet(s) transmitted, 5 packet(s) received, 0.0% packet loss
round-trip min/avg/max/std-dev = 1.666/2.075/2.710/0.406 ms
(4) 在PE与CE之间建立EBGP对等体,引入VPN路由
# 配置Spoke-CE 1。
<Spoke-CE1> system-view
[Spoke-CE1] bgp 65410
[Spoke-CE1-bgp] peer 10.1.1.2 as-number 100
[Spoke-CE1-bgp] address-family ipv4
[Spoke-CE1-bgp-ipv4] peer 10.1.1.2 enable
[Spoke-CE1-bgp-ipv4] import-route direct
[Spoke-CE1-bgp-ipv4] quit
[Spoke-CE1-bgp] quit
# 配置Spoke-CE 2。
<Spoke-CE2> system-view
[Spoke-CE2] bgp 65420
[Spoke-CE2-bgp] peer 10.2.1.2 as-number 100
[Spoke-CE2-bgp] address-family ipv4
[Spoke-CE2-bgp-ipv4] peer 10.2.1.2 enable
[Spoke-CE2-bgp-ipv4] import-route direct
[Spoke-CE2-bgp-ipv4] quit
[Spoke-CE2-bgp] quit
# 配置Hub-CE。
<Hub-CE> system-view
[Hub-CE] bgp 65430
[Hub-CE-bgp] peer 10.3.1.2 as-number 100
[Hub-CE-bgp] peer 10.4.1.2 as-number 100
[Hub-CE-bgp] address-family ipv4
[Hub-CE-bgp-ipv4] peer 10.3.1.2 enable
[Hub-CE-bgp-ipv4] peer 10.4.1.2 enable
[Hub-CE-bgp-ipv4] import-route direct
[Hub-CE-bgp-ipv4] quit
[Hub-CE-bgp] quit
# 配置Spoke-PE 1。
[Spoke-PE1] bgp 100
[Spoke-PE1-bgp] ip vpn-instance vpn1
[Spoke-PE1-bgp-vpn1] peer 10.1.1.1 as-number 65410
[Spoke-PE1-bgp-vpn1] address-family ipv4
[Spoke-PE1-bgp-ipv4-vpn1] peer 10.1.1.1 enable
[Spoke-PE1-bgp-ipv4-vpn1] import-route direct
[Spoke-PE1-bgp-ipv4-vpn1] quit
[Spoke-PE1-bgp-vpn1] quit
[Spoke-PE1-bgp] quit
# 配置Spoke-PE 2。
[Spoke-PE2] bgp 100
[Spoke-PE2-bgp] ip vpn-instance vpn1
[Spoke-PE2-bgp-vpn1] peer 10.2.1.1 as-number 65420
[Spoke-PE2-bgp-vpn1] address-family ipv4
[Spoke-PE2-bgp-ipv4-vpn1] peer 10.2.1.1 enable
[Spoke-PE2-bgp-ipv4-vpn1] import-route direct
[Spoke-PE2-bgp-ipv4-vpn1] quit
[Spoke-PE2-bgp-vpn1] quit
[Spoke-PE2-bgp] quit
# 配置Hub-PE。
[Hub-PE] bgp 100
[Hub-PE-bgp] ip vpn-instance vpn1-in
[Hub-PE-bgp-vpn1-in] peer 10.3.1.1 as-number 65430
[Hub-PE-bgp-vpn1-in] address-family ipv4
[Hub-PE-bgp-ipv4-vpn1-in] peer 10.3.1.1 enable
[Hub-PE-bgp-ipv4-vpn1-in] import-route direct
[Hub-PE-bgp-ipv4-vpn1-in] quit
[Hub-PE-bgp-vpn1-in] quit
[Hub-PE-bgp] ip vpn-instance vpn1-out
[Hub-PE-bgp-vpn1-out] peer 10.4.1.1 as-number 65430
[Hub-PE-bgp-vpn1-out] address-family ipv4
[Hub-PE-bgp-ipv4-vpn1-out] peer 10.4.1.1 enable
[Hub-PE-bgp-ipv4-vpn1-out] import-route direct
[Hub-PE-bgp-ipv4-vpn1-out] quit
[Hub-PE-bgp-vpn1-out] quit
[Hub-PE-bgp] quit
配置完成后,在PE设备上执行display bgp peer ipv4 vpn-instance命令,可以看到PE与CE之间的BGP对等体关系已建立,并达到Established状态。
(5) 在Spoke-PE和Hub-PE之间建立MP-IBGP对等体
# 配置Spoke-PE 1。
[Spoke-PE1] bgp 100
[Spoke-PE1-bgp] peer 2.2.2.9 as-number 100
[Spoke-PE1-bgp] peer 2.2.2.9 connect-interface loopback 0
[Spoke-PE1-bgp] address-family vpnv4
[Spoke-PE1-bgp-vpnv4] peer 2.2.2.9 enable
[Spoke-PE1-bgp-vpnv4] quit
[Spoke-PE1-bgp] quit
# 配置Spoke-PE 2。
[Spoke-PE2] bgp 100
[Spoke-PE2-bgp] peer 2.2.2.9 as-number 100
[Spoke-PE2-bgp] peer 2.2.2.9 connect-interface loopback 0
[Spoke-PE2-bgp] address-family vpnv4
[Spoke-PE2-bgp-vpnv4] peer 2.2.2.9 enable
[Spoke-PE2-bgp-vpnv4] quit
[Spoke-PE2-bgp] quit
# 配置Hub-PE。
[Hub-PE] bgp 100
[Hub-PE-bgp] peer 1.1.1.9 as-number 100
[Hub-PE-bgp] peer 1.1.1.9 connect-interface loopback 0
[Hub-PE-bgp] peer 3.3.3.9 as-number 100
[Hub-PE-bgp] peer 3.3.3.9 connect-interface loopback 0
[Hub-PE-bgp] address-family vpnv4
[Hub-PE-bgp-vpnv4] peer 1.1.1.9 enable
[Hub-PE-bgp-vpnv4] peer 3.3.3.9 enable
[Hub-PE-bgp-vpnv4] quit
[Hub-PE-bgp] quit
配置完成后,在PE设备上执行display bgp peer vpnv4命令,可以看到PE之间的BGP对等体关系已建立,并达到Established状态。
# 在PE设备上执行display ip routing-table vpn-instance命令,可以看到去往各个CE的路由,且Spoke-PE上到达对端Spoke-CE的路由指向Hub-PE。以Spoke-PE 1为例:
[Spoke-PE1] display ip routing-table vpn-instance vpn1
Routing Tables: vpn1
Destinations : 8 Routes : 8
Destination/Mask Proto Pre Cost NextHop Interface
10.0.0.0/24 BGP 255 0 2.2.2.9 NULL0
10.1.1.0/24 Direct 0 0 10.1.1.2 GE3/0/1
10.1.1.2/32 Direct 0 0 127.0.0.1 InLoop0
10.2.1.0/24 BGP 255 0 2.2.2.9 NULL0
10.3.1.0/24 BGP 255 0 2.2.2.9 NULL0
10.4.1.0/24 BGP 255 0 2.2.2.9 NULL0
127.0.0.0/8 Direct 0 0 127.0.0.1 InLoop0
127.0.0.1/32 Direct 0 0 127.0.0.1 InLoop0
# Spoke-CE 1和Spoke-CE 2之间可以ping通。从TTL值可以推算出Spoke-CE 1到Spoke-CE 2经过6跳(255-250+1),即Spoke-CE 1和Spoke-CE 2之间的流量需要通过Hub-CE转发。以Spoke-CE 1为例:
[Spoke-CE1] ping 10.2.1.1
PING 10.2.1.1: 56 data bytes, press CTRL_C to break
56 bytes from 10.2.1.1: icmp_seq=0 ttl=255 time=1.688 ms
56 bytes from 10.2.1.1: icmp_seq=1 ttl=255 time=1.362 ms
56 bytes from 10.2.1.1: icmp_seq=2 ttl=255 time=1.393 ms
56 bytes from 10.2.1.1: icmp_seq=3 ttl=255 time=1.343 ms
56 bytes from 10.2.1.1: icmp_seq=4 ttl=255 time=1.411 ms
--- Ping statistics for 10.2.1.1 ---
5 packet(s) transmitted, 5 packet(s) received, 0.0% packet loss
round-trip min/avg/max/std-dev = 1.343/1.439/1.688/0.127 ms
· CE 1和CE 2属于同一个VPN。
· CE 1通过AS 100的PE 1接入,CE 2通过AS 200的PE 2接入。
· 采用OptionA方式实现跨域的MPLS L3VPN,即,采用VRF-to-VRF方式管理VPN路由。
· 同一个AS内部的MPLS骨干网使用OSPF作为IGP。
图1-22 配置跨域VPN-OptionA方式组网图
IP地址 |
IP地址 |
||||
|
|
||||
|
GE2/0/1 |
|
GE2/0/1 |
||
|
GE2/0/1 |
|
GE2/0/1 |
||
|
GE2/0/2 |
|
GE2/0/2 |
(1) 在MPLS骨干网上配置IGP协议,实现骨干网内互通
本例中采用OSPF发布接口(包括Loopback接口)所在网段的路由,具体配置步骤略。
配置完成后,ASBR-PE与本AS的PE之间应能建立OSPF邻居,执行display ospf peer命令可以看到邻居达到FULL状态,PE之间能学习到对方的Loopback地址。
ASBR-PE与本AS的PE之间能够互相ping通。
(2) 在MPLS骨干网上配置MPLS基本能力和MPLS LDP,建立LDP LSP
# 配置PE 1的MPLS基本能力,并在与ASBR-PE 1相连的接口上使能LDP。
[PE1] mpls lsr-id 1.1.1.9
[PE1] mpls ldp
[PE1-ldp] quit
[PE1] interface GigabitEthernet 2/0/1
[PE1-GigabitEthernet2/0/1] mpls enable
[PE1-GigabitEthernet2/0/1] mpls ldp enable
[PE1-GigabitEthernet2/0/1] quit
# 配置ASBR-PE 1的MPLS基本能力,并在与PE 1相连的接口上使能LDP。
[ASBR-PE1] mpls lsr-id 2.2.2.9
[ASBR-PE1] mpls ldp
[ASBR-PE1-ldp] quit
[ASBR-PE1] interface GigabitEthernet 2/0/1
[ASBR-PE1-GigabitEthernet2/0/1] mpls enable
[ASBR-PE1-GigabitEthernet2/0/1] mpls ldp enable
[ASBR-PE1-GigabitEthernet2/0/1] quit
# 配置ASBR-PE 2的MPLS基本能力,并在与PE 2相连的接口上使能LDP。
[ASBR-PE2] mpls lsr-id 3.3.3.9
[ASBR-PE2] mpls ldp
[ASBR-PE2-ldp] quit
[ASBR-PE2] interface GigabitEthernet 2/0/1
[ASBR-PE2-GigabitEthernet2/0/1] mpls enable
[ASBR-PE2-GigabitEthernet2/0/1] mpls ldp enable
[ASBR-PE2-GigabitEthernet2/0/1] quit
# 配置PE 2的MPLS基本能力,并在与ASBR-PE 2相连的接口上使能LDP。
[PE2] mpls lsr-id 4.4.4.9
[PE2] mpls ldp
[PE2-ldp] quit
[PE2] interface GigabitEthernet 2/0/1
[PE2-GigabitEthernet2/0/1] mpls enable
[PE2-GigabitEthernet2/0/1] mpls ldp enable
[PE2-GigabitEthernet2/0/1] quit
上述配置完成后,同一AS的PE和ASBR-PE之间应该建立起LDP邻居,在各设备上执行display mpls ldp peer命令可以看到LDP会话状态为“Operational”。
(3) 在PE设备上配置VPN实例,将CE接入PE
同一AS内的ASBR-PE与PE的VPN实例的VPN Target应能匹配,不同AS的PE的VPN实例的VPN Target则不需要匹配。
# 配置CE 1。
[CE1] interface GigabitEthernet 3/0/1
[CE1-GigabitEthernet3/0/1] ip address 10.1.1.1 24
[CE1-GigabitEthernet3/0/1] quit
# 配置PE 1。
[PE1-vpn-instance-vpn1] route-distinguisher 100:1
[PE1-vpn-instance-vpn1] vpn-target 100:1 both
[PE1-vpn-instance-vpn1] quit
[PE1] interface GigabitEthernet 3/0/1
[PE1-GigabitEthernet3/0/1] ip binding vpn-instance vpn1
[PE1-GigabitEthernet3/0/1] ip address 10.1.1.2 24
[PE1-GigabitEthernet3/0/1] quit
# 配置CE 2。
[CE2] interface GigabitEthernet 3/0/1
[CE2-GigabitEthernet3/0/1] ip address 10.2.1.1 24
[CE2-GigabitEthernet3/0/1] quit
# 配置PE 2。
[PE2-vpn-instance-vpn1] route-distinguisher 200:2
[PE2-vpn-instance-vpn1] vpn-target 200:1 both
[PE2-vpn-instance-vpn1] quit
[PE2] interface GigabitEthernet 3/0/1
[PE2-GigabitEthernet3/0/1] ip binding vpn-instance vpn1
[PE2-GigabitEthernet3/0/1] ip address 10.2.1.2 24
[PE2-GigabitEthernet3/0/1] quit
# 配置ASBR-PE 1:创建VPN实例,并将此实例绑定到连接ASBR-PE 2的接口(ASBR-PE 1认为ASBR-PE 2是自己的CE)。
[ASBR-PE1] ip vpn-instance vpn1
[ASBR-PE1-vpn-vpn1] route-distinguisher 100:1
[ASBR-PE1-vpn-vpn1] vpn-target 100:1 both
[ASBR-PE1-vpn-vpn1] quit
[ASBR-PE1] interface GigabitEthernet 2/0/2
[ASBR-PE1-GigabitEthernet2/0/2] ip binding vpn-instance vpn1
[ASBR-PE1-GigabitEthernet2/0/2] ip address 192.1.1.1 24
[ASBR-PE1-GigabitEthernet2/0/2] quit
# 配置ASBR-PE 2:创建VPN实例,并将此实例绑定到连接ASBR-PE 1的接口(ASBR-PE 2认为ASBR-PE 1是自己的CE)。
[ASBR-PE2] ip vpn-instance vpn1
[ASBR-PE2-vpn-vpn1] route-distinguisher 200:1
[ASBR-PE2-vpn-vpn1] vpn-target 200:1 both
[ASBR-PE2-vpn-vpn1] quit
[ASBR-PE2] interface GigabitEthernet 2/0/2
[ASBR-PE2-GigabitEthernet2/0/2] ip binding vpn-instance vpn1
[ASBR-PE2-GigabitEthernet2/0/2] ip address 192.1.1.2 24
[ASBR-PE2-GigabitEthernet2/0/2] quit
上述配置完成后,在各PE设备上执行display ip vpn-instance命令能正确显示VPN实例配置。
各PE能ping通各自的CE。ASBR-PE之间也能互相ping通。
(4) 在PE与CE之间建立EBGP对等体,引入VPN路由
# 配置CE 1。
[CE1-bgp] peer 10.1.1.2 as-number 100
[CE1-bgp] address-family ipv4 unicast
[CE1-bgp-ipv4] peer 10.1.1.2 enable
[CE1-bgp-ipv4] import-route direct
[CE1-bgp-ipv4] quit
[CE1-bgp] quit
# 配置PE 1。
[PE1-bgp] ip vpn-instance vpn1
[PE1-bgp-vpn1] peer 10.1.1.1 as-number 65001
[PE1-bgp-vpn1] address-family ipv4 unicast
[PE1-bgp-ipv4-vpn1] peer 10.1.1.1 enable
[PE1-bgp-ipv4-vpn1] quit
[PE1-bgp-vpn1] quit
[PE1-bgp] quit
# 配置CE 2。
[CE2-bgp] peer 10.2.1.2 as-number 200
[CE2-bgp] address-family ipv4 unicast
[CE2-bgp-ipv4] peer 10.2.1.2 enable
[CE2-bgp-ipv4] import-route direct
[CE2-bgp-ipv4] quit
[CE2-bgp] quit
# 配置PE 2。
[PE2-bgp] ip vpn-instance vpn1
[PE2-bgp-vpn1] peer 10.2.1.1 as-number 65002
[PE2-bgp-vpn1] address-family ipv4 unicast
[PE2-bgp-ipv4-vpn1] peer 10.2.1.1 enable
[PE2-bgp-ipv4-vpn1] quit
[PE2-bgp-vpn1] quit
[PE2-bgp] quit
(5) PE与本AS的ASBR-PE之间建立MP-IBGP对等体,ASBR-PE之间建立EBGP对等体
# 配置PE 1。
[PE1-bgp] peer 2.2.2.9 as-number 100
[PE1-bgp] peer 2.2.2.9 connect-interface loopback 0
[PE1-bgp] address-family vpnv4
[PE1-bgp-vpnv4] peer 2.2.2.9 enable
[PE1-bgp-vpnv4] peer 2.2.2.9 next-hop-local
[PE1-bgp-vpnv4] quit
[PE1-bgp] quit
# 配置ASBR-PE 1。
[ASBR-PE1-bgp] ip vpn-instance vpn1
[ASBR-PE1-bgp-vpn1] peer 192.1.1.2 as-number 200
[ASBR-PE1-bgp-vpn1] address-family ipv4 unicast
[ASBR-PE1-bgp-ipv4-vpn1] peer 192.1.1.2 enable
[ASBR-PE1-bgp-ipv4-vpn1] quit
[ASBR-PE1-bgp-vpn1] quit
[ASBR-PE1-bgp] peer 1.1.1.9 as-number 100
[ASBR-PE1-bgp] peer 1.1.1.9 connect-interface loopback 0
[ASBR-PE1-bgp] address-family vpnv4
[ASBR-PE1-bgp-vpnv4] peer 1.1.1.9 enable
[ASBR-PE1-bgp-vpnv4] peer 1.1.1.9 next-hop-local
[ASBR-PE1-bgp-vpnv4] quit
[ASBR-PE1-bgp] quit
# 配置ASBR-PE 2。
[ASBR-PE2-bgp] ip vpn-instance vpn1
[ASBR-PE2-bgp-vpn1] peer 192.1.1.1 as-number 100
[ASBR-PE2-bgp-vpn1] address-family ipv4 unicast
[ASBR-PE2-bgp-ipv4-vpn1] peer 192.1.1.1 enable
[ASBR-PE2-bgp-ipv4-vpn1] quit
[ASBR-PE2-bgp-vpn1] quit
[ASBR-PE2-bgp] peer 4.4.4.9 as-number 200
[ASBR-PE2-bgp] peer 4.4.4.9 connect-interface loopback 0
[ASBR-PE2-bgp] address-family vpnv4
[ASBR-PE2-bgp-vpnv4] peer 4.4.4.9 enable
[ASBR-PE2-bgp-vpnv4] peer 4.4.4.9 next-hop-local
[ASBR-PE2-bgp-vpnv4] quit
[ASBR-PE2-bgp] quit
# 配置PE 2。
[PE2-bgp] peer 3.3.3.9 as-number 200
[PE2-bgp] peer 3.3.3.9 connect-interface loopback 0
[PE2-bgp] address-family vpnv4
[PE2-bgp-vpnv4] peer 3.3.3.9 enable
[PE2-bgp-vpnv4] peer 3.3.3.9 next-hop-local
[PE2-bgp-vpnv4] quit
[PE2-bgp] quit
上述配置完成后,CE之间能学习到对方的接口路由,CE 1和CE 2能够相互ping通。
· Site 1和Site 2属于同一个VPN,Site 1的CE 1通过AS 100的PE 1接入,Site 2的CE 2通过AS 600的PE 2接入;
· 同一自治系统内的PE设备之间运行IS-IS作为IGP;
· PE 1与ASBR-PE 1间通过MP-IBGP交换VPNv4路由;
· PE 2与ASBR-PE 2间通过MP-IBGP交换VPNv4路由;
· ASBR-PE 1与ASBR-PE 2间通过MP-EBGP交换VPNv4路由;
· ASBR上不对接收的VPNv4路由进行VPN Target过滤。
图1-23 配置跨域VPN-OptionB方式组网图
IP地址 |
IP地址 |
||||
|
|
||||
|
GE2/0/1 |
|
GE2/0/1 |
||
|
GE2/0/1 |
|
GE2/0/1 |
||
|
GE2/0/2 |
|
GE2/0/2 |
(1) 配置PE 1
# 在PE 1上运行IS-IS。
[PE1] isis 1
[PE1-isis-1] network-entity 10.111.111.111.111.00
[PE1-isis-1] quit
# 配置LSR ID,使能MPLS和LDP。
[PE1] mpls ldp
[PE1-ldp] quit
# 配置接口GigabitEthernet2/0/1,在接口上运行IS-IS,并使能MPLS和LDP。
[PE1] interface GigabitEthernet 2/0/1
[PE1-GigabitEthernet2/0/1] ip address 1.1.1.2 255.0.0.0
[PE1-GigabitEthernet2/0/1] isis enable 1
[PE1-GigabitEthernet2/0/1] mpls enable
[PE1-GigabitEthernet2/0/1] mpls ldp enable
[PE1-GigabitEthernet2/0/1] quit
# 创建Loopback0接口,在接口上运行IS-IS。
[PE1-LoopBack0] ip address 2.2.2.9 32
[PE1-LoopBack0] isis enable 1
[PE1-LoopBack0] quit
# 创建一个VPN实例,名为vpn1,配置RD和VPN Target属性。
[PE1-vpn-instance-vpn1] route-distinguisher 11:11
[PE1-vpn-instance-vpn1] vpn-target 1:1 2:2 3:3 import-extcommunity
[PE1-vpn-instance-vpn1] vpn-target 3:3 export-extcommunity
[PE1-vpn-instance-vpn1] quit
# 将连接CE 1的接口绑定到创建的VPN实例。
[PE1] interface GigabitEthernet 3/0/1
[PE1-GigabitEthernet3/0/1] ip binding vpn-instance vpn1
[PE1-GigabitEthernet3/0/1] ip address 30.0.0.1 8
[PE1-GigabitEthernet3/0/1] quit
# 在PE 1上运行BGP。
# 配置IBGP对等体3.3.3.9为VPNv4对等体。
[PE1-bgp] peer 3.3.3.9 as-number 100
[PE1-bgp] peer 3.3.3.9 connect-interface loopback 0
[PE1-bgp] address-family vpnv4
[PE1-bgp-vpnv4] peer 3.3.3.9 enable
[PE1-bgp-vpnv4] quit
# 将直连路由引入vpn1的VPN路由表。
[PE1-bgp] ip vpn-instance vpn1
[PE1-bgp-vpn1] address-family ipv4 unicast
[PE1-bgp-ipv4-vpn1] import-route direct
[PE1-bgp-ipv4-vpn1] quit
[PE1-bgp-vpn1] quit
[PE1-bgp] quit
# 在ASBR-PE 1上运行IS-IS。
[ASBR-PE1] isis 1
[ASBR-PE1-isis-1] network-entity 10.222.222.222.222.00
[ASBR-PE1-isis-1] quit
# 配置LSR ID,使能MPLS和LDP。
[ASBR-PE1] mpls lsr-id 3.3.3.9
[ASBR-PE1] mpls ldp
[ASBR-PE1-ldp] quit
# 配置接口GigabitEthernet2/0/1,在接口上运行IS-IS,并使能MPLS和LDP。
[ASBR-PE1] interface GigabitEthernet 2/0/1
[ASBR-PE1-GigabitEthernet2/0/1] ip address 1.1.1.1 255.0.0.0
[ASBR-PE1-GigabitEthernet2/0/1] isis enable 1
[ASBR-PE1-GigabitEthernet2/0/1] mpls enable
[ASBR-PE1-GigabitEthernet2/0/1] mpls ldp enable
[ASBR-PE1-GigabitEthernet2/0/1] quit
# 配置接口GigabitEthernet2/0/2,使能MPLS。
[ASBR-PE1] interface GigabitEthernet 2/0/2
[ASBR-PE1-GigabitEthernet2/0/2] ip address 11.0.0.2 255.0.0.0
[ASBR-PE1-GigabitEthernet2/0/2] mpls enable
[ASBR-PE1-GigabitEthernet2/0/2] quit
# 创建Loopback0接口,并运行IS-IS。
[ASBR-PE1] interface loopback 0
[ASBR-PE1-LoopBack0] ip address 3.3.3.9 32
[ASBR-PE1-LoopBack0] isis enable 1
[ASBR-PE1-LoopBack0] quit
# 在ASBR-PE 1上运行BGP。
[ASBR-PE1-bgp] peer 2.2.2.9 as-number 100
[ASBR-PE1-bgp] peer 2.2.2.9 connect-interface loopback 0
[ASBR-PE1-bgp] peer 11.0.0.1 as-number 600
[ASBR-PE1-bgp] peer 11.0.0.1 connect-interface GigabitEthernet 2/0/2
# 不对接收的VPNv4路由进行Import VPN-target过滤。
[ASBR-PE1-bgp] address-family vpnv4
[ASBR-PE1-bgp-vpnv4] undo policy vpn-target
# 将IBGP对等体2.2.2.9和EBGP对等体11.0.0.1都配置为VPNv4对等体。
[ASBR-PE1-bgp-vpnv4] peer 11.0.0.1 enable
[ASBR-PE1-bgp-vpnv4] peer 2.2.2.9 enable
[ASBR-PE1-bgp-vpnv4] quit
# 在ASBR-PE 2上运行IS-IS。
[ASBR-PE2] isis 1
[ASBR-PE2-isis-1] network-entity 10.222.222.222.222.00
[ASBR-PE2-isis-1] quit
# 配置LSR ID,使能MPLS和LDP。
[ASBR-PE2] mpls lsr-id 4.4.4.9
[ASBR-PE2] mpls ldp
[ASBR-PE2-ldp] quit
# 配置接口GigabitEthernet2/0/1,在接口上运行IS-IS,并使能MPLS和LDP。
[ASBR-PE2] interface GigabitEthernet 2/0/1
[ASBR-PE2-GigabitEthernet2/0/1] ip address 9.1.1.1 255.0.0.0
[ASBR-PE2-GigabitEthernet2/0/1] isis enable 1
[ASBR-PE2-GigabitEthernet2/0/1] mpls enable
[ASBR-PE2-GigabitEthernet2/0/1] mpls ldp enable
[ASBR-PE2-GigabitEthernet2/0/1] quit
# 配置接口GigabitEthernet2/0/2,使能MPLS。
[ASBR-PE2] interface GigabitEthernet 2/0/2
[ASBR-PE2-GigabitEthernet2/0/2] ip address 11.0.0.1 255.0.0.0
[ASBR-PE2-GigabitEthernet2/0/2] mpls enable
[ASBR-PE2-GigabitEthernet2/0/2] quit
# 创建Loopback0接口,并运行IS-IS。
[ASBR-PE2] interface loopback 0
[ASBR-PE2-LoopBack0] ip address 4.4.4.9 32
[ASBR-PE2-LoopBack0] isis enable 1
[ASBR-PE2-LoopBack0] quit
# 在ASBR-PE 2上运行BGP。
[ASBR-PE2-bgp] peer 11.0.0.2 as-number 100
[ASBR-PE2-bgp] peer 11.0.0.2 connect-interface GigabitEthernet 2/0/2
[ASBR-PE2-bgp] peer 5.5.5.9 as-number 600
[ASBR-PE2-bgp] peer 5.5.5.9 connect-interface loopback 0
# 不对接收的VPNv4路由进行Import VPN-target过滤。
[ASBR-PE2-bgp] address-family vpnv4
[ASBR-PE2-bgp-vpnv4] undo policy vpn-target
# 将IBGP对等体5.5.5.9和EBGP对等体11.0.0.2都配置为VPNv4对等体。
[ASBR-PE2-bgp-vpnv4] peer 11.0.0.2 enable
[ASBR-PE2-bgp-vpnv4] peer 5.5.5.9 enable
[ASBR-PE2-bgp-vpnv4] quit
[ASBR-PE2-bgp] quit
# 在PE 2上运行IS-IS。
[PE2] isis 1
[PE2-isis-1] network-entity 10.111.111.111.111.00
[PE2-isis-1] quit
# 配置LSR ID,使能MPLS和LDP。
[PE2] mpls ldp
[PE2-ldp] quit
# 配置接口GigabitEthernet2/0/1,在接口上运行IS-IS,并使能MPLS和LDP。
[PE2] interface GigabitEthernet 2/0/1
[PE2-GigabitEthernet2/0/1] ip address 9.1.1.2 255.0.0.0
[PE2-GigabitEthernet2/0/1] isis enable 1
[PE2-GigabitEthernet2/0/1] mpls enable
[PE2-GigabitEthernet2/0/1] mpls ldp enable
[PE2-GigabitEthernet2/0/1] quit
# 创建Loopback0接口,在接口上运行IS-IS。
[PE2-LoopBack0] ip address 5.5.5.9 32
[PE2-LoopBack0] isis enable 1
[PE2-LoopBack0] quit
# 创建一个VPN实例,名为vpn1,配置RD和VPN Target属性。
[PE2-vpn-instance-vpn1] route-distinguisher 12:12
[PE2-vpn-instance-vpn1] vpn-target 1:1 2:2 3:3 import-extcommunity
[PE2-vpn-instance-vpn1] vpn-target 3:3 export-extcommunity
[PE2-vpn-instance-vpn1] quit
# 将连接CE 1的接口绑定到创建的VPN实例。
[PE2] interface GigabitEthernet 3/0/1
[PE2-GigabitEthernet3/0/1] ip binding vpn-instance vpn1
[PE2-GigabitEthernet3/0/1] ip address 20.0.0.1 8
[PE2-GigabitEthernet3/0/1] quit
# 在PE 2上运行BGP。
# 配置IBGP对等体4.4.4.9为VPNv4对等体。
[PE2-bgp] peer 4.4.4.9 as-number 600
[PE2-bgp] peer 4.4.4.9 connect-interface loopback 0
[PE2-bgp] address-family vpnv4
[PE2-bgp-vpnv4] peer 4.4.4.9 enable
[PE2-bgp-vpnv4] quit
# 将直连路由引入vpn1的VPN路由表。
[PE2-bgp] ip vpn-instance vpn1
[PE2-bgp-vpn1] address-family ipv4 unicast
[PE2-bgp-ipv4-vpn1] import-route direct
[PE2-bgp-ipv4-vpn1] quit
[PE2-bgp-vpn1] quit
[PE2-bgp] quit
# 配置完成后,PE 1和PE 2上连接CE的接口GigabitEthernet3/0/1之间可以互相Ping通。以PE 1为例:
[PE1] ping -a 30.0.0.1 -vpn-instance vpn1 20.0.0.1
Ping 20.0.0.1 (20.0.0.1) from 30.0.0.1: 56 data bytes, press CTRL_C to break
56 bytes from 20.0.0.1: icmp_seq=0 ttl=255 time=1.208 ms
56 bytes from 20.0.0.1: icmp_seq=1 ttl=255 time=0.867 ms
56 bytes from 20.0.0.1: icmp_seq=2 ttl=255 time=0.551 ms
56 bytes from 20.0.0.1: icmp_seq=3 ttl=255 time=0.566 ms
56 bytes from 20.0.0.1: icmp_seq=4 ttl=255 time=0.570 ms
--- Ping statistics for 20.0.0.1 ---
5 packet(s) transmitted, 5 packet(s) received, 0.0% packet loss
round-trip min/avg/max/std-dev = 0.551/0.752/1.208/0.257 ms
· Site 1和Site 2属于同一个VPN,Site 1通过AS 100的PE 1接入,Site 2通过AS 600的PE 2接入;
· 同一自治系统内的PE设备之间运行IS-IS作为IGP;
· PE 1与ASBR-PE 1间通过IBGP交换标签IPv4路由;
· PE 2与ASBR-PE 2间通过IBGP交换标签IPv4路由;
· PE 1与PE 2建立MP-EBGP对等体交换VPNv4路由;
· ASBR-PE 1和ASBR-PE 2上分别配置路由策略,对从对方接收的路由压入标签;
· ASBR-PE 1与ASBR-PE 2间通过EBGP交换标签IPv4路由。
图1-24 配置跨域VPN-OptionC方式组网图
IP地址 |
IP地址 |
||||
|
|
||||
|
GE 2/0/1 |
|
GE 2/0/1 |
||
|
GE 2/0/1 |
|
GE 2/0/1 |
||
|
GE 2/0/2 |
|
GE 2/0/2 |
||
CE 1 |
GE3/0/1 |
30.0.0.2/24 |
CE 2 |
GE3/0/1 |
20.0.0.2/24 |
# 配置接口GigabitEthernet3/0/1的IP地址。
<CE1> system-view
[CE1] interface GigabitEthernet 3/0/1
[CE1-GigabitEthernet3/0/1] ip address 30.0.0.2 24
[CE1-GigabitEthernet3/0/1] quit
# 配置CE 1与PE 1建立EBGP对等体,并引入VPN路由。
[CE1] bgp 65001
[CE1-bgp] peer 30.0.0.1 as-number 100
[CE1-bgp] address-family ipv4 unicast
[CE1-bgp-ipv4] peer 30.0.0.1 enable
[CE1-bgp-ipv4] import-route direct
[CE1-bgp-ipv4] quit
[CE1-bgp] quit
# 在PE 1上运行IS-IS。
[PE1] isis 1
[PE1-isis-1] network-entity 10.111.111.111.111.00
[PE1-isis-1] quit
# 配置LSR ID,使能MPLS和LDP。
[PE1] mpls ldp
[PE1-ldp] quit
# 配置接口GigabitEthernet2/0/1,在接口上运行IS-IS,并使能MPLS和LDP。
[PE1] interface GigabitEthernet 2/0/1
[PE1-GigabitEthernet2/0/1] ip address 1.1.1.2 255.0.0.0
[PE1-GigabitEthernet2/0/1] isis enable 1
[PE1-GigabitEthernet2/0/1] mpls enable
[PE1-GigabitEthernet2/0/1] mpls ldp enable
[PE1-GigabitEthernet2/0/1] quit
# 创建Loopback0接口,在接口上运行IS-IS。
[PE1-LoopBack0] ip address 2.2.2.9 32
[PE1-LoopBack0] isis enable 1
[PE1-LoopBack0] quit
# 创建VPN实例,名称为vpn1,为其配置RD和VPN Target属性。
[PE1-vpn-instance-vpn1] route-distinguisher 11:11
[PE1-vpn-instance-vpn1] vpn-target 1:1 2:2 3:3 import-extcommunity
[PE1-vpn-instance-vpn1] vpn-target 3:3 export-extcommunity
[PE1-vpn-instance-vpn1] quit
# 配置接口GigabitEthernet3/0/1与VPN实例vpn1绑定,并配置该接口的IP地址。
[PE1] interface GigabitEthernet 3/0/1
[PE1-GigabitEthernet3/0/1] ip binding vpn-instance vpn1
[PE1-GigabitEthernet3/0/1] ip address 30.0.0.1 24
[PE1-GigabitEthernet3/0/1] quit
# 在PE 1上运行BGP。
# 配置PE 1向IBGP对等体3.3.3.9发布标签路由及从3.3.3.9接收标签路由的能力。
[PE1-bgp] peer 3.3.3.9 as-number 100
[PE1-bgp] peer 3.3.3.9 connect-interface loopback 0
[PE1-bgp] address-family ipv4 unicast
[PE1-bgp-ipv4] peer 3.3.3.9 enable
[PE1-bgp-ipv4] peer 3.3.3.9 label-route-capability
[PE1-bgp-ipv4] quit
# 配置PE 1到EBGP对等体5.5.5.9的最大跳数为10。
[PE1-bgp] peer 5.5.5.9 as-number 600
[PE1-bgp] peer 5.5.5.9 connect-interface loopback 0
[PE1-bgp] peer 5.5.5.9 ebgp-max-hop 10
# 配置对等体5.5.5.9作为VPNv4对等体。
[PE1-bgp] address-family vpnv4
[PE1-bgp-vpnv4] peer 5.5.5.9 enable
[PE1-bgp-vpnv4] quit
# 配置PE 1与CE 1建立EBGP对等体,将学习到的BGP路由添加到VPN实例的路由表中。
[PE1-bgp] ip vpn-instance vpn1
[PE1-bgp-vpn1] peer 30.0.0.2 as-number 65001
[PE1-bgp-vpn1] address-family ipv4 unicast
[PE1-bgp-ipv4-vpn1] peer 30.0.0.2 enable
[PE1-bgp-ipv4-vpn1] quit
[PE1-bgp-vpn1] quit
[PE1-bgp] quit
# 在ASBR-PE1上运行IS-IS。
[ASBR-PE1] isis 1
[ASBR-PE1-isis-1] network-entity 10.222.222.222.222.00
[ASBR-PE1-isis-1] quit
# 配置LSR ID,使能MPLS和LDP。
[ASBR-PE1] mpls lsr-id 3.3.3.9
[ASBR-PE1] mpls ldp
[ASBR-PE1-ldp] quit
# 配置接口GigabitEthernet2/0/1,在接口上运行IS-IS,并使能MPLS和LDP。
[ASBR-PE1] interface GigabitEthernet 2/0/1
[ASBR-PE1-GigabitEthernet2/0/1] ip address 1.1.1.1 255.0.0.0
[ASBR-PE1-GigabitEthernet2/0/1] isis enable 1
[ASBR-PE1-GigabitEthernet2/0/1] mpls enable
[ASBR-PE1-GigabitEthernet2/0/1] mpls ldp enable
[ASBR-PE1-GigabitEthernet2/0/1] quit
# 配置接口GigabitEthernet2/0/2,并在接口上使能MPLS。
[ASBR-PE1] interface GigabitEthernet 2/0/2
[ASBR-PE1-GigabitEthernet2/0/2] ip address 11.0.0.2 255.0.0.0
[ASBR-PE1-GigabitEthernet2/0/2] mpls enable
[ASBR-PE1-GigabitEthernet2/0/2] quit
# 创建Loopback0接口,在接口上运行IS-IS。
[ASBR-PE1] interface loopback 0
[ASBR-PE1-LoopBack0] ip address 3.3.3.9 32
[ASBR-PE1-LoopBack0] isis enable 1
[ASBR-PE1-LoopBack0] quit
# 创建路由策略。
[ASBR-PE1] route-policy policy1 permit node 1
[ASBR-PE1-route-policy-policy1-1] apply mpls-label
[ASBR-PE1-route-policy-policy1-1] quit
[ASBR-PE1] route-policy policy2 permit node 1
[ASBR-PE1-route-policy-policy2-1] if-match mpls-label
[ASBR-PE1-route-policy-policy2-1] apply mpls-label
[ASBR-PE1-route-policy-policy2-1] quit
# 在ASBR-PE 1上运行BGP,对向IBGP对等体2.2.2.9发布的路由应用已配置的路由策略policy2。
[ASBR-PE1-bgp] peer 2.2.2.9 as-number 100
[ASBR-PE1-bgp] peer 2.2.2.9 connect-interface loopback 0
[ASBR-PE1-bgp] address-family ipv4 unicast
[ASBR-PE1-bgp-ipv4] peer 2.2.2.9 enable
[ASBR-PE1-bgp-ipv4] peer 2.2.2.9 route-policy policy2 export
# 向IBGP对等体2.2.2.9发布标签路由及从2.2.2.9接收标签路由的能力。
[ASBR-PE1-bgp-ipv4] peer 2.2.2.9 label-route-capability
# 引入IS-IS进程1的路由。
[ASBR-PE1-bgp-ipv4] import-route isis 1
[ASBR-PE1-bgp-ipv4] quit
# 对向EBGP对等体11.0.0.1发布的路由应用已配置的路由策略policy1。
[ASBR-PE1-bgp] peer 11.0.0.1 as-number 600
[ASBR-PE1-bgp] address-family ipv4 unicast
[ASBR-PE1-bgp-ipv4] peer 11.0.0.1 enable
[ASBR-PE1-bgp-ipv4] peer 11.0.0.1 route-policy policy1 export
# 向EBGP对等体11.0.0.1发布标签路由及从11.0.0.1接收标签路由的能力。
[ASBR-PE1-bgp-ipv4] peer 11.0.0.1 label-route-capability
[ASBR-PE1-bgp-ipv4] quit
[ASBR-PE1-bgp] quit
# 在ASBR-PE 2上运行IS-IS。
[ASBR-PE2] isis 1
[ASBR-PE2-isis-1] network-entity 10.222.222.222.222.00
[ASBR-PE2-isis-1] quit
# 配置LSR ID,使能MPLS和LDP。
[ASBR-PE2] mpls lsr-id 4.4.4.9
[ASBR-PE2] mpls ldp
[ASBR-PE2-ldp] quit
# 配置接口GigabitEthernet2/0/1,在接口上运行IS-IS,并在接口上使能MPLS和LDP。
[ASBR-PE2] interface GigabitEthernet 2/0/1
[ASBR-PE2-GigabitEthernet2/0/1] ip address 9.1.1.1 255.0.0.0
[ASBR-PE2-GigabitEthernet2/0/1] isis enable 1
[ASBR-PE2-GigabitEthernet2/0/1] mpls enable
[ASBR-PE2-GigabitEthernet2/0/1] mpls ldp enable
[ASBR-PE2-GigabitEthernet2/0/1] quit
# 创建Loopback0接口,在接口上运行IS-IS。
[ASBR-PE2] interface loopback 0
[ASBR-PE2-LoopBack0] ip address 4.4.4.9 32
[ASBR-PE2-LoopBack0] isis enable 1
[ASBR-PE2-LoopBack0] quit
# 配置接口GigabitEthernet2/0/2,在接口上使能MPLS。
[ASBR-PE2] interface GigabitEthernet 2/0/2
[ASBR-PE2-GigabitEthernet2/0/2] ip address 11.0.0.1 255.0.0.0
[ASBR-PE2-GigabitEthernet2/0/2] mpls enable
[ASBR-PE2-GigabitEthernet2/0/2] quit
# 创建路由策略。
[ASBR-PE2] route-policy policy1 permit node 1
[ASBR-PE2-route-policy-policy1-1] apply mpls-label
[ASBR-PE2-route-policy-policy1-1] quit
[ASBR-PE2] route-policy policy2 permit node 1
[ASBR-PE2-route-policy-policy2-1] if-match mpls-label
[ASBR-PE2-route-policy-policy2-1] apply mpls-label
[ASBR-PE2-route-policy-policy2-1] quit
# 在ASBR-PE 2上运行BGP,向IBGP对等体5.5.5.9发布标签路由及从5.5.5.9接收标签路由的能力。
[ASBR-PE2-bgp] peer 5.5.5.9 as-number 600
[ASBR-PE2-bgp] peer 5.5.5.9 connect-interface loopback 0
[ASBR-PE2-bgp] address-family ipv4 unicast
[ASBR-PE2-bgp-ipv4] peer 5.5.5.9 enable
[ASBR-PE2-bgp-ipv4] peer 5.5.5.9 label-route-capability
# 对向IBGP对等体5.5.5.9发布的路由应用已配置的路由策略policy2。
[ASBR-PE2-bgp-ipv4] peer 5.5.5.9 route-policy policy2 export
# 引入IS-IS进程1的路由。
[ASBR-PE2-bgp-ipv4] import-route isis 1
[ASBR-PE2-bgp-ipv4] quit
# 对向EBGP对等体11.0.0.2发布的路由应用已配置的路由策略policy1。
[ASBR-PE2-bgp] peer 11.0.0.2 as-number 100
[ASBR-PE2-bgp] address-family ipv4 unicast
[ASBR-PE2-bgp-ipv4] peer 11.0.0.2 enable
[ASBR-PE2-bgp-ipv4] peer 11.0.0.2 route-policy policy1 export
# 向EBGP对等体11.0.0.2发布标签路由及从11.0.0.2接收标签路由的能力。
[ASBR-PE2-bgp-ipv4] peer 11.0.0.2 label-route-capability
[ASBR-PE2-bgp-ipv4] quit
[ASBR-PE2-bgp] quit
# 在PE 2上运行IS-IS。
[PE2] isis 1
[PE2-isis-1] network-entity 10.111.111.111.111.00
[PE2-isis-1] quit
# 配置LSR ID,使能MPLS和LDP。
[PE2] mpls ldp
[PE2-ldp] quit
# 配置接口GigabitEthernet2/0/1,在接口上运行IS-IS,并使能MPLS和LDP。
[PE2] interface GigabitEthernet 2/0/1
[PE2-GigabitEthernet2/0/1] ip address 9.1.1.2 255.0.0.0
[PE2-GigabitEthernet2/0/1] isis enable 1
[PE2-GigabitEthernet2/0/1] mpls enable
[PE2-GigabitEthernet2/0/1] mpls ldp enable
[PE2-GigabitEthernet2/0/1] quit
# 创建Loopback0接口,在接口上运行IS-IS。
[PE2-LoopBack0] ip address 5.5.5.9 32
[PE2-LoopBack0] isis enable 1
[PE2-LoopBack0] quit
# 创建VPN实例,名称为vpn1,为其配置RD和VPN Target属性。
[PE2-vpn-instance-vpn1] route-distinguisher 11:11
[PE2-vpn-instance-vpn1] vpn-target 1:1 2:2 3:3 import-extcommunity
[PE2-vpn-instance-vpn1] vpn-target 3:3 export-extcommunity
[PE2-vpn-instance-vpn1] quit
# 配置接口GigabitEthernet3/0/1与VPN实例vpn1绑定,并配置该接口的IP地址。
[PE2] interface GigabitEthernet 3/0/1
[PE2-GigabitEthernet3/0/1] ip binding vpn-instance vpn1
[PE2-GigabitEthernet3/0/1] ip address 20.0.0.1 24
[PE2-GigabitEthernet3/0/1] quit
# 在PE 2上运行BGP。
# 配置PE 2向IBGP对等体4.4.4.9发布标签路由及从4.4.4.9接收标签路由的能力。
[PE2-bgp] peer 4.4.4.9 as-number 600
[PE2-bgp] peer 4.4.4.9 connect-interface loopback 0
[PE2-bgp] address-family ipv4 unicast
[PE2-bgp-ipv4] peer 4.4.4.9 enable
[PE2-bgp-ipv4] peer 4.4.4.9 label-route-capability
[PE2-bgp-ipv4] quit
# 配置PE 2到EBGP对等体2.2.2.9的最大跳数为10。
[PE2-bgp] peer 2.2.2.9 as-number 100
[PE2-bgp] peer 2.2.2.9 connect-interface loopback 0
[PE2-bgp] peer 2.2.2.9 ebgp-max-hop 10
# 配置对等体2.2.2.9作为VPNv4对等体。
[PE2-bgp] address-family vpnv4
[PE2-bgp-vpnv4] peer 2.2.2.9 enable
[PE2-bgp-vpnv4] quit
# 配置PE 2与CE 2建立EBGP对等体,将学习到的BGP路由添加到VPN实例的路由表中。
[PE2-bgp] ip vpn-instance vpn1
[PE2-bgp-vpn1] peer 20.0.0.2 as-number 65002
[PE2-bgp-vpn1] address-family ipv4 unicast
[PE2-bgp-ipv4-vpn1] peer 20.0.0.2 enable
[PE2-bgp-ipv4-vpn1] quit
[PE2-bgp-vpn1] quit
[PE2-bgp] quit
(6) 配置CE 2
# 配置接口GigabitEthernet3/0/1的IP地址。
<CE2> system-view
[CE2] interface GigabitEthernet 3/0/1
[CE2-GigabitEthernet3/0/1] ip address 20.0.0.2 24
[CE2-GigabitEthernet3/0/1] quit
# 配置CE 2与PE 2建立EBGP对等体,并引入VPN路由。
[CE2] bgp 65002
[CE2-bgp] peer 20.0.0.1 as-number 600
[CE2-bgp] address-family ipv4 unicast
[CE2-bgp-ipv4] peer 20.0.0.1 enable
[CE2-bgp-ipv4] import-route direct
[CE2-bgp-ipv4] quit
[CE2-bgp] quit
# 配置完成后,在CE 1和CE 2上执行display ip routing-table命令可以查看到到达对方的路由,且CE 1和CE 2互相可以ping通。
二级运营商向自己的客户提供MPLS L3VPN服务。
在图1-25中:
· PE 1和PE 2是一级运营商骨干网的PE设备;
· CE 1和CE 2是二级运营商的设备,作为CE接入一级运营商的骨干网;
· PE 3和PE 4是二级运营商的设备,为二级运营商的客户提供接入;
· CE 3和CE 4是二级运营商的客户。
运营商的运营商的配置关键在于理解两类路由的交换过程,即:
· 二级运营商VPN内部路由在一级运营商骨干网上的交换:一级运营商将二级运营商作为自己的CE接入;
· 二级运营商本身客户的VPN路由在二级运营商PE设备间的交换:需要在二级运营商PE设备(PE 3和PE 4)间建立MP-IBGP对等体关系。
图1-25 配置Carriers’ carriers配置组网图
IP地址 |
IP地址 |
||||
|
|
||||
|
GE2/0/2 |
|
GE 2/0/2 |
||
|
GE 2/0/1 |
|
GE 2/0/1 |
||
|
GE 2/0/2 |
|
GE 2/0/2 |
||
|
GE 2/0/1 |
|
GE 2/0/1 |
||
|
GE 2/0/2 |
|
GE 2/0/2 |
(1) 配置一级运营商骨干网的MPLS L3VPN,使用IS-IS作为骨干网的IGP协议,PE 1和PE 2之间使能LDP,并建立MP-IBGP对等体关系
# 配置PE 1。
[PE1] interface loopback 0
[PE1-LoopBack0] ip address 3.3.3.9 32
[PE1-LoopBack0] quit
[PE1] mpls lsr-id 3.3.3.9
[PE1] mpls ldp
[PE1-ldp] quit
[PE1] isis 1
[PE1-isis-1] network-entity 10.0000.0000.0000.0004.00
[PE1-isis-1] quit
[PE1] interface loopback 0
[PE1-LoopBack0] isis enable 1
[PE1-LoopBack0] quit
[PE1] interface GigabitEthernet 2/0/2
[PE1-GigabitEthernet2/0/2] ip address 30.1.1.1 24
[PE1-GigabitEthernet2/0/2] isis enable 1
[PE1-GigabitEthernet2/0/2] mpls enable
[PE1-GigabitEthernet2/0/2] mpls ldp enable
[PE1-GigabitEthernet2/0/2] mpls ldp transport-address interface
[PE1-GigabitEthernet2/0/2] quit
[PE1] bgp 100
[PE1-bgp] peer 4.4.4.9 as-number 100
[PE1-bgp] peer 4.4.4.9 connect-interface loopback 0
[PE1-bgp] address-family vpnv4
[PE1-bgp-vpnv4] peer 4.4.4.9 enable
[PE1-bgp-vpnv4] quit
[PE1-bgp] quit
# PE 2的配置与PE 1类似,配置过程省略。
配置完成后,在PE 1或PE 2上执行display mpls ldp peer命令可以看到LDP会话建立成功,状态为Operational;执行display bgp peer vpnv4命令可以看到BGP对等体关系已建立,并达到Established状态;执行display isis peer命令可以看到IS-IS邻居关系已建立,状态为up。
以PE 1为例:
Total number of peers: 1
Peer LDP ID State LAM Role GR MD5 KA Sent/Rcvd
4.4.4.9:0 Operational DU Active Off Off 8/8
[PE1] display bgp peer vpnv4
BGP local router ID: 3.3.3.9
Local AS number: 100
Total number of peers: 1 Peers in established state: 1
Peer AS MsgRcvd MsgSent OutQ PrefRcv Up/Down State
4.4.4.9 100 3 6 0 0 00:00:32 Established
[PE1] display isis peer
Peer information for ISIS(1)
----------------------------
System Id: 0000.0000.0005
Interface: GigabitEthernet2/0/2 Circuit Id: 0000.0000.0005.02
State: Up HoldTime: 8s Type: L1(L1L2) PRI: 64
System Id: 0000.0000.0005
Interface: GigabitEthernet2/0/2 Circuit Id: 0000.0000.0005.02
State: Up HoldTime: 8s Type: L2(L1L2) PRI: 64
(2) 配置二级运营商网络:使用IS-IS作为IGP协议,PE 3和CE 1、PE 4和CE 2之间分别使能LDP
# 配置PE 3。
[PE3] interface loopback 0
[PE3-LoopBack0] ip address 1.1.1.9 32
[PE3-LoopBack0] quit
[PE3] mpls lsr-id 1.1.1.9
[PE3] mpls ldp
[PE3-ldp] quit
[PE3] isis 2
[PE3-isis-2] network-entity 10.0000.0000.0000.0001.00
[PE3-isis-2] quit
[PE3] interface loopback 0
[PE3-LoopBack0] isis enable 2
[PE3-LoopBack0] quit
[PE3] interface GigabitEthernet 2/0/2
[PE3-GigabitEthernet2/0/2] ip address 10.1.1.1 24
[PE3-GigabitEthernet2/0/2] isis enable 2
[PE3-GigabitEthernet2/0/2] mpls enable
[PE3-GigabitEthernet2/0/2] mpls ldp enable
[PE3-GigabitEthernet2/0/2] mpls ldp transport-address interface
[PE3-GigabitEthernet2/0/2] quit
# 配置CE 1。
[CE1] interface loopback 0
[CE1-LoopBack0] ip address 2.2.2.9 32
[CE1-LoopBack0] quit
[CE1] mpls lsr-id 2.2.2.9
[CE1] mpls ldp
[CE1-ldp] quit
[CE1] isis 2
[CE1-isis-2] network-entity 10.0000.0000.0000.0002.00
[CE1-isis-2] quit
[CE1] interface loopback 0
[CE1-LoopBack0] isis enable 2
[CE1-LoopBack0] quit
[CE1] interface GigabitEthernet 2/0/1
[CE1-GigabitEthernet2/0/1] ip address 10.1.1.2 24
[CE1-GigabitEthernet2/0/1] isis enable 2
[CE1-GigabitEthernet2/0/1] mpls enable
[CE1-GigabitEthernet2/0/1] mpls ldp enable
[CE1-GigabitEthernet2/0/1] mpls ldp transport-address interface
[CE1-GigabitEthernet2/0/1] quit
配置完成后,PE 3和CE 1之间应能建立LDP和IS-IS邻居关系。
# PE 4和CE 2之间的配置与PE 3和CE 1之间的配置类似,配置过程省略。
(3) 配置二级运营商CE接入到一级运营商的PE,并在PE上配置IS-IS引入BGP路由、BGP引入IS-IS路由
# 配置PE1。
[PE1-vpn-instance-vpn1] route-distinguisher 200:1
[PE1-vpn-instance-vpn1] vpn-target 1:1
[PE1-vpn-instance-vpn1] quit
[PE1] mpls ldp
[PE1-ldp] vpn-instance vpn1
[PE1-ldp-vpn-instance-vpn1] quit
[PE1-ldp] quit
[PE1] isis 2 vpn-instance vpn1
[PE1-isis-2] network-entity 10.0000.0000.0000.0003.00
[PE1-isis-2] import-route bgp
[PE1-isis-2] quit
[PE1] interface GigabitEthernet 2/0/1
[PE1-GigabitEthernet2/0/1] ip binding vpn-instance vpn1
[PE1-GigabitEthernet2/0/1] ip address 11.1.1.2 24
[PE1-GigabitEthernet2/0/1] isis enable 2
[PE1-GigabitEthernet2/0/1] mpls enable
[PE1-GigabitEthernet2/0/1] mpls ldp enable
[PE1-GigabitEthernet2/0/1] mpls ldp transport-address interface
[PE1-GigabitEthernet2/0/1] quit
[PE1] bgp 100
[PE1-bgp] ip vpn-instance vpn1
[PE1-bgp-vpn1] address-family ipv4 unicast
[PE1-bgp-ipv4-vpn1] import isis 2
[PE1-bgp-ipv4-vpn1] quit
[PE1-bgp-vpn1] quit
[PE1-bgp] quit
# 配置CE1。
[CE1] interface GigabitEthernet 2/0/2
[CE1-GigabitEthernet2/0/2] ip address 11.1.1.1 24
[CE1-GigabitEthernet2/0/2] isis enable 2
[CE1-GigabitEthernet2/0/2] mpls enable
[CE1-GigabitEthernet2/0/2] mpls ldp enable
[CE1-GigabitEthernet2/0/2] mpls ldp transport-address interface
[CE1-GigabitEthernet2/0/2] quit
配置完成后,PE 1和CE 1之间应能建立LDP和IS-IS邻居关系。
# PE 2和CE 2之间的配置与PE 1和CE 1之间的配置类似,配置过程省略。
# 配置CE 3。
[CE3] interface GigabitEthernet 3/0/1
[CE3-GigabitEthernet3/0/1] ip address 100.1.1.1 24
[CE3-GigabitEthernet3/0/1] quit
[CE3] bgp 65410
[CE3-bgp] peer 100.1.1.2 as-number 100
[CE3-bgp] address-family ipv4 unicast
[CE3-bgp-ipv4] peer 100.1.1.2 enable
[CE3-bgp-ipv4] import-route direct
[CE3-bgp-ipv4] quit
[CE3-bgp] quit
# 配置PE 3。
[PE3-vpn-instance-vpn1] route-distinguisher 100:1
[PE3-vpn-instance-vpn1] vpn-target 1:1
[PE3-vpn-instance-vpn1] quit
[PE3] interface GigabitEthernet 3/0/1
[PE3-GigabitEthernet3/0/1] ip binding vpn-instance vpn1
[PE3-GigabitEthernet3/0/1] ip address 100.1.1.2 24
[PE3-GigabitEthernet3/0/1] quit
[PE3] bgp 100
[PE3-bgp] ip vpn-instance vpn1
[PE3-bgp-vpn1] peer 100.1.1.1 as-number 65410
[PE3-bgp-vpn1] address-family ipv4 unicast
[PE3-bgp-ipv4-vpn1] peer 100.1.1.1 enable
[PE3-bgp-ipv4-vpn1] import-route direct
[PE3-bgp-ipv4-vpn1] quit
[PE3-bgp-vpn1] quit
[PE3-bgp] quit
# PE 4和CE 4之间的配置与PE 3和CE 3之间的配置类似,配置过程省略。
(5) 在二级运营商的PE之间建立MP-IBGP对等体关系,交换二级运营商的客户的VPN路由
# 配置PE 3。
[PE3-bgp] peer 6.6.6.9 as-number 100
[PE3-bgp] peer 6.6.6.9 connect-interface loopback 0
[PE3-bgp] address-family vpnv4
[PE3-bgp-vpnv4] peer 6.6.6.9 enable
[PE3-bgp-vpnv4] quit
[PE3-bgp] quit
# PE 4的配置与PE 3类似,配置过程省略。
# 在PE 1和PE 2上执行display ip routing-table命令,可以看到PE 1和PE 2的公网路由表中只有一级运营商网络的路由。以PE 1为例:
[PE1] display ip routing-table
Routing Tables: Public
Destinations : 7 Routes : 7
Destination/Mask Proto Pre Cost NextHop Interface
3.3.3.9/32 Direct 0 0 127.0.0.1 InLoop0
4.4.4.9/32 ISIS 15 10 30.1.1.2 GE2/0/2
30.1.1.0/24 Direct 0 0 30.1.1.1 GE2/0/2
30.1.1.1/32 Direct 0 0 127.0.0.1 InLoop0
30.1.1.2/32 Direct 0 0 30.1.1.2 GE2/0/2
127.0.0.0/8 Direct 0 0 127.0.0.1 InLoop0
127.0.0.1/32 Direct 0 0 127.0.0.1 InLoop0
# 在PE 1和PE 2上执行display ip routing-table vpn-instance命令,可以看到VPN路由表中有二级运营商网络的内部路由,但没有二级运营商维护的VPN路由。以PE 1为例:
[PE1] display ip routing-table vpn-instance vpn1
Routing Tables: vpn1
Destinations : 11 Routes : 11
Destination/Mask Proto Pre Cost NextHop Interface
1.1.1.9/32 ISIS 15 20 11.1.1.1 GE2/0/1
2.2.2.9/32 ISIS 15 10 11.1.1.1 GE2/0/1
5.5.5.9/32 BGP 255 0 4.4.4.9 NULL0
6.6.6.9/32 BGP 255 0 4.4.4.9 NULL0
10.1.1.0/24 ISIS 15 20 11.1.1.1 GE2/0/1
11.1.1.0/24 Direct 0 0 11.1.1.1 GE2/0/1
11.1.1.1/32 Direct 0 0 127.0.0.1 InLoop0
11.1.1.2/32 Direct 0 0 11.1.1.2 GE2/0/1
20.1.1.0/24 BGP 255 0 4.4.4.9 NULL0
21.1.1.0/24 BGP 255 0 4.4.4.9 NULL0
21.1.1.2/32 BGP 255 0 4.4.4.9 NULL0
# 在CE 1和CE 2上执行display ip routing-table命令,可以看到公网路由表中有二级运营商网络的内部路由,但没有二级运营商维护的VPN路由。以CE 1为例:
[CE1] display ip routing-table
Routing Tables: Public
Destinations : 16 Routes : 16
Destination/Mask Proto Pre Cost NextHop Interface
1.1.1.9/32 ISIS 15 10 10.1.1.2 GE2/0/1
2.2.2.9/32 Direct 0 0 127.0.0.1 InLoop0
5.5.5.9/32 ISIS 15 74 11.1.1.2 GE2/0/2
6.6.6.9/32 ISIS 15 74 11.1.1.2 GE2/0/2
10.1.1.0/24 Direct 0 0 10.1.1.2 GE2/0/1
10.1.1.1/32 Direct 0 0 10.1.1.1 GE2/0/1
10.1.1.2/32 Direct 0 0 127.0.0.1 InLoop0
11.1.1.0/24 Direct 0 0 11.1.1.1 GE2/0/2
11.1.1.1/32 Direct 0 0 127.0.0.1 InLoop0
11.1.1.2/32 Direct 0 0 11.1.1.2 GE2/0/2
20.1.1.0/24 ISIS 15 74 11.1.1.2 GE2/0/2
21.1.1.0/24 ISIS 15 74 11.1.1.2 GE2/0/2
21.1.1.2/32 ISIS 15 74 11.1.1.2 GE2/0/2
127.0.0.0/8 Direct 0 0 127.0.0.1 InLoop0
127.0.0.1/32 Direct 0 0 127.0.0.1 InLoop0
# 在PE 3和PE 4上执行display ip routing-table命令,可以看到公网路由表中有二级运营商网络的内部路由。以PE 3为例:
[PE3] display ip routing-table
Routing Tables: Public
Destinations : 11 Routes : 11
Destination/Mask Proto Pre Cost NextHop Interface
1.1.1.9/32 Direct 0 0 127.0.0.1 InLoop0
2.2.2.9/32 ISIS 15 10 10.1.1.2 GE2/0/2
5.5.5.9/32 ISIS 15 84 10.1.1.2 GE2/0/2
6.6.6.9/32 ISIS 15 84 10.1.1.2 GE2/0/2
10.1.1.0/24 Direct 0 0 10.1.1.1 GE2/0/2
10.1.1.1/32 Direct 0 0 127.0.0.1 InLoop0
10.1.1.2/32 Direct 0 0 10.1.1.2 GE2/0/2
11.1.1.0/24 ISIS 15 20 10.1.1.2 GE2/0/2
20.1.1.0/24 ISIS 15 84 10.1.1.2 GE2/0/2
21.1.1.0/24 ISIS 15 84 10.1.1.2 GE2/0/2
21.1.1.2/32 ISIS 15 84 10.1.1.2 GE2/0/2
127.0.0.0/8 Direct 0 0 127.0.0.1 InLoop0
127.0.0.1/32 Direct 0 0 127.0.0.1 InLoop0
# 在PE 3和PE 4上执行display ip routing-table vpn-instance命令,可以看到VPN路由表中有远端VPN客户的路由。以PE 3为例:
[PE3] display ip routing-table vpn-instance vpn1
Routing Tables: vpn1
Destinations : 3 Routes : 3
Destination/Mask Proto Pre Cost NextHop Interface
100.1.1.0/24 Direct 0 0 100.1.1.2 GE3/0/1
100.1.1.2/32 Direct 0 0 127.0.0.1 InLoop0
120.1.1.0/24 BGP 255 0 6.6.6.9 NULL0
# PE 3和PE 4可以相互Ping通。
# CE 3和CE 4可以互相Ping通。
运营商向用户提供嵌套VPN服务。如图1-26所示:
· PE 1和PE 2是运营商骨干网的PE设备,支持嵌套VPN功能;
· CE 1和CE 2是运营商CE设备,接入运营商的骨干网,该CE设备支持发送VPNv4路由;
· PE 3和PE 4是用户网络内部的PE设备,支持MPLS L3VPN;
· CE 3、CE 4、CE 5和CE 6是用户网络内部子VPN的CE设备。
配置嵌套VPN的关键在于理解子VPN路由在运营商PE设备上的处理过程:
· 运营商PE(PE 1和PE 2)收到运营商CE(CE 1和CE 2)发送来的VPNv4路由时,需要将该VPNv4路由的RD更换为运营商CE所处VPN的RD,同时将运营商CE所处VPN的Export Target添加到路由的扩展团体属性列表中,然后再按照一般的VPNv4路由发送出去;
· 为了实现用户网络内部子VPN的路由在用户PE和运营商PE间交换,需要在运营商PE和运营商CE间建立MP-EBGP对等体关系。
图1-26 嵌套VPN组网图
IP地址 |
IP地址 |
||||
|
GE2/0/1 |
|
GE2/0/1 |
||
|
GE2/0/2 |
|
GE2/0/2 |
||
|
GE2/0/1 |
|
GE2/0/1 |
||
|
GE2/0/2 |
|
GE2/0/2 |
||
|
|
||||
|
|
||||
|
GE2/0/2 |
|
GE2/0/2 |
(1) 配置运营商骨干网的MPLS L3VPN,使用IS-IS作为骨干网的IGP协议,PE 1和PE 2之间使能LDP,并建立MP-IBGP对等体关系
# 配置PE 1。
<PE1> system-view
[PE1] interface loopback 0
[PE1-LoopBack0] ip address 3.3.3.9 32
[PE1-LoopBack0] quit
[PE1] mpls lsr-id 3.3.3.9
[PE1] mpls ldp
[PE1-ldp] quit
[PE1] isis 1
[PE1-isis-1] network-entity 10.0000.0000.0000.0004.00
[PE1-isis-1] quit
[PE1] interface loopback 0
[PE1-LoopBack0] isis enable 1
[PE1-LoopBack0] quit
[PE1] interface GigabitEthernet 2/0/2
[PE1-GigabitEthernet2/0/2] ip address 30.1.1.1 24
[PE1-GigabitEthernet2/0/2] isis enable 1
[PE1-GigabitEthernet2/0/2] mpls enable
[PE1-GigabitEthernet2/0/2] mpls ldp enable
[PE1-GigabitEthernet2/0/2] mpls ldp transport-address interface
[PE1-GigabitEthernet2/0/2] quit
[PE1] bgp 100
[PE1-bgp] peer 4.4.4.9 as-number 100
[PE1-bgp] peer 4.4.4.9 connect-interface loopback 0
[PE1-bgp] address-family vpnv4
[PE1-bgp-vpnv4] peer 4.4.4.9 enable
[PE1-bgp-vpnv4] quit
[PE1-bgp] quit
# PE 2的配置与PE 1类似,配置过程略。
配置完成后,在PE 1或PE 2上执行display mpls ldp peer命令可以看到LDP会话建立成功,LDP会话状态为Operational;执行display bgp peer vpnv4命令可以看到BGP对等体关系已建立,并达到Established状态;执行display isis peer命令可以看到IS-IS邻居关系已建立,状态为up。
以PE 1为例:
Total number of peers: 1
Peer LDP ID State LAM Role GR MD5 KA Sent/Rcvd
4.4.4.9:0 Operational DU Active Off Off 8/8
[PE1] display bgp peer vpnv4
BGP local router ID: 3.3.3.9
Local AS number: 100
Total number of peers: 1 Peers in established state: 1
Peer AS MsgRcvd MsgSent OutQ PrefRcv Up/Down State
4.4.4.9 100 3 6 0 0 00:00:32 Established
[PE1] display isis peer
Peer information for ISIS(1)
----------------------------
System Id: 0000.0000.0005
Interface: GigabitEthernet2/0/2 Circuit Id: 0000.0000.0005.02
State: Up HoldTime: 8s Type: L1(L1L2) PRI: 64
System Id: 0000.0000.0005
Interface: GigabitEthernet2/0/2 Circuit Id: 0000.0000.0005.02
State: Up HoldTime: 8s Type: L2(L1L2) PRI: 64
(2) 配置用户网络:使用IS-IS作为IGP协议,PE 3和CE 1、PE 4和CE 2之间分别使能LDP
# 配置PE 3。
[PE3] interface loopback 0
[PE3-LoopBack0] ip address 1.1.1.9 32
[PE3-LoopBack0] quit
[PE3] mpls lsr-id 1.1.1.9
[PE3] mpls ldp
[PE3-ldp] quit
[PE3] isis 2
[PE3-isis-2] network-entity 10.0000.0000.0000.0001.00
[PE3-isis-2] quit
[PE3] interface loopback 0
[PE3-LoopBack0] isis enable 2
[PE3-LoopBack0] quit
[PE3] interface GigabitEthernet 2/0/2
[PE3-GigabitEthernet2/0/2] ip address 10.1.1.1 24
[PE3-GigabitEthernet2/0/2] isis enable 2
[PE3-GigabitEthernet2/0/2] mpls enable
[PE3-GigabitEthernet2/0/2] mpls ldp enable
[PE3-GigabitEthernet2/0/2] quit
# 配置CE 1。
[CE1] interface loopback 0
[CE1-LoopBack0] ip address 2.2.2.9 32
[CE1-LoopBack0] quit
[CE1] mpls lsr-id 2.2.2.9
[CE1] mpls ldp
[CE1-ldp] quit
[CE1] isis 2
[CE1-isis-2] network-entity 10.0000.0000.0000.0002.00
[CE1-isis-2] quit
[CE1] interface loopback 0
[CE1-LoopBack0] isis enable 2
[CE1-LoopBack0] quit
[CE1] interface GigabitEthernet 2/0/1
[CE1-GigabitEthernet2/0/1] ip address 10.1.1.2 24
[CE1-GigabitEthernet2/0/1] isis enable 2
[CE1-GigabitEthernet2/0/1] mpls enable
[CE1-GigabitEthernet2/0/1] mpls ldp enable
[CE1-GigabitEthernet2/0/1] quit
配置完成后,PE 3和CE 1之间可以建立LDP和IS-IS邻居关系。
# PE 4和CE 2之间的配置与PE 3和CE 1之间的配置类似,配置过程略。
(3) 配置运营商CE接入到运营商的PE
# 配置PE 1。
[PE1-vpn-instance-vpn1] route-distinguisher 200:1
[PE1-vpn-instance-vpn1] vpn-target 1:1
[PE1-vpn-instance-vpn1] quit
[PE1] interface GigabitEthernet 2/0/1
[PE1-GigabitEthernet2/0/1] ip binding vpn-instance vpn1
[PE1-GigabitEthernet2/0/1] ip address 11.1.1.2 24
[PE1-GigabitEthernet2/0/1] mpls enable
[PE1-GigabitEthernet2/0/1] quit
[PE1] bgp 100
[PE1-bgp] ip vpn-instance vpn1
[PE1-bgp-vpn1] peer 11.1.1.1 as-number 200
[PE1-bgp-vpn1] quit
[PE1-bgp] quit
# 配置CE 1。
[CE1] interface GigabitEthernet 2/0/2
[CE1-GigabitEthernet2/0/2] ip address 11.1.1.1 24
[CE1-GigabitEthernet2/0/2] mpls enable
[CE1-GigabitEthernet2/0/2] quit
[CE1] bgp 200
[CE1-bgp] peer 11.1.1.2 as-number 100
[CE1-bgp] quit
# PE 2和CE 2之间的配置与PE 1和CE 1之间的配置类似,配置过程省略。
(4) 配置用户CE接入用户网络的PE
# 配置CE 3。
[CE3] interface GigabitEthernet 3/0/1
[CE3-GigabitEthernet3/0/1] ip address 100.1.1.1 24
[CE3-GigabitEthernet3/0/1] quit
[CE3] bgp 65410
[CE3-bgp] peer 100.1.1.2 as-number 200
[CE3-bgp] address-family ipv4 unicast
[CE3-bgp-ipv4] peer 100.1.1.2 enable
[CE3-bgp-ipv4] import-route direct
[CE3-bgp-ipv4] quit
[CE3-bgp] quit
# 配置CE 5。
[CE5] interface GigabitEthernet 3/0/1
[CE5-GigabitEthernet3/0/1] ip address 110.1.1.1 24
[CE5-GigabitEthernet3/0/1] quit
[CE5] bgp 65411
[CE5-bgp] peer 110.1.1.2 as-number 200
[CE5-bgp] address-family ipv4 unicast
[CE5-bgp-ipv4] peer 110.1.1.2 enable
[CE5-bgp-ipv4] import-route direct
[CE5-bgp-ipv4] quit
[CE5-bgp] quit
# 配置PE 3。
[PE3] ip vpn-instance SUB_VPN1
[PE3-vpn-instance-SUB_VPN1] route-distinguisher 100:1
[PE3-vpn-instance-SUB_VPN1] vpn-target 2:1
[PE3-vpn-instance-SUB_VPN1] quit
[PE3] interface GigabitEthernet 3/0/1
[PE3-GigabitEthernet3/0/1] ip binding vpn-instance SUB_VPN1
[PE3-GigabitEthernet3/0/1] ip address 100.1.1.2 24
[PE3-GigabitEthernet3/0/1] quit
[PE3] ip vpn-instance SUB_VPN2
[PE3-vpn-instance-SUB_VPN2] route-distinguisher 101:1
[PE3-vpn-instance-SUB_VPN2] vpn-target 2:2
[PE3-vpn-instance-SUB_VPN2] quit
[PE3] interface GigabitEthernet 3/0/2
[PE3-GigabitEthernet3/0/2] ip binding vpn-instance SUB_VPN2
[PE3-GigabitEthernet3/0/2] ip address 110.1.1.2 24
[PE3-GigabitEthernet3/0/2] quit
[PE3] bgp 200
[PE3-bgp] ip vpn-instance SUB_VPN1
[PE3-bgp-SUB_VPN1] peer 100.1.1.1 as-number 65410
[PE3-bgp-SUB_VPN1] address-family ipv4 unicast
[PE3-bgp-ipv4-SUB_VPN1] peer 100.1.1.1 enable
[PE3-bgp-ipv4-SUB_VPN1] import-route direct
[PE3-bgp-ipv4-SUB_VPN1] quit
[PE3-bgp-SUB_VPN1] quit
[PE3-bgp] ip vpn-instance SUB_VPN2
[PE3-bgp-SUB_VPN2] peer 110.1.1.1 as-number 65411
[PE3-bgp-SUB_VPN2] address-family ipv4 unicast
[PE3-bgp-ipv4-SUB_VPN2] peer 110.1.1.1 enable
[PE3-bgp-ipv4-SUB_VPN2] import-route direct
[PE3-bgp-ipv4-SUB_VPN2] quit
[PE3-bgp-SUB_VPN2] quit
[PE3-bgp] quit
# PE 4和CE 4,CE 6之间的配置与PE 3和CE 3,CE 5之间的配置类似,配置过程省略。
(5) 在运营商的PE和运营商CE之间建立MP-EBGP对等体关系,交换用户的VPNv4路由
# 在PE 1上使能嵌套VPN功能,并使能PE 1与CE 1交互VPNv4路由的能力。
[PE1-bgp] address-family vpnv4
[PE1-bgp-vpnv4] nesting-vpn
[PE1-bgp-vpnv4] quit
[PE1-bgp] ip vpn-instance vpn1
[PE1-bgp-vpn1] address-family vpnv4
[PE1-bgp-vpnv4-vpn1] peer 11.1.1.1 enable
[PE1-bgp-vpnv4-vpn1] quit
[PE1-bgp-vpn1] quit
[PE1-bgp] quit
# 在CE 1上使能其与PE 1交互VPNv4路由的能力。
[CE1-bgp] address-family vpnv4
[CE1-bgp-vpnv4] peer 11.1.1.2 enable
# 在CE 1上配置允许本地AS号在所接收的路由的AS_PATH属性中出现。
[CE1-bgp-vpnv4] peer 11.1.1.2 allow-as-loop 2
# 在CE 1上配置接收所有VPNv4路由。
[CE1-bgp-vpnv4] undo policy vpn-target
[CE1-bgp-vpnv4] quit
[CE1-bgp] quit
# PE 2和CE 2之间的配置与PE 1和CE 1之间的配置类似,配置过程省略。
(6) 在用户PE和运营商CE之间建立MP-IBGP对等体关系,交换用户内部子VPN的VPNv4路由
# 配置PE 3。
[PE3-bgp] peer 2.2.2.9 as-number 200
[PE3-bgp] peer 2.2.2.9 connect-interface loopback 0
[PE3-bgp] address-family vpnv4
[PE3-bgp-vpnv4] peer 2.2.2.9 enable
# 配置允许本地AS号在所接收的路由的AS_PATH属性中出现。
[PE3-bgp-vpnv4] peer 2.2.2.9 allow-as-loop 2
[PE3-bgp-vpnv4] quit
[PE3-bgp] quit
# 配置CE 1。
[CE1-bgp] peer 1.1.1.9 as-number 200
[CE1-bgp] peer 1.1.1.9 connect-interface loopback 0
[CE1-bgp] address-family vpnv4
[CE1-bgp-vpnv4] peer 1.1.1.9 enable
[CE1-bgp-vpnv4] undo policy vpn-target
[CE1-bgp-vpnv4] quit
[CE1-bgp] quit
# PE 4和CE 2之间的配置与PE 3和CE 1之间的配置类似,配置过程省略。
# 在PE 1和PE 2上执行display ip routing-table命令,可以看到PE 1和PE 2的公网路由表中只有运营商网络的路由。以PE 1为例:
[PE1] display ip routing-table
Destinations : 14 Routes : 14
Destination/Mask Proto Pre Cost NextHop Interface
0.0.0.0/32 Direct 0 0 127.0.0.1 InLoop0
3.3.3.9/32 Direct 0 0 127.0.0.1 InLoop0
4.4.4.9/32 ISIS 15 10 30.1.1.2 GE2/0/2
30.1.1.0/24 Direct 0 0 30.1.1.1 GE2/0/2
30.1.1.1/32 Direct 0 0 127.0.0.1 InLoop0
30.1.1.2/32 Direct 0 0 30.1.1.2 GE2/0/2
30.1.1.255/32 Direct 0 0 30.1.1.2 GE2/0/2
127.0.0.0/8 Direct 0 0 127.0.0.1 InLoop0
127.0.0.0/32 Direct 0 0 127.0.0.1 InLoop0
127.0.0.1/32 Direct 0 0 127.0.0.1 InLoop0
127.255.255.255/32 Direct 0 0 127.0.0.1 InLoop0
224.0.0.0/4 Direct 0 0 0.0.0.0 NULL0
224.0.0.0/24 Direct 0 0 0.0.0.0 NULL0
255.255.255.255/32 Direct 0 0 127.0.0.1 InLoop0
# 在PE 1和PE 2上执行display ip routing-table vpn-instance命令,可以看到VPN路由表中有用户子VPN网络的路由。以PE 1为例:
[PE1] display ip routing-table vpn-instance vpn1
Destinations : 16 Routes : 16
Destination/Mask Proto Pre Cost NextHop Interface
0.0.0.0/32 Direct 0 0 127.0.0.1 InLoop0
11.1.1.0/24 Direct 0 0 11.1.1.1 GE2/0/1
11.1.1.1/32 Direct 0 0 127.0.0.1 InLoop0
11.1.1.2/32 Direct 0 0 11.1.1.2 GE2/0/1
11.1.1.255/32 Direct 0 0 11.1.1.2 GE2/0/1
100.1.1.0/24 BGP 255 0 11.1.1.1 NULL0
110.1.1.0/24 BGP 255 0 11.1.1.1 NULL0
120.1.1.0/24 BGP 255 0 4.4.4.9 NULL0
127.0.0.0/8 Direct 0 0 127.0.0.1 InLoop0
127.0.0.0/32 Direct 0 0 127.0.0.1 InLoop0
127.0.0.1/32 Direct 0 0 127.0.0.1 InLoop0
127.255.255.255/32 Direct 0 0 127.0.0.1 InLoop0
130.1.1.0/24 BGP 255 0 4.4.4.9 NULL0
224.0.0.0/4 Direct 0 0 0.0.0.0 NULL0
224.0.0.0/24 Direct 0 0 0.0.0.0 NULL0
255.255.255.255/32 Direct 0 0 127.0.0.1 InLoop0
# 在CE 1和CE 2上执行display bgp routing-table vpnv4命令,可以看到用户网络中VPNv4路由表中有所有子VPN网络的内部路由。以CE 1为例:
[CE1] display bgp routing-table vpnv4
BGP Local router ID is 11.11.11.11
Status codes: * - valid, > - best, d - damped, h - history,
s - suppressed, S - Stale, i - internal, e - external
Origin: i - IGP, e - EGP, ? - incomplete
Total number of routes from all PEs: 4
Route Distinguisher: 100:1
Total number of routes: 1
Network NextHop MED LocPrf PrefVal Path/Ogn
* > 100.1.1.0/24 1.1.1.9 0 200 65410?
Route Distinguisher: 101:1
Total number of routes: 1
Network NextHop MED LocPrf PrefVal Path/Ogn
* > 110.1.1.0/24 1.1.1.9 0 200 65411?
Route Distinguisher: 200:1
Total number of routes: 1
Network NextHop MED LocPrf PrefVal Path/Ogn
* > 120.1.1.0/24 11.1.1.2 0 100 200
65420?
Route Distinguisher: 201:1
Total number of routes: 1
Network NextHop MED LocPrf PrefVal Path/Ogn
* > 130.1.1.0/24 11.1.1.2 0 100 200
65421?
# 在PE 3和PE 4上执行display ip routing-table vpn-instance SUB_VPN1命令,可以看到私网路由表中有从运营商PE发布到用户网络子VPN内部的路由。以PE 3为例:
[PE3] display ip routing-table vpn-instance SUB_VPN1
Destinations : 13 Routes : 13
Destination/Mask Proto Pre Cost NextHop Interface
0.0.0.0/32 Direct 0 0 127.0.0.1 InLoop0
100.1.1.0/24 Direct 0 0 100.1.1.2 GE3/0/1
100.1.1.0/32 Direct 0 0 100.1.1.2 GE3/0/1
100.1.1.2/32 Direct 0 0 127.0.0.1 InLoop0
100.1.1.255/32 Direct 0 0 100.1.1.2 GE3/0/1
120.1.1.0/24 BGP 255 0 2.2.2.9 NULL0
127.0.0.0/8 Direct 0 0 127.0.0.1 InLoop0
127.0.0.0/32 Direct 0 0 127.0.0.1 InLoop0
127.0.0.1/32 Direct 0 0 127.0.0.1 InLoop0
127.255.255.255/32 Direct 0 0 127.0.0.1 InLoop0
224.0.0.0/4 Direct 0 0 0.0.0.0 NULL0
224.0.0.0/24 Direct 0 0 0.0.0.0 NULL0
255.255.255.255/32 Direct 0 0 127.0.0.1 InLoop0
# 在CE 3和CE 4上执行display ip routing-table命令,可以看到路由表中有远端子VPN的路由。以CE 3为例:
[CE3] display ip routing-table
Destinations : 13 Routes : 13
Destination/Mask Proto Pre Cost NextHop Interface
0.0.0.0/32 Direct 0 0 127.0.0.1 InLoop0
100.1.1.0/24 Direct 0 0 100.1.1.1 GE3/0/1
100.1.1.0/32 Direct 0 0 100.1.1.1 GE3/0/1
100.1.1.1/32 Direct 0 0 127.0.0.1 InLoop0
100.1.1.255/24 Direct 0 0 100.1.1.1 GE3/0/1
120.1.1.0/24 BGP 255 0 100.1.1.2 GE3/0/1
127.0.0.0/8 Direct 0 0 127.0.0.1 InLoop0
127.0.0.0/32 Direct 0 0 127.0.0.1 InLoop0
127.0.0.1/32 Direct 0 0 127.0.0.1 InLoop0
127.255.255.255/32 Direct 0 0 127.0.0.1 InLoop0
224.0.0.0/4 Direct 0 0 0.0.0.0 NULL0
224.0.0.0/24 Direct 0 0 0.0.0.0 NULL0
255.255.255.255/32 Direct 0 0 127.0.0.1 InLoop0
# 在CE 5和CE 6上执行display ip routing-table命令,可以看到路由表中有远端子VPN的路由。以CE 5为例:
[CE5] display ip routing-table
Destinations : 13 Routes : 13
Destination/Mask Proto Pre Cost NextHop Interface
0.0.0.0/32 Direct 0 0 127.0.0.1 InLoop0
110.1.1.0/24 Direct 0 0 110.1.1.1 GE3/0/1
110.1.1.0/32 Direct 0 0 110.1.1.1 GE3/0/1
110.1.1.1/32 Direct 0 0 127.0.0.1 InLoop0
110.1.1.255/32 Direct 0 0 110.1.1.1 GE3/0/1
127.0.0.0/8 Direct 0 0 127.0.0.1 InLoop0
127.0.0.0/32 Direct 0 0 127.0.0.1 InLoop0
127.0.0.1/32 Direct 0 0 127.0.0.1 InLoop0
127.255.255.255/32 Direct 0 0 127.0.0.1 InLoop0
130.1.1.0/24 BGP 255 0 110.1.1.2 GE3/0/1
224.0.0.0/4 Direct 0 0 0.0.0.0 NULL0
224.0.0.0/24 Direct 0 0 0.0.0.0 NULL0
255.255.255.255/32 Direct 0 0 127.0.0.1 InLoop0
# CE 3和CE 4可以互相Ping通。
# CE 5和CE 6可以互相Ping通。
# CE 3和CE 6不能互相Ping通。
以一个包括省骨干和地市的MPLS VPN网络为例:
· SPE作为省网的PE设备,接入地市的MPLS VPN网络;
· UPE作为下层地市网络的PE设备,最终接入VPN客户。对UPE的性能要求低于对SPE的性能要求。
· SPE将通过路由策略的路由发送给UPE,限制不同Site之间的互相访问权限,使得VPN 1内的CE 1和CE 3可以互相访问,VPN 2内的CE 2和CE 4不能互相访问。
图1-27 配置HoVPN组网图
IP地址 |
IP地址 |
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
(1) 配置UPE 1
[UPE1] interface loopback 0
[UPE1-LoopBack0] ip address 1.1.1.9 32
[UPE1-LoopBack0] quit
[UPE1] mpls lsr-id 1.1.1.9
[UPE1] mpls ldp
[UPE1-ldp] quit
[UPE1] interface GigabitEthernet 3/0/3
[UPE1-GigabitEthernet3/0/3] ip address 172.1.1.1 24
[UPE1-GigabitEthernet3/0/3] mpls enable
[UPE1-GigabitEthernet3/0/3] mpls ldp enable
[UPE1-GigabitEthernet3/0/3] quit
# 配置IGP协议,以OSPF为例。
[UPE1-ospf-1] area 0
[UPE1-ospf-1-area-0.0.0.0] network 172.1.1.0 0.0.0.255
[UPE1-ospf-1-area-0.0.0.0] network 1.1.1.9 0.0.0.0
[UPE1-ospf-1-area-0.0.0.0] quit
[UPE1-ospf-1] quit
# 配置VPN实例vpn1和vpn2,将CE 1和CE 2接入UPE 1。
[UPE1-vpn-instance-vpn1] route-distinguisher 100:1
[UPE1-vpn-instance-vpn1] vpn-target 100:1 both
[UPE1-vpn-instance-vpn1] quit
[UPE1] ip vpn-instance vpn2
[UPE1-vpn-instance-vpn2] route-distinguisher 100:2
[UPE1-vpn-instance-vpn2] vpn-target 100:2 both
[UPE1-vpn-instance-vpn2] quit
[UPE1] interface GigabitEthernet 3/0/1
[UPE1-GigabitEthernet3/0/1] ip binding vpn-instance vpn1
[UPE1-GigabitEthernet3/0/1] ip address 10.2.1.2 24
[UPE1-GigabitEthernet3/0/1] quit
[UPE1] interface GigabitEthernet 3/0/2
[UPE1-GigabitEthernet3/0/2] ip binding vpn-instance vpn2
[UPE1-GigabitEthernet3/0/2] ip address 10.4.1.2 24
[UPE1-GigabitEthernet3/0/2] quit
# 配置UPE 1与SPE 1建立MP-IBGP对等体。
[UPE1-bgp] peer 2.2.2.9 as-number 100
[UPE1-bgp] peer 2.2.2.9 connect-interface loopback 0
[UPE1-bgp] address-family vpnv4
[UPE1-bgp-vpnv4] peer 2.2.2.9 enable
[UPE1-bgp-vpnv4] quit
# 配置UPE 1与CE 1建立EBGP对等体,并引入VPN路由。
[UPE1-bgp] ip vpn-instance vpn1
[UPE1-bgp-vpn1] peer 10.2.1.1 as-number 65410
[UPE1-bgp-vpn1] address-family ipv4 unicast
[UPE1-bgp-ipv4-vpn1] peer 10.2.1.1 enable
[UPE1-bgp-ipv4-vpn1] import-route direct
[UPE1-bgp-ipv4-vpn1] quit
[UPE1-bgp-vpn1] quit
# 配置UPE 1与CE 2建立EBGP对等体,并引入VPN路由。
[UPE1-bgp] ip vpn-instance vpn2
[UPE1-bgp-vpn2] peer 10.4.1.1 as-number 65420
[UPE1-bgp-vpn2] address-family ipv4 unicast
[UPE1-bgp-ipv4-vpn2] peer 10.4.1.1 enable
[UPE1-bgp-ipv4-vpn2] import-route direct
[UPE1-bgp-ipv4-vpn2] quit
[UPE1-bgp-vpn2] quit
[UPE1-bgp] quit
[CE1] interface GigabitEthernet 3/0/1
[CE1-GigabitEthernet3/0/1] ip address 10.2.1.1 255.255.255.0
[CE1-GigabitEthernet3/0/1] quit
[CE1] bgp 65410
[CE1-bgp] peer 10.2.1.2 as-number 100
[CE1-bgp] address-family ipv4 unicast
[CE1-bgp-ipv4] peer 10.2.1.2 enable
[CE1-bgp-ipv4] import-route direct
[CE1-bgp-ipv4] quit
[CE1-bgp] quit
[CE2] interface GigabitEthernet 3/0/1
[CE2-GigabitEthernet3/0/1] ip address 10.4.1.1 255.255.255.0
[CE2-GigabitEthernet3/0/1] quit
[CE2] bgp 65420
[CE2-bgp] peer 10.4.1.2 as-number 100
[CE2-bgp] address-family ipv4 unicast
[CE2-bgp-ipv4] peer 10.4.1.2 enable
[CE2-bgp-ipv4] import-route direct
[CE2-bgp-ipv4] quit
[CE2-bgp] quit
# 配置MPLS基本能力和MPLS LDP能力,建立LDP LSP。
[UPE2] interface loopback 0
[UPE2-LoopBack0] ip address 4.4.4.9 32
[UPE2-LoopBack0] quit
[UPE2] mpls lsr-id 4.4.4.9
[UPE2] mpls ldp
[UPE2-ldp] quit
[UPE2] interface GigabitEthernet 3/0/1
[UPE2-GigabitEthernet3/0/1] ip address 172.2.1.1 24
[UPE2-GigabitEthernet3/0/1] mpls enable
[UPE2-GigabitEthernet3/0/1] mpls ldp enable
[UPE2-GigabitEthernet3/0/1] quit
# 配置IGP协议,以OSPF为例。
[UPE2-ospf-1] area 0
[UPE2-ospf-1-area-0.0.0.0] network 172.2.1.0 0.0.0.255
[UPE2-ospf-1-area-0.0.0.0] network 4.4.4.9 0.0.0.0
[UPE2-ospf-1-area-0.0.0.0] quit
[UPE2-ospf-1] quit
# 配置VPN实例vpn1和vpn2,将CE 3和CE 4接入UPE 2。
[UPE2-vpn-instance-vpn1] route-distinguisher 300:1
[UPE2-vpn-instance-vpn1] vpn-target 100:1 both
[UPE2-vpn-instance-vpn1] quit
[UPE2] ip vpn-instance vpn2
[UPE2-vpn-instance-vpn2] route-distinguisher 400:2
[UPE2-vpn-instance-vpn2] vpn-target 100:2 both
[UPE2-vpn-instance-vpn2] quit
[UPE2] interface GigabitEthernet 3/0/2
[UPE2-GigabitEthernet3/0/2] ip binding vpn-instance vpn1
[UPE2-GigabitEthernet3/0/2] ip address 10.1.1.2 24
[UPE2-GigabitEthernet3/0/2] quit
[UPE2] interface GigabitEthernet 3/0/3
[UPE2-GigabitEthernet3/0/3] ip binding vpn-instance vpn2
[UPE2-GigabitEthernet3/0/3] ip address 10.3.1.2 24
[UPE2-GigabitEthernet3/0/3] quit
# 配置UPE 2与SPE 2建立MP-IBGP对等体。
[UPE2-bgp] peer 3.3.3.9 as-number 100
[UPE2-bgp] peer 3.3.3.9 connect-interface loopback 0
[UPE2-bgp] address-family vpnv4
[UPE2-bgp-vpnv4] peer 3.3.3.9 enable
[UPE2-bgp-vpnv4] quit
# 配置UPE 2与CE 3建立EBGP对等体,并引入VPN路由。
[UPE2-bgp] ip vpn-instance vpn1
[UPE2-bgp-vpn1] peer 10.1.1.1 as-number 65430
[UPE2-bgp-vpn1] address-family ipv4 unicast
[UPE2-bgp-ipv4-vpn1] peer 10.1.1.1 enable
[UPE2-bgp-ipv4-vpn1] import-route direct
[UPE2-bgp-ipv4-vpn1] quit
[UPE2-bgp-vpn1] quit
# 配置UPE 2与CE 4建立EBGP对等体,并引入VPN路由。
[UPE2-bgp] ip vpn-instance vpn2
[UPE2-bgp-vpn2] peer 10.3.1.1 as-number 65440
[UPE2-bgp-vpn2] address-family ipv4 unicast
[UPE2-bgp-ipv4-vpn2] peer 10.3.1.1 enable
[UPE2-bgp-ipv4-vpn2] import-route direct
[UPE2-bgp-ipv4-vpn2] quit
[UPE2-bgp-vpn2] quit
[UPE2-bgp] quit
[CE3] interface GigabitEthernet 3/0/1
[CE3-GigabitEthernet3/0/1] ip address 10.1.1.1 255.255.255.0
[CE3-GigabitEthernet3/0/1] quit
[CE3] bgp 65430
[CE3-bgp] peer 10.1.1.2 as-number 100
[CE3-bgp] address-family ipv4 unicast
[CE3-bgp-ipv4] peer 10.1.1.2 enable
[CE3-bgp-ipv4] import-route direct
[CE3-bgp-ipv4] quit
[CE3-bgp] quit
[CE4] interface GigabitEthernet 3/0/1
[CE4-GigabitEthernet3/0/1] ip address 10.3.1.1 255.255.255.0
[CE4-GigabitEthernet3/0/1] quit
[CE4] bgp 65440
[CE4-bgp] peer 10.3.1.2 as-number 100
[CE4-bgp] address-family ipv4 unicast
[CE4-bgp-ipv4] peer 10.3.1.2 enable
[CE4-bgp-ipv4] import-route direct
[CE4-bgp-ipv4] quit
[CE4-bgp] quit
# 配置MPLS基本能力和MPLS LDP能力,建立LDP LSP。
[SPE1] interface loopback 0
[SPE1-LoopBack0] ip address 2.2.2.9 32
[SPE1-LoopBack0] quit
[SPE1] mpls lsr-id 2.2.2.9
[SPE1] mpls ldp
[SPE1-ldp] quit
[SPE1] interface GigabitEthernet 3/0/1
[SPE1-GigabitEthernet3/0/1] ip address 172.1.1.2 24
[SPE1-GigabitEthernet3/0/1] mpls enable
[SPE1-GigabitEthernet3/0/1] mpls ldp enable
[SPE1-GigabitEthernet3/0/1] quit
[SPE1] interface GigabitEthernet 3/0/2
[SPE1-GigabitEthernet3/0/2] ip address 180.1.1.1 24
[SPE1-GigabitEthernet3/0/2] mpls enable
[SPE1-GigabitEthernet3/0/2] mpls ldp enable
[SPE1-GigabitEthernet3/0/2] quit
# 配置IGP协议,以OSPF为例。
[SPE1-ospf-1] area 0
[SPE1-ospf-1-area-0.0.0.0] network 2.2.2.9 0.0.0.0
[SPE1-ospf-1-area-0.0.0.0] network 172.1.1.0 0.0.0.255
[SPE1-ospf-1-area-0.0.0.0] network 180.1.1.0 0.0.0.255
[SPE1-ospf-1-area-0.0.0.0] quit
[SPE1-ospf-1] quit
# 配置VPN实例vpn1和vpn2。
[SPE1-vpn-instance-vpn1] route-distinguisher 500:1
[SPE1-vpn-instance-vpn1] vpn-target 100:1 both
[SPE1-vpn-instance-vpn1] quit
[SPE1] ip vpn-instance vpn2
[SPE1-vpn-instance-vpn2] route-distinguisher 700:1
[SPE1-vpn-instance-vpn2] vpn-target 100:2 both
[SPE1-vpn-instance-vpn2] quit
# 配置SPE 1与SPE 2、UPE 1建立MP-IBGP对等体,并指定UPE 1为UPE。
[SPE1-bgp] peer 1.1.1.9 as-number 100
[SPE1-bgp] peer 1.1.1.9 connect-interface loopback 0
[SPE1-bgp] peer 3.3.3.9 as-number 100
[SPE1-bgp] peer 3.3.3.9 connect-interface loopback 0
[SPE1-bgp] address-family vpnv4
[SPE1-bgp-vpnv4] peer 3.3.3.9 enable
[SPE1-bgp-vpnv4] peer 1.1.1.9 enable
[SPE1-bgp-vpnv4] peer 1.1.1.9 upe
[SPE1-bgp-vpnv4] peer 1.1.1.9 next-hop-local
[SPE1-bgp-vpnv4] quit
# 为VPN实例vpn1和vpn2分别创建BGP-VPN实例,以便根据RT属性将学习到的VPNv4路由添加到相应VPN实例的BGP路由表中。
[SPE1-bgp] ip vpn-instance vpn1
[SPE1-bgp-vpn1] quit
[SPE1-bgp] ip vpn-instance vpn2
[SPE1-bgp-vpn2] quit
[SPE1-bgp] quit
# 配置SPE 1向UPE 1发送通过策略的路由信息,允许CE 3的路由发送给UPE 1。
[SPE1] ip prefix-list hope index 10 permit 10.1.1.1 24
[SPE1] route-policy hope permit node 0
[SPE1-route-policy-hope-0] if-match ip address prefix-list hope
[SPE1-route-policy-hope-0] quit
[SPE1] bgp 100
[SPE1-bgp] address-family vpnv4
[SPE1-bgp-vpnv4] peer 1.1.1.9 upe route-policy hope export
# 配置MPLS基本能力和MPLS LDP能力,建立LDP LSP。
[SPE2] interface loopback 0
[SPE2-LoopBack0] ip address 3.3.3.9 32
[SPE2-LoopBack0] quit
[SPE2] mpls lsr-id 3.3.3.9
[SPE2] mpls ldp
[SPE2-ldp] quit
[SPE2] interface GigabitEthernet 3/0/1
[SPE2-GigabitEthernet3/0/1] ip address 180.1.1.2 24
[SPE2-GigabitEthernet3/0/1] mpls enable
[SPE2-GigabitEthernet3/0/1] mpls ldp enable
[SPE2-GigabitEthernet3/0/1] quit
[SPE2] interface GigabitEthernet 3/0/2
[SPE2-GigabitEthernet3/0/2] ip address 172.2.1.2 24
[SPE2-GigabitEthernet3/0/2] mpls enable
[SPE2-GigabitEthernet3/0/2] mpls ldp enable
[SPE2-GigabitEthernet3/0/2] quit
# 配置IGP协议,以OSPF为例。
[SPE2-ospf-1] area 0
[SPE2-ospf-1-area-0.0.0.0] network 3.3.3.9 0.0.0.0
[SPE2-ospf-1-area-0.0.0.0] network 172.2.1.0 0.0.0.255
[SPE2-ospf-1-area-0.0.0.0] network 180.1.1.0 0.0.0.255
[SPE2-ospf-1-area-0.0.0.0] quit
[SPE2-ospf-1] quit
# 配置VPN实例vpn1和vpn2。
[SPE2-vpn-instance-vpn1] route-distinguisher 600:1
[SPE2-vpn-instance-vpn1] vpn-target 100:1 both
[SPE2-vpn-instance-vpn1] quit
[SPE2] ip vpn-instance vpn2
[SPE2-vpn-instance-vpn2] route-distinguisher 800:1
[SPE2-vpn-instance-vpn2] vpn-target 100:2 both
[SPE2-vpn-instance-vpn2] quit
# 配置SPE 2与SPE 1、UPE 2建立MP-IBGP对等体,并指定UPE 2为UPE。
[SPE2-bgp] peer 4.4.4.9 as-number 100
[SPE2-bgp] peer 4.4.4.9 connect-interface loopback 0
[SPE2-bgp] peer 2.2.2.9 as-number 100
[SPE2-bgp] peer 2.2.2.9 connect-interface loopback 0
[SPE2-bgp] address-family vpnv4
[SPE2-bgp-vpnv4] peer 2.2.2.9 enable
[SPE2-bgp-vpnv4] peer 4.4.4.9 enable
[SPE2-bgp-vpnv4] peer 4.4.4.9 upe
[SPE2-bgp-vpnv4] peer 4.4.4.9 next-hop-local
[SPE2-bgp-vpnv4] quit
# 为VPN实例vpn1和vpn2分别创建BGP-VPN实例,以便根据RT属性将学习到的VPNv4路由添加到相应VPN实例的BGP路由表中。
[SPE2-bgp] ip vpn-instance vpn1
[SPE2-bgp-vpn1] quit
[SPE2-bgp] ip vpn-instance vpn2
[SPE2-bgp-vpn2] quit
[SPE2-bgp] quit
# 配置SPE 2向UPE 2发送通过策略的路由信息,允许CE 1的路由发送给UPE 2。
[SPE2] ip prefix-list hope index 10 permit 10.2.1.1 24
[SPE2] route-policy hope permit node 0
[SPE2-route-policy-hope-0] if-match ip address prefix-list hope
[SPE2-route-policy-hope-0] quit
[SPE2] bgp 100
[SPE2-bgp] address-family vpnv4
[SPE2-bgp-vpnv4] peer 4.4.4.9 upe route-policy hope export
上述配置完成后,CE 1和CE 3能够学习到对方的接口路由,CE 1和CE 3能够相互ping通;CE 2和CE 4不能学习到对方的接口路由,CE 2和CE 4不能相互ping通。
· CE 1和CE 2都属于VPN 1,它们分别接入PE 1和PE 2;
· CE 1和CE 2在同一个OSPF区域中;
· CE 1与CE 2之间的VPN流量通过MPLS骨干网转发,不使用OSPF的区域内路由。
图1-28 OSPF伪连接配置组网图
IP地址 |
IP地址 |
||||
|
GE2/0/2 |
|
GE2/0/2 |
||
|
|
||||
|
|
||||
|
GE2/0/2 |
|
GE2/0/1 |
||
GE2/0/1 |
|
|
|
||
|
GE2/0/2 |
|
|
|
(1) 配置用户网络上的OSPF
在CE 1、Router A、CE 2上配置普通OSPF,发布图1-28中所示各接口的网段地址。具体配置过程略。
配置完成后,执行display ip routing-table命令,可以看到CE 1和CE 2学到了到对端Ethernet接口的OSPF路由。
# 配置PE 1的MPLS基本能力和MPLS LDP能力,建立LDP LSP。
[PE1] interface loopback 0
[PE1-LoopBack0] ip address 1.1.1.9 32
[PE1-LoopBack0] quit
[PE1] mpls lsr-id 1.1.1.9
[PE1] mpls ldp
[PE1-ldp] quit
[PE1] interface GigabitEthernet 2/0/2
[PE1-GigabitEthernet2/0/2] ip address 10.1.1.1 24
[PE1-GigabitEthernet2/0/2] mpls enable
[PE1-GigabitEthernet2/0/2] mpls ldp enable
[PE1-GigabitEthernet2/0/2] quit
# 配置PE 1的MP-IBGP对等体为PE2。
[PE1-bgp] peer 2.2.2.9 as-number 100
[PE1-bgp] peer 2.2.2.9 connect-interface loopback 0
[PE1-bgp] address-family vpnv4
[PE1-bgp-vpnv4] peer 2.2.2.9 enable
[PE1-bgp-vpnv4] quit
[PE1-bgp] quit
# 配置PE 1的OSPF。
[PE1-ospf-1] area 0
[PE1-ospf-1-area-0.0.0.0] network 1.1.1.9 0.0.0.0
[PE1-ospf-1-area-0.0.0.0] network 10.1.1.0 0.0.0.255
[PE1-ospf-1-area-0.0.0.0] quit
[PE1-ospf-1] quit
# 配置PE 2的MPLS基本能力和MPLS LDP能力,建立LDP LSP。
[PE2] interface loopback 0
[PE2-LoopBack0] ip address 2.2.2.9 32
[PE2-LoopBack0] quit
[PE2] mpls lsr-id 2.2.2.9
[PE2] mpls ldp
[PE2-ldp] quit
[PE2] interface GigabitEthernet 2/0/2
[PE2-GigabitEthernet2/0/2] ip address 10.1.1.2 24
[PE2-GigabitEthernet2/0/2] mpls enable
[PE2-GigabitEthernet2/0/2] mpls ldp enable
[PE2-GigabitEthernet2/0/2] quit
# 配置PE 2的MP-IBGP对等体为PE1。
[PE2-bgp] peer 1.1.1.9 as-number 100
[PE2-bgp] peer 1.1.1.9 connect-interface loopback 0
[PE2-bgp] address-family vpnv4
[PE2-bgp-vpnv4] peer 1.1.1.9 enable
[PE2-bgp-vpnv4] quit
[PE2-bgp] quit
# 配置PE 2的OSPF。
[PE2-ospf-1] area 0
[PE2-ospf-1-area-0.0.0.0] network 2.2.2.9 0.0.0.0
[PE2-ospf-1-area-0.0.0.0] network 10.1.1.0 0.0.0.255
[PE2-ospf-1-area-0.0.0.0] quit
[PE2-ospf-1] quit
(3) 配置PE接入CE
# 配置PE 1接入CE 1。
[PE1-vpn-instance-vpn1] route-distinguisher 100:1
[PE1-vpn-instance-vpn1] vpn-target 1:1
[PE1-vpn-instance-vpn1] quit
[PE1] interface GigabitEthernet 3/0/1
[PE1-GigabitEthernet3/0/1] ip binding vpn-instance vpn1
[PE1-GigabitEthernet3/0/1] ip address 100.1.1.2 24
[PE1-GigabitEthernet3/0/1] quit
[PE1] ospf 100 vpn-instance vpn1
[PE1-ospf-100] domain-id 10
[PE1-ospf-100] area 1
[PE1-ospf-100-area-0.0.0.1] network 100.1.1.0 0.0.0.255
[PE1-ospf-100-area-0.0.0.1] quit
[PE1-ospf-100] quit
[PE1] bgp 100
[PE1-bgp] ip vpn-instance vpn1
[PE1-bgp-vpn1] address-family ipv4 unicast
[PE1-bgp-ipv4-vpn1] import-route ospf 100
[PE1-bgp-ipv4-vpn1] import-route direct
[PE1-bgp-ipv4-vpn1] quit
[PE1-bgp-vpn1] quit
[PE1-bgp] quit
# 配置PE 2接入CE 2。
[PE2-vpn-instance-vpn1] route-distinguisher 100:2
[PE2-vpn-instance-vpn1] vpn-target 1:1
[PE2-vpn-instance-vpn1] quit
[PE2] interface GigabitEthernet 3/0/1
[PE2-GigabitEthernet3/0/1] ip binding vpn-instance vpn1
[PE2-GigabitEthernet3/0/1] ip address 120.1.1.2 24
[PE2-GigabitEthernet3/0/1] quit
[PE2] ospf 100 vpn-instance vpn1
[PE2-ospf-100] domain-id 10
[PE2-ospf-100] area 1
[PE2-ospf-100-area-0.0.0.1] network 120.1.1.0 0.0.0.255
[PE2-ospf-100-area-0.0.0.1] quit
[PE2-ospf-100] quit
[PE2] bgp 100
[PE2-bgp] ip vpn-instance vpn1
[PE2-bgp-vpn1] address-family ipv4 unicast
[PE2-bgp-ipv4-vpn1] import-route ospf 100
[PE2-bgp-ipv4-vpn1] import-route direct
[PE2-bgp-ipv4-vpn1] quit
[PE2-bgp-vpn1] quit
[PE2-bgp] quit
完成上述配置后,在PE设备上执行display ip routing-table vpn-instance命令,可以看到去往对端CE的路由是通过用户网络的OSPF路由,不是通过骨干网的BGP路由。
# 配置PE 1。
[PE1-LoopBack1] ip binding vpn-instance vpn1
[PE1-LoopBack1] ip address 3.3.3.3 32
[PE1-LoopBack1] quit
[PE1] ospf 100
[PE1-ospf-100] area 1
[PE1-ospf-100-area-0.0.0.1] sham-link 3.3.3.3 5.5.5.5 cost 10
[PE1-ospf-100-area-0.0.0.1] quit
[PE1-ospf-100] quit
# 配置PE 2。
[PE2-LoopBack1] ip binding vpn-instance vpn1
[PE2-LoopBack1] ip address 5.5.5.5 32
[PE2-LoopBack1] quit
[PE2] ospf 100
[PE2-ospf-100] area 1
[PE2-ospf-100-area-0.0.0.1] sham-link 5.5.5.5 3.3.3.3 cost 10
[PE2-ospf-100-area-0.0.0.1] quit
[PE2-ospf-100] quit
完成上述配置后,在PE设备上再次执行display ip routing-table vpn-instance命令,可以看到去往对端CE的路由变成了通过骨干网的BGP路由,并且有去往Sham-link目的地址的路由。
在CE设备上执行display ip routing-table命令,可以看到去往对端CE的OSPF路由下一跳变为接入PE的Ethernet接口,即去往对端的VPN流量将通过骨干网转发。
在PE上执行display ospf sham-link命令可以看到Sham-link的建立情况。
以PE 1为例:
[PE1] display ospf sham-link
OSPF Process 100 with Router ID 100.1.1.2
Sham link
Area Neighbor ID Source IP Destination IP State Cost
0.0.0.1 120.1.1.2 3.3.3.3 5.5.5.5 P-2-P 10
执行display ospf sham-link area命令可以看到对端状态为Full。
[PE1] display ospf sham-link area 1
OSPF Process 100 with Router ID 100.1.1.2
Sham link: 3.3.3.3 --> 5.5.5.5
Neighbor ID: 120.1.1.2 State: Full
Area: 0.0.0.1
Cost: 10 State: P-2-P Type: Sham
Timers: Hello 10s, Dead 40s, Retransmit 5s, Transmit Delay 1s
Request list: 0 Retransmit list: 0
MCE设备连接两个VPN:VPN 1和VPN 2。其中,VPN 2内运行RIP路由协议。MCE设备将两个VPN之间的路由隔离,并通过OSPF将各VPN的路由发布到PE 1。
图1-29 配置MCE组网图
为区分设备,假设MCE系统名为“MCE”,VPN 1和VPN 2的边缘设备分别名为“VR1”和“VR2”,PE 1系统名为“PE1”。
(1) 在MCE和PE 1上配置VPN实例
# 在MCE设备上配置VPN实例,名称分别为vpn1和vpn2,RD分别取值为10:1和20:1,VPN Target取值与RD取相同数值,Export和Import均取此值。
[MCE] ip vpn-instance vpn1
[MCE-vpn-instance-vpn1] route-distinguisher 10:1
[MCE-vpn-instance-vpn1] vpn-target 10:1
[MCE-vpn-instance-vpn1] quit
[MCE] ip vpn-instance vpn2
[MCE-vpn-instance-vpn2] route-distinguisher 20:1
[MCE-vpn-instance-vpn2] vpn-target 20:1
[MCE-vpn-instance-vpn2] quit
# 配置接口GigabitEthernet3/0/1与VPN实例vpn1绑定,并配置该接口的地址。
[MCE] interface GigabitEthernet 3/0/1
[MCE-GigabitEthernet3/0/1] ip binding vpn-instance vpn1
[MCE-GigabitEthernet3/0/1] ip address 10.214.10.3 24
[MCE-GigabitEthernet3/0/1] quit
# 配置接口GigabitEthernet3/0/2与VPN实例vpn2绑定,并配置该接口的地址。
[MCE] interface GigabitEthernet 3/0/2
[MCE-GigabitEthernet3/0/2] ip binding vpn-instance vpn2
[MCE-GigabitEthernet3/0/2] ip address 10.214.20.3 24
[MCE-GigabitEthernet3/0/2] quit
# 在PE 1上配置VPN实例,名称分别为vpn1和vpn2,RD分别取值为30:1和40:1,VPN Target取值分别为10:1和20:1,Export和Import均取此值。
[PE1] ip vpn-instance vpn1
[PE1-vpn-instance-vpn1] route-distinguisher 30:1
[PE1-vpn-instance-vpn1] vpn-target 10:1
[PE1-vpn-instance-vpn1] quit
[PE1] ip vpn-instance vpn2
[PE1-vpn-instance-vpn2] route-distinguisher 40:1
[PE1-vpn-instance-vpn2] vpn-target 20:1
[PE1-vpn-instance-vpn2] quit
(2) MCE与Site间路由配置
MCE与VPN 1直接相连,且VPN 1内未使用路由协议,因此可以使用静态路由进行配置。
# 配置VR1与MCE连接的接口地址为10.214.10.2/24,连接VPN 1接口的地址为192.168.0.1/24。(具体配置过程略)
# 在VR1上配置缺省路由,指定出方向报文的下一跳地址为10.214.10.3。
[VR1] ip route-static 0.0.0.0 0.0.0.0 10.214.10.3
# 在MCE上指定静态路由,去往192.168.0.0/24网段的报文,下一跳地址为10.214.10.2,并将此路由与VPN实例vpn1绑定。
[MCE] ip route-static vpn-instance vpn1 192.168.0.0 24 10.214.10.2
# VPN 2内运行RIP,在MCE上配置RIP进程20,并与VPN实例vpn2绑定,以便将VPN 2内的路由学习到VPN实例vpn2的路由表中。
[MCE] rip 20 vpn-instance vpn2
# 发布网段10.214.20.0的路由。
[MCE-rip-20] network 10.214.20.0
[MCE-rip-20] quit
# 在VR2上,配置与MCE连接的接口地址为10.214.20.2/24,连接VPN 2接口的地址为192.168.10.1/24。(配置过程略)
# 配置RIP,发布网段192.168.10.0和10.214.20.0的路由。
[VR2] rip 20
[VR2-rip-20] network 192.168.10.0
[VR2-rip-20] network 10.214.20.0
# 在MCE上查看VPN实例vpn1和vpn2的路由信息。
[MCE] display ip routing-table vpn-instance vpn1
Destinations : 13 Routes : 13
Destination/Mask Proto Pre Cost NextHop Interface
0.0.0.0/32 Direct 0 0 127.0.0.1 InLoop0
10.214.10.0/24 Direct 0 0 10.214.10.3 GE3/0/1
10.214.10.0/32 Direct 0 0 10.214.10.3 GE3/0/1
10.214.10.3/32 Direct 0 0 127.0.0.1 InLoop0
10.214.10.255/32 Direct 0 0 10.214.10.3 GE3/0/1
127.0.0.0/8 Direct 0 0 127.0.0.1 InLoop0
127.0.0.0/32 Direct 0 0 127.0.0.1 InLoop0
127.0.0.1/32 Direct 0 0 127.0.0.1 InLoop0
127.255.255.255/32 Direct 0 0 127.0.0.1 InLoop0
192.168.0.0/24 Static 60 0 10.214.10.2 GE3/0/1
224.0.0.0/4 Direct 0 0 0.0.0.0 NULL0
224.0.0.0/24 Direct 0 0 0.0.0.0 NULL0
255.255.255.255/32 Direct 0 0 127.0.0.1 InLoop0
[MCE] display ip routing-table vpn-instance vpn2
Destinations : 13 Routes : 13
Destination/Mask Proto Pre Cost NextHop Interface
0.0.0.0/32 Direct 0 0 127.0.0.1 InLoop0
10.214.20.0/24 Direct 0 0 10.214.20.3 GE3/0/2
10.214.20.0/32 Direct 0 0 10.214.20.3 GE3/0/2
10.214.20.3/32 Direct 0 0 127.0.0.1 InLoop0
10.214.20.255/32 Direct 0 0 10.214.20.3 GE3/0/2
127.0.0.0/8 Direct 0 0 127.0.0.1 InLoop0
127.0.0.0/32 Direct 0 0 127.0.0.1 InLoop0
127.0.0.1/32 Direct 0 0 127.0.0.1 InLoop0
127.255.255.255/32 Direct 0 0 127.0.0.1 InLoop0
192.168.10.0/24 RIP 100 1 10.214.20.2 GE3/0/2
224.0.0.0/4 Direct 0 0 0.0.0.0 NULL0
224.0.0.0/24 Direct 0 0 0.0.0.0 NULL0
255.255.255.255/32 Direct 0 0 127.0.0.1 InLoop0
可以看到,MCE已经通过RIP学习到了VPN 2内的私网路由,并与VPN 1内的路由信息分别维护在两个路由表内,有效地进行了隔离。
(3) MCE与PE间路由配置
# MCE通过子接口与PE 1相连。在MCE上配置子接口GigabitEthernet3/0/3.1与VPN实例vpn1绑定,配置该子接口终结VLAN 10,并配置该接口的地址。
[MCE] interface GigabitEthernet 3/0/3.1
[MCE-GigabitEthernet3/0/3.1] ip binding vpn-instance vpn1
[MCE-GigabitEthernet3/0/3.1] vlan-type dot1q vid 10
[MCE-GigabitEthernet3/0/3.1] ip address 20.1.1.1 24
[MCE-GigabitEthernet3/0/3.1] quit
# 在MCE上配置子接口GigabitEthernet3/0/3.2与VPN实例vpn2绑定,配置该子接口终结VLAN 20,并配置该接口的地址。
[MCE] interface GigabitEthernet 3/0/3.2
[MCE-GigabitEthernet3/0/3.2] ip binding vpn-instance vpn2
[MCE-GigabitEthernet3/0/3.2] vlan-type dot1q vid 20
[MCE-GigabitEthernet3/0/3.2] ip address 30.1.1.1 24
[MCE-GigabitEthernet3/0/3.2] quit
# 在PE 1配置子接口GigabitEthernet3/0/1.1与VPN实例vpn1绑定,配置该子接口终结VLAN 10,并配置该接口的地址。
[PE1] interface GigabitEthernet 3/0/1.1
[PE1-GigabitEthernet3/0/1.1] ip binding vpn-instance vpn1
[PE1-GigabitEthernet3/0/1.1] vlan-type dot1q vid 10
[PE1-GigabitEthernet3/0/1.1] ip address 20.1.1.2 24
[PE1-GigabitEthernet3/0/1.1] quit
# 在PE 1上配置子接口GigabitEthernet3/0/1.2与VPN实例vpn2绑定,配置该子接口终结VLAN 20,并配置该接口的地址。
[PE1] interface GigabitEthernet 3/0/1.2
[PE1-GigabitEthernet3/0/1.2] ip binding vpn-instance vpn2
[PE1-GigabitEthernet3/0/1.2] vlan-type dot1q vid 20
[PE1-GigabitEthernet3/0/1.2] ip address 30.1.1.2 24
[PE1-GigabitEthernet3/0/1.2] quit
# 配置MCE和PE 1的Loopback0接口,用于指定MCE和PE 1的Router ID,地址分别为101.101.10.1和100.100.10.1。配置步骤这里省略。
# 配置MCE启动OSPF进程10,该进程绑定到VPN实例vpn1,关闭OSPF实例的路由环路检测功能,并配置域ID为10。
[MCE] ospf 10 router-id 101.101.10.1 vpn-instance vpn1
[MCE-ospf-10] vpn-instance-capability simple
[MCE-ospf-10] domain-id 10
# 在Area0区域发布20.1.1.0/24网段路由,并引入VPN 1的静态路由。
[MCE-ospf-10-area-0.0.0.0] network 20.1.1.0 0.0.0.255
[MCE-ospf-10-area-0.0.0.0] quit
[MCE-ospf-10] import-route static
# 配置PE 1启动OSPF进程10,绑定到VPN实例vpn1,域ID为10,在Area0区域发布20.1.1.0/24网段路由。
[PE1] ospf 10 router-id 100.100.10.1 vpn-instance vpn1
[PE1-ospf-10] domain-id 10
[PE1-ospf-10] area 0
[PE1-ospf-10-area-0.0.0.0] network 20.1.1.0 0.0.0.255
[PE1-ospf-10-area-0.0.0.0] quit
[PE1-ospf-10] quit
# MCE与PE 1间配置OSPF进程20,导入VPN实例vpn2的路由信息的过程与上面介绍的配置基本一致,不同的是在MCE的OSPF中配置导入的是RIP进程20的路由,这里不再赘述。
# 显示PE 1上的VPN 1路由信息。可以看到,VPN 1内的静态路由已经引入到MCE与PE 1间的OSPF路由表中。
[PE1] display ip routing-table vpn-instance vpn1
Destinations : 13 Routes : 13
Destination/Mask Proto Pre Cost NextHop Interface
0.0.0.0/32 Direct 0 0 127.0.0.1 InLoop0
20.1.1.0/24 Direct 0 0 20.1.1.2 GE3/0/1.1
20.1.1.0/32 Direct 0 0 20.1.1.2 GE3/0/1.1
20.1.1.2/32 Direct 0 0 127.0.0.1 InLoop0
20.1.1.255/32 Direct 0 0 20.1.1.2 GE3/0/1.1
127.0.0.0/8 Direct 0 0 127.0.0.1 InLoop0
127.0.0.0/32 Direct 0 0 127.0.0.1 InLoop0
127.0.0.1/32 Direct 0 0 127.0.0.1 InLoop0
127.255.255.255/32 Direct 0 0 127.0.0.1 InLoop0
192.168.0.0/24 O_ASE 150 1 20.1.1.1 GE3/0/1.1
224.0.0.0/4 Direct 0 0 0.0.0.0 NULL0
224.0.0.0/24 Direct 0 0 0.0.0.0 NULL0
255.255.255.255/32 Direct 0 0 127.0.0.1 InLoop0
# 显示PE 1上的VPN 2路由信息。可以看到,VPN 2内的RIP路由已经引入到MCE与PE 1间的OSPF路由表中。
[PE1] display ip routing-table vpn-instance vpn2
Destinations : 13 Routes : 13
Destination/Mask Proto Pre Cost NextHop Interface
0.0.0.0/32 Direct 0 0 127.0.0.1 InLoop0
30.1.1.0/24 Direct 0 0 30.1.1.2 GE3/0/1.2
30.1.1.0/32 Direct 0 0 30.1.1.2 GE3/0/1.2
30.1.1.2/32 Direct 0 0 127.0.0.1 InLoop0
30.1.1.255/32 Direct 0 0 30.1.1.2 GE3/0/1.2
127.0.0.0/8 Direct 0 0 127.0.0.1 InLoop0
127.0.0.0/32 Direct 0 0 127.0.0.1 InLoop0
127.0.0.1/32 Direct 0 0 127.0.0.1 InLoop0
127.255.255.255/32 Direct 0 0 127.0.0.1 InLoop0
192.168.10.0/24 O_ASE 150 1 30.1.1.1 GE3/0/1.2
224.0.0.0/4 Direct 0 0 0.0.0.0 NULL0
224.0.0.0/24 Direct 0 0 0.0.0.0 NULL0
255.255.255.255/32 Direct 0 0 127.0.0.1 InLoop0
至此,通过配置,已经将两个VPN实例内的路由信息完整地传播到PE 1中,配置完成。
如图所示,CE 1和CE 2同属于VPN 1,分别接入PE 1和PE 2,并且CE 1和CE 2复用AS号600。
图1-30 BGP的AS号替换组网图
IP地址 |
IP地址 |
||||
|
|
||||
|
|||||
|
|||||
|
|
||||
|
|||||
|
|
|
|
(1) 配置基本MPLS L3VPN
· 在MPLS骨干网上配置OSPF,PE和P之间能够学到对方Loopback接口的路由;
· 在MPLS骨干网上配置MPLS基本能力和MPLS LDP,建立LDP LSP;
· PE之间建立MP-IBGP对等体关系,发布VPN-IPv4路由;
· 在PE 2上配置VPN 1的VPN实例,接入CE 2;
· 在PE 1上配置VPN 1的VPN实例,接入CE 1;
· PE 1和CE 1、PE 2和CE 2之间配置BGP,将CE的路由引入PE。
上述配置可参考“1.13.1 配置MPLS L3VPN示例”,具体配置过程略。
# 完成上述配置后,在CE 2上执行display ip routing-table命令,可以看到CE 2能够学到CE 1接入PE 1的接口所在网段(10.1.1.0/24)的路由,但没有到达CE 1内部VPN(100.1.1.0/24)的路由。CE 1上也存在同样的现象。
<CE2> display ip routing-table
Destinations : 17 Routes : 17
Destination/Mask Proto Pre Cost NextHop Interface
0.0.0.0/32 Direct 0 0 127.0.0.1 InLoop0
10.1.1.0/24 BGP 255 0 10.2.1.2 GE3/0/1
10.2.1.0/24 Direct 0 0 10.2.1.1 GE3/0/1
10.2.1.0/32 Direct 0 0 10.2.1.1 GE3/0/1
10.2.1.1/32 Direct 0 0 127.0.0.1 InLoop0
10.2.1.255/32 Direct 0 0 10.2.1.1 GE3/0/1
127.0.0.0/8 Direct 0 0 127.0.0.1 InLoop0
127.0.0.0/32 Direct 0 0 127.0.0.1 InLoop0
127.0.0.1/32 Direct 0 0 127.0.0.1 InLoop0
127.255.255.255/32 Direct 0 0 127.0.0.1 InLoop0
200.1.1.0/24 Direct 0 0 200.1.1.1 GE3/0/2
200.1.1.0/32 Direct 0 0 200.1.1.1 GE3/0/2
200.1.1.1/32 Direct 0 0 127.0.0.1 InLoop0
200.1.1.255/24 Direct 0 0 200.1.1.1 GE3/0/2
224.0.0.0/4 Direct 0 0 0.0.0.0 NULL0
224.0.0.0/24 Direct 0 0 0.0.0.0 NULL0
255.255.255.255/32 Direct 0 0 127.0.0.1 InLoop0
# 在PE上执行display ip routing-table vpn-instance命令,可以看到PE的VPN实例中有到达对端CE内部VPN的路由。
以PE 2为例:
<PE2> display ip routing-table vpn-instance vpn1
Destinations : 15 Routes : 15
Destination/Mask Proto Pre Cost NextHop Interface
0.0.0.0/32 Direct 0 0 127.0.0.1 InLoop0
10.1.1.0/24 BGP 255 0 1.1.1.9 GE3/0/2
10.2.1.0/24 Direct 0 0 10.2.1.2 GE3/0/1
10.2.1.0/32 Direct 0 0 10.2.1.2 GE3/0/1
10.2.1.2/32 Direct 0 0 127.0.0.1 InLoop0
10.2.1.255/32 Direct 0 0 10.2.1.2 GE3/0/1
100.1.1.0/24 BGP 255 0 1.1.1.9 GE3/0/2
127.0.0.0/8 Direct 0 0 127.0.0.1 InLoop0
127.0.0.0/32 Direct 0 0 127.0.0.1 InLoop0
127.0.0.1/32 Direct 0 0 127.0.0.1 InLoop0
127.255.255.255/32 Direct 0 0 127.0.0.1 InLoop0
200.1.1.0/24 BGP 255 0 10.2.1.1 GE3/0/1
224.0.0.0/4 Direct 0 0 0.0.0.0 NULL0
224.0.0.0/24 Direct 0 0 0.0.0.0 NULL0
255.255.255.255/32 Direct 0 0 127.0.0.1 InLoop0
# 在PE 2上打开BGP的Update报文调试信息开关,可以看到PE 2发布了去往100.1.1.0/24的路由,AS路径信息为“100 600”。
<PE2> terminal logging level 7
<PE2> debugging bgp update vpn-instance vpn1 10.2.1.1 ipv4
<PE2> refresh bgp all export ipv4 vpn-instance vpn1
*Jun 13 16:12:52:096 2012 PE2 BGP/7/DEBUG;
BGP.vpn1: Send UPDATE to peer 10.2.1.1 for following destinations:
Origin : Incomplete
AS Path : 100 600
Next Hop : 10.2.1.2
100.1.1.0/24,
# 在CE 2上执行display bgp routing-table ipv4 peer received-routes命令,可以看到CE 2没有接收100.1.1.0/24的路由。
<CE2> display bgp routing-table ipv4 peer 10.2.1.2 received-routes
Total number of routes: 2
BGP local router ID is 200.1.1.1
Status codes: * - valid, > - best, d - dampened, h - history,
s - suppressed, S - stale, i - internal, e - external
Origin: i - IGP, e - EGP, ? - incomplete
Network NextHop MED LocPrf PrefVal Path/Ogn
* >e 10.1.1.0/24 10.2.1.2 0 100?
* e 10.2.1.0/24 10.2.1.2 0 0 100?
(2) 配置BGP的AS号替换功能
# 在PE 2上配置BGP的AS号替换功能。
[PE2] bgp 100
[PE2-bgp] ip vpn-instance vpn1
[PE2-bgp-vpn1] peer 10.2.1.1 substitute-as
[PE2-bgp-vpn1] address-family ipv4 unicast
[PE2-bgp-ipv4-vpn1] peer 10.2.1.1 enable
[PE2-bgp-ipv4-vpn1] quit
[PE2-bgp-vpn1] quit
[PE2-bgp] quit
# 可以看到PE 2向CE 2发布的路由中,100.1.1.0/24的AS路径信息由“100 600”变为“100 100”:
*Jun 13 16:15:59:456 2012 PE2 BGP/7/DEBUG;
BGP.vpn1: Send UPDATE to peer 10.2.1.1 for following destinations:
Origin : Incomplete
AS Path : 100 100
Next Hop : 10.2.1.2
100.1.1.0/24,
# 再次查看CE 2接收的路由信息和路由表。
<CE2> display bgp routing-table ipv4 peer 10.2.1.2 received-routes
Total number of routes: 3
BGP local router ID is 200.1.1.1
Status codes: * - valid, > - best, d - dampened, h - history,
s - suppressed, S - stale, i - internal, e - external
Origin: i - IGP, e - EGP, ? - incomplete
Network NextHop MED LocPrf PrefVal Path/Ogn
* >e 10.1.1.0/24 10.2.1.2 0 100?
* e 10.2.1.0/24 10.2.1.2 0 0 100?
* >e 100.1.1.0/24 10.2.1.2 0 100 100?
<CE2> display ip routing-table
Destinations : 18 Routes : 18
Destination/Mask Proto Pre Cost NextHop Interface
0.0.0.0/32 Direct 0 0 127.0.0.1 InLoop0
10.1.1.0/24 BGP 255 0 10.2.1.2 GE3/0/1
10.2.1.0/24 Direct 0 0 10.2.1.1 GE3/0/1
10.2.1.0/32 Direct 0 0 10.2.1.1 GE3/0/1
10.2.1.1/32 Direct 0 0 127.0.0.1 InLoop0
10.2.1.255/32 Direct 0 0 10.2.1.1 GE3/0/1
100.1.1.0/24 BGP 255 0 10.2.1.2 GE3/0/1
127.0.0.0/8 Direct 0 0 127.0.0.1 InLoop0
127.0.0.0/32 Direct 0 0 127.0.0.1 InLoop0
127.0.0.1/32 Direct 0 0 127.0.0.1 InLoop0
127.255.255.255/32 Direct 0 0 127.0.0.1 InLoop0
200.1.1.0/24 Direct 0 0 200.1.1.1 GE3/0/2
200.1.1.0/32 Direct 0 0 200.1.1.1 GE3/0/2
200.1.1.1/32 Direct 0 0 127.0.0.1 InLoop0
200.1.1.255/32 Direct 0 0 200.1.1.1 GE3/0/2
224.0.0.0/4 Direct 0 0 0.0.0.0 NULL0
224.0.0.0/24 Direct 0 0 0.0.0.0 NULL0
255.255.255.255/32 Direct 0 0 127.0.0.1 InLoop0
# 在PE 1上也配置BGP的AS号替换功能后,CE 1和CE 2的Ethernet接口能够相互Ping通。
MPLS L3VPN应用于IPv4组网环境,利用BGP在服务提供商骨干网上发布VPN的IPv4路由,利用MPLS在服务提供商骨干网上转发VPN的IPv4报文。
IPv6 MPLS L3VPN的原理与MPLS L3VPN相同,所不同的是IPv6 MPLS L3VPN利用BGP在服务提供商骨干网上发布VPN的IPv6路由,利用MPLS在服务提供商骨干网上转发VPN的IPv6报文。
IPv6 MPLS L3VPN的典型组网环境如图2-1所示。目前,IPv6 MPLS L3VPN组网中服务提供商骨干网应为IPv4网络。VPN内部及CE和PE之间运行IPv6协议,骨干网中PE和P设备之间运行IPv4协议。PE需要同时支持IPv4和IPv6协议,连接CE的接口上使用IPv6协议,连接骨干网的接口上使用IPv4协议。
图2-1 IPv6 MPLS L3VPN应用组网图
图2-2 IPv6 MPLS L3VPN报文转发示意图
如图2-2所示,IPv6 MPLS L3VPN的报文转发过程为:
(1) Site 1发出一个目的地址为2001:2::1的IPv6报文,由CE 1将报文发送至PE 1。
(2) PE 1根据报文到达的接口及目的地址查找VPN实例的路由表项,匹配后将报文转发出去,同时打上公网和私网两层标签。
(3) MPLS网络利用报文的外层标签,将报文传送到PE 2。(报文在到达PE 2前一跳时已经被剥离外层标签,到达PE 2时仅含内层标签)
(4) PE 2根据内层标签和目的地址查找VPN实例的路由表项,确定报文的出接口,将报文转发至CE 2。
(5) CE 2根据正常的IPv6转发过程将报文传送到目的地。
VPN路由信息的发布过程包括三部分:本地CE到入口PE、入口PE到出口PE、出口PE到远端CE。完成这三部分后,本地CE与远端CE之间将建立可达路由,VPN私网路由信息能够在骨干网上发布。
CE使用IPv6静态路由、RIPng、OSPFv3、IPv6 IS-IS、EBGP或IBGP路由协议,将本站点的VPN路由发布给PE。CE发布给PE的是标准的IPv6路由。
PE从CE学到VPN的IPv6路由信息后,为这些标准IPv6路由增加RD和VPN Target属性,形成VPN-IPv6路由,存放到为CE创建的VPN实例的路由表中,并为VPN-IPv6路由分配私网标签。
入口PE通过MP-BGP把VPN-IPv6路由发布给出口PE。出口PE根据VPN-IPv6路由的Export Target属性与自己维护的VPN实例的Import Target属性,决定是否将该路由加入到VPN实例的路由表。
PE之间通过IGP来保证内部的连通性。
与本地CE到入口PE的路由信息交换相同,远端CE有多种方式可以从出口PE学习VPN路由,包括IPv6静态路由、RIPng、OSPFv3、IPv6 IS-IS、EBGP或IBGP路由协议。
目前,IPv6 MPLS L3VPN支持如下组网方案及功能:
· 基本的VPN组网方案
· 跨域VPN-OptionA
· 跨域VPN-OptionC
· 运营商的运营商
· Multi-VPN-Instance CE
· OSPFv3 VPN扩展:与OSPF VPN扩展的不同之处为OSPFv3的Type-3、Type-5和Type-7 LSA均支持DN位,缺省情况下,均使用DN位避免路由环路
与IPv6 MPLS L3VPN相关的协议规范有:
· RFC 4659:BGP-MPLS IP Virtual Private Network (VPN) Extension for IPv6 VPN
· RFC 6565:OSPFv3 as a Provider Edge to Customer Edge (PE-CE) Routing Protocol
表2-1 IPv6 MPLS L3VPN配置任务简介
详细配置 |
说明 |
|
配置基本IPv6 MPLS L3VPN |
完成基本IPv6 MPLS L3VPN配置后,即可实现通过MPLS技术构建简单的IPv6 VPN网络 如果部署一些特殊的IPv6 MPLS L3VPN组网方案,例如跨域VPN,除了配置基本IPv6 MPLS L3VPN外,还需要根据相应章节进行其他的配置 |
|
配置IPv6跨域VPN |
||
配置Multi-VPN-Instance CE |
||
配置OSPFv3伪连接 |
表2-2 IPv6 MPLS L3VPN配置任务简介
配置任务 |
详细配置 |
说明 |
配置基本IPv6 MPLS L3VPN |
完成基本IPv6 MPLS L3VPN配置后,即可实现通过MPLS技术构建简单的IPv6 VPN网络 如果部署一些特殊的IPv6 MPLS L3VPN组网方案,例如跨域VPN,除了配置基本IPv6 MPLS L3VPN外,还需要根据相应章节进行其他的配置 |
|
配置IPv6跨域VPN |
||
配置Multi-VPN-Instance CE |
||
配置OSPFv3伪连接 |
配置IPv6 MPLS L3VPN的关键在于管理VPN私网路由在MPLS骨干网上的发布,包括PE-CE间的路由发布管理以及PE-PE间的路由发布管理。
表2-3 基本IPv6 MPLS L3VPN配置任务简介
配置任务 |
说明 |
详细配置 |
|
配置VPN实例 |
创建VPN实例 |
必选 |
|
配置VPN实例与接口关联 |
必选 |
||
配置VPN实例的路由相关属性 |
可选 |
||
配置PE-CE间的路由交换 |
必选 |
||
配置PE-PE间的路由交换 |
必选 |
||
配置BGP-VPNv6子地址族下的路由特性 |
可选 |
在配置基本IPv6 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成员关系和路由规则。
表2-4 创建VPN实例
操作 |
命令 |
说明 |
|
进入系统视图 |
system-view |
- |
|
创建VPN实例,并进入VPN实例视图 |
ip vpn-instance vpn-instance-name |
缺省情况下,设备上不存在任何VPN实例 |
|
配置VPN实例的保留VLAN |
reserve-vlan vlan-id |
缺省情况下,未指定VPN实例的保留VLAN |
|
配置VPN实例的RD |
route-distinguisher route-distinguisher |
缺省情况下,未指定VPN实例的RD |
|
(可选)配置VPN实例的描述信息 |
description text |
缺省情况下,为指定VPN实例的描述信息 描述信息用于描述VPN实例,可以用来记录VPN实例与某个VPN的关系等信息 |
|
(可选)配置VPN实例的ID |
vpn-id vpn-id |
缺省情况下,没有指定VPN实例的ID |
|
执行ip binding vpn-instance命令将删除接口上已经配置的IPv6地址,因此需要重新配置接口的IPv6地址。
VPN实例配置完成后,还需要与连接CE的接口进行关联。
表2-5 配置VPN实例与接口关联
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入接口视图 |
interface interface-type interface-number |
- |
将当前接口与VPN实例关联 |
ip binding vpn-instance vpn-instance-name |
缺省情况下,接口不关联任何VPN实例 |
VPN路由的发布控制过程如下:
· 当从CE学习到的一条VPN路由引入BGP时,BGP为它关联一个VPN Target扩展团体属性列表,通常这个列表是与CE相关联的VPN实例的输出路由属性列表。
· VPN实例根据VPN Target中的import-extcommunity确定可被接受并引入此VPN实例的路由。
· VPN实例根据VPN Target中的export-extcommunity对向外发布的路由进行VPN Target属性的修改。
表2-6 配置VPN实例的路由相关属性
操作 |
命令 |
说明 |
||
进入系统视图 |
system-view |
- |
||
进入VPN实例视图或IPv6 VPN视图 |
进入VPN实例视图 |
ip vpn-instance vpn-instance-name |
VPN实例视图下配置的路由相关属性既可以用于IPv4 VPN,也可以用于IPv6 VPN 既可以在VPN实例视图下,也可以在IPv6 VPN视图下,配置IPv6 VPN的路由相关属性。如果同时在两个视图下配置了路由相关属性,则IPv6 VPN采用IPv6 VPN视图下配置的路由相关属性 |
|
进入IPv6 VPN视图 |
ip vpn-instance vpn-instance-name |
|||
address-family ipv6 |
||||
配置VPN Target |
vpn-target vpn-target&<1-8> [ both | export-extcommunity | import-extcommunity ] |
缺省情况下,没有指定VPN实例的VPN Target |
||
配置支持的最大激活路由前缀数 |
routing-table limit number { warn-threshold | simply-alert } |
配置一个VPN实例可以支持的最大激活路由前缀数,可以防止PE路由器上保存过多的激活路由前缀信息 缺省情况下,当前VPN实例支持的最多激活路由前缀数与系统工作模式相关 |
||
应用入方向路由策略 |
import route-policy route-policy |
缺省情况下,接收所有VPN Target属性匹配的路由 执行本配置时,需要创建路由策略。路由策略的详细介绍,请参见“三层技术-IP路由配置指导”中的“路由策略” |
||
应用出方向路由策略 |
export route-policy route-policy |
缺省情况下,不对发布的路由进行过滤 执行本配置时,需要创建路由策略。路由策略的详细介绍,请参见“三层技术-IP路由配置指导”中的“路由策略” |
||
配置VPN实例的隧道策略 |
tnl-policy tunnel-policy-name |
缺省情况下,隧道策略为LSP隧道,负载分担条数为1 为VPN实例配置隧道策略之前必须先创建隧道策略,否则将采用缺省策略 |
|
PE-CE间路由交换可以使用IPv6静态路由、RIPng、OSPFv3、IPv6 IS-IS、EBGP和IBGP路由协议。根据实际组网情况选择一种进行配置即可。
表2-7 配置PE-CE间使用IPv6静态路由
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
为指定VPN实例配置IPv6静态路由 |
ipv6 route-static vpn-instance s-vpn-instance-name ipv6-address prefix-length { nexthop-address [ public ] | interface-type interface-number [ next-hop-address ] | vpn-instance d-vpn-instance-name nexthop-address } [ permanent ] [ preference preference-value ] [ tag tag-value ] [ description description-text ] |
缺省情况下,没有配置IPv6静态路由 该配置在PE上进行,CE上的配置方法与普通IPv6静态路由相同 有关IPv6静态路由的配置请参见“三层技术-IP路由配置指导”中的“IPv6静态路由” |
一个RIPng进程只能属于一个VPN实例。如果在启动RIPng进程时不绑定到VPN实例,则该进程属于公网进程。有关RIPng的介绍和详细配置,请参见“三层技术-IP路由配置指导”中的“RIPng”。
表2-8 配置PE-CE间使用RIPng
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建PE-CE间的RIPng实例,并进入RIPng视图 |
ripng [ process-id ] vpn-instance vpn-instance-name |
该配置在PE上进行,CE上配置普通RIPng即可 |
退回系统视图 |
quit |
- |
进入接口视图 |
interface interface-type interface-number |
- |
在接口上使能RIPng路由协议 |
ripng process-id enable |
缺省情况下,接口禁用RIPng路由协议 |
一个OSPFv3进程只能属于一个VPN实例。如果在启动OSPFv3进程时不绑定到VPN实例,则该进程属于公网进程。有关OSPFv3的介绍和详细配置,请参见“三层技术-IP路由配置指导”中的“OSPFv3”。
表2-9 配置PE-CE间使用OSPFv3
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建PE-CE间的OSPFv3实例,并进入OSPFv3视图 |
ospfv3 [ process-id | vpn-instance vpn-instance-name ] * |
该配置在PE上进行,CE上配置普通OSPFv3即可 删除VPN实例后,相关的所有OSPFv3进程也将全部被删除 |
配置Router ID |
router-id router-id |
- |
(可选)配置OSPFv3域标识符 |
缺省情况下,OSPFv3域标识符为0 该配置在PE上进行 OSPFv3进程的域标识符包含在此进程生成的路由中,在将OSPFv3路由引入BGP时,域标识符被附加到BGP路由上,作为BGP的扩展团体属性传递 · 不同OSPFv3进程的域标识符可以相同 · 同一VPN的所有OSPFv3进程应配置相同的域标识符,以保证路由发布的正确性 |
|
(可选)配置OSPFv3扩展团体属性的类型编码 |
ext-community-type { domain-id type-code1 | route-type type-code2 | router-id type-code3 } |
缺省情况下,OSPFv3扩展团体属性Domain ID的类型编码是0x0005,Route Type的类型编码是0x0306,Router ID的类型编码是0x0107 该配置在PE上进行 |
(可选)在PE上配置VPN引入路由的外部路由标记值 |
缺省情况下,若本端配置了BGP路由协议,并且BGP的AS号不大于65535,则外部路由标记值的前面两个字节固定为0xD000,后面的两个字节为本端BGP的AS号;否则,外部路由标记值为0 该配置在PE上进行 |
|
(可选)配置PE上不设置OSPFv3 LSA的DN位 |
缺省情况下,将BGP路由引入OSPFv3,并生成OSPFv3 LSA时,设备为生成的LSA设置DN位 该配置在PE上进行 |
|
(可选)配置PE上忽略OSPFv3 LSA的DN位检查 |
缺省情况下,PE上检查OSPFv3 LSA的DN位 该配置在PE上进行 |
|
(可选)在PE上使能OSPFv3 LSA的外部路由标记检查 |
缺省情况下,PE上不检查OSPFv3 LSA的外部路由标记,通过DN位检查避免路由环路 该命令是为了兼容旧的协议(RFC 4577),现在不建议使用 该配置在PE上进行 |
|
退回系统视图 |
quit |
- |
进入接口视图 |
interface interface-type interface-number |
- |
在接口上使能OSPFv3 |
ospfv3 process-id area area-id [ instance instance-id ] |
缺省情况下,接口上没有使能OSPFv3 该配置在PE上进行 |
一个IPv6 IS-IS进程只能属于一个VPN实例。如果在启动IPv6 IS-IS进程时不绑定到VPN实例,则该进程属于公网进程。有关IPv6 IS-IS的介绍和详细配置,请参见“三层技术-IP路由配置指导”中的“IPv6 IS-IS”。
表2-10 配置PE-CE间使用IPv6 IS-IS
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建PE-CE间的IPv6 IS-IS实例,并进入IS-IS视图 |
isis [ process-id ] vpn-instance vpn-instance-name |
该配置在PE上进行,CE上配置普通IPv6 IS-IS即可 |
配置网络实体名称 |
network-entity net |
缺省情况下,没有配置网络实体名称 |
使能IS-IS进程的IPv6能力 |
ipv6 enable |
缺省情况下,没有使能IS-IS路由进程的IPv6能力 |
退回系统视图 |
quit |
- |
进入接口视图 |
interface interface-type interface-number |
- |
使能接口IS-IS路由进程的IPv6能力,并指定要关联的IS-IS进程号 |
isis ipv6 enable [ process-id ] |
缺省情况下,接口上没有使能IS-IS路由进程的IPv6能力 |
(1) PE上的配置
表2-11 PE上的配置
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入BGP视图 |
bgp as-number |
- |
进入BGP-VPN实例视图 |
ip vpn-instance vpn-instance-name |
- |
将CE配置为VPN私网EBGP对等体 |
peer { group-name | ipv6-address } as-number as-number |
缺省情况下,设备上不存在任何BGP对等体 |
创建BGP-VPN IPv6单播地址族,并进入BGP-VPN IPv6单播地址族视图 |
address-family ipv6 [ unicast ] |
BGP-VPN IPv6单播地址族视图下的配置命令与BGP IPv6单播地址族视图下的配置命令相同。本文只列举了部分配置命令,更多的配置命令请参见“三层技术-IP路由配置指导”中的“BGP” |
使能本地路由器与指定对等体交换IPv6单播路由信息的能力 |
peer { group-name | ipv6-address } enable |
缺省情况下,本地路由器不能与对等体交换IPv6单播路由信息 |
引入本端CE路由 |
import-route protocol [ process-id [ med med-value | route-policy route-policy-name ] * ] |
PE需要将到本端CE的路由引入VPN路由表中,以发布给对端PE |
(可选)配置对发布的路由信息进行过滤 |
filter-policy { acl6-number | prefix-list ipv6-prefix-name } export [ protocol process-id ] |
缺省情况下,不对发布的路由信息进行过滤 |
(可选)配置对接收的路由信息进行过滤 |
filter-policy { acl6-number | prefix-list ipv6-prefix-name } import |
缺省情况下,不对接收的路由信息进行过滤 |
(2) CE上的配置
表2-12 CE上的配置
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入BGP视图 |
bgp as-number |
- |
将PE配置为EBGP对等体 |
peer { group-name | ipv6-address } as-number as-number |
缺省情况下,设备上不存在任何BGP对等体 |
创建BGP IPv6单播地址族,并进入BGP IPv6单播地址族视图 |
address-family ipv6 [ unicast ] |
缺省情况下,BGP IPv6单播地址族 |
使能本地路由器与指定对等体交换IPv6单播路由信息的能力 |
peer { group-name | ipv6-address } enable |
缺省情况下,本地路由器不能与对等体交换IPv6单播路由信息 |
(可选)配置路由引入 |
import-route protocol [ process-id [ med med-value | route-policy route-policy-name ] * ] |
CE需要将自己所能到达的VPN网段地址发布给接入的PE,通过PE发布给对端CE |
PE和CE之间使用IBGP路由协议只适用于基本的IPv6 MPLS L3VPN组网环境,跨域VPN和运营商的运营商组网中,PE和CE之间不能配置IBGP。
(1) PE上的配置
表2-13 PE上的配置
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入BGP视图 |
bgp as-number |
- |
进入BGP-VPN实例视图 |
ip vpn-instance vpn-instance-name |
BGP-VPN实例视图下的配置任务与BGP视图下的相同,有关介绍和详细配置,请参见“三层技术-IP路由配置指导”中的“BGP” |
将CE配置为VPN私网IBGP对等体 |
peer { group-name | ipv6-address } as-number as-number |
缺省情况下,设备上不存在任何BGP对等体 |
创建BGP IPv6单播地址族,并进入BGP-VPN IPv6单播地址族视图 |
address-family ipv6 [ unicast ] |
|
使能本地路由器与指定对等体/对等体组交换IPv6单播路由信息的能力 |
peer { group-name | ipv6-address } enable |
缺省情况下,本地路由器不能与对等体交换IPv6单播路由信息 |
将CE配置为路由反射器的客户端 |
peer { group-name | ipv6-address } reflect-client |
缺省情况下,没有配置路由发射器及其客户端 缺省情况下PE不会向IBGP对等体(包括VPNv6的IBGP对等体)发送从IBGP对等体CE学习的路由,只有将CE配置为路由反射器的客户端后,才能向其它IBGP对等体发送从该CE学习的路由 配置路由反射器后不会修改路由的下一跳。如果需要修改下一跳,则需在路由的接收端通过入策略进行修改 |
(可选)允许路由反射器在客户机之间反射路由 |
reflect between-clients |
缺省情况下,允许路由反射器在客户机之间反射路由 |
(可选)配置路由反射器的集群ID |
reflector cluster-id { cluster-id | ip-address } |
缺省情况下,每个路由反射器都使用自己的Router ID作为集群ID 如果一个集群中配置了多个路由反射器,请使用本命令为所有的路由反射器配置相同的集群ID,以避免产生路由环路 |
(2) CE上的配置
表2-14 CE上的配置
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入BGP视图 |
bgp as-number |
- |
将PE配置为IBGP对等体 |
peer { group-name | ipv6-address } as-number as-number |
缺省情况下,设备上不存在任何BGP对等体 |
创建BGP IPv6单播地址族,并进入BGP IPv6单播地址族视图 |
address-family ipv6 [ unicast ] |
缺省情况下,没有创建BGP-VPN IPv6单播地址族 |
使能本地路由器与指定对等体/对等体组交换IPv6单播路由信息的能力 |
peer { group-name | ipv6-address } enable |
缺省情况下,本地路由器不能与对等体交换IPv6单播路由信息 |
(可选)配置路由引入 |
import-route protocol [ process-id [ med med-value | route-policy route-policy-name ] * ] |
CE需要将自己所能到达的VPN网段地址发布给接入的PE,通过PE发布给对端CE |
表2-15 配置PE-PE间的路由交换
操作 |
命令 |
说明 |
|
进入系统视图 |
system-view |
- |
|
进入BGP视图 |
bgp as-number |
- |
|
将对端PE配置为对等体 |
peer { group-name | ip-address } as-number as-number |
缺省情况下,设备上不存在任何BGP对等体 |
|
指定与对等体/对等体组创建BGP会话时建立TCP连接使用的源接口 |
peer { group-name | ip-address } connect-interface interface-type interface-number |
缺省情况下,BGP使用到达BGP对等体的最佳路由的出接口作为与对等体/对等体组创建BGP会话时建立TCP连接的源接口 |
|
创建BGP VPNv6地址族,并进入BGP VPNv6地址族视图 |
address-family vpnv6 |
||
使能本地路由器与指定对等体交换VPNv6路由信息的能力 |
peer { group-name | ip-address } enable |
缺省情况下,本地路由器不能与对等体交换VPNv6路由信息 |
|
BGP VPNv6路由的属性需要在BGP VPNv6地址族视图下配置。BGP VPNv6路由的很多配置都与BGP IPv6单播路由相同,详细配置请参见“三层技术-IP路由配置指导”中的“BGP”。
表2-16 配置BGP VPNv6路由
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入BGP视图 |
bgp as-number |
- |
进入BGP VPNv6地址族视图 |
address-family vpnv6 |
- |
配置对发布的路由信息进行过滤 |
filter-policy { acl6-number | prefix-list ipv6-prefix-name } export [ protocol process-id ] |
缺省情况下,不对发布的路由信息进行过滤 |
配置对接收的路由信息进行过滤 |
filter-policy { acl6-number | prefix-list ipv6-prefix-name } import |
缺省情况下,不对接收的路由信息进行过滤 |
配置向对等体/对等体组发布团体属性 |
peer { group-name | ip-address [ mask-length ] } advertise-community |
缺省情况下,不向对等体/对等体组发布团体属性 |
为对等体/对等体组设置基于ACL的BGP路由过滤策略 |
peer { group-name | ip-address } filter-policy acl6-number { export | import } |
缺省情况下,没有设置基于ACL的BGP路由过滤策略 |
为对等体/对等体组设置基于IPv6地址前缀列表的BGP路由过滤策略 |
peer { group-name | ip-address } prefix-list ipv6-prefix-name { export | import } |
缺省情况下,没有设置基于IPv6地址前缀列表的BGP路由过滤策略 |
配置向对等体/对等体组发布路由时不改变下一跳 |
peer { group-name | ip-address } next-hop-invariable |
缺省情况下,向EBGP对等体/对等体组发布路由时会将下一跳改为自己的地址 如果在跨域VPN OptionC组网中使用路由反射器RR(Route Reflector)通告VPNv6路由,则需要在路由反射器上通过本命令配置向BGP邻居和反射客户通告VPNv6路由时,不改变路由的下一跳,以保证私网路由下一跳不会被修改 |
为从对等体/对等体组接收的路由分配首选值 |
peer { group-name | ip-address } preferred-value value |
缺省情况下,从对等体/对等体组接收的路由的首选值为0 |
向指定EBGP对等体/对等体组发送BGP更新消息时只携带公有AS号,不携带私有AS号 |
peer { group-name | ip-address } public-as-only |
缺省情况下,向EBGP对等体/对等体组发送BGP更新消息时,既可以携带公有AS号,又可以携带私有AS号 |
对来自对等体/对等体组的路由或发布给对等体/对等体组的路由应用路由策略 |
peer { group-name | ip-address } route-policy route-policy-name { export | import } |
缺省情况下,没有为对等体/对等体组指定路由策略 |
对接收到的VPNv6路由使能VPN-Target过滤功能 |
policy vpn-target |
缺省情况下,对接收到的VPNv6路由使能VPN-Target过滤功能 |
配置将本机作为路由反射器,并将对等体作为路由反射器的客户 |
peer { group-name | ip-address } reflect-client |
缺省情况下,没有配置路由反射器及其客户 |
设置允许从指定对等体/对等体组收到的路由数量 |
peer { group-name | ip-address } route-limit prefix-number [ { alert-only | reconnect reconnect-time } | percentage-value ] * |
缺省情况下,不限制从对等体/对等体组接收的路由数量 |
允许路由反射器在客户机之间反射路由 |
reflect between-clients |
缺省情况下,允许路由反射器在客户机之间反射路由 |
配置路由反射器的集群ID |
reflector cluster-id { cluster-id | ip-address } |
缺省情况下,每个路由反射器都使用自己的Router ID作为集群ID 如果一个集群中配置了多个路由反射器,请使用本命令为所有的路由反射器配置相同的集群ID,以避免产生路由环路 |
创建路由反射器的反射策略 |
rr-filter extended-community-number |
缺省情况下,路由反射器不会对反射的路由进行过滤 执行本命令后,只有与本命令配置的扩展团体属性号匹配的IBGP路由才会被反射 通过在不同的路由反射器上配置不同的反射策略,可以实现路由反射器之间的负载分担 |
如果承载IPv6 VPN路由的MPLS骨干网跨越多个AS,就需要配置跨域VPN。
跨域VPN有三种解决方案,具体介绍请参见“1.1.6 跨域VPN”。目前,IPv6 MPLS L3VPN只支持VPN-OptionA和VPN-OptionC。请根据实际组网情况,选择合适的跨域VPN方案。
在配置跨域VPN之前,需完成以下任务:
· 为各AS的MPLS骨干网分别配置IGP,实现同一AS内骨干网的IP连通性
· 为各AS的MPLS骨干网分别配置MPLS基本能力
· 为各AS的MPLS骨干网分别配置MPLS LDP,建立LDP LSP
IPv6跨域VPN-OptionA的实现比较简单,当PE上的VPN数量及VPN路由数量都比较少时可以采用这种方案。
IPv6跨域VPN-OptionA的配置可以描述为:
· 对各AS分别进行基本IPv6 MPLS L3VPN配置。
· 对于ASBR-PE,将对端ASBR-PE看作自己的CE配置即可。即:IPv6跨域VPN-OptionA方式需要在PE和ASBR-PE上分别配置IPv6 VPN实例,前者用于接入CE,后者用于接入对端ASBR-PE。
具体配置方法,请参见“2.2 IPv6 MPLS L3VPN配置任务简介”。
在IPv6跨域VPN-OptionA方式中,对于同一个IPv6 VPN,同一AS内的ASBR-PE和PE上配置的VPN Target应能匹配,即VPN Target的配置应能保证PE(或ASBR-PE)发送的VPN路由能够被ASBR-PE(或PE)接受;不同AS的PE上配置的VPN Target则不需要匹配。
同一AS内的PE和ASBR-PE之间建立普通的IBGP对等体关系,不同AS的PE之间建立MP-EBGP对等体关系。
同一AS内的PE和ASBR-PE之间应能够交换带标签的路由。
表2-17 配置PE
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入BGP视图 |
bgp as-number |
- |
配置本AS的ASBR-PE为IBGP对等体 |
peer { group-name | ip-address } as-number as-number |
缺省情况下,设备上不存在任何BGP对等体 |
将另一AS的PE配置为EBGP对等体 |
peer { group-name | ip-address } as-number as-number |
缺省情况下,设备上不存在任何BGP对等体 |
进入BGP IPv4单播地址族视图 |
address-family ipv4 [ unicast ] |
- |
使能与本AS的ASBR-PE交换BGP IPv4单播路由的能力 |
peer { group-name | ip-address } enable |
缺省情况下,不能与本AS的ASBR-PE交换BGP IPv4单播路由 |
配置与本AS的ASBR-PE之间能够交换带标签的路由 |
peer { group-name | ip-address } label-route-capability |
缺省情况下,不向IPv4对等体/对等体组发送标签路由 |
退回BGP视图 |
quit |
- |
进入BGP VPNv6地址族视图 |
address-family vpnv6 |
- |
使能本地路由器与指定对等体交换VPNv6路由信息的能力 |
peer ip-address enable |
缺省情况下,本地路由器不能与对等体交换VPNv6路由信息 |
(可选)配置向对等体发送路由时不改变下一跳 |
peer { group-name | ip-address } next-hop-invariable |
该步骤用于使用RR通告VPNv6路由的情况:在RR上执行本配置,使得RR之间通告VPNv6路由时,路由的下一跳不会被改变 |
在跨域VPN-OptionC方式中,需要建立一条跨域的VPN LSP,相关PE、ASBR之间发布公网路由时携带MPLS标签信息。此跨域VPN LSP的建立同IPv4 MPLS VPN相同,配置方式参见“1.4.4 配置跨域VPN-OptionC”。
配置在ASBR-PE上应用路由策略:
· 对于从本AS的PE接收的路由,在向对端ASBR-PE发布时,分配MPLS标签;
· 对于向本AS的PE发布的路由,如果是带标签的路由,为其分配新的MPLS标签。
IPv6跨域VPN路由策略的配置与IPv4 MPLS VPN相同,配置方式参见“1.4.4 配置跨域VPN-OptionC”。
Multi-VPN-Instance CE可以看作一种通过路由隔离实现业务隔离的组网方案。配置MCE的关键为:
· 配置MCE与站点之间的路由交换
· 配置MCE与PE之间的路由交换
在MCE组网方案中,路由计算时需要关闭PE上的路由环路检测功能,防止路由丢失;同时禁止各路由协议互操作功能,以节省系统资源。
在配置Multi-VPN-Instance CE之前,需完成以下任务:
· 创建VPN实例、在MCE上将连接站点和PE的接口与VPN实例绑定
· 配置相关接口的链路层协议和网络层协议,保证路由可达
MCE可以通过IPv6静态路由与Site连接。传统CE配置的IPv6静态路由对全局生效,无法解决多VPN间的地址重叠问题。以太网交换机提供的MCE功能可以将IPv6静态路由与VPN实例相绑定,将各IPv6 VPN之间的IPv6静态路由进行隔离。
表2-18 配置MCE与站点之间使用IPv6静态路由
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
为指定VPN实例配置IPv6静态路由 |
ipv6 route-static vpn-instance s-vpn-instance-name ipv6-address prefix-length { nexthop-address [ public ] | interface-type interface-number [ next-hop-address ] | vpn-instance d-vpn-instance-name nexthop-address } [ permanent ] [ preference preference-value ] [ tag tag-value ] [ description description-text ] |
缺省情况下,没有配置IPv6静态路由 该配置在MCE上进行,站点上的配置方法与普通IPv6静态路由相同 |
(可选)配置IPv6静态路由的缺省优先级 |
ipv6 route-static default-preference default-preference-value |
缺省情况下,IPv6静态路由的缺省优先级为60 |
一个RIPng进程只能属于一个IPv6 VPN实例。如果在启动RIPng进程时不绑定到IPv6 VPN实例,则该进程属于公网进程。通过在MCE上将RIPng进程与IPv6 VPN实例绑定,可以使不同IPv6 VPN内的私网路由通过不同的RIPng进程在Site和MCE间进行交互,保证了私网路由的隔离和安全。有关RIPng的介绍和详细配置,请参见“三层技术-IP路由配置指导”中的“RIPng”。
表2-19 配置MCE与站点之间使用RIPng
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建MCE与站点间的RIPng实例,并进入RIPng视图 |
ripng [ process-id ] vpn-instance vpn-instance-name |
该配置在MCE上进行,站点上配置普通RIPng即可 |
引入由PE发布的远端站点的路由 |
import-route protocol [ process-id ] [ allow-ibgp ] [ cost cost | route-policy route-policy-name ] * |
缺省情况下,RIPng未引入其它路由 |
(可选)配置引入路由的缺省度量值 |
default cost value |
缺省情况下,引入路由的缺省度量值为0 |
退回系统视图 |
quit |
- |
进入接口视图 |
interface interface-type interface-number |
- |
在接口上使能RIPng路由协议 |
ripng process-id enable |
缺省情况下,接口禁用RIPng路由协议 |
一个OSPFv3进程只能属于一个IPv6 VPN实例。如果在启动OSPFv3进程时不绑定到IPv6 VPN实例,则该进程属于公网进程。
通过在MCE上将OSPFv3进程与IPv6 VPN实例绑定,可以使不同IPv6 VPN内的私网路由通过不同的OSPFv3进程在Site和MCE间进行交互,保证了私网路由的隔离和安全。
有关OSPFv3的介绍和详细配置,请参见“三层技术-IP路由配置指导”中的“OSPFv3”。
表2-20 配置MCE与站点之间使用OSPFv3
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建MCE与站点间的OSPFv3实例,并进入OSPFv3视图 |
ospfv3 [ process-id | vpn-instance vpn-instance-name ] * |
该配置在MCE上进行,站点上配置普通OSPFv3即可 删除VPN实例后,相关的所有OSPFv3进程也将全部被删除 |
配置Router ID |
router-id router-id |
- |
引入由PE发布的远端站点的路由 |
import-route protocol [ process-id | all-processes | allow-ibgp ] [ cost cost | route-policy route-policy-name | type type ] * |
缺省情况下,没有引入其他协议的路由信息 |
退回系统视图 |
quit |
- |
进入接口视图 |
interface interface-type interface-number |
- |
在接口上使能OSPFv3 |
ospfv3 process-id area area-id [ instance instance-id ] |
缺省情况下,接口上没有使能OSPFv3 |
一个IPv6 IS-IS进程只能属于一个IPv6 VPN实例。如果在启动IPv6 IS-IS进程时不绑定到IPv6 VPN实例,则该进程属于公网进程。
通过在MCE上将IPv6 IS-IS进程与IPv6 VPN实例绑定,可以使不同IPv6 VPN内的私网路由通过不同的IPv6 IS-IS进程在Site和MCE间进行交互,保证了私网路由的隔离和安全。
有关IPv6 IS-IS的介绍和详细配置,请参见“三层技术-IP路由配置指导”中的“IPv6 IS-IS”。
表2-21 配置MCE与站点之间使用IPv6 IS-IS
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建MCE与站点间的IPv6 IS-IS实例,并进入IS-IS视图 |
isis [ process-id ] vpn-instance vpn-instance-name |
该配置在MCE上进行,站点上配置普通IPv6 IS-IS即可 |
配置网络实体名称 |
network-entity net |
缺省情况下,没有配置网络实体名称 |
使能IS-IS进程的IPv6能力 |
ipv6 enable |
缺省情况下,没有使能IS-IS路由进程的IPv6能力 |
(可选)引入由PE发布的远端站点的路由 |
ipv6 import-route protocol [ process-id ] [ allow-ibgp ] [ cost cost | [ level-1 | level-1-2 | level-2 ] | route-policy route-policy-name | tag tag ] * |
缺省情况下,IPv6 IS-IS不引入其它协议的路由信息 如果ipv6 import-route命令中不指定引入的级别,则默认为引入路由到Level-2路由表中 |
退回系统视图 |
quit |
- |
进入接口视图 |
interface interface-type interface-number |
- |
使能接口IS-IS路由进程的IPv6能力,并指定要关联的IS-IS进程号 |
isis ipv6 enable [ process-id ] |
缺省情况下,接口上没有使能IS-IS路由进程的IPv6能力 |
MCE与站点间使用EBGP交换路由信息时,需要在MCE上为每个IPv6 VPN实例配置IPv6 BGP对等体,并在站点上引入相应IPv6 VPN内的IGP路由信息。
MCE使用EBGP交换路由信息时,还可以通过Filter-policy对接收/发布的路由进行过滤。
有关IPv6 BGP协议的配置,请参见“三层技术-IP路由配置指导”中的“BGP”。
(1) MCE上的配置
表2-22 配置MCE与站点之间使用EBGP
操作 |
命令 |
说明 |
|
进入系统视图 |
system-view |
- |
|
进入BGP视图 |
bgp as-number |
- |
|
进入BGP-VPN实例视图 |
ip vpn-instance vpn-instance-name |
- |
|
配置IPv6 BGP对等体的AS号 |
peer { group-name | ipv6-address } as-number as-number |
缺省情况下,设备上不存在任何BGP对等体 |
|
进入BGP-VPN IPv6单播地址族视图 |
address-family ipv6 [ unicast ] |
- |
|
使能本地路由器与指定对等体交换IPv6单播路由信息的能力 |
peer { group-name | ipv6-address } enable |
缺省情况下,本地路由器不能与对等体交换IPv6单播路由信息 |
|
引入由PE发布的远端站点的路由 |
import-route protocol [ process-id [ med med-value | route-policy route-policy-name ] * ] |
缺省情况下,BGP不引入且不通告其它协议的路由 |
|
(可选)配置对发布的路由信息进行过滤 |
filter-policy { acl6-number | prefix-list ipv6-prefix-name } export [ protocol process-id ] |
缺省情况下,不对发布的路由信息进行过滤 |
|
(可选)配置对接收的路由信息进行过滤 |
filter-policy { acl6-number | prefix-list ipv6-prefix-name } import |
缺省情况下,不对接收的路由信息进行过滤 |
(2) 站点上的配置
表2-23 站点上的配置
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入BGP视图 |
bgp as-number |
- |
将MCE配置为EBGP对等体 |
peer { group-name | ipv6-address } as-number as-number |
缺省情况下,设备上不存在任何BGP对等体 |
进入BGP IPv6单播地址族视图 |
address-family ipv6 [ unicast ] |
- |
使能本地路由器与指定对等体交换IPv6单播路由信息的能力 |
peer { group-name | ipv6-address } enable |
缺省情况下,本地路由器不能与对等体交换IPv6单播路由信息 |
引入VPN内的IGP路由 |
import-route protocol [ process-id [ med med-value | route-policy route-policy-name ] * ] |
缺省情况下,BGP不引入且不通告其它协议的路由 站点需要将自己所能到达的IPv6 VPN网段地址发布给接入的MCE |
MCE与站点间使用IBGP交换路由信息时,需要在MCE上为每个VPN实例配置BGP对等体,并在站点上引入相应VPN内的IGP路由信息。
(1) MCE上的配置
表2-24 配置MCE与站点之间使用IBGP
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
启动BGP,并进入BGP视图 |
bgp as-number |
缺省情况下,系统没有运行BGP |
进入BGP-VPN实例视图 |
ip vpn-instance vpn-instance-name |
- |
配置IBGP对等体 |
peer { group-name | ipv6-address } as-number as-number |
缺省情况下,设备上不存在任何BGP对等体和对等体组 |
进入BGP-VPN IPv6单播地址族视图 |
address-family ipv6 [ unicast ] |
- |
使能本地路由器与指定对等体交换IPv6单播路由信息的能力 |
peer { group-name | ipv6-address } enable |
缺省情况下,本地路由器不能与对等体交换IPv6单播路由信息 |
(可选)配置本地设备作为路由反射器,对端设备作为路由反射器的客户端 |
peer { group-name | ipv6-address } reflect-client |
缺省情况下,没有配置路由反射器及其客户端 将站点配置为IBGP对等体时,从该站点学习的BGP路由不会向其它IBGP对等体(包括VPNv6对等体)发送。只有将站点配置为路由反射器的客户端后,才能向其它IBGP对等体发送从该站点学习的路由 |
引入由PE发布的远端站点的路由 |
import-route protocol [ process-id [ med med-value | route-policy route-policy-name ] * ] |
缺省情况下,BGP不引入且不通告其它协议的路由 |
(可选)配置对发布的路由信息进行过滤 |
filter-policy { acl6-number | prefix-list ipv6-prefix-name } export [ protocol process-id ] |
缺省情况下,不对发布的路由信息进行过滤 |
(可选)配置对接收的路由信息进行过滤 |
filter-policy { acl6-number | prefix-list ipv6-prefix-name } import |
缺省情况下,不对接收的路由信息进行过滤 |
(2) 站点上的配置
表2-25 站点上的配置
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
启动BGP,并进入BGP视图 |
bgp as-number |
缺省情况下,系统没有运行BGP |
将MCE配置为IBGP对等体 |
peer { group-name | ipv6-address } as-number as-number |
缺省情况下,设备上不存在任何BGP对等体和对等体组 |
进入BGP IPv6单播地址族视图 |
address-family ipv6 [ unicast ] |
- |
使能本地路由器与指定对等体交换IPv6单播路由信息的能力 |
peer { group-name | ipv6-address } enable |
缺省情况下,本地路由器不能与对等体交换IPv6单播路由信息 |
配置引入VPN内的IGP路由 |
import-route protocol [ process-id [ med med-value | route-policy route-policy-name ] * ] |
缺省情况下,BGP不引入且不通告其它协议的路由 站点需要将自己所能到达的VPN网段地址发布给接入的MCE |
由于在MCE设备上已经将站点内的私网路由信息与IPv6 VPN实例进行了绑定,因此,只需要在MCE与PE之间将接口与IPv6 VPN实例进行绑定、进行简单的路由配置、并将MCE上维护的站点内的IPv6 VPN路由引入到MCE-PE间的路由协议中,便可以实现私网VPN路由信息的传播。
本节中的配置均在MCE上进行,PE上的配置与基本IPv6 MPLS L3VPN组网中PE上的配置相同,详细介绍请参见“2.3.4 配置PE-CE间的路由交换”。
表2-26 配置MCE与PE之间使用IPv6静态路由
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
为指定VPN实例配置IPv6静态路由 |
ipv6 route-static vpn-instance s-vpn-instance-name ipv6-address prefix-length { nexthop-address [ public ] | interface-type interface-number [ next-hop-address ] | vpn-instance d-vpn-instance-name nexthop-address } [ permanent ] [ preference preference-value ] [ tag tag-value ] [ description description-text ] |
缺省情况下,没有配置IPv6静态路由 |
(可选)配置IPv6静态路由的缺省优先级 |
ipv6 route-static default-preference default-preference-value |
缺省情况下,IPv6静态路由的缺省优先级为60 |
表2-27 配置MCE与PE之间使用RIPng
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建MCE与PE间的RIPng实例,并进入RIPng视图 |
ripng [ process-id ] vpn-instance vpn-instance-name |
- |
引入站点内的VPN路由 |
import-route protocol [ process-id ] [ allow-ibgp ] [ cost cost | route-policy route-policy-name ] * |
缺省情况下,RIPng未引入其它路由 |
(可选)配置引入路由的缺省度量值 |
default cost value |
缺省情况下,引入路由的缺省度量值为0 |
退回系统视图 |
quit |
- |
进入接口视图 |
interface interface-type interface-number |
- |
在指定的网络接口上使能RIPng |
ripng process-id enable |
缺省情况下,接口禁用RIPng |
表2-28 配置MCE与PE之间使用OSPFv3
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建MCE与PE间的OSPFv3实例,并进入OSPFv3视图 |
ospfv3 [ process-id | vpn-instance vpn-instance-name ] * |
- |
配置Router ID |
router-id router-id |
- |
引入站点内的VPN路由 |
import-route protocol [ process-id | all-processes | allow-ibgp ] [ cost cost | route-policy route-policy-name | type type ] * |
缺省情况下,没有引入其他协议的路由信息 |
(可选)配置对发布的路由进行过滤 |
filter-policy { acl6-number | prefix-list prefix-list-name } export [ protocol [ process-id ] ] |
缺省情况下,没有对发布的路由信息进行过滤 |
退回系统视图 |
quit |
- |
进入接口视图 |
interface interface-type interface-number |
- |
在接口上使能OSPFv3 |
ospfv3 process-id area area-id [ instance instance-id ] |
缺省情况下,接口上没有使能OSPFv3 |
表2-29 配置MCE与PE之间使用IPv6 IS-IS
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建MCE与PE间的IPv6 IS-IS实例,并进入IS-IS视图 |
isis [ process-id ] vpn-instance vpn-instance-name |
- |
配置网络实体名称 |
network-entity net |
缺省情况下,没有配置网络实体名称 |
使能IS-IS进程的IPv6能力 |
ipv6 enable |
缺省情况下,没有使能IS-IS路由进程的IPv6能力 |
(可选)引入站点内的VPN路由 |
ipv6 import-route protocol [ process-id ] [ allow-ibgp ] [ cost cost | [ level-1 | level-1-2 | level-2 ] | route-policy route-policy-name | tag tag ] * |
缺省情况下,IPv6 IS-IS不引入其它协议的路由信息 如果ipv6 import-route命令中不指定引入的级别,则默认为引入路由到Level-2路由表中 |
(可选)对发布的路由进行过滤 |
ipv6 filter-policy { acl6-number | prefix-list prefix-list-name | route-policy route-policy-name } export [ protocol [ process-id ] ] |
缺省情况下,IPv6 IS-IS不对发布的路由信息进行过滤 |
退回系统视图 |
quit |
- |
进入接口视图 |
interface interface-type interface-number |
- |
使能接口IS-IS路由进程的IPv6能力,并指定要关联的IS-IS进程号 |
isis ipv6 enable [ process-id ] |
缺省情况下,接口上没有使能IS-IS路由进程的IPv6能力 |
表2-30 配置MCE与PE之间使用EBGP
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入BGP视图 |
bgp as-number |
- |
进入BGP-VPN实例视图 |
ip vpn-instance vpn-instance-name |
- |
将PE配置为EBGP对等体 |
peer { group-name | ipv6-address } as-number as-number |
缺省情况下,设备上不存在任何BGP对等体 |
进入BGP-VPN IPv6单播地址族视图 |
address-family ipv6 [ unicast ] |
- |
使能本地路由器与指定对等体交换IPv6单播路由信息的能力 |
peer { group-name | ipv6-address } enable |
缺省情况下,本地路由器不能与对等体交换IPv6单播路由信息 |
引入站点内的VPN路由 |
import-route protocol [ process-id [ med med-value | route-policy route-policy-name ] * ] |
缺省情况下,BGP不引入且不通告其它协议的路由 |
(可选)配置对发布的路由信息进行过滤 |
filter-policy { acl6-number | prefix-list ipv6-prefix-name } export [ protocol process-id ] |
缺省情况下,不对发布的路由信息进行过滤 |
(可选)配置对接收的路由信息进行过滤 |
filter-policy { acl6-number | prefix-list ipv6-prefix-name } import |
缺省情况下,不对接收的路由信息进行过滤 |
表2-31 配置MCE与PE之间使用IBGP
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
启动BGP,并进入BGP视图 |
bgp as-number |
缺省情况下,系统没有运行BGP |
进入BGP-VPN实例视图 |
ip vpn-instance vpn-instance-name |
- |
将PE配置为IBGP对等体 |
peer { group-name | ipv6-address } as-number as-number |
缺省情况下,设备上不存在任何BGP对等体和对等体组 |
进入BGP-VPN IPv6单播地址族视图 |
address-family ipv6 [ unicast ] |
- |
使能本地路由器与指定对等体交换IPv6单播路由信息的能力 |
peer { group-name | ipv6-address } enable |
缺省情况下,本地路由器不能与对等体交换IPv6单播路由信息 |
引入站点内的VPN路由 |
import-route protocol [ process-id [ med med-value | route-policy route-policy-name ] * ] |
缺省情况下,BGP不引入且不通告其它协议的路由 |
(可选)配置对发布的路由信息进行过滤 |
filter-policy { acl6-number | prefix-list ipv6-prefix-name } export [ protocol process-id ] |
缺省情况下,不对发布的路由信息进行过滤 |
(可选)配置对接收的路由信息进行过滤 |
filter-policy { acl6-number | prefix-list ipv6-prefix-name } import |
缺省情况下,不对接收的路由信息进行过滤 |
除了配置基本IPv6 MPLS L3VPN(PE-CE间使用OSPFv3)外,OSPFv3伪连接的配置还包括:
· 在两端的PE上分别配置128位掩码的Loopback接口IPv6地址,并将该地址与VPN实例绑定。该地址将作为OSPFv3伪连接的源IPv6地址和目的IPv6地址。
· 配置通过BGP发布本地Loopback接口地址的路由。
· 创建OSPFv3伪连接。
创建Loopback接口,并进入Loopback接口视图 |
||
将Loopback接口与VPN实例关联 |
缺省情况下,接口不关联任何VPN实例,属于公网接口 |
|
配置Loopback接口的IPv6地址 |
配置方法,请参见“三层技术-IP业务配置指导”中的“IPv6基础” |
缺省情况下,未配置Loopback接口的IPv6地址 |
表2-33 发布Loopback接口的路由
进入BGP视图 |
||
进入BGP-VPN实例视图 |
||
进入BGP-VPN IPv6单播地址族视图 |
||
引入直连路由(将Loopback主机路由引入BGP) |
进入OSPFv3视图 |
||
进入OSPFv3区域视图 |
||
创建一条OSPFv3伪连接 |
当BGP配置变化后,可以通过软复位或复位BGP会话使新的配置生效。软复位BGP会话是指在不断开BGP邻居关系的情况下,更新BGP路由信息;复位BGP会话是指断开并重新建立BGP邻居关系的情况下,更新BGP路由信息。软复位需要BGP对等体具备路由刷新能力(支持ROUTE-REFRESH消息)。
请在用户视图下进行下列操作。
表2-35 复位BGP会话
操作 |
命令 |
手工对VPNv6地址族下的BGP会话进行软复位 |
refresh bgp { ip-address | all | external | group group-name | internal } { export | import } vpnv6 |
复位VPNv6地址族下的BGP会话 |
reset bgp { as-number | ip-address | all | external | internal | group group-name } vpnv6 |
在完成上述配置后,在任意视图下执行display命令可以显示配置后IPv6 MPLS L3VPN的运行情况,通过查看显示信息验证配置的效果。
display bgp group vpnv6、display bgp peer vpnv6和display bgp update-group vpnv6命令的详细介绍,请参见“三层技术-IP路由命令参考”中的“BGP”。
表2-36 显示IPv6 MPLS L3VPN的运行状态
操作 |
命令 |
显示与VPN实例相关联的IPv6路由表(本命令的详细介绍请参见“三层技术-IP路由命令参考”中的“IP路由基础命令”) |
display ipv6 routing-table vpn-instance vpn-instance-name [ verbose ] |
显示指定VPN实例信息 |
display ip vpn-instance [ instance-name vpn-instance-name ] |
显示指定VPN实例的IPv6 FIB信息 |
display ipv6 fib vpn-instance vpn-instance-name [ acl6 acl6-number | ipv6-prefix ipv6-prefix-name ] |
显示指定VPN实例中与指定目的IPv6地址匹配的IPv6 FIB信息 |
display ipv6 fib vpn-instance vpn-instance-name ipv6-address [ prefix-length ] |
显示BGP VPNv6对等体组的信息 |
display bgp group vpnv6 [ group-name group-name ] |
显示BGP VPNv6对等体的信息 |
|
显示BGP VPNv6路由信息 |
display bgp routing-table vpnv6 [ route-distinguisher route-distinguishe ] [ network-address prefix-length ] |
显示BGP VPNv6路由的通告信息 |
display bgp routing-table vpnv6 network-address prefix-length advertise-info |
显示匹配指定AS路径过滤列表的BGP VPNv6路由信息 |
display bgp routing-table vpnv6 [ route-distinguisher route-distinguishe ] as-path-acl as-path-acl-number |
显示匹配指定BGP团体列表的BGP VPNv6路由信息 |
display bgp routing-table vpnv6 [ route-distinguisher route-distinguishe ] community-list { { basic-community-list-number | comm-list-name } [ whole-match ] | adv-community-list-number } |
显示向指定对等体发布或者从指定对等体收到的BGP VPNv6路由信息 |
display bgp routing-table vpnv6 peer ip-address { advertised-routes | received-routes } [ network-address prefix-length | statistics ] |
显示所有BGP VPNv6路由的入标签信息 |
display bgp routing-table vpnv6 inlabel |
显示所有BGP VPNv6路由的出标签信息 |
display bgp routing-table vpnv6 outlabel |
显示BGP VPNv6路由的统计信息 |
display bgp routing-table vpnv6 statistics |
显示BGP VPNv6地址族下打包组的相关信息 |
display bgp update-group vpnv6 [ ip-address ] |
显示OSPFv3伪连接信息 |
display ospfv3 [ process-id ] [ area area-id ] sham-link [ verbose ] |
缺省情况下,以太网接口、VLAN接口及聚合接口处于down状态。如果要使这些接口能够正常工作,请先使用undo shutdown命令使这些接口处于up。
· CE 1、CE 3属于VPN 1,CE 2、CE 4属于VPN 2;
· VPN 1使用的VPN Target属性为111:1,VPN 2使用的VPN Target属性为222:2。不同VPN用户之间不能互相访问;
· CE与PE之间配置EBGP交换VPN路由信息;
· PE与PE之间配置OSPF实现PE内部的互通、配置MP-IBGP交换VPN路由信息。
IP地址 |
IP地址 |
||||
|
GE2/0/1 |
||||
|
|
GE2/0/2 |
|||
|
|||||
|
GE2/0/1 |
|
|||
|
|||||
|
GE2/0/1 |
||||
|
|
|
(1) 在MPLS骨干网上配置IGP协议,实现骨干网PE和P的互通
# 配置PE 1。
[PE1] interface loopback 0
[PE1-LoopBack0] ip address 1.1.1.9 32
[PE1-LoopBack0] quit
[PE1] interface GigabitEthernet 2/0/1
[PE1-GigabitEthernet2/0/1] ip address 172.1.1.1 24
[PE1-GigabitEthernet2/0/1] quit
[PE1] ospf
[PE1-ospf-1] area 0
[PE1-ospf-1-area-0.0.0.0] network 172.1.1.0 0.0.0.255
[PE1-ospf-1-area-0.0.0.0] network 1.1.1.9 0.0.0.0
[PE1-ospf-1-area-0.0.0.0] quit
[PE1-ospf-1] quit
# 配置P。
[P] interface loopback 0
[P-LoopBack0] ip address 2.2.2.9 32
[P-LoopBack0] quit
[P] interface GigabitEthernet 2/0/1
[P-GigabitEthernet2/0/1] ip address 172.1.1.2 24
[P-GigabitEthernet2/0/1] quit
[P] interface GigabitEthernet 2/0/2
[P-GigabitEthernet2/0/2] ip address 172.2.1.1 24
[P-GigabitEthernet2/0/2] quit
[P] ospf
[P-ospf-1] area 0
[P-ospf-1-area-0.0.0.0] network 172.1.1.0 0.0.0.255
[P-ospf-1-area-0.0.0.0] network 172.2.1.0 0.0.0.255
[P-ospf-1-area-0.0.0.0] network 2.2.2.9 0.0.0.0
[P-ospf-1-area-0.0.0.0] quit
[P-ospf-1] quit
# 配置PE 2。
[PE2] interface loopback 0
[PE2-LoopBack0] ip address 3.3.3.9 32
[PE2-LoopBack0] quit
[PE2] interface GigabitEthernet 2/0/1
[PE2-GigabitEthernet2/0/1] ip address 172.2.1.2 24
[PE2-GigabitEthernet2/0/1] quit
[PE2] ospf
[PE2-ospf-1] area 0
[PE2-ospf-1-area-0.0.0.0] network 172.2.1.0 0.0.0.255
[PE2-ospf-1-area-0.0.0.0] network 3.3.3.9 0.0.0.0
[PE2-ospf-1-area-0.0.0.0] quit
[PE2-ospf-1] quit
配置完成后,PE 1、P、PE 2之间应能建立OSPF邻居,执行display ospf peer命令可以看到邻居达到FULL状态。执行display ip routing-table命令可以看到PE之间学习到对方的Loopback路由。
以PE 1为例:
[PE1] display ip routing-table protocol ospf
Summary Count : 5
OSPF Routing table Status : <Active>
Summary Count : 3
Destination/Mask Proto Pre Cost NextHop Interface
2.2.2.9/32 OSPF 10 1 172.1.1.2 GigabitEthernet2/0/1
3.3.3.9/32 OSPF 10 2 172.1.1.2 GigabitEthernet2/0/1
172.2.1.0/24 OSPF 10 2 172.1.1.2 GigabitEthernet2/0/1
OSPF Routing table Status : <Inactive>
Summary Count : 2
Destination/Mask Proto Pre Cost NextHop Interface
1.1.1.9/32 OSPF 10 0 1.1.1.9 Loop0
172.1.1.0/24 OSPF 10 1 172.1.1.1 GigabitEthernet2/0/1
[PE1] display ospf peer verbose
OSPF Process 1 with Router ID 1.1.1.9
Neighbors
Area 0.0.0.0 interface 172.1.1.1(GigabitEthernet2/0/1)'s neighbors
Router ID: 2.2.2.9 Address: 172.1.1.2 GR State: Normal
State: Full Mode: Nbr is Master Priority: 1
DR: 172.1.1.2 BDR: 172.1.1.1 MTU: 0
Options is 0x02 (-|-|-|-|-|-|E|-)
Dead timer due in 39 sec
Neighbor is up for 00:00:29
Authentication Sequence: [ 0 ]
Neighbor state change count: 6
(2) 在MPLS骨干网上配置MPLS基本能力和MPLS LDP,建立LDP LSP
# 配置PE 1。
[PE1] mpls ldp
[PE1-ldp] quit
[PE1] interface GigabitEthernet 2/0/1
[PE1-GigabitEthernet2/0/1] mpls enable
[PE1-GigabitEthernet2/0/1] mpls ldp enable
[PE1-GigabitEthernet2/0/1] quit
# 配置P。
[P] mpls ldp
[P-ldp] quit
[P] interface GigabitEthernet 2/0/1
[P-GigabitEthernet2/0/1] mpls enable
[P-GigabitEthernet2/0/1] mpls ldp enable
[P-GigabitEthernet2/0/1] quit
[P] interface GigabitEthernet 2/0/2
[P-GigabitEthernet2/0/2] mpls enable
[P-GigabitEthernet2/0/2] mpls ldp enable
[P-GigabitEthernet2/0/2] quit
# 配置PE 2。
[PE2] mpls ldp
[PE2-ldp] quit
[PE2] interface GigabitEthernet 2/0/1
[PE2-GigabitEthernet2/0/1] mpls enable
[PE2-GigabitEthernet2/0/1] mpls ldp enable
[PE2-GigabitEthernet2/0/1] quit
上述配置完成后,PE 1、P、PE 2之间应能建立LDP会话,执行display mpls ldp peer命令可以看到LDP会话状态为Operational。执行display mpls ldp lsp命令,可以看到LDP LSP的建立情况。
以PE 1为例:
Total number of peers: 1
Peer LDP ID State LAM Role GR MD5 KA Sent/Rcvd
2.2.2.9:0 Operational DU Passive Off Off 5/5
[PE1] display mpls ldp lsp
Status codes: * - stale, L - liberal
FECs: 3 Ingress: 2 Transit: 2 Egress: 1
FEC In/Out Label Nexthop OutInterface
1.1.1.9/32 3/-
-/1151(L)
2.2.2.9/32 -/3 172.1.1.2 GigabitEthernet2/0/1
1151/3 172.1.1.2 GigabitEthernet2/0/1
3.3.3.9/32 -/1150 172.1.1.2 GigabitEthernet2/0/1
1150/1150 172.1.1.2 GigabitEthernet2/0/1
(3) 在PE设备上配置IPv6 VPN实例,将CE接入PE
# 配置PE 1。
[PE1-vpn-instance-vpn1] route-distinguisher 100:1
[PE1-vpn-instance-vpn1] vpn-target 111:1
[PE1-vpn-instance-vpn1] quit
[PE1] ip vpn-instance vpn2
[PE1-vpn-instance-vpn2] route-distinguisher 100:2
[PE1-vpn-instance-vpn2] vpn-target 222:2
[PE1-vpn-instance-vpn2] quit
[PE1] interface GigabitEthernet 3/0/1
[PE1-GigabitEthernet3/0/1] ip binding vpn-instance vpn1
[PE1-GigabitEthernet3/0/1] ipv6 address 2001:1::2 96
[PE1-GigabitEthernet3/0/1] quit
[PE1] interface GigabitEthernet 3/0/2
[PE1-GigabitEthernet3/0/2] ip binding vpn-instance vpn2
[PE1-GigabitEthernet3/0/2] ipv6 address 2001:2::2 96
[PE1-GigabitEthernet3/0/2] quit
# 配置PE 2。
[PE2-vpn-instance-vpn1] route-distinguisher 200:1
[PE2-vpn-instance-vpn1] vpn-target 111:1
[PE2-vpn-instance-vpn1] quit
[PE2] ip vpn-instance vpn2
[PE2-vpn-instance-vpn2] route-distinguisher 200:2
[PE2-vpn-instance-vpn2] vpn-target 222:2
[PE2-vpn-instance-vpn2] quit
[PE2] interface GigabitEthernet 3/0/1
[PE2-GigabitEthernet3/0/1] ip binding vpn-instance vpn1
[PE2-GigabitEthernet3/0/1] ipv6 address 2001:3::2 96
[PE2-GigabitEthernet3/0/1] quit
[PE2] interface GigabitEthernet 3/0/2
[PE2-GigabitEthernet3/0/2] ip binding vpn-instance vpn2
[PE2-GigabitEthernet3/0/2] ipv6 address 2001:4::2 96
[PE2-GigabitEthernet3/0/2] quit
配置完成后,在PE设备上执行display ip vpn-instance命令可以看到VPN实例的配置情况。各PE能ping通自己接入的CE。
以PE 1和CE 1为例:
Total VPN-Instances configured : 2
VPN-Instance Name RD Create time
vpn1 100:1 2012/02/13 12:49:08
vpn2 100:2 2012/02/13 12:49:20
[PE1] ping ipv6 -vpn-instance vpn1 2001:1::1
Ping6(56 bytes) 2001:1::2 --> 2001:1::1, press CTRL_C to break
56 bytes from 2001:1::1, icmp_seq=0 hlim=64 time=9.000 ms
56 bytes from 2001:1::1, icmp_seq=1 hlim=64 time=1.000 ms
56 bytes from 2001:1::1, icmp_seq=2 hlim=64 time=0.000 ms
56 bytes from 2001:1::1, icmp_seq=3 hlim=64 time=0.000 ms
56 bytes from 2001:1::1, icmp_seq=4 hlim=64 time=0.000 ms
--- Ping6 statistics for 2001:1::1 ---
5 packet(s) transmitted, 5 packet(s) received, 0.0% packet loss
round-trip min/avg/max/std-dev = 0.000/2.000/9.000/3.521 ms
(4) 在PE与CE之间建立EBGP对等体,引入VPN路由
# 配置CE 1。
[CE1] bgp 65410
[CE1-bgp] peer 2001:1::2 as-number 100
[CE1-bgp] address-family ipv6 unicast
[CE1-bgp-ipv6] peer 2001:1::2 enable
[CE1-bgp-ipv6] import-route direct
[CE1-bgp-ipv6] quit
[CE1-bgp] quit
# 另外3个CE设备(CE 2~CE 4)配置与CE 1设备配置类似,配置过程省略。
# 配置PE 1。
[PE1-bgp] ip vpn-instance vpn1
[PE1-bgp-vpn1] peer 2001:1::1 as-number 65410
[PE1-bgp-vpn1] address-family ipv6 unicast
[PE1-bgp-ipv6-vpn1] peer 2001:1::1 enable
[PE1-bgp-ipv6-vpn1] import-route direct
[PE1-bgp-ipv6-vpn1] quit
[PE1-bgp-vpn1] quit
[PE1-bgp] ip vpn-instance vpn2
[PE1-bgp-vpn2] peer 2001:2::1 as-number 65420
[PE1-bgp-vpn2] address-family ipv6 unicast
[PE1-bgp-ipv6-vpn2] peer 2001:2::1 enable
[PE1-bgp-ipv6-vpn2] import-route direct
[PE1-bgp-ipv6-vpn2] quit
[PE1-bgp-vpn2] quit
[PE1-bgp] quit
# PE 2的配置与PE 1类似,配置过程省略。
配置完成后,在PE设备上执行display bgp peer ipv6 vpn-instance命令,可以看到PE与CE之间的BGP对等体关系已建立,并达到Established状态。
(5) 在PE之间建立MP-IBGP对等体
# 配置PE 1。
[PE1-bgp] peer 3.3.3.9 as-number 100
[PE1-bgp] peer 3.3.3.9 connect-interface loopback 0
[PE1-bgp] address-family vpnv6
[PE1-bgp-vpnv6] peer 3.3.3.9 enable
[PE1-bgp-vpnv6] quit
[PE1-bgp] quit
# 配置PE 2。
[PE2-bgp] peer 1.1.1.9 as-number 100
[PE2-bgp] peer 1.1.1.9 connect-interface loopback 0
[PE2-bgp] address-family vpnv6
[PE2-bgp-vpnv6] peer 1.1.1.9 enable
[PE2-bgp-vpnv6] quit
[PE2-bgp] quit
配置完成后,在PE设备上执行display bgp peer vpnv6命令,可以看到PE之间的BGP对等体关系已建立,并达到Established状态。
# 在PE设备上执行display ipv6 routing-table vpn-instance命令,可以看到去往对端CE的路由。
以PE 1为例:
[PE1] display ipv6 routing-table vpn-instance vpn1
Destinations : 6 Routes : 6
Destination: ::1/128 Protocol : Direct
NextHop : ::1 Preference: 0
Interface : InLoop0 Cost : 0
Destination: 2001:1::/96 Protocol : Direct
NextHop : :: Preference: 0
Interface : GE3/0/1 Cost : 0
Destination: 2001:1::2/128 Protocol : Direct
NextHop : ::1 Preference: 0
Interface : InLoop0 Cost : 0
Destination: 2001:3::/96 Protocol : BGP4+
NextHop : ::FFFF:3.3.3.9 Preference: 255
Interface : GE2/0/1 Cost : 0
Destination: FE80::/10 Protocol : Direct
NextHop : :: Preference: 0
Interface : NULL0 Cost : 0
Destination: FF00::/8 Protocol : Direct
NextHop : :: Preference: 0
Interface : NULL0 Cost : 0
[PE1] display ipv6 routing-table vpn-instance vpn2
Destinations : 6 Routes : 6
Destination: ::1/128 Protocol : Direct
NextHop : ::1 Preference: 0
Interface : InLoop0 Cost : 0
Destination: 2001:2::/96 Protocol : Direct
NextHop : :: Preference: 0
Interface : GE3/0/2 Cost : 0
Destination: 2001:2::2/128 Protocol : Direct
NextHop : ::1 Preference: 0
Interface : InLoop0 Cost : 0
Destination: 2001:4::/96 Protocol : BGP4+
NextHop : ::FFFF:3.3.3.9 Preference: 255
Interface : GE2/0/1 Cost : 0
Destination: FE80::/10 Protocol : Direct
NextHop : :: Preference: 0
Interface : NULL0 Cost : 0
Destination: FF00::/8 Protocol : Direct
NextHop : :: Preference: 0
Interface : NULL0 Cost : 0
# 同一VPN的CE能够相互Ping通,不同VPN的CE不能相互Ping通。例如:CE 1能够Ping通CE 3(2001:3::1),但不能Ping通CE 4(2001:4::1)。
· CE 1和CE 2属于同一个VPN。
· CE 1通过AS100的PE 1接入,CE 2通过AS200的PE 2接入。
· 采用OptionA方式实现跨域的IPv6 MPLS L3VPN,即采用VRF-to-VRF方式管理VPN路由。
· 同一个AS内部的MPLS骨干网使用OSPF作为IGP。
图2-4 配置跨域VPN-OptionA方式组网图
IP地址 |
IP地址 |
||||
|
|
||||
|
GE2/0/1 |
|
GE2/0/1 |
||
|
GE2/0/1 |
|
GE2/0/1 |
||
|
GE2/0/2 |
|
GE2/0/2 |
(1) 在MPLS骨干网上配置IGP协议,实现骨干网内互通
本例中采用OSPF发布接口(包括Loopback接口)所在网段的路由,具体配置步骤略。
配置完成后,ASBR-PE与本AS的PE之间应能建立OSPF邻居,执行display ospf peer命令可以看到邻居达到FULL状态,ASBR-PE与本AS的PE之间能学习到对方的Loopback地址。
ASBR-PE与本AS的PE之间能够互相ping通。
(2) 在MPLS骨干网上配置MPLS基本能力和MPLS LDP,建立LDP LSP
# 配置PE 1的MPLS基本能力,并在与ASBR-PE 1相连的接口上使能LDP。
[PE1] mpls lsr-id 1.1.1.9
[PE1] mpls ldp
[PE1-ldp] quit
[PE1] interface GigabitEthernet 2/0/1
[PE1-GigabitEthernet2/0/1] mpls enable
[PE1-GigabitEthernet2/0/1] mpls ldp enable
[PE1-GigabitEthernet2/0/1] quit
# 配置ASBR-PE 1的MPLS基本能力,并在与PE 1相连的接口上使能LDP。
[ASBR-PE1] mpls lsr-id 2.2.2.9
[ASBR-PE1] mpls ldp
[ASBR-PE1-ldp] quit
[ASBR-PE1] interface GigabitEthernet 2/0/1
[ASBR-PE1-GigabitEthernet2/0/1] mpls enable
[ASBR-PE1-GigabitEthernet2/0/1] mpls ldp enable
[ASBR-PE1-GigabitEthernet2/0/1] quit
# 配置ASBR-PE 2的MPLS基本能力,并在与PE 2相连的接口上使能LDP。
[ASBR-PE2] mpls lsr-id 3.3.3.9
[ASBR-PE2] mpls ldp
[ASBR-PE2-ldp] quit
[ASBR-PE2] interface GigabitEthernet 2/0/1
[ASBR-PE2-GigabitEthernet2/0/1] mpls enable
[ASBR-PE2-GigabitEthernet2/0/1] mpls ldp enable
[ASBR-PE2-GigabitEthernet2/0/1] quit
# 配置PE 2的MPLS基本能力,并在与ASBR-PE 2相连的接口上使能LDP。
[PE2] mpls lsr-id 4.4.4.9
[PE2] mpls ldp
[PE2-ldp] quit
[PE2] interface GigabitEthernet 2/0/1
[PE2-GigabitEthernet2/0/1] mpls enable
[PE2-GigabitEthernet2/0/1] mpls ldp enable
[PE2-GigabitEthernet2/0/1] quit
上述配置完成后,同一AS的PE和ASBR-PE之间应该建立起LDP邻居,在各设备上执行display mpls ldp peer命令可以看到LDP会话状态为“Operational”。
(3) 在PE设备上配置VPN实例,将CE接入PE
同一AS内的ASBR-PE与PE的VPN实例的VPN Target应能匹配,不同AS的PE的VPN实例的VPN Target则不需要匹配。
# 配置CE 1。
[CE1] interface GigabitEthernet 3/0/1
[CE1-GigabitEthernet3/0/1] ipv6 address 2001:1::1 96
[CE1-GigabitEthernet3/0/1] quit
# 配置PE 1。
[PE1-vpn-instance-vpn1] route-distinguisher 100:1
[PE1-vpn-instance-vpn1] vpn-target 100:1 both
[PE1-vpn-instance-vpn1] quit
[PE1] interface GigabitEthernet 3/0/1
[PE1-GigabitEthernet3/0/1] ip binding vpn-instance vpn1
[PE1-GigabitEthernet3/0/1] ipv6 address 2001:1::2 96
[PE1-GigabitEthernet3/0/1] quit
# 配置CE 2。
[CE2] interface GigabitEthernet 3/0/1
[CE2-GigabitEthernet3/0/1] ipv6 address 2001:2::1 96
[CE2-GigabitEthernet3/0/1] quit
# 配置PE 2。
[PE2-vpn-instance-vpn1] route-distinguisher 200:2
[PE2-vpn-instance-vpn1] vpn-target 200:1 both
[PE2-vpn-instance-vpn1] quit
[PE2] interface GigabitEthernet 3/0/1
[PE2-GigabitEthernet3/0/1] ip binding vpn-instance vpn1
[PE2-GigabitEthernet3/0/1] ipv6 address 2001:2::2 96
[PE2-GigabitEthernet3/0/1] quit
# 配置ASBR-PE 1:创建VPN实例,并将此实例绑定到连接ASBR-PE 2的接口(ASBR-PE 1认为ASBR-PE 2是自己的CE)。
[ASBR-PE1] ip vpn-instance vpn1
[ASBR-PE1-vpn-vpn1] route-distinguisher 100:1
[ASBR-PE1-vpn-vpn1] vpn-target 100:1 both
[ASBR-PE1-vpn-vpn1] quit
[ASBR-PE1] interface GigabitEthernet 2/0/2
[ASBR-PE1-GigabitEthernet2/0/2] ip binding vpn-instance vpn1
[ASBR-PE1-GigabitEthernet2/0/2] ipv6 address 2002:1::1 96
[ASBR-PE1-GigabitEthernet2/0/2] quit
# 配置ASBR-PE 2:创建VPN实例,并将此实例绑定到连接ASBR-PE 1的接口(ASBR-PE 2认为ASBR-PE 1是自己的CE)。
[ASBR-PE2] ip vpn-instance vpn1
[ASBR-PE2-vpn-vpn1] route-distinguisher 200:1
[ASBR-PE2-vpn-vpn1] vpn-target 200:1 both
[ASBR-PE2-vpn-vpn1] quit
[ASBR-PE2] interface GigabitEthernet 2/0/2
[ASBR-PE2-GigabitEthernet2/0/2] ip binding vpn-instance vpn1
[ASBR-PE2-GigabitEthernet2/0/2] ipv6 address 2002:1::2 96
[ASBR-PE2-GigabitEthernet2/0/2] quit
上述配置完成后,在各PE设备上执行display ip vpn-instance命令能正确显示VPN实例配置。
各PE能ping通各自的CE。ASBR-PE之间也能互相ping通。
(4) 在PE与CE之间建立EBGP对等体,引入VPN路由
# 配置CE 1。
[CE1-bgp] peer 2001:1::2 as-number 100
[CE1-bgp] address-family ipv6 unicast
[CE1-bgp-ipv6] peer 2001:1::2 enable
[CE1-bgp-ipv6] import-route direct
[CE1-bgp-ipv6] quit
[CE1-bgp] quit
# 配置PE 1。
[PE1-bgp] ip vpn-instance vpn1
[PE1-bgp-vpn1] peer 2001:1::1 as-number 65001
[PE1-bgp-vpn1] address-family ipv6 unicast
[PE1-bgp-ipv6-vpn1] peer 2001:1::1 enable
[PE1-bgp-ipv6-vpn1] quit
[PE1-bgp-vpn1] quit
[PE1-bgp] quit
# 配置CE 2。
[CE2-bgp] peer 2001:2::2 as-number 200
[CE2-bgp] address-family ipv6
[CE2-bgp-ipv6] peer 2001:2::2 enable
[CE2-bgp-ipv6] import-route direct
[CE2-bgp-ipv6] quit
[CE2-bgp] quit
# 配置PE 2。
[PE2-bgp] ip vpn-instance vpn1
[PE2-bgp-vpn1] peer 2001:2::1 as-number 65002
[PE2-bgp-vpn1] address-family ipv6 unicast
[PE2-bgp-ipv6-vpn1] peer 2001:2::1 enable
[PE2-bgp-ipv6-vpn1] quit
[PE2-bgp-vpn1] quit
[PE2-bgp] quit
(5) PE与本AS的ASBR-PE之间建立IBGP对等体,ASBR-PE之间建立EBGP对等体
# 配置PE 1。
[PE1-bgp] peer 2.2.2.9 as-number 100
[PE1-bgp] peer 2.2.2.9 connect-interface loopback 0
[PE1-bgp] address-family vpnv6
[PE1-bgp-vpnv6] peer 2.2.2.9 enable
[PE1-bgp-vpnv6] quit
[PE1-bgp] quit
# 配置ASBR-PE 1。
[ASBR-PE1-bgp] ip vpn-instance vpn1
[ASBR-PE1-bgp-vpn1] peer 2002:1::2 as-number 200
[ASBR-PE1-bgp-vpn1] address-family ipv6 unicast
[ASBR-PE1-bgp-ipv6-vpn1] peer 2002:1::2 enable
[ASBR-PE1-bgp-ipv6-vpn1] quit
[ASBR-PE1-bgp-vpn1] quit
[ASBR-PE1-bgp] peer 1.1.1.9 as-number 100
[ASBR-PE1-bgp] peer 1.1.1.9 connect-interface loopback 0
[ASBR-PE1-bgp] address-family vpnv6
[ASBR-PE1-bgp-vpnv6] peer 1.1.1.9 enable
[ASBR-PE1-bgp-vpnv6] quit
[ASBR-PE1-bgp] quit
# 配置ASBR-PE 2。
[ASBR-PE2-bgp] ip vpn-instance vpn1
[ASBR-PE2-bgp-vpn1] peer 2002:1::1 as-number 100
[ASBR-PE2-bgp-vpn1] address-family ipv6 unicast
[ASBR-PE2-bgp-ipv6-vpn1] peer 2002:1::1 enable
[ASBR-PE2-bgp-ipv6-vpn1] quit
[ASBR-PE2-bgp-vpn1] quit
[ASBR-PE2-bgp] peer 4.4.4.9 as-number 200
[ASBR-PE2-bgp] peer 4.4.4.9 connect-interface loopback 0
[ASBR-PE2-bgp] address-family vpnv6
[ASBR-PE2-bgp-vpnv6] peer 4.4.4.9 enable
[ASBR-PE2-bgp-vpnv6] quit
[ASBR-PE2-bgp] quit
# 配置PE 2。
[PE2-bgp] peer 3.3.3.9 as-number 200
[PE2-bgp] peer 3.3.3.9 connect-interface loopback 0
[PE2-bgp] address-family vpnv6
[PE2-bgp-vpnv6] peer 3.3.3.9 enable
[PE2-bgp-vpnv6] quit
[PE2-bgp] quit
上述配置完成后,CE之间能学习到对方的接口路由,CE 1和CE 2能够相互ping通。
· Site 1和Site 2属于同一个VPN,Site 1通过AS 100的PE 1接入,Site 2通过AS 600的PE 2接入;
· 同一自治系统内的PE设备之间运行IS-IS作为IGP;
· PE 1与ASBR-PE 1间通过IBGP交换带标签的IPv4路由;
· PE 2与ASBR-PE 2间通过IBGP交换带标签的IPv4路由;
· PE 1与PE 2建立MP-EBGP对等体交换VPNv6路由;
· ASBR-PE 1和ASBR-PE 2上分别配置路由策略,对从对方接收的路由压入标签;
· ASBR-PE 1与ASBR-PE 2间通过EBGP交换带标签的IPv4路由。
图2-5 IPv6跨域VPN-OptionC方式组网图
IP地址 |
IP地址 |
||||
|
2001::1/64 |
|
2002::1/64 |
||
|
GE2/0/1 |
|
GE2/0/1 |
||
|
GE2/0/1 |
|
GE2/0/1 |
||
|
GE2/0/2 |
|
GE2/0/2 |
||
CE 1 |
GE3/0/1 |
2001::2/64 |
CE 1 |
GE3/0/1 |
2002::2/64 |
(1) 配置CE 1
# 配置接口GigabitEthernet3/0/1的IPv6地址。
<CE1> system-view
[CE1] interface GigabitEthernet 3/0/1
[CE1-GigabitEthernet3/0/1] ipv6 address 2001::2 64
[CE1-GigabitEthernet3/0/1] quit
# 配置CE 1与PE 1建立EBGP对等体,并引入VPN路由。
[CE1] bgp 65001
[CE1-bgp] peer 2001::1 as-number 100
[CE1-bgp] address-family ipv6 unicast
[CE1-bgp-ipv6] peer 2001::1 enable
[CE1-bgp-ipv6] import-route direct
[CE1-bgp-ipv6] quit
[CE1-bgp] quit
# 在PE 1上运行IS-IS。
[PE1] isis 1
[PE1-isis-1] network-entity 10.111.111.111.111.00
[PE1-isis-1] quit
# 配置LSR ID,使能MPLS和LDP。
[PE1] mpls ldp
[PE1-ldp] quit
# 配置接口GigabitEthernet2/0/1,在接口上运行IS-IS,并使能MPLS和LDP。
[PE1] interface GigabitEthernet 2/0/1
[PE1-GigabitEthernet2/0/1] ip address 1.1.1.2 255.0.0.0
[PE1-GigabitEthernet2/0/1] isis enable 1
[PE1-GigabitEthernet2/0/1] mpls enable
[PE1-GigabitEthernet2/0/1] mpls ldp enable
[PE1-GigabitEthernet2/0/1] quit
# 创建Loopback0接口,在接口上运行IS-IS。
[PE1-LoopBack0] ip address 2.2.2.9 32
[PE1-LoopBack0] isis enable 1
[PE1-LoopBack0] quit
# 创建VPN实例,名称为vpn1,为其配置RD和VPN Target属性。
[PE1-vpn-instance-vpn1] route-distinguisher 11:11
[PE1-vpn-instance-vpn1] vpn-target 3:3 import-extcommunity
[PE1-vpn-instance-vpn1] vpn-target 3:3 export-extcommunity
[PE1-vpn-instance-vpn1] quit
# 配置接口GigabitEthernet3/0/1与VPN实例vpn1绑定,并配置该接口的IPv6地址。
[PE1] interface GigabitEthernet 3/0/1
[PE1-GigabitEthernet3/0/1] ip binding vpn-instance vpn1
[PE1-GigabitEthernet3/0/1] ipv6 address 2001::1 64
[PE1-GigabitEthernet3/0/1] quit
# 在PE 1上运行BGP。
# 配置PE 1向IBGP对等体3.3.3.9发布标签路由及从3.3.3.9接收标签路由的能力。
[PE1-bgp] peer 3.3.3.9 as-number 100
[PE1-bgp] peer 3.3.3.9 connect-interface loopback 0
[PE1-bgp] address-family ipv4 unicast
[PE1-bgp-ipv4] peer 3.3.3.9 enable
[PE1-bgp-ipv4] peer 3.3.3.9 label-route-capability
[PE1-bgp-ipv4] quit
# 配置PE 1到EBGP对等体5.5.5.9的最大跳数为10。
[PE1-bgp] peer 5.5.5.9 as-number 600
[PE1-bgp] peer 5.5.5.9 connect-interface loopback 0
[PE1-bgp] peer 5.5.5.9 ebgp-max-hop 10
# 配置对等体5.5.5.9作为VPNv6对等体。
[PE1-bgp] address-family vpnv6
[PE1-bgp-vpnv6] peer 5.5.5.9 enable
[PE1-bgp-vpnv6] quit
# 配置PE 1与CE 1建立EBGP对等体,将学习到的BGP路由添加到VPN实例的路由表中。
[PE1-bgp] ip vpn-instance vpn1
[PE1-bgp-vpn1] peer 2001::2 as-number 65001
[PE1-bgp-vpn1] address-family ipv6 unicast
[PE1-bgp-ipv6-vpn1] peer 2001::2 enable
[PE1-bgp-ipv6-vpn1] quit
[PE1-bgp-vpn1] quit
[PE1-bgp] quit
# 在ASBR-PE1上运行IS-IS。
[ASBR-PE1] isis 1
[ASBR-PE1-isis-1] network-entity 10.222.222.222.222.00
[ASBR-PE1-isis-1] quit
# 配置LSR ID,使能MPLS和LDP。
[ASBR-PE1] mpls lsr-id 3.3.3.9
[ASBR-PE1] mpls ldp
[ASBR-PE1-ldp] quit
# 配置接口GigabitEthernet2/0/1,在接口上运行IS-IS,并使能MPLS和LDP。
[ASBR-PE1] interface GigabitEthernet 2/0/1
[ASBR-PE1-GigabitEthernet2/0/1] ip address 1.1.1.1 255.0.0.0
[ASBR-PE1-GigabitEthernet2/0/1] isis enable 1
[ASBR-PE1-GigabitEthernet2/0/1] mpls enable
[ASBR-PE1-GigabitEthernet2/0/1] mpls ldp enable
[ASBR-PE1-GigabitEthernet2/0/1] quit
# 配置接口GigabitEthernet2/0/2,并在接口上使能MPLS。
[ASBR-PE1] interface GigabitEthernet 2/0/2
[ASBR-PE1-GigabitEthernet2/0/2] ip address 11.0.0.2 255.0.0.0
[ASBR-PE1-GigabitEthernet2/0/2] mpls
[ASBR-PE1-GigabitEthernet2/0/2] quit
# 创建Loopback0接口,在接口上运行IS-IS。
[ASBR-PE1] interface loopback 0
[ASBR-PE1-LoopBack0] ip address 3.3.3.9 32
[ASBR-PE1-LoopBack0] isis enable 1
[ASBR-PE1-LoopBack0] quit
# 创建路由策略。
[ASBR-PE1] route-policy policy1 permit node 1
[ASBR-PE1-route-policy-policy1-1] apply mpls-label
[ASBR-PE1-route-policy-policy1-1] quit
[ASBR-PE1] route-policy policy2 permit node 1
[ASBR-PE1-route-policy-policy2-1] if-match mpls-label
[ASBR-PE1-route-policy-policy2-1] apply mpls-label
[ASBR-PE1-route-policy-policy2-1] quit
# 在ASBR-PE 1上运行BGP,对向IBGP对等体2.2.2.9发布的路由应用已配置的路由策略policy2。
[ASBR-PE1-bgp] peer 2.2.2.9 as-number 100
[ASBR-PE1-bgp] peer 2.2.2.9 connect-interface loopback 0
[ASBR-PE1-bgp] address-family ipv4 unicast
[ASBR-PE1-bgp-ipv4] peer 2.2.2.9 enable
[ASBR-PE1-bgp-ipv4] peer 2.2.2.9 route-policy policy2 export
# 向IBGP对等体2.2.2.9发布标签路由及从2.2.2.9接收标签路由的能力。
[ASBR-PE1-bgp-ipv4] peer 2.2.2.9 label-route-capability
# 引入IS-IS进程1的路由。
[ASBR-PE1-bgp-ipv4] import-route isis 1
[ASBR-PE1-bgp-ipv4] quit
# 对向EBGP对等体11.0.0.1发布的路由应用已配置的路由策略policy1。
[ASBR-PE1-bgp] peer 11.0.0.1 as-number 600
[ASBR-PE1-bgp] address-family ipv4 unicast
[ASBR-PE1-bgp-ipv4] peer 11.0.0.1 enable
[ASBR-PE1-bgp-ipv4] peer 11.0.0.1 route-policy policy1 export
# 向EBGP对等体11.0.0.1发布标签路由及从11.0.0.1接收标签路由的能力。
[ASBR-PE1-bgp-ipv4] peer 11.0.0.1 label-route-capability
[ASBR-PE1-bgp-ipv4] quit
[ASBR-PE1-bgp] quit
# 在ASBR-PE 2上运行IS-IS。
[ASBR-PE2] isis 1
[ASBR-PE2-isis-1] network-entity 10.333.333.333.333.00
[ASBR-PE2-isis-1] quit
# 配置LSR ID,使能MPLS和LDP。
[ASBR-PE2] mpls lsr-id 4.4.4.9
[ASBR-PE2] mpls ldp
[ASBR-PE2-ldp] quit
# 配置接口GigabitEthernet2/0/1,在接口上运行IS-IS,并在接口上使能MPLS和LDP。
[ASBR-PE2] interface GigabitEthernet 2/0/1
[ASBR-PE2-GigabitEthernet2/0/1] ip address 9.1.1.1 255.0.0.0
[ASBR-PE2-GigabitEthernet2/0/1] isis enable 1
[ASBR-PE2-GigabitEthernet2/0/1] mpls enable
[ASBR-PE2-GigabitEthernet2/0/1] mpls ldp enable
[ASBR-PE2-GigabitEthernet2/0/1] quit
# 创建Loopback0接口,在接口上运行IS-IS。
[ASBR-PE2] interface loopback 0
[ASBR-PE2-LoopBack0] ip address 4.4.4.9 32
[ASBR-PE2-LoopBack0] isis enable 1
[ASBR-PE2-LoopBack0] quit
# 配置接口GigabitEthernet2/0/2,在接口上使能MPLS。
[ASBR-PE2] interface GigabitEthernet 2/0/2
[ASBR-PE2-GigabitEthernet2/0/2] ip address 11.0.0.1 255.0.0.0
[ASBR-PE2-GigabitEthernet2/0/2] mpls enable
[ASBR-PE2-GigabitEthernet2/0/2] quit
# 创建路由策略。
[ASBR-PE2] route-policy policy1 permit node 1
[ASBR-PE2-route-policy-policy1-1] apply mpls-label
[ASBR-PE2-route-policy-policy1-1] quit
[ASBR-PE2] route-policy policy2 permit node 1
[ASBR-PE2-route-policy-policy2-1] if-match mpls-label
[ASBR-PE2-route-policy-policy2-1] apply mpls-label
[ASBR-PE2-route-policy-policy2-1] quit
# 在ASBR-PE 2上运行BGP,向IBGP对等体5.5.5.9发布标签路由及从5.5.5.9接收标签路由的能力。
[ASBR-PE2-bgp] peer 5.5.5.9 as-number 600
[ASBR-PE2-bgp] peer 5.5.5.9 connect-interface loopback 0
[ASBR-PE2-bgp] address-family ipv4 unicast
[ASBR-PE2-bgp-ipv4] peer 5.5.5.9 enable
[ASBR-PE2-bgp-ipv4] peer 5.5.5.9 label-route-capability
# 对向IBGP对等体5.5.5.9发布的路由应用已配置的路由策略policy2。
[ASBR-PE2-bgp-ipv4] peer 5.5.5.9 route-policy policy2 export
# 引入IS-IS进程1的路由。
[ASBR-PE2-bgp-ipv4] import-route isis 1
[ASBR-PE2-bgp-ipv4] quit
# 对向EBGP对等体11.0.0.2发布的路由应用已配置的路由策略policy1。
[ASBR-PE2-bgp] peer 11.0.0.2 as-number 100
[ASBR-PE2-bgp] address-family ipv4 unicast
[ASBR-PE2-bgp-ipv4] peer 11.0.0.2 enable
[ASBR-PE2-bgp-ipv4] peer 11.0.0.2 route-policy policy1 export
# 向EBGP对等体11.0.0.2发布标签路由及从11.0.0.2接收标签路由的能力。
[ASBR-PE2-bgp-ipv4] peer 11.0.0.2 label-route-capability
[ASBR-PE2-bgp-ipv4] quit
[ASBR-PE2-bgp] quit
# 在PE 2上运行IS-IS。
[PE2] isis 1
[PE2-isis-1] network-entity 10.444.444.444.444.00
[PE2-isis-1] quit
# 配置LSR ID,使能MPLS和LDP。
[PE2] mpls ldp
[PE2-ldp] quit
# 配置接口GigabitEthernet2/0/1,在接口上运行IS-IS,并使能MPLS和LDP。
[PE2] interface GigabitEthernet 2/0/1
[PE2-GigabitEthernet2/0/1] ip address 9.1.1.2 255.0.0.0
[PE2-GigabitEthernet2/0/1] isis enable 1
[PE2-GigabitEthernet2/0/1] mpls enable
[PE2-GigabitEthernet2/0/1] mpls ldp enable
[PE2-GigabitEthernet2/0/1] quit
# 创建Loopback0接口,在接口上运行IS-IS。
[PE2-LoopBack0] ip address 5.5.5.9 32
[PE2-LoopBack0] isis enable 1
[PE2-LoopBack0] quit
# 创建VPN实例,名称为vpn1,为其配置RD和VPN Target属性。
[PE2-vpn-instance-vpn1] route-distinguisher 11:11
[PE2-vpn-instance-vpn1] vpn-target 3:3 import-extcommunity
[PE2-vpn-instance-vpn1] vpn-target 3:3 export-extcommunity
[PE2-vpn-instance-vpn1] quit
# 配置接口GigabitEthernet3/0/1与VPN实例vpn1绑定,并配置该接口的IPv6地址。
[PE2] interface GigabitEthernet 3/0/1
[PE2-GigabitEthernet3/0/1] ip binding vpn-instance vpn1
[PE2-GigabitEthernet3/0/1] ipv6 address 2002::1 64
[PE2-GigabitEthernet3/0/1] quit
# 在PE 2上运行BGP。
# 配置PE 2向IBGP对等体4.4.4.9发布标签路由及从4.4.4.9接收标签路由的能力。
[PE2-bgp] peer 4.4.4.9 as-number 600
[PE2-bgp] peer 4.4.4.9 connect-interface loopback 0
[PE2-bgp] address-family ipv4 unicast
[PE2-bgp-ipv4] peer 4.4.4.9 enable
[PE2-bgp-ipv4] peer 4.4.4.9 label-route-capability
[PE2-bgp-ipv4] quit
# 配置PE 2到EBGP对等体2.2.2.9的最大跳数为10。
[PE2-bgp] peer 2.2.2.9 as-number 100
[PE2-bgp] peer 2.2.2.9 connect-interface loopback 0
[PE2-bgp] peer 2.2.2.9 ebgp-max-hop 10
# 配置对等体2.2.2.9作为VPNv6对等体。
[PE2-bgp] address-family vpnv6
[PE2-bgp-vpnv6] peer 2.2.2.9 enable
[PE2-bgp-vpnv6] quit
# 配置PE 2与CE 2建立EBGP对等体,将学习到的BGP路由添加到VPN实例的路由表中。
[PE2-bgp] ip vpn-instance vpn1
[PE2-bgp-vpn1] peer 2002::2 as-number 65002
[PE2-bgp-vpn1] address-family ipv6 unicast
[PE2-bgp-ipv6-vpn1] peer 2002::2 enable
[PE2-bgp-ipv6-vpn1] quit
[PE2-bgp-vpn1] quit
[PE2-bgp] quit
(6) 配置CE 2
# 配置接口GigabitEthernet3/0/1的IPv6地址。
<CE2> system-view
[CE2] interface GigabitEthernet 3/0/1
[CE2-GigabitEthernet3/0/1] ipv6 address 2002::2 64
[CE2-GigabitEthernet3/0/1] quit
# 配置CE 2与PE 2建立EBGP对等体,并引入VPN路由。
[CE2] bgp 65002
[CE2-bgp] peer 2002::1 as-number 600
[CE2-bgp] address-family ipv6 unicast
[CE2-bgp-ipv6] peer 2002::1 enable
[CE2-bgp-ipv6] import-route direct
[CE2-bgp-ipv6] quit
[CE2-bgp] quit
# 配置完成后,在CE 1和CE 2上执行display ipv6 routing-table命令可以查看到到达对方的路由,且CE 1和CE 2互相可以ping通。
在图2-6中:
· PE 1和PE 2是一级运营商骨干网的PE设备,为二级运营商提供VPN服务;
· CE 1和CE 2是同一个二级运营商的设备,作为CE接入一级运营商的骨干网;
· PE 3和PE 4是二级运营商的PE设备,为二级运营商的客户提供IPv6 MPLS L3VPN服务;
· CE 3和CE 4是二级运营商的客户。
配置运营商的运营商关键在于配置两类路由的交换:
· 二级运营商VPN内部路由在一级运营商骨干网上的交换:一级运营商将二级运营商作为自己的CE接入;
· 二级运营商本身客户的VPN路由在二级运营商PE设备间的交换:需要在二级运营商PE设备(PE 3和PE 4)间建立MP-IBGP对等体关系。
图2-6 配置Carriers’ carriers组网图
IP地址 |
IP地址 |
||||
|
|
||||
|
GE2/0/2 |
|
GE2/0/2 |
||
|
GE2/0/1 |
|
GE2/0/1 |
||
|
GE2/0/2 |
|
GE2/0/2 |
||
|
GE2/0/1 |
|
GE2/0/1 |
||
|
GE2/0/2 |
|
GE2/0/2 |
(1) 配置一级运营商骨干网的MPLS L3VPN,使用IS-IS作为骨干网的IGP协议,PE 1和PE 2之间使能LDP,并建立MP-IBGP对等体关系
# 配置PE 1。
[PE1] interface loopback 0
[PE1-LoopBack0] ip address 3.3.3.9 32
[PE1-LoopBack0] quit
[PE1] mpls lsr-id 3.3.3.9
[PE1] mpls ldp
[PE1-ldp] quit
[PE1] isis 1
[PE1-isis-1] network-entity 10.0000.0000.0000.0004.00
[PE1-isis-1] quit
[PE1] interface loopback 0
[PE1-LoopBack0] isis enable 1
[PE1-LoopBack0] quit
[PE1] interface GigabitEthernet 2/0/2
[PE1-GigabitEthernet2/0/2] ip address 30.1.1.1 24
[PE1-GigabitEthernet2/0/2] isis enable 1
[PE1-GigabitEthernet2/0/2] mpls enable
[PE1-GigabitEthernet2/0/2] mpls ldp enable
[PE1-GigabitEthernet2/0/2] mpls ldp transport-address interface
[PE1-GigabitEthernet2/0/2] quit
[PE1] bgp 100
[PE1-bgp] peer 4.4.4.9 as-number 100
[PE1-bgp] peer 4.4.4.9 connect-interface loopback 0
[PE1-bgp] address-family vpnv4
[PE1-bgp-vpnv4] peer 4.4.4.9 enable
[PE1-bgp-vpnv4] quit
[PE1-bgp] quit
# PE 2的配置与PE 1类似,配置过程省略。
配置完成后,在PE 1或PE 2上执行display mpls ldp peer命令可以看到LDP会话建立成功;执行display bgp peer vpnv4命令可以看到BGP对等体关系已建立,并达到Established状态;执行display isis peer命令可以看到IS-IS邻居关系已建立,状态为up。
以PE 1为例:
Total number of peers: 1
Peer LDP ID State LAM Role GR MD5 KA Sent/Rcvd
4.4.4.9:0 Operational DU Active Off Off 8/8
[PE1] display bgp peer vpnv4
BGP local router ID: 3.3.3.9
Local AS number: 100
Total number of peers: 1 Peers in established state: 1
Peer AS MsgRcvd MsgSent OutQ PrefRcv Up/Down State
4.4.4.9 100 3 6 0 0 00:00:32 Established
[PE1] display isis peer
Peer information for ISIS(1)
----------------------------
System Id: 0000.0000.0005
Interface: GigabitEthernet2/0/2 Circuit Id: 0000.0000.0005.02
State: Up HoldTime: 8s Type: L1(L1L2) PRI: 64
System Id: 0000.0000.0005
Interface: GigabitEthernet2/0/2 Circuit Id: 0000.0000.0005.02
State: Up HoldTime: 8s Type: L2(L1L2) PRI: 64
(2) 配置二级运营商网络:使用IS-IS作为IGP协议,PE 3和CE 1、PE 4和CE 2之间分别使能LDP
# 配置PE 3。
[PE3] interface loopback 0
[PE3-LoopBack0] ip address 1.1.1.9 32
[PE3-LoopBack0] quit
[PE3] mpls lsr-id 1.1.1.9
[PE3] mpls ldp
[PE3-ldp] quit
[PE3] isis 2
[PE3-isis-2] network-entity 10.0000.0000.0000.0001.00
[PE3-isis-2] quit
[PE3] interface loopback 0
[PE3-LoopBack0] isis enable 2
[PE3-LoopBack0] quit
[PE3] interface GigabitEthernet 2/0/2
[PE3-GigabitEthernet2/0/2] ip address 10.1.1.1 24
[PE3-GigabitEthernet2/0/2] isis enable 2
[PE3-GigabitEthernet2/0/2] mpls enable
[PE3-GigabitEthernet2/0/2] mpls ldp enable
[PE3-GigabitEthernet2/0/2] mpls ldp transport-address interface
[PE3-GigabitEthernet2/0/2] quit
# 配置CE 1。
[CE1] interface loopback 0
[CE1-LoopBack0] ip address 2.2.2.9 32
[CE1-LoopBack0] quit
[CE1] mpls lsr-id 2.2.2.9
[CE1] mpls ldp
[CE1-ldp] quit
[CE1] isis 2
[CE1-isis-2] network-entity 10.0000.0000.0000.0002.00
[CE1-isis-2] quit
[CE1] interface loopback 0
[CE1-LoopBack0] isis enable 2
[CE1-LoopBack0] quit
[CE1] interface GigabitEthernet 2/0/1
[CE1-GigabitEthernet2/0/1] ip address 10.1.1.2 24
[CE1-GigabitEthernet2/0/1] isis enable 2
[CE1-GigabitEthernet2/0/1] mpls enable
[CE1-GigabitEthernet2/0/1] mpls ldp enable
[CE1-GigabitEthernet2/0/1] mpls ldp transport-address interface
[CE1-GigabitEthernet2/0/1] quit
配置完成后,PE 3和CE 1之间应能建立LDP和IS-IS邻居关系。
# PE 4和CE 2之间的配置与PE 3和CE 1之间的配置类似,配置过程省略。
(3) 配置二级运营商CE接入到一级运营商的PE
# 配置PE 1。
[PE1-vpn-instance-vpn1] route-distinguisher 200:1
[PE1-vpn-instance-vpn1] vpn-target 1:1
[PE1-vpn-instance-vpn1] quit
[PE1] mpls ldp
[PE1-ldp] vpn-instance vpn1
[PE1-ldp-vpn-instance-vpn1] quit
[PE1-ldp] quit
[PE1] isis 2 vpn-instance vpn1
[PE1-isis-2] network-entity 10.0000.0000.0000.0003.00
[PE1-isis-2] import-route bgp allow-ibgp
[PE1-isis-2] quit
[PE1] interface GigabitEthernet 2/0/1
[PE1-GigabitEthernet2/0/1] ip binding vpn-instance vpn1
[PE1-GigabitEthernet2/0/1] ip address 11.1.1.2 24
[PE1-GigabitEthernet2/0/1] isis enable 2
[PE1-GigabitEthernet2/0/1] mpls enable
[PE1-GigabitEthernet2/0/1] mpls ldp enable
[PE1-GigabitEthernet2/0/1] mpls ldp transport-address interface
[PE1-GigabitEthernet2/0/1] quit
[PE1] bgp 100
[PE1-bgp] ip vpn-instance vpn1
[PE1-bgp-vpn1] address-family ipv4 unicast
[PE1-bgp-ipv4-vpn1] import isis 2
[PE1-bgp-ipv4-vpn1] quit
[PE1-bgp-vpn1] quit
[PE1-bgp] quit
# 配置CE1。
[CE1] interface GigabitEthernet 2/0/2
[CE1-GigabitEthernet2/0/2] ip address 11.1.1.1 24
[CE1-GigabitEthernet2/0/2] isis enable 2
[CE1-GigabitEthernet2/0/2] mpls enable
[CE1-GigabitEthernet2/0/2] mpls ldp enable
[CE1-GigabitEthernet2/0/2] mpls ldp transport-address interface
[CE1-GigabitEthernet2/0/2] quit
配置完成后,PE 1和CE 1之间应能建立LDP和IS-IS邻居关系。
# PE 2和CE 2之间的配置与PE 1和CE 1之间的配置类似,配置过程省略。
# 配置CE 3。
[CE3] interface GigabitEthernet 3/0/1
[CE3-GigabitEthernet3/0/1] ipv6 address 2001:1::1 96
[CE3-GigabitEthernet3/0/1] quit
[CE3] bgp 65410
[CE3-bgp] peer 2001:1::2 as-number 100
[CE3-bgp] address-family ipv6
[CE3-bgp-ipv6] peer 2001:1::2 enable
[CE3-bgp-ipv6] import-route direct
[CE3-bgp-ipv6] quit
[CE3-bgp] quit
# 配置PE 3。
[PE3-vpn-instance-vpn1] route-distinguisher 100:1
[PE3-vpn-instance-vpn1] vpn-target 1:1
[PE3-vpn-instance-vpn1] quit
[PE3] interface GigabitEthernet 3/0/1
[PE3-GigabitEthernet3/0/1] ip binding vpn-instance vpn1
[PE3-GigabitEthernet3/0/1] ipv6 address 2001:1::2 96
[PE3-GigabitEthernet3/0/1] quit
[PE3] bgp 100
[PE3-bgp] ip vpn-instance vpn1
[PE3-bgp-vpn1] peer 2001:1::1 as-number 65410
[PE3-bgp-vpn1] address-family ipv6 unicast
[PE3-bgp-ipv6-vpn1] peer 2001:1::1 enable
[PE3-bgp-ipv6-vpn1] import-route direct
[PE3-bgp-ipv6-vpn1] quit
[PE3-bgp-vpn1] quit
[PE3-bgp] quit
# PE 4和CE 4之间的配置与PE 3和CE 3之间的配置类似,配置过程省略。
(5) 在二级运营商的PE之间建立MP-IBGP对等体关系,交换二级运营商的客户的VPN路由
# 配置PE 3。
[PE3-bgp] peer 6.6.6.9 as-number 100
[PE3-bgp] peer 6.6.6.9 connect-interface loopback 0
[PE3-bgp] address-family vpnv6
[PE3-bgp-vpnv6] peer 6.6.6.9 enable
[PE3-bgp-vpnv6] quit
[PE3-bgp] quit
# PE 4的配置与PE 3类似,配置过程省略。
# 在PE 1和PE 2上执行display ip routing-table命令,可以看到PE 1和PE 2的公网路由表中只有一级运营商网络的路由。以PE 1为例:
[PE1] display ip routing-table
Routing Tables: Public
Destinations : 7 Routes : 7
Destination/Mask Proto Pre Cost NextHop Interface
3.3.3.9/32 Direct 0 0 127.0.0.1 InLoop0
4.4.4.9/32 ISIS 15 10 30.1.1.2 GE2/0/2
30.1.1.0/24 Direct 0 0 30.1.1.1 GE2/0/2
30.1.1.1/32 Direct 0 0 127.0.0.1 InLoop0
30.1.1.2/32 Direct 0 0 30.1.1.2 GE2/0/2
127.0.0.0/8 Direct 0 0 127.0.0.1 InLoop0
127.0.0.1/32 Direct 0 0 127.0.0.1 InLoop0
# 在PE 1和PE 2上执行display ip routing-table vpn-instance命令,可以看到VPN路由表中有二级运营商网络的内部路由。以PE 1为例:
[PE1] display ip routing-table vpn-instance vpn1
Routing Tables: vpn1
Destinations : 11 Routes : 11
Destination/Mask Proto Pre Cost NextHop Interface
1.1.1.9/32 ISIS 15 20 11.1.1.1 GE2/0/1
2.2.2.9/32 ISIS 15 10 11.1.1.1 GE2/0/1
5.5.5.9/32 BGP 255 0 4.4.4.9 NULL0
6.6.6.9/32 BGP 255 0 4.4.4.9 NULL0
10.1.1.0/24 ISIS 15 20 11.1.1.1 GE2/0/1
11.1.1.0/24 Direct 0 0 11.1.1.1 GE2/0/1
11.1.1.1/32 Direct 0 0 127.0.0.1 InLoop0
11.1.1.2/32 Direct 0 0 11.1.1.2 GE2/0/1
20.1.1.0/24 BGP 255 0 4.4.4.9 NULL0
21.1.1.0/24 BGP 255 0 4.4.4.9 NULL0
21.1.1.2/32 BGP 255 0 4.4.4.9 NULL0
# 在CE 1和CE 2上执行display ip routing-table命令,可以看到公网路由表中有二级运营商网络的内部路由。以CE 1为例:
[CE1] display ip routing-table
Routing Tables: Public
Destinations : 16 Routes : 16
Destination/Mask Proto Pre Cost NextHop Interface
1.1.1.9/32 ISIS 15 10 10.1.1.2 GE2/0/1
2.2.2.9/32 Direct 0 0 127.0.0.1 InLoop0
5.5.5.9/32 ISIS 15 74 11.1.1.2 GE2/0/2
6.6.6.9/32 ISIS 15 74 11.1.1.2 GE2/0/2
10.1.1.0/24 Direct 0 0 10.1.1.2 GE2/0/1
10.1.1.1/32 Direct 0 0 10.1.1.1 GE2/0/1
10.1.1.2/32 Direct 0 0 127.0.0.1 InLoop0
11.1.1.0/24 Direct 0 0 11.1.1.1 GE2/0/2
11.1.1.1/32 Direct 0 0 127.0.0.1 InLoop0
11.1.1.2/32 Direct 0 0 11.1.1.2 GE2/0/2
20.1.1.0/24 ISIS 15 74 11.1.1.2 GE2/0/2
21.1.1.0/24 ISIS 15 74 11.1.1.2 GE2/0/2
21.1.1.2/32 ISIS 15 74 11.1.1.2 GE2/0/2
127.0.0.0/8 Direct 0 0 127.0.0.1 InLoop0
127.0.0.1/32 Direct 0 0 127.0.0.1 InLoop0
# 在PE 3和PE 4上执行display ip routing-table命令,可以看到公网路由表中有二级运营商网络的内部路由。以PE 3为例:
[PE3] display ip routing-table
Routing Tables: Public
Destinations : 11 Routes : 11
Destination/Mask Proto Pre Cost NextHop Interface
1.1.1.9/32 Direct 0 0 127.0.0.1 InLoop0
2.2.2.9/32 ISIS 15 10 10.1.1.2 GE2/0/2
5.5.5.9/32 ISIS 15 84 10.1.1.2 GE2/0/2
6.6.6.9/32 ISIS 15 84 10.1.1.2 GE2/0/2
10.1.1.0/24 Direct 0 0 10.1.1.1 GE2/0/2
10.1.1.1/32 Direct 0 0 127.0.0.1 InLoop0
10.1.1.2/32 Direct 0 0 10.1.1.2 GE2/0/2
11.1.1.0/24 ISIS 15 20 10.1.1.2 GE2/0/2
20.1.1.0/24 ISIS 15 84 10.1.1.2 GE2/0/2
21.1.1.0/24 ISIS 15 84 10.1.1.2 GE2/0/2
21.1.1.2/32 ISIS 15 84 10.1.1.2 GE2/0/2
127.0.0.0/8 Direct 0 0 127.0.0.1 InLoop0
127.0.0.1/32 Direct 0 0 127.0.0.1 InLoop0
# 在PE 3和PE 4上执行display ipv6 routing-table vpn-instance命令,可以看到VPN路由表中有对端VPN客户的路由。以PE 3为例:
[PE3] display ipv6 routing-table vpn-instance vpn1
Destinations : 6 Routes : 6
Destination: ::1/128 Protocol : Direct
NextHop : ::1 Preference: 0
Interface : InLoop0 Cost : 0
Destination: 2001:1::/96 Protocol : Direct
NextHop : :: Preference: 0
Interface : GE3/0/1 Cost : 0
Destination: 2001:1::2/128 Protocol : Direct
NextHop : ::1 Preference: 0
Interface : InLoop0 Cost : 0
Destination: 2001:2::/96 Protocol : BGP4+
NextHop : ::FFFF:606:609 Preference: 0
Interface : NULL0 Cost : 0
Destination: FE80::/10 Protocol : Direct
NextHop : :: Preference: 0
Interface : NULL0 Cost : 0
Destination: FF00::/8 Protocol : Direct
NextHop : :: Preference: 0
Interface : NULL0 Cost : 0
# PE 3和PE 4可以相互Ping通。
# CE 3和CE 4可以互相Ping通。
MCE设备连接两个VPN:VPN 1和VPN 2,VPN 2内运行RIPng路由协议。MCE设备将两个VPN之间的路由隔离,并通过OSPFv3将各VPN的路由发布到PE 1。
图2-7 配置IPv6 MCE组网图
为区分设备,假设MCE系统名为“MCE”,VPN 1和VPN 2的边缘设备分别名为“VR1”和“VR2”,PE 1系统名为“PE1”。
(1) 在MCE和PE 1上配置VPN实例
# 在MCE设备上配置VPN实例,名称分别为vpn1和vpn2,RD分别取值为10:1和20:1,VPN Target取值与RD取相同数值,Export和Import均取此值。
[MCE] ip vpn-instance vpn1
[MCE-vpn-instance-vpn1] route-distinguisher 10:1
[MCE-vpn-instance-vpn1] vpn-target 10:1
[MCE-vpn-instance-vpn1] quit
[MCE] ip vpn-instance vpn2
[MCE-vpn-instance-vpn2] route-distinguisher 20:1
[MCE-vpn-instance-vpn2] vpn-target 20:1
[MCE-vpn-instance-vpn2] quit
# 配置接口GigabitEthernet3/0/1与VPN实例vpn1绑定,并配置该接口的IPv6地址。
[MCE] interface GigabitEthernet 3/0/1
[MCE-GigabitEthernet3/0/1] ip binding vpn-instance vpn1
[MCE-GigabitEthernet3/0/1] ipv6 address 2001:1::1 64
[MCE-GigabitEthernet3/0/1] quit
# 配置接口GigabitEthernet3/0/2与VPN实例vpn2绑定,并配置该接口的IPv6地址。
[MCE] interface GigabitEthernet 3/0/2
[MCE-GigabitEthernet3/0/2] ip binding vpn-instance vpn2
[MCE-GigabitEthernet3/0/2] ipv6 address 2002:1::1 64
[MCE-GigabitEthernet3/0/2] quit
# 在PE 1上配置VPN实例,名称分别为vpn1和vpn2,RD分别取值为30:1和40:1,VPN Target取值分别为10:1和20:1,Export和Import均取此值。
[PE1] ip vpn-instance vpn1
[PE1-vpn-instance-vpn1] route-distinguisher 30:1
[PE1-vpn-instance-vpn1] vpn-target 10:1
[PE1-vpn-instance-vpn1] quit
[PE1] ip vpn-instance vpn2
[PE1-vpn-instance-vpn2] route-distinguisher 40:1
[PE1-vpn-instance-vpn2] vpn-target 20:1
[PE1-vpn-instance-vpn2] quit
(2) MCE与Site间路由配置
MCE与VPN 1直接相连,且VPN 1内未使用路由协议,因此可以使用IPv6静态路由进行配置。
# 配置VR1与MCE连接的接口地址为2001:1::2/64,连接VPN 1接口的地址为2012:1::2/64。(具体配置过程略)
# 在VR1上配置缺省路由,指定出方向报文的下一跳地址为2001:1::1。
[VR1] ipv6 route-static :: 0 2001:1::1
# 在MCE上指定IPv6静态路由,去往2012:1::/64网段的报文,下一跳地址为2001:1::2,并将此路由与VPN实例vpn1绑定。
[MCE] ipv6 route-static vpn-instance vpn1 2012:1:: 64 2001:1::2
# VPN 2内运行RIPng,在MCE上配置RIPng进程20,并与VPN实例vpn2绑定,以便将VPN 2内的路由学习到vpn2实例的路由表中。
[MCE] ripng 20 vpn-instance vpn2
# 配置RIPng发布2002:1::/64网段路由。
[MCE] interface GigabitEthernet 3/0/2
[MCE-GigabitEthernet3/0/2] ripng 20 enable
[MCE-GigabitEthernet3/0/2] quit
# 在VR 2上,配置与MCE连接的接口地址为2002:1::2/64。(具体配置过程略)
# 在VR 2上配置RIPng发布2012::/64和2002:1::/64网段路由。
[VR2] ripng 20
[VR2-ripng-20] quit
[VR2] interface GigabitEthernet 3/0/1
[VR2-GigabitEthernet3/0/1] ripng 20 enable
[VR2-GigabitEthernet3/0/1] quit
[VR2] interface GigabitEthernet 3/0/2
[VR2-GigabitEthernet3/0/2] ripng 20 enable
[VR2-GigabitEthernet3/0/2] quit
# 在MCE上查看VPN实例vpn1和vpn2的路由信息。
[MCE] display ipv6 routing-table vpn-instance vpn1
Destinations : 6 Routes : 6
Destination: ::1/128 Protocol : Direct
NextHop : ::1 Preference: 0
Interface : InLoop0 Cost : 0
Destination: 2001:1::/64 Protocol : Direct
NextHop : :: Preference: 0
Interface : GE3/0/1 Cost : 0
Destination: 2001:1::1/128 Protocol : Direct
NextHop : ::1 Preference: 0
Interface : InLoop0 Cost : 0
Destination: 2012:1::/64 Protocol : Static
NextHop : 2001:1::2 Preference: 60
Interface : GE3/0/1 Cost : 0
Destination: FE80::/10 Protocol : Direct
NextHop : :: Preference: 0
Interface : NULL0 Cost : 0
Destination: FF00::/8 Protocol : Direct
NextHop : :: Preference: 0
Interface : NULL0 Cost : 0
[MCE] display ipv6 routing-table vpn-instance vpn2
Destinations : 6 Routes : 6
Destination: ::1/128 Protocol : Direct
NextHop : ::1 Preference: 0
Interface : InLoop0 Cost : 0
Destination: 2002:1::/64 Protocol : Direct
NextHop : :: Preference: 0
Interface : GE3/0/2 Cost : 0
Destination: 2002:1::1/128 Protocol : Direct
NextHop : ::1 Preference: 0
Interface : InLoop0 Cost : 0
Destination: 2012::/64 Protocol : RIPng
NextHop : FE80::20C:29FF:FE40:701 Preference: 100
Interface : GE3/0/2 Cost : 1
Destination: FE80::/10 Protocol : Direct
NextHop : :: Preference: 0
Interface : NULL0 Cost : 0
Destination: FF00::/8 Protocol : Direct
NextHop : :: Preference: 0
Interface : NULL0 Cost : 0
可以看到,MCE已经通过RIPng学习到了VPN 2内的私网路由,并与VPN 1内的路由信息分别维护在两个路由表内,有效地进行了隔离。
(3) MCE与PE间路由配置
# MCE通过子接口与PE 1相连。在MCE上配置子接口GigabitEthernet3/0/3.1与VPN实例vpn1绑定,配置该子接口终结VLAN 10,并配置该接口的IPv6地址。
[MCE] interface GigabitEthernet 3/0/3.1
[MCE-GigabitEthernet3/0/3.1] ip binding vpn-instance vpn1
[MCE-GigabitEthernet3/0/3.1] vlan-type dot1q vid 10
[MCE-GigabitEthernet3/0/3.1] ipv6 address 2001:2::3 64
[MCE-GigabitEthernet3/0/3.1] quit
# 在MCE上配置子接口GigabitEthernet3/0/3.2与VPN实例vpn2绑定,配置该子接口终结VLAN 20,并配置该接口的IPv6地址。
[MCE] interface GigabitEthernet 3/0/3.2
[MCE-GigabitEthernet3/0/3.2] ip binding vpn-instance vpn2
[MCE-GigabitEthernet3/0/3.2] vlan-type dot1q vid 20
[MCE-GigabitEthernet3/0/3.2] ipv6 address 2002:2::3 64
[MCE-GigabitEthernet3/0/3.2] quit
# 在PE 1配置子接口GigabitEthernet3/0/1.1与VPN实例vpn1绑定,配置该子接口终结VLAN 10,并配置该接口的IPv6地址。
[PE1] interface GigabitEthernet 3/0/1.1
[PE1-GigabitEthernet3/0/1.1] ip binding vpn-instance vpn1
[PE1-GigabitEthernet3/0/1.1] vlan-type dot1q vid 10
[PE1-GigabitEthernet3/0/1.1] ipv6 address 2001:2::4 64
[PE1-GigabitEthernet3/0/1.1] quit
# 在PE 1上配置子接口GigabitEthernet3/0/1.2与VPN实例vpn2绑定,配置该子接口终结VLAN 20,并配置该接口的IPv6地址。
[PE1] interface GigabitEthernet 3/0/1.2
[PE1-GigabitEthernet3/0/1.2] ip binding vpn-instance vpn2
[PE1-GigabitEthernet3/0/1.2] vlan-type dot1q vid 20
[PE1-GigabitEthernet3/0/1.2] ipv6 address 2002:2::4 64
[PE1-GigabitEthernet3/0/1.2] quit
# 配置MCE和PE 1的Loopback0接口,用于指定MCE和PE 1的Router ID,地址分别为101.101.10.1和100.100.10.1。配置步骤这里省略。
# 配置MCE启动OSPFv3进程10,绑定到VPN实例vpn1,并引入VPN 1的IPv6静态路由。
[MCE] ospfv3 10 vpn-instance vpn1
[MCE-ospf-10] router-id 101.101.10.1
[MCE-ospf-10] import-route static
[MCE-ospf-10] quit
# 在子接口GigabitEthernet3/0/3.1上使能OSPFv3。
[MCE] interface GigabitEthernet 3/0/3.1
[MCE-GigabitEthernet3/0/3.1] ospfv3 10 area 0.0.0.0
[MCE-GigabitEthernet3/0/3.1] quit
# 配置PE 1启动OSPFv3进程10,绑定到VPN实例vpn1。
[PE1] ospfv3 10 vpn-instance vpn1
[PE1-ospf-10] router-id 100.100.10.1
[PE1-ospf-10] quit
# 在子接口GigabitEthernet3/0/1.1上使能OSPFv3。
[PE1] interface GigabitEthernet 3/0/1.1
[PE1-GigabitEthernet3/0/1.1] ospfv3 10 area 0.0.0.0
[PE1-GigabitEthernet3/0/1.1] quit
# MCE与PE 1间配置OSPFv3进程20,引入VPN实例vpn2的路由信息的过程与上面介绍的配置基本一致,不同的是在MCE的OSPFv3中配置引入的是RIPng进程20的路由,这里不再赘述。
# 显示PE 1上VPN实例vpn1的路由信息。可以看到,PE 1通过OSPFv3学习到了VPN 1内的私网路由。
[PE1] display ipv6 routing-table vpn-instance vpn1
Destinations : 6 Routes : 6
Destination: ::1/128 Protocol : Direct
NextHop : ::1 Preference: 0
Interface : InLoop0 Cost : 0
Destination: 2001:2::/64 Protocol : Direct
NextHop : :: Preference: 0
Interface : GE3/0/1.1 Cost : 0
Destination: 2001:2::4/128 Protocol : Direct
NextHop : ::1 Preference: 0
Interface : InLoop0 Cost : 0
Destination: 2012:1::/64 Protocol : OSPFv3
NextHop : FE80::200:5EFF:FE01:1C05 Preference: 15
Interface : GE3/0/1.1 Cost : 10
Destination: FE80::/10 Protocol : Direct
NextHop : :: Preference: 0
Interface : NULL0 Cost : 0
Destination: FF00::/8 Protocol : Direct
NextHop : :: Preference: 0
Interface : NULL0 Cost : 0
# 通过下面的显示信息可以看出,PE 1通过OSPFv3学习到了VPN 2内的私网路由。
[PE1] display ipv6 routing-table vpn-instance vpn2
Destinations : 6 Routes : 6
Destination: ::1/128 Protocol : Direct
NextHop : ::1 Preference: 0
Interface : InLoop0 Cost : 0
Destination: 2002:2::/64 Protocol : Direct
NextHop : :: Preference: 0
Interface : GE3/0/1.2 Cost : 0
Destination: 2002:2::4/128 Protocol : Direct
NextHop : ::1 Preference: 0
Interface : InLoop0 Cost : 0
Destination: 2012::/64 Protocol : OSPFv3
NextHop : FE80::200:5EFF:FE01:1C06 Preference: 15
Interface : GE3/0/1.2 Cost : 10
Destination: FE80::/10 Protocol : Direct
NextHop : :: Preference: 0
Interface : NULL0 Cost : 0
Destination: FF00::/8 Protocol : Direct
NextHop : :: Preference: 0
Interface : NULL0 Cost : 0
至此,通过配置,已经将两个VPN实例内的路由信息完整地传播到PE 1中,配置完成。
· CE 1和CE 2都属于VPN 1,它们分别接入PE 1和PE 2;
· CE 1和CE 2在同一个OSPFv3区域中;
· CE 1与CE 2之间的VPN流量通过MPLS骨干网转发,不使用OSPFv3的区域内路由。
图2-8 OSPFv3伪连接配置组网图
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
|
|||
|
|
|
|
(1) 配置用户网络上的OSPFv3
在CE 1、Router A、CE 2上配置普通OSPFv3,发布图2-8中所示各接口的网段地址,并配置CE 1和Router A、CE 2和Router A之间的链路开销值为2。具体配置过程略。
配置完成后,执行display ipv6 routing-table命令,可以看到CE 1和CE 2学到了到达对端的路由。
(2) 在骨干网上配置IPv6 MPLS L3VPN
# 配置PE 1的MPLS基本能力和MPLS LDP能力,建立LDP LSP。
<PE1> system-view
[PE1] interface loopback 0
[PE1-LoopBack0] ip address 1.1.1.9 32
[PE1-LoopBack0] quit
[PE1] mpls lsr-id 1.1.1.9
[PE1] mpls ldp
[PE1-ldp] quit
[PE1] interface GigabitEthernet 2/0/2
[PE1-GigabitEthernet2/0/2] ip address 10.1.1.1 24
[PE1-GigabitEthernet2/0/2] mpls enable
[PE1-GigabitEthernet2/0/2] mpls ldp enable
[PE1-GigabitEthernet2/0/2] quit
# 配置PE 1的MP-IBGP对等体为PE2。
[PE1] bgp 100
[PE1-bgp-default] peer 2.2.2.9 as-number 100
[PE1-bgp-default] peer 2.2.2.9 connect-interface loopback 0
[PE1-bgp-default] address-family vpnv6
[PE1-bgp-default-vpnv6] peer 2.2.2.9 enable
[PE1-bgp-default-vpnv6] quit
[PE1-bgp-default] quit
# 配置PE 1的OSPF。
[PE1] ospf 1
[PE1-ospf-1] area 0
[PE1-ospf-1-area-0.0.0.0] network 1.1.1.9 0.0.0.0
[PE1-ospf-1-area-0.0.0.0] network 10.1.1.0 0.0.0.255
[PE1-ospf-1-area-0.0.0.0] quit
[PE1-ospf-1] quit
# 配置PE 2的MPLS基本能力和MPLS LDP能力,建立LDP LSP。
<PE2> system-view
[PE2] interface loopback 0
[PE2-LoopBack0] ip address 2.2.2.9 32
[PE2-LoopBack0] quit
[PE2] mpls lsr-id 2.2.2.9
[PE2] mpls ldp
[PE2-ldp] quit
[PE2] interface GigabitEthernet 2/0/2
[PE2-GigabitEthernet2/0/2] ip address 10.1.1.2 24
[PE2-GigabitEthernet2/0/2] mpls enable
[PE2-GigabitEthernet2/0/2] mpls ldp enable
[PE2-GigabitEthernet2/0/2] quit
# 配置PE 2的MP-IBGP对等体为PE1。
[PE2] bgp 100
[PE2-bgp-default] peer 1.1.1.9 as-number 100
[PE2-bgp-default] peer 1.1.1.9 connect-interface loopback 0
[PE2-bgp-default] address-family vpnv6
[PE2-bgp-default-vpnv6] peer 1.1.1.9 enable
[PE2-bgp-default-vpnv6] quit
[PE2-bgp-default] quit
# 配置PE 2的OSPF。
[PE2] ospf 1
[PE2-ospf-1] area 0
[PE2-ospf-1-area-0.0.0.0] network 2.2.2.9 0.0.0.0
[PE2-ospf-1-area-0.0.0.0] network 10.1.1.0 0.0.0.255
[PE2-ospf-1-area-0.0.0.0] quit
[PE2-ospf-1] quit
(3) 配置PE接入CE
# 配置PE 1接入CE 1。
[PE1] ip vpn-instance vpn1
[PE1-vpn-instance-vpn1] route-distinguisher 100:1
[PE1-vpn-instance-vpn1] vpn-target 1:1
[PE1-vpn-instance-vpn1] quit
[PE1] interface GigabitEthernet 3/0/1
[PE1-GigabitEthernet3/0/1] ip binding vpn-instance vpn1
[PE1-GigabitEthernet3/0/1] ipv6 address 100::2 64
[PE1-GigabitEthernet3/0/1] ospfv3 100 area 1
[PE1-GigabitEthernet3/0/1] quit
[PE1] ospfv3 100
[PE1-ospfv3-100] router-id 100.1.1.1
[PE1-ospfv3-100] domain-id 10
[PE1-ospfv3-100] quit
[PE1] bgp 100
[PE1-bgp-default] ip vpn-instance vpn1
[PE1-bgp-default-vpn1] address-family ipv6 unicast
[PE1-bgp-default-ipv6-vpn1] import-route ospfv3 100
[PE1-bgp-default-ipv6-vpn1] import-route direct
[PE1-bgp-default-ipv6-vpn1] quit
[PE1-bgp-default-vpn1] quit
[PE1-bgp-default] quit
# 配置PE 2接入CE 2。
[PE2] ip vpn-instance vpn1
[PE2-vpn-instance-vpn1] route-distinguisher 100:2
[PE2-vpn-instance-vpn1] vpn-target 1:1
[PE2-vpn-instance-vpn1] quit
[PE2] interface GigabitEthernet 3/0/1
[PE2-GigabitEthernet3/0/1] ip binding vpn-instance vpn1
[PE2-GigabitEthernet3/0/1] ipv6 address 120::2 64
[PE2-GigabitEthernet3/0/1] ospfv3 100 area 1
[PE2-GigabitEthernet3/0/1] quit
[PE2] ospfv3 100
[PE2-ospfv3-100] router-id 120.1.1.1
[PE2-ospfv3-100] domain-id 10
[PE2-ospfv3-100] quit
[PE2] bgp 100
[PE2-bgp-default] ip vpn-instance vpn1
[PE2-bgp-default-vpn1] address-family ipv6 unicast
[PE2-bgp-default-ipv6-vpn1] import-route ospfv3 100
[PE2-bgp-default-ipv6-vpn1] import-route direct
[PE2-bgp-default-ipv6-vpn1] quit
[PE2-bgp-default-vpn1] quit
[PE2-bgp-default] quit
完成上述配置后,在PE设备上执行display ipv6 routing-table vpn-instance命令,可以看到去往对端CE的路由是通过用户网络的OSPFv3路由,不是通过骨干网的IPv6 BGP路由。
(4) 配置Sham-link
# 配置PE 1。
[PE1] interface loopback 1
[PE1-LoopBack1] ip binding vpn-instance vpn1
[PE1-LoopBack1] ipv6 address 3::3 128
[PE1-LoopBack1] quit
[PE1] ospfv3 100
[PE1-ospfv3-100] area 1
[PE1-ospfv3-100-area-0.0.0.1] sham-link 3::3 5::5
[PE1-ospfv3-100-area-0.0.0.1] quit
[PE1-ospfv3-100] quit
# 配置PE 2。
[PE2] interface loopback 1
[PE2-LoopBack1] ip binding vpn-instance vpn1
[PE2-LoopBack1] ipv6 address 5::5 128
[PE2-LoopBack1] quit
[PE2] ospfv3 100
[PE2-ospfv3-100] area 1
[PE2-ospfv3-100-area-0.0.0.1] sham-link 5::5 3::3
[PE2-ospfv3-100-area-0.0.0.1] quit
[PE2-ospfv3-100] quit
完成上述配置后,在PE设备上再次执行display ipv6 routing-table vpn-instance命令,可以看到去往对端CE的路由变成了通过骨干网的IPv6 BGP路由,并且存在去往Sham-link目的地址的路由。
在CE设备上执行display ipv6 routing-table命令,可以看到去往对端CE的OSPFv3路由下一跳变为接入PE的GigabitEthernet接口,即去往对端的VPN流量将通过骨干网转发。
在PE上执行display ospfv3 sham-link命令可以看到Sham-link的建立情况。
以PE 1为例:
[PE1] display ospfv3 sham-link
OSPFv3 Process 100 with Router ID 100.1.1.1
Sham-link (Area: 0.0.0.1)
Neighbor ID State Instance ID Destination address
120.1.1.1 P-2-P 0 5::5
执行display ospfv3 sham-link verbose命令可以看到对端状态为Full。
[PE1] display ospfv3 sham-link verbose
OSPFv3 Process 100 with Router ID 100.1.1.1
Sham-link (Area: 0.0.0.1)
Source : 3::3
Destination : 5::5
Interface ID: 2147483649
Neighbor ID : 120.1.1.1, Neighbor state: Full
Cost: 1 State: P-2-P Type: Sham Instance ID: 0
Timers: Hello 10, Dead 40, Retransmit 5, Transmit delay 1
Request list: 0 Retransmit list: 0
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!