08-MPLS L3VPN配置
本章节下载: 08-MPLS L3VPN配置 (3.72 MB)
目 录
1.15.4 开启BGP-VPN IPv4单播地址族的快速重路由功能
1.18.3 使能交换IPv4 RT-Filter路由信息的能力
1.18.4 控制IPv4 RT-Filter路由的发布、接收和优选
1.18.6 配置发布VPNv4路由信息时,先应用出方向路由策略,再进行RT过滤
1.20 配置VPN实例的BGP路由添加到IP路由表以及发布时的规则
1.24 配置BGP路由根据路由策略来过滤迭代到的下一跳路由
1.27.3 显示和维护VPN实例的MPLS标签转发统计信息
1.28.6 配置跨域VPN-OptionC方式示例(方式一)
1.28.7 配置跨域VPN-OptionC方式示例(方式二)
1.28.16 配置VPNv4路由备份VPNv4路由方式的MPLS L3VPN快速重路由
1.28.17 配置VPNv4路由备份IPv4路由方式的MPLS L3VPN快速重路由
1.28.18 配置IPv4路由备份VPNv4路由方式的MPLS L3VPN快速重路由
2.1.4 IPv6 MPLS L3VPN支持的组网方案及功能
2.10.3 配置IPv6跨域VPN-OptionC(方式一)
2.10.4 配置IPv6跨域VPN-OptionC(方式二)
2.15 配置VPN实例的BGP路由添加到IP路由表以及发布时的规则
2.18 配置BGP路由根据路由策略来过滤迭代到的下一跳路由
2.20.2 配置IPv6 MPLS L3VPN采用GRE隧道示例
2.20.4 配置IPv6跨域VPN-OptionA方式示例
2.20.5 配置IPv6跨域VPN-OptionC方式示例(方式一)
2.20.6 配置IPv6跨域VPN-OptionC方式示例(方式二)
MPLS L3VPN是一种三层VPN技术,它使用BGP在服务提供商骨干网上发布用户站点的私网路由,使用MPLS在服务提供商骨干网上转发用户站点之间的私网报文,从而实现通过服务提供商的骨干网连接属于同一个VPN、位于不同地理位置的用户站点。MPLS L3VPN组网方式灵活,可扩展性好,并能够方便地支持MPLS QoS和MPLS TE,因此得到了广泛的应用。
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信息。
图1-1 MPLS L3VPN基本网络架构
Site(站点)的含义可以从下述几个方面理解:
· Site是指相互之间具备IP连通性的一组IP系统,并且这组IP系统的IP连通性不需通过服务提供商网络实现;
· Site的划分是根据设备的拓扑关系,而不是地理位置,尽管在大多数情况下一个Site中的设备地理位置相邻;
· 一个Site中的设备可以属于多个VPN,换言之,一个Site可以属于多个VPN;
· Site通过CE连接到服务提供商网络,一个Site可以包含多个CE,但一个CE只属于一个Site。
对于多个连接到同一服务提供商网络的Site,通过制定策略,可以将它们划分为不同的集合(set),只有属于相同集合的Sites之间才能通过服务提供商网络互访,这种集合就是VPN。
在MPLS L3VPN中,不同VPN之间的路由隔离通过VPN实例(VPN-instance)实现,VPN实例又称为VRF(Virtual Routing and Forwarding,虚拟路由和转发)实例。PE上每个VPN实例都有相对独立的路由表和LFIB(Label Forwarding Information Base,标签转发信息库),确保VPN数据的独立性和安全性。
PE通过将与Site连接的接口与VPN实例关联,实现该Site与VPN实例的关联。一个Site只能与一个VPN实例关联;不同的Site可以关联同一个VPN实例。VPN实例中包含了与其关联的Site所属的所有VPN的成员关系和路由规则等信息。
VPN实例中的信息包括:LFIB、IP路由表、与VPN实例关联的接口以及VPN实例的管理信息。VPN实例的管理信息包括RD(Route Distinguisher,路由标识符)、Route Target属性、路由过滤策略等。
VPN是一种私有网络,不同的VPN独立管理自己使用的地址范围,也称为地址空间(Address Space)。不同VPN的地址空间可能会在一定范围内重合,比如,VPN 1和VPN 2都使用了10.110.10.0/24网段的地址,这就发生了地址空间重叠(Overlapping Address Spaces)。
传统BGP无法正确处理地址空间重叠的VPN的路由。假设VPN 1和VPN 2都使用了10.110.10.0/24网段的地址,并各自发布了一条去往此网段的路由,BGP只会选择其中一条路由,从而导致去往另一个VPN的路由丢失。
MPLS L3VPN使用VPN-IPv4地址(又称为VPNv4地址)来解决上述问题。
图1-2 VPN-IPv4地址结构
如图1-2所示,VPN-IPv4地址共有12个字节,包括8字节的RD和4字节的IPv4地址前缀。其中,RD的作用是将其添加到一个IPv4地址前缀前,使之成为全局唯一的VPN-IPv4地址前缀。PE从CE接收到普通IPv4路由后,为IPv4地址前缀添加RD,将其转变为VPN-IPv4路由,并使用MP-BGP(Multiprotocol Border Gateway Protocol,多协议边界网关协议)将VPN-IPv4路由发布给对端PE,从而实现通过RD区分不同VPN的相同IPv4地址前缀。
RD有三种格式,通过2字节的Type字段区分:
· Type为0时,Administrator子字段占2字节,Assigned number子字段占4字节,格式为:16位自治系统号:32位用户自定义数字,例如:100:1。
· Type为1时,Administrator子字段占4字节,Assigned number子字段占2字节,格式为:32位IPv4地址:16位用户自定义数字,例如:172.1.1.1:1。
· Type为2时,Administrator子字段占4字节,Assigned number子字段占2字节,格式为:32位自治系统号:16位用户自定义数字,其中的自治系统号最小值为65536,例如:65536:1。
为了保证VPN-IPv4地址全球唯一,建议不要将Administrator子字段的值设置为私有AS号或私有IP地址。
MPLS L3VPN使用BGP扩展团体属性——Route Target(也称为VPN Target)来控制VPN路由信息的发布。
Route 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实例的路由表中。
Route Target属性定义了一条VPN-IPv4路由可以为哪些Site所接收,PE可以接收哪些Site发送来的路由。
与RD类似,Route 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组播、VPN-IPv4等。
在MPLS L3VPN中,PE之间利用MP-BGP来传递VPN-IPv4路由,既实现了VPN的私网路由在不同站点之间的传递,又确保了私网路由只在VPN内发布。
在MPLS L3VPN组网中,VPN路由信息的发布涉及CE和PE。P路由器只维护骨干网的路由,不需要了解任何VPN路由信息。PE路由器只维护与它直接相连的VPN的路由信息,不维护所有VPN路由。
VPN路由信息的发布过程包括三部分:本地CE到入口PE、入口PE到出口PE、出口PE到远端CE。完成这三部分后,本地CE与远端CE之间将建立可达路由。
CE使用静态路由、RIP、OSPF、IS-IS、EBGP或IBGP,将本站点的VPN路由发布给PE。CE发布给PE的是标准的IPv4路由。
PE从CE学到VPN路由信息后,将其存放到相应的VPN实例的路由表中。PE为这些标准IPv4路由增加RD和Export Target属性,并为这些路由分配MPLS标签,形成VPN-IPv4路由。
入口PE通过MP-BGP把VPN-IPv4路由(包括Export Target属性和MPLS标签)发布给出口PE。出口PE将VPN-IPv4路由的Export Target属性与自己维护的VPN实例的Import Target属性进行匹配。如果出口PE上某个VPN实例的Import Target属性与路由的Export Target属性中存在相同的属性值,则将该路由加入到该VPN实例的路由表中。
与本地CE到入口PE的路由信息交换相同,远端CE可以通过多种方式从出口PE学习VPN路由,包括静态路由、RIP、OSPF、IS-IS、EBGP和IBGP。
在基本MPLS L3VPN应用中(不包括跨域的情况),PE转发VPN报文时为报文封装如下内容:
· 外层标记:又称为公网标记。VPN报文在骨干网上沿着公网隧道从一端PE传送到另一端PE。公网隧道可以是LSP隧道、MPLS TE隧道和GRE隧道。当公网隧道为LSP隧道或MPLS TE隧道时,公网标记为MPLS标签,称为公网标签;当公网隧道为GRE隧道时,公网标记为GRE封装。
目前,MPLS L3VPN不支持采用GRE over IPv6隧道作为公网隧道。
· 内层标签:又称为私网标签,用来指示报文应被送到哪个Site。对端PE根据私网标签可以确定报文所属的VPN实例,通过查找该VPN实例的路由表,将报文正确地转发到相应的Site。PE之间在通过MP-BGP发布VPN-IPv4路由时,将为私网路由分配的私网标签通告给对端PE。
图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根据私网标签确定报文所属的VPN实例,通过查找该VPN实例的路由表,确定报文的出接口,剥离私网标签后将报文转发至CE 2。
(6) CE 2根据正常的IP转发过程将报文转发给目的主机。
属于同一个VPN的两个Site连接到同一个PE时,PE不需要为VPN报文封装外层标记和内层标签,只需查找对应VPN实例的路由表,找到报文的出接口,将报文转发至相应的Site。
在MPLS L3VPN网络中,通过Route Target属性来控制VPN路由信息在各Site之间的发布和接收。VPN Export Target和Import Target的设置相互独立,并且都可以设置多个值,能够实现灵活的VPN访问控制,从而实现多种VPN组网方案。
最简单的情况下,一个VPN中的所有用户形成闭合用户群,相互之间能够进行流量转发,VPN中的用户不能与任何本VPN以外的用户通信。
对于这种组网,需要为每个VPN分配一个Route Target,作为该VPN的Export Target和Import Target,且此Route Target不能被其他VPN使用。
图1-4 基本的VPN组网方案
如图1-4所示,PE上为VPN 1分配的Route Target值为100:1,为VPN 2分配的Route 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。
对于这种组网,Route 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”。
按照上述规则设置Route 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为共享站点,通过设置Route Target实现:
· PE 3能够接受PE 1和PE 2发布的VPN-IPv4路由。
· PE 3发布的VPN-IPv4路由能够为PE 1和PE 2接受。
基于以上两点,VPN 1的Site 1和Site 3之间能够互访,VPN 2的Site 2和VPN 1的Site 3之间也能够互访。
PE 3不把从PE 1接收的VPN-IPv4路由发布给PE 2,也不把从PE 2接收的VPN-IPv4路由发布给PE 1(从IBGP邻居学来的路由不会再发送给其他的IBGP邻居)。因此,VPN 1的Site 1和VPN 2的Site 2之间不能互访。
实际组网应用中,某用户一个VPN的多个Site可能会连接到使用不同AS号的多个服务提供商,或者连接到一个服务提供商的多个AS。这种VPN跨越多个自治系统的应用方式被称为跨域VPN(Multi-AS VPN)。
跨域VPN解决方案分为以下几种:
· ASBR间建立VRF-to-VRF连接(VRF-to-VRF connections between ASBRs),也称为Inter-Provider Option A。
· ASBR间通过MP-EBGP发布VPN-IPv4路由(EBGP redistribution of labeled VPN-IPv4 routes between ASBRs),也称为Inter-Provider Option B;
· PE间通过MP-EBGP发布VPN-IPv4路由(Multi-hop EBGP redistribution of labeled VPN-IPv4 routes between PE routers),也称为Inter-Provider Option C。
这种方式下,两个AS的PE路由器直接相连,并且作为各自所在自治系统的边界路由器ASBR。两个PE都把对方当作自己的CE设备,通过EBGP会话向对端发布普通的IPv4单播路由,并将需要跨域的VPN实例与至少一个接口关联。
图1-7 ASBR间建立VRF-to-VRF连接组网图
如图1-7所示,VPN 1内路由从CE 1发布到CE 3的过程为:
(1) PE 1从CE 1学习到私网路由后,通过MP-IBGP发布给ASBR 1。
(2) ASBR 1比较Route Target属性,将PE 1发布的VPN-IPv4路由学习到相应的VPN实例路由表中,并作为IPv4单播路由通过EBGP会话发布给它的CE设备,即ASBR 2。
(3) ASBR 2从它的CE(ASBR 1)接收到IPv4单播路由后,将其加入与接收路由的接口绑定的VPN实例的路由表中,并通过MP-IBGP发布给PE 3。
(4) PE 3接收到路由后,将其发布给CE 3。
报文转发过程中,在AS内部作为VPN报文,采用两层标签的方式转发;在ASBR之间则采用IP转发方式。
这种方式的优点是实现简单,两个作为ASBR的PE之间不需要为跨域进行特殊配置。缺点是可扩展性差:作为ASBR的PE需要管理所有VPN的路由,为每个VPN创建VPN实例,导致PE上的VPN-IPv4路由数量过于庞大;并且,PE上需要为每个跨域的VPN单独关联接口,提高了对PE设备的要求。
这种方式下,两个ASBR通过MP-EBGP交换它们从各自AS的PE路由器接收的VPN-IPv4路由。
图1-8 ASBR间通过MP-EBGP发布VPN-IPv4路由组网图
如图1-8所示,VPN 1内路由从CE 1发布到CE 3的过程为:
(1) PE 1从CE 1学习到私网路由后,通过MP-IBGP发布给ASBR 1。假设PE 1为私网路由分配的私网标签为L1。
(2) ASBR 1接收PE 1发布的VPN-IPv4路由,并作为VPN-IPv4路由通过MP-EBGP将其发布给ASBR 2。ASBR 1发布该路由时,将路由的下一跳地址改为自身的地址,为路由分配新的私网标签L2,并为新的私网标签L2和旧的私网标签L1建立关联。
(3) ASBR 2从ASBR 1接收到VPN-IPv4路由后,通过MP-IBGP将路由发布给PE 3。ASBR 2在发布路由时,将路由的下一跳地址改为自身的地址,为路由分配新的私网标签L3,并为新的私网标签L3和旧的私网标签L2建立关联。
(4) PE 3接收到路由后,将其发布给CE 3。
完成路由发布后,报文从CE 3到CE 1的转发过程为:
(1) PE 3接收到报文后,为其封装两层标签——私网标签L3和从PE 3到ASBR 2的公网隧道的标签,并将报文转发给ASBR 2。
(2) ASBR 2剥离公网标签后,将私网标签L3替换为L2,并将报文发送给ASBR 1。ASBR 1和ASBR 2之间的报文只带一层私网标签。
(3) ASBR 1将私网标签L2替换为L1,添加从ASBR 1到PE 1的公网隧道的标签,并将报文转发给PE 1。
(4) PE 1剥离公网标签、私网标签后,将报文转发给CE 1。
采用这种方式时,ASBR需要接收所有跨域VPN的私网路由,因此,ASBR上不能根据Route Target属性对接收的VPN-IPv4路由进行过滤。
这种方式的扩展性优于Inter-Provider Option A。缺点是ASBR仍然需要参与VPN私网路由的维护和发布。
这种方式下,不同AS的PE之间建立多跳MP-EBGP会话,通过该会话直接在PE之间发布VPN-IPv4路由。此时,一端PE上需要具有到达远端PE的路由以及该路由对应的标签,以便在两个PE之间建立跨越AS的公网隧道。Inter-Provider Option C通过如下方式建立公网隧道:
· 方式一:利用LDP等标签分发协议在AS内建立公网隧道。ASBR通过BGP发布带标签的IPv4单播路由,实现跨域AS域建立公网隧道。带标签的IPv4单播路由是指为IPv4单播路由分配MPLS标签,并同时发布IPv4单播路由和标签,以便将路由和标签关联。
· 方式二:PE和ASBR间不需要建立IBGP邻居。本端ASBR将IGP路由引入到BGP中,为该路由分配标签后,通过带标签的EBGP路由将其发布给对端ASBR。对端ASBR将BGP路由引入IGP协议中。两端PE均学习到对端的路由后,通过LDP等标签分发协议在PE之间的公网隧道。
图1-9 PE间通过Multi-hop MP-EBGP发布VPN-IPv4路由组网图
如所示,以Inter-Provider Option C通过方式一建立公网隧道为例,VPN 1内路由从CE 1发布到CE 3的过程比较简单,为:PE 1从CE 1学习到私网路由后,将其作为VPN-IPv4路由通过多跳MP-EBGP会话发布给PE 3(假设PE 1为CE 1分配的私网标签为Lx);PE 3将私网路由发布给CE 3。
Inter-Provider Option C的难点是建立跨越AS域的公网隧道。以PE 3到PE 1为例,公网隧道建立过程为:
(1) 在AS 100内,通过LDP等标签分发协议建立从ASBR 1到PE 1的公网隧道。假设ASBR 1上该公网隧道的出标签为L1。
(2) ASBR 1通过EBGP会话向ASBR 2发布带标签的IPv4单播路由,将PE 1地址对应的路由及ASBR 1为其分配的标签(假设为L2)发布给ASBR 2,路由的下一跳地址为ASBR 1。这样,就建立了从ASBR 2到ASBR 1的公网隧道,ASBR 1上公网隧道的入标签为L2。
(3) ASBR 2通过IBGP会话向PE 3发布带标签的IPv4单播路由,将PE 1地址对应的路由及ASBR 2为其分配的标签(假设为L3)发布给PE 3,路由的下一跳地址为ASBR 2。这样,就建立了从PE 3直接到ASBR 2的公网隧道,ASBR 2上公网隧道的入标签为L3,出标签为L2。
(4) MPLS报文不能直接从PE 3转发给ASBR 2,在AS 200内,还需要通过LDP等标签分发协议逐跳建立另一条从PE 3到ASBR 2的公网隧道。假设PE 3上该公网隧道的出标签为Lv。
完成路由发布和公网隧道的建立后,报文从CE 3转发到CE 1的过程为:
(1) PE 3接收到CE 3发送的报文后,查找路由表,发现下一跳地址为PE 1,私网标签为Lx,则为报文封装标签Lx;PE 3继续查找到达PE 1的路由,下一跳为ASBR 2,标签为L3,则在标签Lx外封装一层标签L3;PE 3查找到达ASBR 2的路由,出标签为Lv,则在标签L3外再封装标签Lv。
(2) 在AS 200内,路由器根据最外层标签,将报文转发到ASBR 2。
(3) ASBR 2剥离最外层标签,将L3替换为L2,并将报文转发给ASBR 1。
(4) ASBR 1将L2替换为L1,并转发报文。
(5) 在AS 100内,路由器根据最外层标签,将报文转发到PE 1。
(6) PE 1剥离最外层标签,根据私网标签Lx,将报文转发给CE 1。
如图1-10所示,为提高可扩展性,可以在每个AS中指定一个RR(Route Reflector,路由反射器),与同一AS的PE交换VPN-IPv4路由信息,由RR保存所有VPN-IPv4路由。两个AS的RR之间建立多跳MP-EBGP会话,通告VPN-IPv4路由。
图1-10 采用RR的跨域VPN OptionC方式组网图
Inter-Provider Option A和Inter-Provider Option B都需要ASBR参与VPN-IPv4路由的维护和发布。当每个AS都有大量的VPN路由需要交换时,ASBR很可能成为阻碍网络进一步扩展的瓶颈。Inter-Provider Option C中PE之间直接交换VPN-IPv4路由,具有很好的可扩展性。
MPLS L3VPN服务提供商的用户可能也是一个服务提供商。这种情况下,前者称为提供商运营商(Provider Carrier)或一级运营商(First Carrier),后者称为客户运营商(Customer Carrier)或二级运营商(Second Carrier)。这种组网模型称为运营商的运营商(Carriers’ carriers)。
运营商的运营商通过在二级运营商的路由器之间建立BGP会话直接交互二级运营商连接的用户网络的路由,实现一级运营商不引入二级运营商的用户网络路由,只引入二级运营商的骨干网路由,从而大大减少一级运营商网络中需要维护的路由数量,提高可扩展性。
由于一级运营商不引入二级运营商的用户网络路由,为了保证用户网络的报文能够跨越一级运营商传递,在一级运营商PE和接入一级运营商的二级运营商CE(在二级运营商内其为PE设备,以下简称为二级运营商CE)之间需要为二级运营商骨干网的路由分配标签。一级运营商PE和二级运营商CE之间需要进行如下配置:
· 如果一级运营商PE与二级运营商CE位于同一个AS内,则它们之间配置IGP和LDP;否则,它们之间配置MP-EBGP,通过MP-EBGP为PE与CE之间交换的IPv4单播路由分配标签。
· 无论二者是否位于同一个AS,二级运营商CE上都需要使能MPLS。并且,二级运营商CE上虽然有二级运营商的用户网络路由,但它们并不把这些路由发布给一级运营商PE,只在二级运营商PE之间交换。
二级运营商可能只是普通ISP,也可能是MPLS L3VPN服务提供商。
· 如图1-11所示,二级运营商是普通ISP时,其PE不需要运行MPLS,与二级运营商CE之间运行IGP。PE 3和PE 4之间通过IBGP会话交换二级运营商的用户网络路由(IPv4单播路由)。
· 如图1-12所示,二级运营商是MPLS L3VPN服务提供商时,其PE也需要运行MPLS,与二级运营商CE之间运行IGP和LDP。PE 3和PE 4之间通过MP-IBGP会话交换二级运营商的用户网络路由(VPN-IPv4路由)。
如果一级运营商和二级运营商之间存在等价路由,则建议在一级运营商和二级运营商之间建立对应的等价LSP。
嵌套VPN通过在MPLS L3VPN的PE和CE之间传递VPNv4路由,使得用户可以管理自己内部的VPN,根据实际需要在用户网络内部进一步划分VPN,运营商不参与用户内部VPN的管理。如图1-13所示,用户网络在运营商MPLS VPN网络上所属的VPN为VPN A,在用户网络内部划分子VPN:VPN A-1和VPN A-2。运营商PE设备把用户网络当作普通VPN用户对待,不参与子VPN的划分。运营商CE设备(CE 1和CE 2)和运营商PE设备之间传递包括子VPN路由信息的VPNv4路由,从而实现用户网络内部子VPN路由信息的传递。
嵌套VPN支持对称组网方式和非对称组网方式,即属于同一用户网络的不同Site包括的用户内部VPN数目可以相同,也可以不同。嵌套VPN还支持用户内部VPN的多层嵌套。
图1-13 嵌套VPN组网应用
嵌套VPN中,路由信息的传播过程为:
(1) 用户PE从用户CE接收到私网路由后,通过MP-BGP将VPN-IPv4路由发布给运营商CE设备。
(2) 运营商CE设备通过MP-BGP将VPN-IPv4路由发布给运营商的PE设备。
(3) 运营商的PE设备收到VPN-IPv4路由后,保留用户网络内部的VPN信息,并附加用户在运营商网络上的MPLS VPN属性,即将该VPN-IPv4路由的RD更换为用户所处运营商网络VPN的RD,同时将用户所处运营商网络VPN的Export Target添加到路由的扩展团体属性列表中。运营商的PE设备维护用户网络内部的VPN信息。
(4) 运营商的PE设备向其他运营商PE设备发布这些携带综合VPN信息的VPN-IPv4路由。
(5) 其他的运营商PE设备收到VPN-IPv4路由后,与本地VPN的Import Target进行匹配,每个VPN接收属于自己的路由,并将路由发布给运营商CE设备。如果运营商PE和运营商CE设备之间是IPv4连接(如CE 7和CE 8),则直接发布IPv4路由;如果是VPN-IPv4连接(如CE 1和CE 2),则表示通过私网连接的是一个用户MPLS VPN网络,运营商PE向运营商CE发布VPN-IPv4路由。
(6) 用户PE通过运营商CE接收到VPN-IPv4路由后,与本地VPN的Import Target进行匹配,每个VPN接收属于自己的路由,并发布给自己连接的用户CE设备(如图1-13中的CE 3、CE 4、CE 5和CE 6)。
Site所属的VPN由PE上连接Site的接口关联的VPN实例决定,即PE从同一个接口接收到的来自Site的报文都通过同一个VPN实例转发。在实际组网中,Site内的某些主机或服务器可能需要访问多个VPN,而其他主机或服务器只需访问某个VPN。虽然可以通过设置多个逻辑接口来实现上述需求,但会增加额外的配置负担,使用起来也有局限性。
多角色主机功能通过在PE上配置策略路由,使得来自Site内某些主机或服务器的报文可以访问多个VPN。这些主机或服务器称为多角色主机。
如图1-14所示,多角色主机组网中,PE上需要进行如下配置:
· 将连接Site的接口与某个VPN实例关联。
· 配置策略路由,实现对于来自多角色主机的报文,在关联VPN实例的路由表内查找不到路由时,在其它VPN实例的路由表内查找路由,从而保证Site发送给PE的报文不仅可以转发到关联的VPN,还可以转发到其它的VPN。
· 为其它的VPN实例配置静态路由,指定到达多角色主机的路由的下一跳为关联VPN实例内CE的IP地址,从而实现PE将其它VPN发送的报文转发到该Site。
在多角色主机组网中,应保证多角色主机所能访问的所有VPN内IP地址不能重叠。
HoVPN(Hierarchy of VPN,分层VPN),又称为HoPE(Hierarchy of PE,分层PE),用来避免PE成为网络的瓶颈,以便于大规模部署VPN网络。
HoVPN将PE划分为UPE(Underlayer PE or User-end PE,下层PE或用户侧PE)和SPE(Superstratum PE or Service Provider-end PE,上层PE或运营商侧PE)。UPE和SPE分工不同,二者构成分层式PE,共同完成传统上一个PE的功能。分层式PE可以同普通PE共存于一个MPLS网络。
图1-15 HoVPN的基本结构
如图1-15所示,UPE和SPE的功能分别为:
· UPE直接连接用户网络,主要完成用户接入功能。UPE维护其直接相连的VPN Site的路由,但不维护VPN中其它远程Site的路由或仅维护它们的聚合路由;UPE为其直接相连的Site的路由分配内层标签,并通过MP-BGP随VPN路由发布此标签给SPE。UPE的路由容量和转发性能较低,但接入能力强。
· SPE连接UPE并位于运营商网络内部,主要完成VPN路由的管理和发布。SPE维护其通过UPE连接的VPN所有路由,包括本地和远程Site的路由,SPE将路由信息发布给UPE,并携带标签。SPE发布的路由信息可以是VPN实例的缺省路由(或聚合路由),也可以是通过路由策略的路由信息。通过后者可以实现对同一VPN下不同站点之间互访的控制。SPE的路由表容量大,转发性能强,但接口资源较少。
SPE和UPE之间运行MP-IBGP或MP-EBGP。采用MP-IBGP时,SPE需要作为多个UPE的路由反射器,在UPE之间反射路由。
HoVPN支持分层式PE的嵌套:
· 一个分层式PE可以作为UPE,同另一个SPE组成新的分层式PE;
· 一个分层式PE可以作为SPE,同多个UPE组成新的分层式PE;
分层式PE的嵌套可以进行多次。在分层式PE的嵌套中,SPE和UPE是相对的概念,上层PE相对于下层就是SPE,下层PE相对于上层就是UPE。
图1-16 分层式PE的嵌套
图1-16是一个三层的分层式PE,称中间的PE为MPE(Middle-level PE)。SPE和MPE之间,以及MPE和UPE之间,均运行MP-BGP。MP-BGP为上层PE发布下层PE上的所有VPN路由,为下层PE发布上层PE的VPN实例缺省路由或通过路由策略的VPN路由。SPE维护了这个分层式PE接入的所有Site的VPN路由,路由数目最多;UPE只维护它所直接连接的Site的VPN路由,路由数目最少;MPE的路由数目介于SPE和UPE之间。
本节重点介绍OSPF对VPN的扩展,如果需要了解OSPF的基本知识,请参见“三层技术-IP路由配置指导”中的“OSPF”。
在PE-CE间运行OSPF交互私网路由时,PE必须支持OSPF多实例,即每个OSPF进程与一个VPN实例绑定,通过该OSPF进程学习到的路由添加到对应VPN实例的路由表中,以实现不同VPN实例路由的隔离。
PE与CE之间的OSPF区域可以是非骨干区域,也可以是骨干区域。
在OSPF VPN扩展应用中,MPLS VPN骨干网被看作是骨干区域area 0。由于OSPF要求骨干区域连续,因此,所有站点的area 0必须与MPLS VPN骨干网相连(物理连通或通过Virtual-link实现逻辑上的连通)。
如果在PE和CE间运行OSPF,则PE上需要将PE之间传递的BGP路由引入到OSPF路由中,再将该路由通过OSPF发布给CE。这样就会导致即使不同的站点属于同一个OSPF路由域,在一个站点学到的路由,也将作为外部路由发布给另一站点。通过为属于同一个OSPF路由域的站点配置相同的域ID(Domain ID),可以解决上述问题。
图1-17 BGP/OSPF交互示意图
以图1-17为例,CE 11、CE 21和CE 22属于同一个VPN,且属于同一个OSPF路由域。配置Domain ID前,VPN 1内路由从CE 11发布到CE 21和CE 22的过程为:首先在PE 1上将CE 11的OSPF路由引入BGP;然后通过BGP将这些VPN路由发布给PE 2;在PE 2上将BGP路由引入到OSPF,再通过AS External LSA(即Type-5 LSA)或NSSA External LSA(即Type-7 LSA)发布给CE 21和CE 22。
配置Domain ID后,路由传递过程为:在PE 1上将OSPF路由引入到BGP时,将Domain ID附加到BGP VPNv4路由上,作为BGP的扩展团体属性传递给PE 2。PE 2接收到BGP路由后,将本地配置的Domain ID与路由中携带的Domain ID进行比较。如果相同,且为区域内或区域间路由,则在PE 2将路由重新引入到OSPF时,该路由作为Network Summary LSA(即Type-3 LSA)发布给CE 21和CE 22;否则,该路由将作为AS External LSA(即Type-5 LSA)或NSSA External LSA(即Type-7 LSA)发布给CE 21和CE 22。
如图1-18所示,同一个站点连接到多个不同PE的情况下,当一个PE通过OSPF向站点发布从MP-BGP学习到的私网路由时,该路由可能被另一个PE接收到,造成路由环路。
OSPF VPN扩展通过如下方法避免路由环路:
· 对于Type-3 LSA,通过DN(Down Bit)标识位避免路由环路:当PE设备将BGP路由引入OSPF,并生成Type-3 LSA时,PE为生成的LSA设置DN位。其他PE接收到CE发布的Type-3 LSA后,如果该LSA的DN位置位,则计算路由时忽略该LSA,从而避免再次通过BGP协议发布该路由造成路由环路。
· 对于Type-5 LSA和Type-7 LSA,通过Route Tag(VPN引入路由的外部路由标记)避免路由环路:为连接同一站点的PE设备配置相同的Route Tag。一台PE设备将BGP路由引入OSPF,并生成Type-5 LSA或Type-7 LSA时,为该Type-5或Type-7 LSA添加本地配置的外部路由标记。其他PE接收到CE发布的Type-5或Type-7 LSA后,将其中的外部路由标记值与本地配置的值进行比较。如果相同,则在进行路由计算时忽略该LSA,从而避免路由环路。
如图1-19所示:VPN 1的两个站点之间存在两条路由:
· 通过PE连接的路由:该路由为区域间(域ID相同)或外部路由(未配置域ID或域ID不同)。
· CE之间直接相连的路由:该路由为区域内路由,称为backdoor链路。
前者的优先级低于后者,导致VPN流量总是通过backdoor链路转发,而不走骨干网。为了避免这种情况发生,可以在PE路由器之间建立OSPF伪连接(Sham-link),使经过MPLS VPN骨干网的路由也成为OSPF区域内路由。通过调整度量值,使得VPN流量通过骨干网中的Sham-link转发。
图1-19 Sham-link应用示意图
Sham-link是VPN内的一条虚拟点到点链路,该链路在Type-1 LSA中发布。Sham-link通过源IP地址和目的IP地址来唯一标识。源IP地址和目的IP地址分别为本端PE和远端PE上属于该VPN的地址,通常情况下采用32位掩码的Loopback接口地址。
为了保证一端PE的VPN实例路由表中具有到达Sham-link目的IP地址的路由,确保路由可达,PE上需要将Sham-link的源IP地址作为VPN-IPv4地址通过MP-BGP发布;为了避免路由环路,Sham-link路由不会通过MP-BGP发布。即,一端PE只会通过MP-BGP发布Sham-link的源IP地址,不会发布Sham-link的目的IP地址。
在MPLS L3VPN中,如果PE和CE之间运行EBGP,由于BGP使用AS号检测路由环路,为保证路由信息的正确发送,需要为物理位置不同的站点分配不同的AS号。
如果物理位置不同的CE复用相同的AS号,则需要在PE上配置BGP的AS号替换功能,当PE向指定对等体(CE)发布路由时,如果路由的AS_PATH中存在CE所在的AS号,则PE将该AS号替换成PE的AS号后,再发布该路由,以保证私网路由能够正确发布。
使能BGP的AS号替换功能后,PE向对等体组中所有已建立连接的CE重新发送所有路由,并对发送路由中的AS_PATH属性按上述规则替换。
图1-20 BGP AS号替换和SoO应用示意图
在图1-20中,Site 1和Site 2都使用AS号800,在PE 2上使能针对CE 2的AS号替换功能。当CE 1发来的Update信息从PE 2发布给CE 2时,PE 2发现AS_PATH中存在与CE 2相同的AS号800,就把它替换为自己的AS号100,这样,CE 2就可以正确接收CE 1的路由信息。
PE使用不同接口连接同一站点的多个CE时,如图1-20中的CE 2和CE 3,使用BGP的AS号替换功能,会导致CE 3发布的路由通过PE 2和CE 2再次发布到Site 2,引起路由环路。此时,通过在PE 2上为对等体CE 2和CE 3配置相同的SoO属性,可以避免路由环路。PE 2从CE 2或CE 3接收到路由后为路由添加SoO属性;向CE 2或CE 3发布路由时检查路由的SoO属性。由于CE 3发布路由的SoO属性与CE 2的SoO属性相同,PE 2不会将该路由发布给CE 2,从而避免路由环路。
SoO属性的详细介绍,请参见“三层技术-IP路由配置指导”中的“BGP”。
MPLS L3VPN FRR(Fast Reroute,快速重路由)功能用来在CE双归属(即一个CE同时连接两个PE)的组网环境下,通过为流量转发的主路径指定一条备份路径,并通过BFD检测主路径的状态,实现当主路径出现故障时,将流量迅速切换到备份路径,大大缩短了故障恢复时间。在使用备份路径转发报文的同时,会重新进行路由优选,优选完毕后,使用新的最优路由来转发报文。
MPLS L3VPN快速重路由的路径备份方式分为如下几种:
· VPNv4路由备份VPNv4路由
· VPNv4路由备份IPv4路由
· IPv4路由备份VPNv4路由
图1-21 VPNv4路由备份VPNv4路由示意图
如图1-21所示,在入节点PE 1上指定VPN 1的FRR备份下一跳为PE 3,则PE 1接收到PE 2和PE 3发布的到达CE 2的VPNv4路由后,PE 1会记录这两条VPNv4路由,并将PE 2发布的VPNv4路由当作主路径,PE 3发布的VPNv4路由当作备份路径。
在PE 1上配置BFD检测LSP或MPLS TE隧道功能,通过BFD检测PE 1到PE 2之间公网隧道的状态。当公网隧道正常工作时,CE 1和CE 2通过主路径CE 1—PE 1—PE 2—CE 2通信。当PE 1检测到该公网隧道出现故障时,PE 1将通过备份路径CE 1—PE 1—PE 3—CE 2转发CE 1访问CE 2的流量。
在这种备份方式中,PE 1负责主路径检测和流量切换。
BFD检测LSP或MPLS TE隧道功能的详细介绍,请参见“MPLS配置指导”中“MPLS OAM”。
图1-22 VPNv4路由备份IPv4路由示意图
如图1-22所示,在出节点PE 2上指定VPN 1的FRR备份下一跳为PE 3,则PE 2接收到CE 2发布的IPv4路由和PE 3发布的到达CE 2的VPNv4路由后,PE 2会记录这两条路由,并将CE 2发布的IPv4路由当作主路径,PE 3发布的到达CE 2的VPNv4路由当作备份路径。同时,PE 2通过ARP或Echo方式的BFD会话检测PE 2—CE 2这条路径的状态。当此路径正常工作时,CE 1和CE 2通过主路径CE 1—PE 1—PE 2—CE 2通信。当PE 2检测到路径PE 2—CE 2出现故障时,快速切换到路径PE 2—PE 3—CE 2,CE 1将通过备份路径CE 1—PE 1—PE 2—PE 3—CE 2访问CE 2。从而,避免路由收敛(切换到路径CE 1—PE 1—PE 3—CE 2)前,流量转发中断。
在这种备份方式中,PE 2负责主路径检测和流量切换。
图1-23 IPv4路由备份VPNv4路由示意图
如图1-23所示,在PE 1上指定VPN 1的FRR备份下一跳为CE 2,则PE 1接收到CE 2发布的IPv4路由和PE 2发布的到达CE 2的VPNv4路由后,PE 1会记录这两条路由,并将PE 2发布的到达CE 2的VPNv4路由当作主路径,CE 2发布的IPv4路由当作备份路径。
在PE 1上配置BFD检测LSP或MPLS TE隧道功能,通过BFD检测PE 1到PE 2之间公网隧道的状态。当公网隧道正常工作时,CE 1和CE 2通过主路径CE 1—PE 1—PE 2—CE 2通信。当PE 1检测到该公网隧道出现故障时,PE 1将通过备份路径CE 1—PE 1—CE 2转发CE 1访问CE 2的流量。
在这种备份方式中,PE 1负责主路径检测和流量切换。
VPN引入等价路由功能用于将前缀和RD均相同的多条路由全部引入到VPN实例的路由表中。如果在开启本功能的同时配置了balance命令或MPLS L3VPN快速重路由功能,则这些路由之间可以进行负载分担或MPLS L3VPN快速重路由。balance命令的详细介绍,请参见“三层技术-IP路由命令参考”中的“BGP”。
图1-24 VPN引入等价路由示意图
如图1-24所示,在PE 1上存在RD为1:1的VPN实例VPN1,CE 1通过该VPN实例接入骨干网;在PE 2和PE 3上均存在RD为1:2的VPN实例VPN2,CE 2通过该VPN实例接入骨干网;VPN1和VPN2能够相互访问。
CE 2上发布一条路由后,PE 2和PE 3均通过VPNv4路由将该路由发布给PE 1,路由的RD为1:2。缺省情况下,对于前缀和RD均相同的多条路由,BGP只会将最优路由学习到VPN实例的路由表中。因此,在PE 1上,VPN实例VPN1的BGP路由表中只会存在一条到达CE 2的路由。在PE 1的VPN实例VPN1中开启VPN引入等价路由功能后,BGP会把前缀和RD均相同的两条路由全部学习到该VPN实例中,这两条路由之间可以进行负载分担或MPLS L3VPN快速重路由。
与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)
本特性的支持情况与设备型号有关,请以设备的实际情况为准。
型号 |
说明 |
MSR610 |
不支持 |
MSR810、MSR810-W、MSR810-W-DB、MSR810-LM、MSR810-W-LM、MSR810-10-PoE、MSR810-LM-HK、MSR810-W-LM-HK、MSR810-LM-CNDE-SJK、MSR810-CNDE-SJK、MSR810-EI、MSR810-LM-EA、MSR810-LM-EI |
支持 |
MSR810-LMS、MSR810-LUS |
不支持 |
MSR810-SI、MSR810-LM-SI |
不支持 |
MSR810-LMS-EA、MSR810-LME |
支持 |
MSR1004S-5G、MSR1004S-5G-CN |
支持 |
MSR1104S-W、MSR1104S-W-CAT6、MSR1104S-5G-CN、MSR1104S-W-5G-CN |
支持 |
MSR2600-6-X1、MSR2600-15-X1、MSR2600-15-X1-T |
支持 |
MSR2600-10-X1 |
支持 |
MSR 2630 |
支持 |
MSR3600-28、MSR3600-51 |
支持 |
MSR3600-28-SI、MSR3600-51-SI |
不支持 |
MSR3600-28-X1、MSR3600-28-X1-DP、MSR3600-51-X1、MSR3600-51-X1-DP |
支持 |
MSR3600-28-G-DP、MSR3600-51-G-DP |
支持 |
MSR3610-I-DP、MSR3610-IE-DP、MSR3610-IE-ES、MSR3610-IE-EAD、MSR-EAD-AK770、MSR3610-I-IG、MSR3610-IE-IG |
支持 |
MSR-iMC |
支持 |
MSR3610-X1、MSR3610-X1-DP、MSR3610-X1-DC、MSR3610-X1-DP-DC、MSR3620-X1、MSR3640-X1 |
支持 |
MSR 3610、MSR 3620、MSR 3620-DP、MSR 3640、MSR 3660 |
支持 |
MSR3610-G、MSR3620-G |
支持 |
MSR3640-G |
支持 |
MSR3640-X1-HI |
支持 |
型号 |
描述 |
MSR810-W-WiNet、MSR810-LM-WiNet |
支持 |
MSR830-4LM-WiNet |
支持 |
MSR830-5BEI-WiNet、MSR830-6EI-WiNet、MSR830-10BEI-WiNet |
支持 |
MSR830-6BHI-WiNet、MSR830-10BHI-WiNet |
支持 |
MSR2600-6-WiNet |
支持 |
MSR2600-10-X1-WiNet |
支持 |
MSR2630-WiNet |
支持 |
MSR3600-28-WiNet |
支持 |
MSR3610-X1-WiNet |
支持 |
MSR3620-X1-WiNet |
支持 |
MSR3610-WiNet、MSR3620-10-WiNet、MSR3620-DP-WiNet、MSR3620-WiNet、MSR3660-WiNet |
支持 |
型号 |
说明 |
MSR860-6EI-XS |
支持 |
MSR860-6HI-XS |
支持 |
MSR2630-XS |
支持 |
MSR3600-28-XS |
支持 |
MSR3610-XS |
支持 |
MSR3620-XS |
支持 |
MSR3610-I-XS |
支持 |
MSR3610-IE-XS |
支持 |
MSR3620-X1-XS |
支持 |
MSR3640-XS |
支持 |
MSR3660-XS |
支持 |
型号 |
说明 |
MSR810-LM-GL |
支持 |
MSR810-W-LM-GL |
支持 |
MSR830-6EI-GL |
支持 |
MSR830-10EI-GL |
支持 |
MSR830-6HI-GL |
支持 |
MSR830-10HI-GL |
支持 |
MSR1004S-5G-GL |
支持 |
MSR2600-6-X1-GL |
支持 |
MSR3600-28-SI-GL |
不支持 |
设备上同时MPLS L3VPN和OpenFlow功能时,必须配置default table-miss permit命令,才能确保MPLS L3VPN报文正常转发。
除特殊说明外,MPLS L3VPN的配置均在PE设备上执行。MPLS L3VPN配置任务如下:
(1) 配置MPLS L3VPN基本功能
a. 配置VPN实例
d. (可选)配置BGP VPNv4路由
(2) 配置MPLS L3VPN高级组网
请根据实际情况选择以下任务进行配置:
¡ 配置跨域VPN
如果承载VPN路由的MPLS骨干网跨越多个AS,则需要执行本配置。
¡ 配置嵌套VPN
如果网络中VPN接入数量比较多,管理者想要通过VPN划分访问权限,且不想让外部知道用户网络内部VPN的部署情况,则可以使用嵌套VPN组网方式。
¡ 配置多角色主机
多角色主机功能通过在PE上配置策略路由,使得来自Site内某些主机或服务器的报文可以访问多个VPN。
¡ 配置HoVPN
HoVPN用来避免PE成为网络的瓶颈,以便于大规模部署VPN网络。
(3) (可选)配置Egress PE上私网路由标签操作方式
(4) (可选)配置MPLS L3VPN快速重路由
(5) (可选)控制MPLS L3VPN网络中路由的发布与接收
RT-Filter功能用来在源头上减少发布的路由信息数量。
Add-Path(Additional Paths)功能允许BGP向邻居发送本地前缀相同下一跳不同的多条路由,以便在网络故障时缩短流量中断时间。
¡ 配置VPN实例的BGP路由添加到IP路由表以及发布时的规则
本功能用来将公网或其他VPN实例的路由信息引入到指定VPN实例中,从而使指定VPN用户可以获取访问公网或其他VPN的路由。
本功能用来将前缀和RD均相同的多条路由全部引入到VPN实例的路由表中,以便在这些路由之间形成等价路由或进行MPLS L3VPN快速重路由。
本功能用来配置BGP在撤销大量路由时,能够优先撤销某些指定的路由,以便将使用指定路由的流量快速地切换到有效路径上,最大限度地减少流量中断时间。
(6) (可选)维护MPLS L3VPN网络
¡ 开启告警功能
在配置MPLS L3VPN之前,需完成以下任务:
· 对MPLS骨干网(PE、P)配置IGP,实现骨干网的IP连通性
· 对MPLS骨干网(PE、P)配置MPLS基本能力
· 对MPLS骨干网(PE、P)配置MPLS LDP,建立LDP LSP
配置VPN实例的操作是在PE设备上进行的。
VPN实例在实现中与Site关联。VPN实例不是直接对应于VPN,一个VPN实例综合了和它所对应Site的VPN成员关系和路由规则。
(1) 进入系统视图。
system-view
(2) 配置VPN实例的MPLS标签范围。
mpls per-vrf-label range minimum maximum
(3) 创建VPN实例,并进入VPN实例视图。
ip vpn-instance vpn-instance-name
(4) 配置VPN实例的RD。
route-distinguisher route-distinguisher
缺省情况下,未配置VPN实例的RD。
(5) (可选)配置VPN实例的描述信息。
description text
缺省情况下,未配置VPN实例的描述信息。
(6) (可选)配置VPN实例的ID。
vpn-id vpn-id
缺省情况下,未配置VPN实例的ID。
(7) (可选)配置VPN实例的SNMP上下文。
snmp context-name context-name
缺省情况下,未配置VPN实例的SNMP上下文。
(8) 进入VPN实例IPv4地址族视图。
address-family ipv4
(9) 配置MPLS标签分配方式。
apply-label { per-instance [ static static-label-value ] | per-route }
缺省情况下,采用每下一跳每标签的标签分配方式,即BGP为VPN路由中的每个下一跳分配一个标签。
执行本命令将改变标签的分配方式,导致VPN实例下的所有路由重分发。因此已经有业务在VPN实例中运行时,执行本命令会导致业务短暂中断,请慎重操作。
如果主接口已经与VSI或MPLS L2VPN的交叉连接关联,则该接口或其子接口无法与VPN实例进行关联。
如果子接口已经与VSI或MPLS L2VPN的交叉连接关联,则该子接口无法与VPN实例进行关联。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 配置接口与指定的VPN实例关联。
ip binding vpn-instance vpn-instance-name
缺省情况下,接口未关联VPN实例,即接口属于公网。
配置或取消接口与VPN实例关联后,该接口上的IP地址、路由协议等配置将被删除。
执行本命令将删除接口上已经配置的IP地址,因此需要重新配置接口的IP地址。
VPN实例视图下配置的路由相关属性既可以用于IPv4 VPN,也可以用于IPv6 VPN。
VPN实例视图和VPN实例IPv4地址族视图下配置的路由相关属性均能用于IPv4 VPN。如果同时配置二者,则IPv4 VPN采用VPN实例IPv4地址族视图下的配置。
在对VPN实例应用入方向或出方向路由策略时,还需要创建并配置路由策略,配置方法请参见“三层技术-IP路由配置指导”中的“路由策略”。
(1) 进入系统视图。
system-view
(2) 进入VPN实例视图或VPN实例IPv4地址族视图。
¡ 进入VPN实例视图。
ip vpn-instance vpn-instance-name
¡ 请依次执行以下命令进入VPN实例IPv4地址族视图。
ip vpn-instance vpn-instance-name
address-family ipv4
(3) 配置VPN实例的Route Target。
vpn-target vpn-target&<1-8> [ both | export-extcommunity | import-extcommunity ]
缺省情况下,未配置VPN实例的Route Target。
(4) 配置VPN实例支持的最大激活路由前缀数。
routing-table limit number { warn-threshold | simply-alert }
缺省情况下,未限制VPN实例支持的最多激活路由前缀数。
通过本配置可以防止PE路由器上保存过多的激活路由前缀信息。
(5) 对当前VPN实例应用入方向路由策略。
import route-policy route-policy
缺省情况下,允许所有Route Target属性匹配的路由通过。
(6) 对当前VPN实例应用出方向路由策略。
export route-policy route-policy
缺省情况下,不对发布的路由进行过滤。
(7) 配置VPN实例的隧道策略。
tnl-policy tunnel-policy-name
缺省情况下,隧道策略为按照LSP隧道->GRE隧道->CRLSP->SRLSP隧道的优先级顺序选择隧道,负载分担条数为1。
如果本配置中指定的隧道策略尚未创建,则采用缺省策略。隧道策略的创建及配置方法,请参见“MPLS配置指导”中的“隧道策略”。
本配置在PE上进行,CE上的配置方法与普通静态路由相同。
静态路由的详细配置请参见“三层技术-IP路由配置指导”中的“静态路由”。
(1) 进入系统视图。
system-view
(2) 为指定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 ] | vpn-instance d-vpn-instance-name next-hop-address }
本配置在PE上进行,CE上配置普通RIP即可。
有关RIP的介绍和详细配置,请参见“三层技术-IP路由配置指导”中的“RIP”。
(1) 进入系统视图。
system-view
(2) 创建PE-CE间的RIP实例,并进入RIP视图。
rip [ process-id ] vpn-instance vpn-instance-name
(3) 配置引入BGP路由。
import-route bgp [ as-number ] [ allow-ibgp ] [ cost cost-value | route-policy route-policy-name | tag tag ] *
缺省情况下,没有引入其他协议的路由信息。
(4) 在指定网段上使能RIP。
network network-address [ wildcard-mask ]
缺省情况下,没有网段使能RIP。
本配置在PE上进行,CE上配置普通OSPF即可。
有关OSPF的介绍和详细配置,请参见“三层技术-IP路由配置指导”中的“OSPF”。
(1) 进入系统视图。
system-view
(2) 创建PE-CE间的OSPF实例,并进入OSPF视图。
ospf [ process-id | router-id router-id ] * vpn-instance vpn-instance-name
参数 |
使用说明 |
router-id router-id |
VPN实例绑定的OSPF进程不使用系统视图下配置的公网Router ID,因此在启动进程时需要手工配置Router ID,或者所要绑定的VPN实例中至少有一个接口配置了IP地址 |
vpn-instance vpn-instance-name |
· 一个OSPF进程只能属于一个VPN实例 · 删除VPN实例后,相关的所有OSPF进程也将全部被删除 |
(3) 配置引入BGP路由。
import-route bgp [ as-number ] [ allow-ibgp ] [ cost cost-value | nssa-only | route-policy route-policy-name | tag tag | type type ] *
缺省情况下,没有引入其他协议的路由信息。
若在设备上配置OSPF实例引入BGP路由,则该OSPF实例下未配置vpn-instance-capability simple命令时,设备会将从MP-IBGP对等体学习到的VPNv4路由引入到OSPF实例,无需指定allow-ibgp参数;否则,只有指定allow-ibgp参数,设备才会将从MP-IBGP对等体学习到的VPNv4路由引入到OSPF实例。
(4) (可选)配置OSPF域标识符。
domain-id domain-id [ secondary ]
缺省情况下,OSPF域标识符为0。
域标识符的作用 |
域标识符配置注意事项 |
OSPF进程的域ID包含在此进程生成的路由中,在将OSPF路由引入BGP时,域ID被附加到BGP路由上,作为BGP的扩展团体属性传递 |
· 每个OSPF进程只能配置一个主标识符,不同进程的域标识符可以相同 · 同一个VPN的所有OSPF进程应配置相同的域ID,以保证路由发布的正确性 |
(5) (可选)配置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。
(6) 配置OSPF区域,并进入OSPF区域视图。
area area-id
(7) 配置区域所包含的网段并在指定网段的接口上使能OSPF。
network ip-address wildcard-mask
缺省情况下,接口不属于任何区域且OSPF功能处于关闭状态。
本配置在PE上进行,CE上配置普通IS-IS即可。
有关IS-IS的介绍和详细配置,请参见“三层技术-IP路由配置指导”中的“IS-IS”。
(1) 进入系统视图。
system-view
(2) 创建PE-CE间的IS-IS实例,并进入IS-IS视图。
isis [ process-id ] vpn-instance vpn-instance-name
一个IS-IS进程只能属于一个VPN实例。
(3) 配置网络实体名称。
network-entity net
缺省情况下,未配置NET。
(4) 进入IS-IS IPv4单播地址族视图。
address-family ipv4
(5) 配置引入BGP路由。
import-route bgp [ as-number ] [ allow-ibgp ] [ cost cost-value | cost-type { external | internal } | [ level-1 | level-1-2 | level-2 ] | route-policy route-policy-name | tag tag ] *
import-route bgp [ as-number ] [ allow-ibgp ] inherit-cost [ [ level-1 | level-1-2 | level-2 ] | route-policy route-policy-name | tag tag ] *
缺省情况下,没有引入其他协议的路由信息。
(6) 退回系统视图。
quit
quit
(7) 进入接口视图。
interface interface-type interface-number
(8) 配置指定接口上使能IS-IS路由进程。
isis enable [ process-id ]
缺省情况下,IS-IS功能在接口上处于关闭状态,且没有任何IS-IS进程与其关联。
(1) 进入系统视图。
system-view
(2) 启动BGP实例,并进入BGP实例视图。
bgp as-number [ instance instance-name ]
缺省情况下,没有运行BGP。
(3) 进入BGP-VPN实例视图。
ip vpn-instance vpn-instance-name
BGP-VPN实例视图下的配置任务与BGP实例视图下的相同,有关介绍和详细配置,请参见“三层技术-IP路由配置指导”中的“BGP”。
(4) 将CE配置为VPN私网EBGP对等体。
peer { group-name | ip-address [ mask-length ] } as-number as-number
本命令的详细介绍请参见“三层技术-IP路由配置指导”中的“BGP”。
(5) 创建BGP-VPN IPv4单播地址族,并进入BGP-VPN IPv4单播地址族视图。
address-family ipv4 [ unicast ]
(6) 使能本地路由器与指定对等体/对等体组交换IPv4单播路由信息的能力。
peer { group-name | ip-address [ mask-length ] } enable
缺省情况下,本地路由器不能与对等体交换IPv4单播路由信息。
(7) 引入本端CE路由。
import-route protocol [ { process-id | all-processes } [ allow-direct | med med-value | route-policy route-policy-name ] * ]
PE需要将到本端CE的路由引入VPN路由表中,以发布给对端PE。
(8) 配置允许本地AS号在所接收的路由的AS_PATH属性中出现,并可同时配置允许重复的次数。
peer { group-name | ip-address [ mask-length ] } allow-as-loop [ number ]
缺省情况下,不允许本地AS号在接收路由的AS_PATH属性中出现。
Hub&Spoke组网中,如果在Hub-PE和Hub-CE之间运行EBGP,则需要在Hub-PE上执行本配置,否则Hub-PE不能接受Hub-CE返回的路由更新信息。
(1) 进入系统视图。
system-view
(2) 启动BGP实例,并进入BGP实例视图。
bgp as-number [ instance instance-name ]
缺省情况下,没有运行BGP。
(3) 将PE配置为对等体。
peer { group-name | ip-address [ mask-length ] } as-number as-number
(4) 创建BGP IPv4单播地址族,并进入BGP IPv4单播地址族视图。
address-family ipv4 [ unicast ]
(5) 使能本地路由器与指定对等体/对等体组交换IPv4单播路由信息的能力。
peer { group-name | ip-address [ mask-length ] } enable
缺省情况下,本地路由器不能与对等体交换IPv4单播路由信息。
(6) 配置路由引入。
import-route protocol [ { process-id | all-processes } [ allow-direct | 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) 进入系统视图。
system-view
(2) 启动BGP实例,并进入BGP实例视图。
bgp as-number [ instance instance-name ]
缺省情况下,没有运行BGP。
(3) 进入BGP-VPN实例视图。
ip vpn-instance vpn-instance-name
BGP-VPN实例视图下的配置任务与BGP实例视图下的相同,有关介绍和详细配置,请参见“三层技术-IP路由配置指导”中的“BGP”。
(4) 将CE配置为VPN私网IBGP对等体。
peer { group-name | ip-address [ mask-length ] } as-number as-number
(5) 创建BGP-VPN IPv4单播地址族,并进入BGP-VPN IPv4单播地址族视图。
address-family ipv4 [ unicast ]
(6) 使能本地路由器与指定对等体/对等体组交换IPv4单播路由信息的能力。
peer { group-name | ip-address [ mask-length ] } enable
缺省情况下,本地路由器不能与对等体交换IPv4单播路由信息。
(7) 将CE配置为路由反射器的客户端,以便PE将从CE学习的路由发送给其他IBGP对等体。
peer { group-name | ip-address [ mask-length ] } reflect-client
缺省情况下,未配置路由发射器及其客户端。
配置路由反射器后不会修改路由的下一跳。如果需要修改下一跳,则需在路由的接收端通过入策略进行修改。
(8) (可选)允许路由反射器在客户机之间反射路由。
reflect between-clients
缺省情况下,允许路由反射器在客户机之间反射路由。
(9) (可选)配置路由反射器的集群ID。
reflector cluster-id { cluster-id | ip-address }
缺省情况下,每个路由反射器都使用自己的Router ID作为集群ID。
如果一个集群中配置了多个路由反射器,请使用本命令为所有的路由反射器配置相同的集群ID,以避免产生路由环路。
(1) 进入系统视图。
system-view
(2) 启动BGP实例,并进入BGP实例视图。
bgp as-number [ instance instance-name ]
缺省情况下,没有运行BGP。
(3) 将PE配置为IBGP对等体。
peer { group-name | ip-address [ mask-length ] } as-number as-number
(4) 创建BGP IPv4单播地址族,并进入BGP IPv4单播地址族视图。
address-family ipv4 [ unicast ]
(5) 使能本地路由器与指定对等体/对等体组交换IPv4单播路由信息的能力。
peer { group-name | ip-address [ mask-length ] } enable
缺省情况下,本地路由器不能与对等体交换IPv4单播路由信息。
(6) 配置路由引入。
import-route protocol [ { process-id | all-processes } [ allow-direct | med med-value | route-policy route-policy-name ] * ]
CE需要将自己所能到达的VPN网段地址发布给接入的PE,通过PE发布给对端CE。
(1) 进入系统视图。
system-view
(2) 启动BGP实例,并进入BGP实例视图。
bgp as-number [ instance instance-name ]
缺省情况下,没有运行BGP。
(3) 将对端PE配置为对等体。
peer { group-name | ip-address [ mask-length ] } as-number as-number
(4) (可选)指定与对等体/对等体组创建BGP会话时建立TCP连接使用的源接口。
peer { group-name | ip-address [ mask-length ] } connect-interface interface-type interface-number
缺省情况下,BGP使用到达BGP对等体的最佳路由的出接口作为与对等体/对等体组创建BGP会话时建立TCP连接的源接口。
(5) 创建BGP VPNv4地址族,并进入BGP VPNv4地址族视图。
address-family vpnv4
(6) 使能本地路由器与指定对等体交换VPNv4路由信息的能力。
peer { group-name | ip-address [ mask-length ] } enable
缺省情况下,本地路由器不能与对等体交换VPNv4路由信息。
BGP VPNv4路由的属性需要在BGP VPNv4地址族视图下配置。BGP VPNv4路由的很多配置都与BGP IPv4单播路由相同,详细配置请参见“三层技术-IP路由配置指导”中的“BGP”。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图。
bgp as-number [ instance instance-name ]
(3) 进入BGP VPNv4地址族视图。
address-family vpnv4
(4) 向对等体/对等体组发送缺省路由。
peer { group-name | ipv4-address [ mask-length ] } default-route-advertise vpn-instance vpn-instance-name
缺省情况下,不向对等体/对等体组发送缺省路由。
(5) 设置允许从指定对等体/对等体组收到的路由数量。
peer { group-name | ipv4-address [ mask-length ] } route-limit prefix-number [ { alert-only | discard | reconnect reconnect-time } | percentage-value ] *
缺省情况下,不限制从对等体/对等体组接收的路由数量。
(6) 保存所有来自指定对等体/对等体组的原始路由更新信息,不管这些路由是否通过了路由策略的过滤。
peer { group-name | ipv4-address [ mask-length ] } keep-all-routes
缺省情况下,不保存来自对等体/对等体组的原始路由更新信息。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图。
bgp as-number [ instance instance-name ]
(3) 进入BGP VPNv4地址族视图。
address-family vpnv4
(4) 为从指定对等体/对等体组接收的路由分配首选值。
peer { group-name | ipv4-address [ mask-length ] } preferred-value value
缺省情况下,从对等体/对等体组接收的路由的首选值为0。
为保证IBGP对等体之间的连通性,需要在IBGP对等体之间建立全连接关系。当IBGP对等体数目很多时,网络资源和CPU资源的消耗都很大。
利用路由反射可以解决这一问题。在一个AS内,其中一台路由器作为RR(Route Reflector,路由反射器),作为客户机(Client)的路由器与路由反射器之间建立IBGP连接。路由反射器从客户机接收到路由后,将其传递(反射)给所有其他的客户机,从而保证客户机之间不需要建立IBGP连接,就可以学习到彼此的路由。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图。
bgp as-number [ instance instance-name ]
(3) 进入BGP VPNv4地址族视图。
address-family vpnv4
(4) 配置将本机作为路由反射器,并将对等体或对等体组作为路由反射器的客户。
peer { group-name | ipv4-address [ mask-length ] } reflect-client
缺省情况下,未配置路由反射器及其客户。
(5) (可选)允许从对等体/对等体组收到的路由反射给客户机。
peer { group-name | ipv4-address [ mask-length ] } reflect-route
缺省情况下,允许从对等体/对等体组收到的路由反射给客户机。
(6) (可选)允许路由反射器在客户机之间反射路由。
reflect between-clients
缺省情况下,允许路由反射器在客户机之间反射路由。
(7) (可选)配置路由反射器的集群ID。
reflector cluster-id { cluster-id | ip-address }
缺省情况下,每个路由反射器都使用自己的Router ID作为集群ID。
(8) (可选)创建路由反射器的反射策略。
rr-filter ext-comm-list-number
缺省情况下,路由反射器不会对反射的路由进行过滤。
(9) (可选)允许路由反射器反射路由时修改路由属性。
reflect change-path-attribute
缺省情况下,不允许路由反射器反射路由时修改路由属性。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图。
bgp as-number [ instance instance-name ]
(3) 进入BGP VPNv4地址族视图。
address-family vpnv4
(4) 配置NEXT_HOP属性。
¡ 配置向对等体/对等体组发布路由时,将下一跳属性修改为自身的地址。
peer { group-name | ipv4-address [ mask-length ] } next-hop-local
缺省情况下,向对等体/对等体组发布路由时,将下一跳属性修改为自身的地址。
¡ 配置向对等体/对等体组发布路由时不改变下一跳。
peer { group-name | ipv4-address [ mask-length ] } next-hop-invariable
缺省情况下,向对等体/对等体组发布路由时会将下一跳改为自身的地址。
如果在跨域VPN OptionC组网中使用RR通告VPNv4路由,则需要在RR上配置向BGP邻居和客户机通告VPNv4路由时,不改变路由的下一跳,以保证私网路由下一跳不会被修改。
(5) 配置AS_PATH属性。
¡ 配置对于从对等体/对等体组接收的路由,允许本地AS号在接收路由的AS_PATH属性中出现,并配置允许出现的次数。
peer { group-name | ipv4-address [ mask-length ] } allow-as-loop [ number ]
缺省情况下,不允许本地AS号在接收路由的AS_PATH属性中出现。
¡ 配置向指定EBGP对等体/对等体组发送BGP更新消息时只携带公有AS号,不携带私有AS号。
peer { group-name | ipv4-address [ mask-length ] } public-as-only
缺省情况下,向EBGP对等体/对等体组发送BGP更新消息时,既可以携带公有AS号,又可以携带私有AS号。
(6) 配置向对等体/对等体组发布团体属性。
peer { group-name | ipv4-address [ mask-length ] } advertise-community
缺省情况下,不向对等体/对等体组发布团体属性。
(7) 为BGP对等体/对等体组配置SoO属性。
peer { group-name | ipv4-address [ mask-length ] } soo site-of-origin
缺省情况下,没有为BGP对等体/对等体组配置SoO属性。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图。
bgp as-number [ instance instance-name ]
(3) 进入BGP VPNv4地址族视图。
address-family vpnv4
(4) 配置对发布的路由信息进行过滤。
filter-policy { ipv4-acl-number | name ipv4-acl-name | prefix-list prefix-list-name } export [ direct | { isis | ospf | rip } process-id | static ]
缺省情况下,不对发布的路由信息进行过滤。
(5) 配置对接收的路由信息进行过滤。
filter-policy { ipv4-acl-number | name ipv4-acl-name | prefix-list prefix-list-name } import
缺省情况下,不对接收的路由信息进行过滤。
(6) 为对等体/对等体组设置基于AS路径过滤列表的BGP路由过滤策略。
peer { group-name | ipv4-address [ mask-length ] } as-path-acl as-path-acl-number { export | import }
缺省情况下,未配置基于AS路径过滤列表的BGP路由过滤策略。
(7) 为对等体/对等体组设置基于ACL的BGP路由过滤策略。
peer { group-name | ipv4-address [ mask-length ] } filter-policy { ipv4-acl-number | name ipv4-acl-name } { export | import }
缺省情况下,未配置基于ACL的BGP路由过滤策略。
(8) 为对等体/对等体组设置基于地址前缀列表的BGP路由过滤策略。
peer { group-name | ipv4-address [ mask-length ] } prefix-list prefix-list-name { export | import }
缺省情况下,未配置基于地址前缀列表的BGP路由过滤策略。
(9) 对来自对等体/对等体组的路由或发布给对等体/对等体组的路由应用路由策略。
peer { group-name | ipv4-address [ mask-length ] } route-policy route-policy-name { export | import }
缺省情况下,没有为对等体/对等体组指定路由策略。
(10) 配置对接收到的VPNv4路由进行Route Target过滤。
policy vpn-target
缺省情况下,对接收到的VPNv4路由进行Route Target过滤,即只将Export Route Target属性与本地Import Route Target属性匹配的VPNv4路由加入到路由表。
通过配置BGP VPNv4路由衰减,可以抑制不稳定的路由信息,不允许这类路由参与路由选择。
本配置仅对IBGP路由生效。
配置本功能后,IBGP邻居down了之后,来自该邻居的VPNv4路由不会被删除,而是进行路由衰减。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图。
bgp as-number [ instance instance-name ]
(3) 进入BGP VPNv4地址族视图。
address-family vpnv4
(4) 配置IBGP路由衰减。
dampening ibgp[ half-life-reachable half-life-unreachable reuse suppress ceiling | route-policy route-policy-name ] *
缺省情况下,未配置IBGP路由衰减。
本功能的配置在BGP选路规则中的具体优先级顺序,请参见“三层技术-IP路由配置指导”中的“BGP概述”。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图。
bgp as-number [ instance instance-name ]
(3) 进入BGP VPNv4地址族视图。
address-family vpnv4
(4) 为指定对等体/对等体组设置高优先级,路由选路时优选从该对等体/对等体组学习到的路由。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } high-priority [ preferred ]
本命令仅对当前地址族下学习到的BGP路由优选生效,这些路由被引入到其他BGP路由表后,是否被优选不受本命令的影响。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图。
bgp as-number [ instance instance-name ]
(3) 进入BGP VPNv4地址族视图。
address-family vpnv4
(4) 配置BGP路由的下一跳地址类型影响路由优选。
bestroute nexthop-priority { ipv4 | ipv6 } [ preferred ]
缺省情况下,BGP优选下一跳地址为IPv4地址的路由。
多次执行本命令时,以最后一次执行的命令为准。
跨域VPN-OptionA的实现比较简单,当PE上的VPN数量及VPN路由数量都比较少时可以采用这种方案。
跨域VPN-OptionA的配置可以描述为:
· 对各AS分别进行基本MPLS L3VPN配置。
· 对于ASBR,将对端ASBR看作自己的CE配置即可。即:跨域VPN-OptionA方式需要在PE和ASBR上分别配置VPN实例,前者用于接入CE,后者用于接入对端ASBR。
在跨域VPN-OptionA方式中,对于同一个VPN,同一AS内的ASBR与PE的VPN实例的Route Target应能匹配;不同AS的PE之间的VPN实例的Route Target则不需要匹配。
ASBR在将VPNv4路由发布给MP-IBGP对等体时,始终会将下一跳修改为自身的地址,不受peer next-hop-local命令的控制。
配置基本MPLS L3VPN,并指定同一AS内的ASBR为MP-IBGP对等体。对于同一个VPN,不同AS的PE上为该VPN实例配置的Route Target需要匹配。
(1) 进入系统视图。
system-view
(2) 在连接AS内部路由器的接口上使能MPLS和LDP能力。
a. 配置本节点的LSR ID。
mpls lsr-id lsr-id
缺省情况下,未配置LSR ID。
b. 使能本节点的LDP能力,并进入LDP视图。
mpls ldp
缺省情况下,LDP能力处于关闭状态。
c. 退回系统视图。
quit
d. 进入连接AS内部路由器接口的接口视图。
interface interface-type interface-number
e. 使能接口的MPLS能力。
mpls enable
缺省情况下,接口的MPLS能力处于关闭状态。
f. 使能接口的LDP能力。
mpls ldp enable
缺省情况下,接口的LDP能力处于关闭状态。
g. 退回系统视图。
quit
(3) 在连接对端ASBR的接口上使能MPLS能力。
a. 进入连接对端ASBR接口的接口视图。
interface interface-type interface-number
b. 使能接口的MPLS能力。
mpls enable
缺省情况下,接口的MPLS能力处于关闭状态。
c. 退回系统视图。
quit
(4) 进入BGP实例视图。
bgp as-number [ instance instance-name ]
(5) 创建BGP对等体,将同一AS的PE配置为IBGP对等体,将不同AS的ASBR配置为EBGP对等体。
peer { group-name | ipv4-address [ mask-length ] } as-number as-number
(6) 进入BGP VPNv4地址族视图。
address-family vpnv4
(7) 使能本地路由器与同一AS的PE、不同AS的ASBR交换VPNv4路由信息的能力。
peer { group-name | ipv4-address [ mask-length ] } enable
缺省情况下,本地路由器不能与对等体交换VPNv4路由信息。
(8) 配置对接收到的VPNv4路由不进行Route Target过滤。
undo policy vpn-target
缺省情况下,对接收到的VPNv4路由进行Route Target过滤。
由于PE之间不是直连,因此需要配置peer ebgp-max-hop命令,允许本地路由器同非直连网络上的邻居建立EBGP会话。
执行本配置前,需要在PE或ASBR上配置通过BGP发布PE地址对应的路由,配置方法请参见“三层技术-IP路由配置指导”中的“BGP”。
PE上还需完成以下操作:
· 配置VPN实例
· 配置PE-CE之间的路由交换
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图。
bgp as-number [ instance instance-name ]
(3) 创建BGP对等体,将本AS的ASBR配置为IBGP对等体,将另一AS的PE配置为EBGP对等体。
peer { group-name | ipv4-address [ mask-length ] } as-number as-number
(4) 创建BGP IPv4单播地址族,并进入BGP IPv4单播地址族视图。
address-family ipv4 [ unicast ]
(5) 使能本地路由器与本AS的ASBR交换IPv4单播路由信息的能力。
peer { group-name | ipv4-address [ mask-length ] } enable
缺省情况下,本地路由器不能与对等体交换IPv4单播路由信息。
(6) 配置与本AS的ASBR之间能够交换带标签的IPv4路由。
peer { group-name | ipv4-address [ mask-length ] } label-route-capability
缺省情况下,不具有与对等体/对等体组交换带标签IPv4路由的能力。
(7) 退回BGP实例视图。
quit
(8) 进入BGP VPNv4地址族视图。
address-family vpnv4
(9) 使能本地路由器与另一AS的PE交换VPNv4路由信息的能力。
peer { group-name | ipv4-address [ mask-length ] } enable
缺省情况下,本地路由器不能与对等体交换VPNv4路由信息。
(10) (可选)配置向对等体发送路由时不改变下一跳。
peer { group-name | ipv4-address [ mask-length ] } next-hop-invariable
缺省情况下,向对等体/对等体组发布路由时会将下一跳改为自己的地址。
本配置用于使用RR通告VPNv4路由的情况:在RR上执行本配置,使得RR之间通告VPNv4路由时,路由的下一跳不会被改变。
(1) 进入系统视图。
system-view
(2) 配置路由策略。
a. 创建路由策略,并进入路由策略视图。
route-policy route-policy-name { deny | permit } node node-number
b. 匹配带标签的IPv4路由。
if-match mpls-label
缺省情况下,不匹配路由信息的MPLS标签。
在路由策略中,还可以配置其他的if-match子句,以实现只对满足某些条件的路由分配标签,其它路由仍作为普通IPv4路由发布。
c. 为IPv4路由分配标签。
apply mpls-label
缺省情况下,没有为IPv4路由分配标签。
d. 退回系统视图。
quit
(3) 在连接AS内部路由器的接口上使能MPLS和LDP能力。
a. 配置本节点的LSR ID。
mpls lsr-id lsr-id
缺省情况下,未配置LSR ID。
b. 使能本节点的LDP能力,并进入LDP视图。
mpls ldp
缺省情况下,LDP能力处于关闭状态。
c. 退回系统视图。
quit
d. 进入连接AS内部路由器接口的接口视图。
interface interface-type interface-number
e. 使能接口的MPLS能力。
mpls enable
缺省情况下,接口的MPLS能力处于关闭状态。
f. 使能接口的LDP能力。
mpls ldp enable
缺省情况下,接口的LDP能力处于关闭状态。
g. 退回系统视图。
quit
(4) 在连接对端ASBR的接口上使能MPLS能力。
a. 进入连接对端ASBR接口的接口视图。
interface interface-type interface-number
b. 使能接口的MPLS能力。
mpls enable
缺省情况下,接口的MPLS能力处于关闭状态。
c. 退回系统视图。
quit
(5) 进入BGP实例视图。
bgp as-number [ instance instance-name ]
(6) 创建BGP对等体,将本AS的PE配置为IBGP对等体,将另一AS的ASBR配置为EBGP对等体。
peer { group-name | ipv4-address [ mask-length ] } as-number as-number
(7) 创建BGP IPv4单播地址族,并进入BGP IPv4单播地址族视图。
address-family ipv4 [ unicast ]
(8) 使能本地路由器与本AS的PE、另一AS的ASBR交换IPv4单播路由信息的能力。
peer { group-name | ipv4-address [ mask-length ] } enable
缺省情况下,本地路由器不能与对等体交换IPv4单播路由信息。
(9) 配置与本AS的PE及另一AS的ASBR之间能够交换带标签的IPv4路由。
peer { group-name | ipv4-address [ mask-length ] } label-route-capability
缺省情况下,不具有与对等体/对等体组交换带标签IPv4路由的能力。
(10) 配置向本AS的PE发布路由时将下一跳改为自己的地址。
peer { group-name | ipv4-address [ mask-length ] } next-hop-local
缺省情况下,在向IBGP对等体/对等体组发布路由时不会将下一跳改为自己的地址。
(11) 对来自对等体/对等体组的路由或发布给对等体/对等体组的路由应用路由策略。
peer { group-name | ipv4-address [ mask-length ] } route-policy route-policy-name { export | import }
缺省情况下,没有为对等体/对等体组指定路由策略。
由于PE之间不是直连,因此需要配置peer ebgp-max-hop命令,允许本地路由器同非直连网络上的邻居建立EBGP会话。
执行本配置前,需要在PE或ASBR上配置通过BGP发布PE地址对应的路由,配置方法请参见“三层技术-IP路由配置指导”中的“BGP”。
PE上还需完成以下操作:
· 配置VPN实例
· 配置PE-CE之间的路由交换
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图。
bgp as-number [ instance instance-name ]
(3) 创建BGP对等体,将另一AS的PE配置为EBGP对等体。
peer { group-name | ipv4-address [ mask-length ] } as-number as-number
(4) 进入BGP VPNv4地址族视图。
address-family vpnv4
(5) 使能本地路由器与另一AS的PE交换VPNv4路由信息的能力。
peer { group-name | ipv4-address [ mask-length ] } enable
缺省情况下,本地路由器不能与对等体交换VPNv4路由信息。
(6) (可选)配置向对等体发送路由时不改变下一跳。
peer { group-name | ipv4-address [ mask-length ] } next-hop-invariable
缺省情况下,向对等体/对等体组发布路由时会将下一跳改为自己的地址。
本配置用于使用RR通告VPNv4路由的情况:在RR上执行本配置,使得RR之间通告VPNv4路由时,路由的下一跳不会被改变。
(1) 进入系统视图。
system-view
(2) 配置路由策略。
a. 创建路由策略,并进入路由策略视图。
route-policy route-policy-name { deny | permit } node node-number
b. 匹配带标签的IPv4路由。
if-match mpls-label
缺省情况下,不匹配路由信息的MPLS标签。
在路由策略中,还可以配置其他的if-match子句,以实现只对满足某些条件的路由分配标签,其它路由仍作为普通IPv4路由发布。
c. 为IPv4路由分配标签。
apply mpls-label
缺省情况下,没有为IPv4路由分配标签。
d. 退回系统视图。
quit
(3) 在连接AS内部路由器的接口上使能MPLS和LDP能力。
a. 配置本节点的LSR ID。
mpls lsr-id lsr-id
缺省情况下,未配置LSR ID。
b. 使能本节点的LDP能力,并进入LDP视图。
mpls ldp
缺省情况下,LDP能力处于关闭状态。
c. 退回系统视图。
quit
d. 进入连接AS内部路由器接口的接口视图。
interface interface-type interface-number
e. 使能接口的MPLS能力。
mpls enable
缺省情况下,接口的MPLS能力处于关闭状态。
f. 使能接口的LDP能力。
mpls ldp enable
缺省情况下,接口的LDP能力处于关闭状态。
g. 退回系统视图。
quit
(4) 在连接对端ASBR的接口上使能MPLS能力。
a. 进入连接对端ASBR接口的接口视图。
interface interface-type interface-number
b. 使能接口的MPLS能力。
mpls enable
缺省情况下,接口的MPLS能力处于关闭状态。
c. 退回系统视图。
quit
(5) 进入BGP实例视图。
bgp as-number [ instance instance-name ]
(6) 创建BGP对等体,将另一AS的ASBR配置为EBGP对等体。
peer { group-name | ipv4-address [ mask-length ] } as-number as-number
(7) 创建BGP IPv4单播地址族,并进入BGP IPv4单播地址族视图。
address-family ipv4 [ unicast ]
(8) 使能本地路由器与另一AS的ASBR交换IPv4单播路由信息的能力。
peer { group-name | ipv4-address [ mask-length ] } enable
缺省情况下,本地路由器不能与对等体交换IPv4单播路由信息。
(9) 配置与另一AS的ASBR之间能够交换带标签的IPv4路由。
peer { group-name | ipv4-address [ mask-length ] } label-route-capability
缺省情况下,不具有与对等体/对等体组交换带标签IPv4路由的能力。
(10) 配置向本AS的PE发布路由时将下一跳改为自己的地址。
peer { group-name | ipv4-address [ mask-length ] } next-hop-local
缺省情况下,在向IBGP对等体/对等体组发布路由时不会将下一跳改为自己的地址。
(11) 对来自对等体/对等体组的路由或发布给对等体/对等体组的路由应用路由策略。
peer { group-name | ipv4-address [ mask-length ] } route-policy route-policy-name { export | import }
缺省情况下,没有为对等体/对等体组指定路由策略。
同一用户网络的不同子VPN之间地址空间不能重叠。
建议嵌套VPN中对等体CE的地址不要与公网中对等体的地址重叠。
目前,嵌套VPN不支持多跳EBGP组网方式,因此运营商PE和运营商CE之间必须使用直连接口地址建立邻居关系。
(1) 配置用户CE接入用户PE。
a. 在用户PE上配置VPN实例。
b. 在用户PE和用户CE上配置私网路由交换。
详细配置请参见“1.7 配置PE-CE间的路由交换”。
(2) 配置用户PE和运营商CE通过BGP VPNv4路由交互用户网络内部子VPN的路由。
a. 在用户PE和运营商CE上配置BGP VPNv4路由交互。
详细配置请参见“1.8 配置PE-PE间的路由交换”。
b. 在运营商CE上依次执行以下命令,配置其接收所有的BGP VPNv4路由,不根据Route Target对VPNv4路由进行过滤。
system-view
bgp as-number [ instance instance-name ]
address-family vpnv4
undo policy vpn-target
缺省情况下,对接收到的VPNv4路由进行Route Target过滤,即只将Export Route Target属性与本地Import Route Target属性匹配的VPNv4路由加入到路由表。
嵌套VPN网络中可以不部署运营商CE,用户PE直接连接到运营商PE。此时,无需执行本配置。
(3) 配置运营商CE接入运营商PE。
a. 在运营商PE上配置VPN实例。
b. 在运营商PE和运营商CE上配置路由交换。
详细配置请参见“1.7 配置PE-CE间的路由交换”。
(4) 配置运营商PE和运营商CE交换用户的VPNv4路由。
此处只介绍运营商PE的配置方法。运营商CE的配置方法,请参见“1.8 配置PE-PE间的路由交换”。用户PE直接连接运营商PE时,用户PE同时作为运营商CE设备,在用户PE上要进行运营商CE的相关配置。
a. 请依次执行以下命令进入BGP VPNv4地址族视图。
system-view
bgp as-number [ instance instance-name ]
address-family vpnv4
b. 开启嵌套VPN功能。
nesting-vpn
缺省情况下,嵌套VPN功能处于关闭状态。
c. 退回BGP实例视图。
quit
d. 进入BGP-VPN实例视图。
ip vpn-instance vpn-instance-name
e. 将运营商CE配置为BGP对等体。
peer { group-name | ipv4-address [ mask-length ] } as-number as-number
f. 创建BGP-VPN VPNv4地址族,并进入BGP-VPN VPNv4地址族视图。
address-family vpnv4
g. 激活对等体CE或CE所属的对等体组,使能与其交换BGP-VPNv4路由信息的能力。
peer { group-name | ipv4-address [ mask-length ] } enable
缺省情况下,未激活对等体和对等体组。
h. (可选)为指定对等体/对等体组设置高优先级,路由选路时优选从该对等体/对等体组学习到的路由。
peer { group-name | ipv4-address [ mask-length ] } high-priority [ preferred ]
缺省情况下,BGP不为指定对等体/对等体组设置高优先级,选路规则不发生变化。
i. (可选)为BGP对等体/对等体组配置SoO属性。
peer { group-name | ipv4-address [ mask-length ] } soo site-of-origin
缺省情况下,没有为BGP对等体/对等体组配置SoO属性。
(5) 配置运营商PE之间交互BGP VPNv4路由。
详细配置请参见“1.8 配置PE-PE间的路由交换”。
多角色主机特性的配置都在多角色主机所属Site接入的PE上进行,主要包括如下配置:
· 配置并应用策略路由:使得多角色主机发送的报文可以发送到多个VPN。
· 配置静态路由:使得其他VPN返回的报文能够发送给多角色主机。
(1) 进入系统视图。
system-view
(2) 创建策略节点,并进入策略节点视图。
policy-based-route policy-name { deny | permit } node node-number
(3) 配置策略节点的匹配规则。
详细介绍请参见“三层技术-IP路由配置指导”中的“策略路由”。
缺省情况下,未配置策略节点的匹配规则,所有报文都满足该节点的匹配规则。
本配置用来匹配来自多角色主机的报文。
(4) 设置报文在指定VPN实例中进行转发。
apply access-vpn vpn-instance vpn-instance-name&<1-n>
缺省情况下,未设置报文在指定VPN实例中进行转发。
本配置中需要指定多个VPN实例,第一个为多角色主机所属的VPN实例,其余为需要访问的其他VPN实例。对于满足匹配规则的报文,根据第一个可用的VPN实例转发表进行转发。
(5) 退回系统视图。
quit
(6) 进入接入CE的接口视图。
interface interface-type interface-number
(7) 对接口转发的报文应用策略。
ip policy-based-route policy-name
缺省情况下,对接口转发的报文未应用策略。
(1) 进入系统视图。
system-view
(2) 为指定VPN实例配置静态路由。
ip route-static vpn-instance s-vpn-instance-name dest-address { mask-length | mask } vpn-instance d-vpn-instance-name next-hop-address
其中,d-vpn-instance-name为多角色主机所属的VPN实例,next-hop-address为多角色主机所在Site的CE设备的地址。
UPE上仅需进行MPLS L3VPN基本配置。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图。
bgp as-number [ instance instance-name ]
(3) 创建BGP对等体。
peer { group-name | ipv4-address [ mask-length ] } as-number as-number
(4) 进入BGP VPNv4地址族视图。
address-family vpnv4
(5) 使能本地路由器与指定对等体交换VPNv4路由信息的能力。
peer { group-name | ipv4-address [ mask-length ] } enable
缺省情况下,本地路由器不能与对等体交换VPNv4路由信息。
(6) 配置BGP对等体或对等体组为UPE。
peer { group-name | ipv4-address [ mask-length ] } upe
缺省情况下,BGP对等体或对等体组不是HoVPN的UPE。
(7) 向UPE发送路由。
¡ 向UPE发送指定VPN实例的缺省路由。
peer { group-name | ipv4-address [ mask-length ] } default-route-advertise vpn-instance vpn-instance-name
如果BGP对等体/对等体组为UPE时,只有执行本命令后,设备才会向其发布VPN实例缺省路由,下一跳为本地地址。不论本地路由表中是否存在缺省路由,都会发布该缺省路由。
¡ 向UPE发送通过路由策略的路由。
peer { group-name | ipv4-address [ mask-length ] } upe route-policy route-policy-name export
缺省情况下,不向对等体发布路由。
建议不要同时配置peer default-route-advertise vpn-instance命令和peer upe route-policy命令。
(8) 退回BGP实例视图。
quit
(9) 创建BGP-VPN实例,并进入BGP-VPN实例视图。
ip vpn-instance vpn-instance-name
由于SPE上没有接口与用户网络直接相连,因此,SPE上不需要配置VPN实例与接口关联。本配置仅用于根据Route Target属性将学习到的VPNv4路由添加到相应VPN实例的BGP路由表中。
Egress PE上私网路由的标签操作方式分为:
· 私网标签的POPGO转发方式:弹出标签后,直接从出接口发送。
· 私网标签的POP转发方式:弹出标签后,再查FIB表转发。
私网标签的POPGO转发方式和每VPN实例标签申请方式互斥,即不能同时执行vpn popgo和label-allocation-mode per-vrf命令。label-allocation-mode命令的详细介绍请参见“三层技术-IP路由命令参考”中的“BGP”。
每实例每标签的标签分配方式不能与私网标签的POPGO转发方式配合使用,配置apply-label per-instance命令后,只能根据标签查找FIB转发报文,该VPN内vpn popgo命令不生效。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图。
bgp as-number [ instance instance-name ]
(3) 配置Egress PE上私网路由的标签操作方式为根据标签查找出接口转发。
vpn popgo
缺省情况下,Egress PE上私网路由的标签操作方式为根据标签查找FIB进行转发。
开启MPLS L3VPN快速重路由功能的方法有如下两种:
· 在路由策略中指定快速重路由的备份下一跳,并在BGP-VPN IPv4单播地址族视图下配置快速重路由引用该路由策略。采用这种方式时,只有为主路由计算出的备份下一跳地址与指定的地址相同时,才会为其生成备份下一跳;否则,不会为主路由生成备份下一跳。在引用的路由策略中,还可以配置if-match子句,用来决定哪些路由可以进行快速重路由保护,设备只会为通过if-match子句过滤的路由生成备份下一跳。
· 在BGP-VPN IPv4单播地址族视图下开启该地址族的快速重路由功能。采用这种方式时,设备会为当前VPN实例的所有BGP路由自动计算备份下一跳,即只要从不同BGP对等体学习到了到达同一目的网络的路由,且这些路由不等价,就会生成主备两条路由。
路由策略方式的优先级高于开启地址族快速重路由功能方式。
在某些组网情况下,在BGP-VPN IPv4单播地址族视图下执行pic命令开启该地址族的快速重路由功能,为所有BGP路由生成备份下一跳后,可能会导致路由环路,请谨慎使用本命令。
(1) 进入系统视图。
system-view
(2) 配置BFD检测。
¡ 使能MPLS BFD功能。
mpls bfd enable
缺省情况下,MPLS与BFD联动功能处于关闭状态。
在VPNv4路由备份VPNv4路由、IPv4路由备份VPNv4路由组网中,需要执行本命令。本命令的详细介绍,请参见“MPLS命令参考”中的“MPLS OAM”。
¡ 配置echo报文的源IP地址。
bfd echo-source-ip ip-address
缺省情况下,未配置echo报文的源IP地址。
VPNv4路由备份IPv4路由组网中,若通过Echo方式的BFD会话检测主路由的下一跳是否可达,则需要执行本命令。本命令的详细介绍,请参见“可靠性命令参考”中的“BFD”。
(3) 配置使用BFD检测公网LSP或MPLS TE隧道的连通性。
¡ 配置使用BFD检测指定FEC对应LSP的连通性。
mpls bfd dest-addr mask-length [ nexthop nexthop-address [ discriminator local local-id remote remote-id ] ] [ template template-name ]
¡ 依次执行以下命令配置使用BFD检测当前隧道接口对应MPLS TE隧道的连通性。
interface tunnel number mode mpls-te
mpls bfd [ discriminator local local-id remote remote-id ] [ template template-name ]
quit
缺省情况下,未使用BFD检测公网LSP和MPLS TE隧道的连通性。
在VPNv4路由备份VPNv4路由、IPv4路由备份VPNv4路由组网中,需要执行本配置;VPNv4路由备份IPv4路由组网中,不需要执行本配置。
本配置中各命令的详细介绍,请参见“MPLS命令参考”中的“MPLS OAM”。
(4) 配置路由策略。
a. 创建路由策略,并进入路由策略视图。
route-policy route-policy-name permit node node-number
b. 配置快速重路由的备份下一跳地址。
apply fast-reroute backup-nexthop ip-address
缺省情况下,未配置快速重路由的备份下一跳地址。
c. 退回系统视图。
quit
本配置中各命令的详细介绍,请参见“三层技术-IP路由命令参考”中的“路由策略”。
(5) 进入BGP实例视图。
bgp as-number [ instance instance-name ]
(6) (可选)配置通过Echo方式的BFD会话检测主路由的下一跳是否可达。
primary-path-detect bfd echo
缺省情况下,通过ARP检测主路由的下一跳是否可达。
VPNv4路由备份IPv4路由组网中,可以根据实际情况选择是否执行本配置;其他组网中,无需执行本配置。
本命令的详细介绍,请参见“三层技术-IP路由命令参考”中的“BGP”。
(7) 进入BGP-VPN实例视图。
ip vpn-instance vpn-instance-name
(8) 进入BGP-VPN IPv4单播地址族视图。
address-family ipv4 [ unicast ]
(9) 在当前地址族视图下指定快速重路由引用的路由策略。
fast-reroute route-policy route-policy-name
缺省情况下,快速重路由未引用任何路由策略。
引用的路由策略中,只有apply fast-reroute backup-nexthop命令生效,其他apply子句不会生效。
本命令的详细介绍,请参见“三层技术-IP路由命令参考”中的“BGP”。
(1) 进入系统视图。
system-view
(2) 配置BFD检测。
¡ 使能MPLS BFD功能。
mpls bfd enable
缺省情况下,MPLS与BFD联动功能处于关闭状态。
在VPNv4路由备份VPNv4路由、IPv4路由备份VPNv4路由组网中,需要执行本命令。本命令的详细介绍,请参见“MPLS命令参考”中的“MPLS OAM”。
¡ 配置echo报文的源IP地址。
bfd echo-source-ip ip-address
缺省情况下,未配置echo报文的源IP地址。
VPNv4路由备份IPv4路由组网中,若通过Echo方式的BFD会话检测主路由的下一跳是否可达,则需要执行本命令。本命令的详细介绍,请参见“可靠性命令参考”中的“BFD”。
(3) 配置使用BFD检测公网LSP或MPLS TE隧道的连通性。
¡ 配置使用BFD检测指定FEC对应LSP的连通性。
mpls bfd dest-addr mask-length [ nexthop nexthop-address [ discriminator local local-id remote remote-id ] ] [ template template-name ]
¡ 依次执行本命令配置使用BFD检测当前隧道接口对应MPLS TE隧道的连通性。
interface tunnel number mode mpls-te
mpls bfd [ discriminator local local-id remote remote-id ] [ template template-name ]
quit
缺省情况下,未使用BFD检测公网LSP和MPLS TE隧道的连通性。
在VPNv4路由备份VPNv4路由、IPv4路由备份VPNv4路由组网中,需要执行本配置;VPNv4路由备份IPv4路由组网中,不需要执行本配置。
本配置中各命令的详细介绍,请参见“MPLS命令参考”中的“MPLS OAM”。
(4) 进入BGP实例视图。
bgp as-number [ instance instance-name ]
(5) (可选)配置通过Echo方式的BFD会话检测主路由的下一跳是否可达。
primary-path-detect bfd echo
缺省情况下,通过ARP检测主路由的下一跳是否可达。
VPNv4路由备份IPv4路由组网中,可以根据实际情况选择是否执行本配置;其他组网中,无需执行本配置。
本命令的详细介绍,请参见“三层技术-IP路由命令参考”中的“BGP”。
(6) 进入BGP-VPN实例视图。
ip vpn-instance vpn-instance-name
(7) 进入BGP-VPN IPv4单播地址族视图。
address-family ipv4 [ unicast ]
(8) 开启当前地址族的快速重路由功能。
pic
缺省情况下,快速重路由功能处于关闭状态。
本命令的详细介绍,请参见“三层技术-IP路由命令参考”中的“BGP”。
在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
(1) 进入系统视图。
system-view
(2) 创建Loopback接口,并进入Loopback接口视图。
interface loopback interface-number
(3) 将Loopback接口与VPN实例关联。
ip binding vpn-instance vpn-instance-name
缺省情况下,接口不关联任何VPN实例,属于公网接口。
(4) 配置Loopback接口的地址。
ip address ip-address { mask-length | mask }
缺省情况下,未配置Loopback接口的地址。
(5) 退回系统视图。
quit
(6) 进入BGP实例视图。
bgp as-number [ instance instance-name ]
(7) 进入BGP-VPN实例视图。
ip vpn-instance vpn-instance-name
(8) 进入BGP-VPN IPv4单播地址族视图。
address-family ipv4 [ unicast ]
(9) 引入直连路由(将Loopback主机路由引入BGP)。
import-route direct
缺省情况下,不会引入直连路由。
(1) 进入系统视图。
system-view
(2) 进入OSPF视图。
ospf [ process-id | router-id router-id | vpn-instance vpn-instance-name ] *
建议用户启动OSPF进程时手工配置路由器ID。
(3) 配置VPN引入路由的外部路由标记值。
route-tag tag-value
缺省情况下,若MPLS骨干网上配置了BGP路由协议,并且BGP的AS号不大于65535,则外部路由标记值的前面两个字节固定为0xD000,后面的两个字节为本端BGP的AS号;否则,外部路由标记值为0。
(4) 进入OSPF区域视图。
area area-id
(5) 创建一条OSPF伪连接。
sham-link source-ip-address destination-ip-address [ cost cost-value | dead dead-interval | hello hello-interval | { { hmac-md5 | hmac-sha-256 | md5 } key-id { cipher | plain } string | keychain keychain-name | simple { cipher | plain } string } | retransmit retrans-interval | trans-delay delay | ttl-security hops hop-count ] *
不同Site的CE具有相同的AS号时,PE上需要开启BGP的AS号替换功能,从而避免路由被丢弃。
使能了BGP的AS号替换功能后,当PE向指定CE发布路由时,如果路由的AS_PATH中有与CE相同的AS号,将被替换成PE的AS号后再发布。
PE使用不同接口连接同一站点的多个CE时,如果配置了BGP的AS号替换功能,则会导致路由环路。这种情况下,需要在PE上为从同一站点不同CE学习到的路由添加相同的SoO属性,且PE向CE发布路由时检查SoO属性,如果路由的SoO属性与为CE配置的SoO属性相同,则不将该路由发布给CE,从而避免路由环路。
本配置中各命令的详细介绍,请参见“三层技术-IP路由命令参考”中的“BGP”。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图。
bgp as-number [ instance instance-name ]
(3) 进入BGP-VPN实例视图。
ip vpn-instance vpn-instance-name
(4) 使能BGP的AS号替换功能。
peer { ipv4-address [ mask-length ] | group-name } substitute-as
缺省情况下,BGP的AS号替换功能处于关闭状态。
(5) 进入BGP-VPN IPv4单播地址族视图。
address-family ipv4 [ unicast ]
(6) (可选)为BGP对等体/对等体组配置SoO属性。
peer { group-name | ipv4-address [ mask-length ] } soo site-of-origin
缺省情况下,没有为BGP对等体/对等体组配置SoO属性。
在MPLS L3VPN组网中,通过RT-Filter功能可以从源头上减少路由信息的数量。配置RT-Filter功能后,PE使用RT-Filter地址族将本地的Import Target属性发布给远端PE。远端PE根据接收到的Import target属性直接对路由进行过滤,只发布通过Import target属性过滤的路由,从而减少发布的路由信息数量。
RT-Filter功能通常和路由反射器功能配合使用,以解决路由反射器上存在大量路由的问题。
本配置中各命令的详细介绍,请参见“三层技术-IP路由命令参考”中的“BGP”。
本配置中各命令的详细介绍,请参见“三层技术-IP路由命令参考”中的“BGP”。在本配置中,除“1.18.3 使能交换IPv4 RT-Filter路由信息的能力”外,其他配置均为可选配置。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图。
bgp as-number [ instance instance-name ]
(3) 进入BGP IPv4 RT-Filter地址族视图。
address-family ipv4 rtfilter
(4) 允许本地路由器与指定对等体/对等体组交换路由信息。
peer { group-name | ipv4-address [ mask-length ] } enable
缺省情况下,本地路由器不能与对等体/对等体组交换路由信息。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图。
bgp as-number [ instance instance-name ]
(3) 进入BGP IPv4 RT-Filter地址族视图。
address-family ipv4 rtfilter
(4) 向对等体/对等体组发送缺省路由。
peer { group-name | ipv4-address [ mask-length ] } default-route-advertise [ route-policy route-policy-name ]
缺省情况下,不向对等体/对等体组发送缺省路由。
(5) 为从对等体/对等体组接收的路由分配首选值。
peer { group-name | ipv4-address [ mask-length ] } preferred-value value
缺省情况下,从对等体/对等体组接收的路由的首选值为0。
(6) 为指定对等体/对等体组设置高优先级,路由选路时优选从该对等体/对等体组学习到的路由。
peer { group-name | ipv4-address [ mask-length ] } high-priority [ preferred ]
缺省情况下,BGP不为指定对等体/对等体组设置高优先级,选路规则不发生变化。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图。
bgp as-number [ instance instance-name ]
(3) 进入BGP IPv4 RT-Filter地址族视图。
address-family ipv4 rtfilter
(4) 配置本机作为路由反射器,对等体/对等体组作为路由反射器的客户机。
peer { group-name | ipv4-address [ mask-length ] } reflect-client
缺省情况下,未配置路由反射器及其客户机。
(5) (可选)允许路由反射器在客户机之间反射路由。
reflect between-clients
缺省情况下,允许路由反射器在客户机之间反射路由。
(6) (可选)配置路由反射器的集群ID。
reflector cluster-id { cluster-id | ipv4-address }
缺省情况下,每个路由反射器都使用自己的Router ID作为集群ID。
缺省情况下,设备在发布VPNv4路由信息时,先根据IPv4 RT-Filter路由信息进行RT过滤,再为通过RT过滤的路由应用出方向路由策略。在一些组网中,设备没有在VPN实例中配置Route Target值,而是通过出方向路由策略,为VPNv4路由设置Route Target值。此时,如果设备与VPNv4路由发布对象使能了交换IPv4 RT-Filter路由信息的能力,那么所有的VPNv4路由都无法通过RT过滤,导致无法向外发布VPNv4路由。
可以通过配置本功能解决上述问题。配置本功能后,设备在路由发布时,先为路由应用出方向路由策略,再进行RT过滤,以便用户能够基于路由策略灵活控制需要发布的路由。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图。
bgp as-number [ instance instance-name ]
(3) 进入BGP IPv4 RT-Filter地址族视图。
address-family ipv4 rtfilter
(4) 配置设备在发布VPNv4路由信息时,先为路由应用出方向路由策略,再进行RT过滤。
rtfilter check-after-policy
缺省情况下,设备在发布VPNv4路由信息时,先根据IPv4 RT-Filter路由信息进行RT过滤,再为通过RT过滤的路由应用出方向路由策略。
缺省情况下,BGP只发布一条最优路由。如果最优路由所在路径出现网络故障,数据流量将会被中断,直到BGP根据新的网络拓扑路由收敛后,被中断的流量才能恢复正常的传输。
配置了Add-Path(Additional Paths)功能后,BGP可以向邻居发送本地前缀相同下一跳不同的多条路由。网络出现故障后,次优路由可以成为新的最优路由,这样就缩短了流量中断时间。
Add-Path能力包括接收和发送两种。为了让对等体间的Add-Path能力协商成功,必须一端使能接收能力,另一端使能发送能力。
(1) 进入系统视图。
system-view
(2) 进入BGP VPNv4地址族视图或BGP-VPN VPNv4地址族视图。
¡ 依次执行以下命令进入BGP VPNv4地址族视图。
bgp as-number [ instance instance-name ]
address-family vpnv4
¡ 依次执行以下命令进入BGP-VPN VPNv4地址族视图。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
address-family vpnv4
(3) 配置Add-Path功能。
¡ 在BGP VPNv4地址族视图下:
peer { group-name | ipv4-address [ make-length ] | ipv6-address [ prefix-length ] } additional-paths { receive | send } *
¡ 在BGP-VPN VPNv4地址族视图下:
peer { group-name | ipv4-address [ mask-length ] } additional-paths { receive | send } *
缺省情况下,未配置Add-Path功能。
(4) 配置向指定对等体/对等体组发送的Add-Path优选路由的最大条数。
¡ 在BGP VPNv4地址族视图下:
peer { group-name | ipv4-address [ make-length ] | ipv6-address [ prefix-length ] } advertise additional-paths best number
¡ 在BGP-VPN VPNv4地址族视图下:
peer { group-name | ipv4-address [ mask-length ] } advertise additional-paths best number
缺省情况下,向指定对等体/对等体组发送的Add-Path优选路由的最大条数为1。
(5) 配置Add-Path优选路由的最大条数。
additional-paths select-best best-number
缺省情况下,Add-Path优选路由的最大条数为1。
(6) (可选)配置路由延迟优选时间。
route-select delay delay-value
缺省情况下,延迟时间为0秒,即路由优选不延迟。
本配置可以实现以下功能:
· BGP向VPN实例的IP路由表添加路由时,优选与当前VPN实例Route Target属性匹配的路由。
配置了undo policy vpn-target命令后,与当前VPN实例Route Target属性不匹配的VPNv4路由可以添加到VPN实例的BGP路由表中,并能够在BGP路由表中被优选。但是这些路由无法添加到当前VPN实例的IP路由表中,从而导致该路由在当前VPN实例内不可达。
通过配置本功能,可以解决上述问题。配置本功能后,对于到达同一目的地址的不同BGP路由,如果其中存在与当前VPN实例Route Target属性匹配的路由,则将其中最优的路由添加到当前VPN实例的IP路由表中。
例如,VPN实例vpna的Import Target值为10:1,vpna的BGP路由表中存在两条目的地址为1.1.1.1的路由,分别是1.1.1.1 <RT: 10:1>和1.1.1.1 <RT: 20:1>,其中1.1.1.1 <RT: 20:1>为最优路由。配置本功能后,BGP会将与vpna的Import Target值匹配的路由1.1.1.1 <RT: 10:1>添加到vpna的IP路由表中。
· 向对等体发布BGP路由时,如果最优路由无法发布,则发布次优路由;只有到达同一目的地址的所有路由均无法发布时,才不发布该目的地址对应的路由。
由于VPN实例下的BGP路由表中包含当前VPN实例IP路由表的路由,所以某些BGP地址族的路由表中可能包含非当前地址族学习到的路由。例如,通过BGP EVPN地址族学习到IP前缀路由后,该路由会被添加到对应VPN实例的IP路由表中,同时在该VPN实例的BGP-VPN IPv4单播地址族以及BGP VPNv4地址族的BGP路由表中也存在该路由。在发布路由时,如果BGP最优路由不是来自当前的地址族,则该路由无法发送给当前地址族的对等体,导致路由发送失败。
配置本功能后,设备在发布BGP路由时,如果最优路由无法发送给对等体,则选择次优路由进行发布;如果次优路由也不能发布,则根据优先级选择更次优的路由发布;直至选择出能发布的路由进行发布,或到达同一目的地址的所有路由均发布失败后,不发布该目的地址对应的路由。
例如,设备同时通过BGP VPNv4地址族以及BGP EVPN地址族学习到了IP前缀为3.3.3.3/32的路由,则在BGP VPNv4地址族的BGP路由表中,存在两条目的地址为3.3.3.3的路由,从BGP EVPN地址族学习到的路由为最优路由。由于这条路由来自BGP EVPN地址族,该路由不能发布给BGP VPNv4对等体,导致网络中仅部署了BGP VPNv4的节点无法获得IP前缀为3.3.3.3/32的路由信息。配置了本功能后,设备会向BGP VPNv4对等体发布通过BGP VPNv4地址族学习到的IP前缀为3.3.3.3/32的次优路由,以保障路由信息的正常发布。
本命令对所有VPN实例的BGP路由均生效,请谨慎使用。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图。
bgp as-number [ instance instance-name ]
(3) 配置BGP向VPN实例IP路由表添加路由时优选RT匹配的路由,以及BGP VPN实例下的路由发布时可以发布非最优路由。
bestroute same-rd
缺省情况下,BGP向VPN实例路由表添加路由时,优选当前BGP路由表中的最优路由;向对等体发布BGP路由时,只发布最优路由。
在BGP/MPLS L3VPN组网中,只有Route Target属性匹配的VPN实例之间才可以通信。通过配置本功能可以实现:
· 将公网或其他VPN实例的路由信息引入到指定VPN实例中,从而使指定VPN用户可以获取访问公网或其他VPN的路由。
· 将指定VPN实例的路由信息引入到公网中,从而使公网获取指定VPN的路由,以便转发用户流量。
在流量智能调控场景中,不同租户的流量被划分到不同的VPN中。为了使租户流量可以流向公网,则需要配置本功能将公网的路由信息引入到指定VPN实例中。
(1) 进入系统视图。
system-view
(2) 进入VPN实例视图。
ip vpn-instance vpn-instance-name
(3) 进入VPN实例IPv4地址族视图。
address-family ipv4
(4) 将公网或其他VPN实例的路由信息引入到指定VPN实例中。
route-replicate from { public | vpn-instance vpn-instance-name } protocol eigrp eigrp-as [ advertise ] [ route-policy route-policy-name ]
route-replicate from { public | vpn-instance vpn-instance-name } protocol { bgp as-number | direct | static | { isis | ospf | rip } process-id } [ advertise ] [ route-policy route-policy-name ]
缺省情况下,公网或其他VPN实例的路由信息不能引入到指定VPN实例中。
(1) 进入系统视图。
system-view
(2) 进入公网实例视图。
ip public-instance
(3) 进入公网实例IPv4地址族视图。
address-family ipv4
(4) 将指定VPN实例的路由信息引入到公网中。
route-replicate from vpn-instance vpn-instance-name protocol { bgp as-number | direct | static | { isis | ospf | rip } process-id } [ advertise ] [ route-policy route-policy-name ]
缺省情况下,VPN实例的路由信息不能引入到公网中。
缺省情况下,对于前缀和RD均相同的多条路由,BGP只会将最优路由引入到VPN实例的路由表中。开启VPN引入等价路由功能后,BGP可以把前缀和RD均相同的多条路由全部引入到VPN实例的路由表中,以便在这些路由之间进行负载分担或MPLS L3VPN快速重路由。
(1) 进入系统视图。
system-view
(2) 进入BGP相应视图。
¡ 进入BGP实例视图。
bgp as-number [ instance instance-name ]
¡ 进入BGP IPv4单播地址族视图。
bgp as-number [ instance instance-name ]
address-family ipv4 [ unicast ]
¡ 进入BGP IPv6单播地址族视图。
bgp as-number [ instance instance-name ]
address-family ipv6 [ unicast ]
¡ 依次执行以下命令进入BGP-VPN IPv4单播地址族视图。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
address-family ipv4 [ unicast ]
¡ 依次执行以下命令进入BGP-VPN IPv6单播地址族视图。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
address-family ipv6 [ unicast ]
(3) 开启VPN引入等价路由功能。
vpn-route cross multipath
缺省情况下,VPN引入等价路由功能处于关闭状态,对于前缀和RD均相同的多条路由,只会将最优路由引入到VPN实例的路由表中。
BGP IPv4单播地址族视图和BGP IPv6单播地址族视图下配置本命令后,会将多条路由全部引入到公网实例的路由表中。公网实例的详细介绍,请参见“EVPN配置指导”中的“EVPN”。
当BGP路由器需要撤销大量路由时,撤销所有的路由会耗费一定时间,导致有些流量不能快速切换到有效路径。对于某些重要的、不希望长时间中断的流量,可以通过本配置,确保BGP路由器优先发送这些路由的撤销消息,以便将指定流量快速地切换到有效路径上,最大限度地减少流量中断时间。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图。
bgp as-number [ instance instance-name ]
(3) 创建BGP VPNv4地址族,并进入BGP VPNv4地址族视图。
address-family vpnv4
(4) 配置优先发送指定路由的撤销消息。
update-first route-policy route-policy-name
缺省情况下,不支持优先发送指定路由的撤销消息。
BGP如果在路由迭代的过程中不对迭代的结果路由进行任何限制,则可能会将路由迭代到一个错误的转发路径上。可以通过配置本功能,使得用户通过路由策略灵活的匹配条件,有选择性地影响BGP路由的迭代结果,从而保证BGP路由的下一跳能够迭代到用户期望的路径上。
配置本功能后,BGP路由的下一跳只能迭代到通过路由策略过滤的路由上。如果BGP路由迭代到的下一跳路由均无法通过路由策略的过滤,则该路由将被标识为不可达,无法生效。路由通过路由策略过滤的判断条件是:路由能够通过本命令指定的路由策略中允许模式节点的过滤。
如果在BGP VPNv4或BGP-VPN VPNv4地址族视图下配置了nexthop recursive-lookup route-policy命令,并同时在RIB IPv4地址族视图下配置了protocol nexthop recursive-lookup命令,则对于BGP VPNv4或BGP-VPN VPNv4地址族中的BGP路由,采用该地址族视图下配置的nexthop recursive-lookup route-policy命令。如果某个BGP地址族视图下未配置nexthop recursive-lookup route-policy命令,仅在RIB IPv4地址族视图下配置了protocol nexthop recursive-lookup命令,则该地址族中的BGP路由使用RIB IPv4地址族视图下protocol nexthop recursive-lookup命令的配置来进行下一跳迭代查找。
nexthop recursive-lookup route-policy命令的详细介绍,请参见“三层技术-IP路由命令参考”中的“BGP”。
protocol nexthop recursive-lookup命令的详细介绍,请参见“三层技术-IP路由命令参考”中的“IP路由基础”。
(1) 进入系统视图。
system-view
(2) 进入BGP VPNv4地址族视图或BGP-VPN VPNv4地址族视图。
¡ 依次执行以下命令进入BGP VPNv4地址族视图。
bgp as-number [ instance instance-name ]
address-family vpnv4
¡ 依次执行以下命令进入BGP-VPN VPNv4地址族视图。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
address-family vpnv4
(3) 配置BGP路由根据路由策略来过滤迭代到的下一跳路由。
nexthop recursive-lookup route-policy route-policy-name
缺省情况下,BGP不根据路由策略来过滤迭代到的下一跳路由。
配置本命令后,如果地址族中的所有BGP路由迭代到的下一跳路由均无法通过路由策略的过滤,该地址族下的所有BGP路由将全部成为不可达路由。请用户在配置本命令前,规划好期望迭代到的下一跳路由,使其能够通过指定路由策略中允许模式节点的过滤。
开启L3VPN模块的告警功能后,在VPN实例内的路由数达到告警门限等情况下,L3VPN模块会产生RFC 4382中规定的告警信息。生成的告警信息将发送到设备的SNMP模块,通过设置SNMP中告警信息的发送参数,来决定告警信息输出的相关属性。
有关告警信息的详细介绍,请参见“网络管理和监控配置指导”中的“SNMP”。
(1) 进入系统视图。
system-view
(2) 开启L3VPN模块的告警功能。
snmp-agent trap enable l3vpn
缺省情况下,L3VPN模块的告警功能处于开启状态。
本特性的支持情况与设备型号有关,请以设备的实际情况为准。
型号 |
说明 |
MSR610 |
不支持 |
MSR810、MSR810-W、MSR810-W-DB、MSR810-LM、MSR810-W-LM、MSR810-10-PoE、MSR810-LM-HK、MSR810-W-LM-HK、MSR810-LM-CNDE-SJK、MSR810-CNDE-SJK、MSR810-EI、MSR810-LM-EA、MSR810-LM-EI |
不支持 |
MSR810-LMS、MSR810-LUS |
不支持 |
MSR810-SI、MSR810-LM-SI |
不支持 |
MSR810-LMS-EA、MSR810-LME |
不支持 |
MSR1004S-5G、MSR1004S-5G-CN |
不支持 |
MSR1104S-W、MSR1104S-W-CAT6、MSR1104S-5G-CN、MSR1104S-W-5G-CN |
不支持 |
MSR2600-6-X1、MSR2600-15-X1、MSR2600-15-X1-T |
不支持 |
MSR2600-10-X1 |
不支持 |
MSR 2630 |
支持 |
MSR3600-28、MSR3600-51 |
支持 |
MSR3600-28-SI、MSR3600-51-SI |
不支持 |
MSR3600-28-X1、MSR3600-28-X1-DP、MSR3600-51-X1、MSR3600-51-X1-DP |
支持 |
MSR3600-28-G-DP、MSR3600-51-G-DP |
支持 |
MSR3610-I-DP、MSR3610-IE-DP、MSR3610-IE-ES、MSR3610-IE-EAD、MSR-EAD-AK770、MSR3610-I-IG、MSR3610-IE-IG |
支持 |
MSR-iMC |
支持 |
MSR3610-X1、MSR3610-X1-DP、MSR3610-X1-DC、MSR3610-X1-DP-DC、MSR3620-X1、MSR3640-X1 |
支持 |
MSR 3610、MSR 3620、MSR 3620-DP、MSR 3640、MSR 3660 |
支持 |
MSR3610-G、MSR3620-G |
支持 |
MSR3640-G |
支持 |
MSR3640-X1-HI |
支持 |
型号 |
说明 |
MSR810-W-WiNet、MSR810-LM-WiNet |
不支持 |
MSR830-4LM-WiNet |
不支持 |
MSR830-5BEI-WiNet、MSR830-6EI-WiNet、MSR830-10BEI-WiNet |
不支持 |
MSR830-6BHI-WiNet、MSR830-10BHI-WiNet |
不支持 |
MSR2600-6-WiNet |
不支持 |
MSR2600-10-X1-WiNet |
不支持 |
MSR2630-WiNet |
支持 |
MSR3600-28-WiNet |
支持 |
MSR3610-X1-WiNet |
支持 |
MSR3620-X1-WiNet |
支持 |
MSR3610-WiNet、MSR3620-10-WiNet、MSR3620-DP-WiNet、MSR3620-WiNet、MSR3660-WiNet |
支持 |
型号 |
说明 |
MSR860-6EI-XS |
不支持 |
MSR860-6HI-XS |
不支持 |
MSR2630-XS |
不支持 |
MSR3600-28-XS |
支持 |
MSR3610-XS |
支持 |
MSR3620-XS |
支持 |
MSR3610-I-XS |
支持 |
MSR3610-IE-XS |
支持 |
MSR3620-X1-XS |
支持 |
MSR3640-XS |
支持 |
MSR3660-XS |
支持 |
型号 |
说明 |
MSR810-LM-GL |
不支持 |
MSR810-W-LM-GL |
不支持 |
MSR830-6EI-GL |
不支持 |
MSR830-10EI-GL |
不支持 |
MSR830-6HI-GL |
不支持 |
MSR830-10HI-GL |
不支持 |
MSR1004S-5G-GL |
不支持 |
MSR2600-6-X1-GL |
不支持 |
MSR3600-28-SI-GL |
不支持 |
本功能需要在PE设备上进行配置。
VPN实例的MPLS标签转发是指PE设备收到从远端PE设备发往该VPN实例CE设备的报文后,根据报文中的入标签进行转发,或者收到从该VPN实例的CE设备发往远端PE设备的报文后,为报文添加MPLS标签进行转发。
本配置用来开启指定VPN实例的MPLS标签转发统计功能和统计信息收集功能,以便用户通过display ip vpn-instance mpls statistics命令查看该VPN实例的MPLS标签转发统计信息。
(1) 进入系统视图。
system-view
(2) 使能MPLS标签转发统计信息的收集功能,并设置统计信息收集的时间间隔。
mpls statistics interval interval
缺省情况下,MPLS标签转发统计信息收集功能处于关闭状态。
本命令详细情况请参见“MPLS命令参考”中的“MPLS基础”。
(3) 进入VPN实例视图。
ip vpn-instance vpn-instance-name
(4) 使能指定VPN实例的MPLS标签转发统计功能。
mpls statistics enable
缺省情况下,所有VPN实例的MPLS标签转发统计功能均处于关闭状态。
当BGP配置变化后,可以通过软复位或复位BGP会话使新的配置生效。软复位BGP会话是指在不断开BGP邻居关系的情况下,更新BGP路由信息;复位BGP会话是指断开并重新建立BGP邻居关系的情况下,更新BGP路由信息。软复位需要BGP对等体具备路由刷新能力(支持ROUTE-REFRESH消息)。
请在用户视图下进行下列操作。下表中各命令的详细介绍,请参见“三层技术-IP路由命令参考”中的“BGP”。
操作 |
命令 |
手工对BGP IPv4 RT-Filter地址族下的BGP会话进行软复位 |
refresh bgp [ instance instance-name ] { ipv4-address [ mask-length ] | all | external | group group-name | internal } { export | import } ipv4 rtfilter |
手工对VPNv4地址族下的BGP会话进行软复位 |
refresh bgp [ instance instance-name ] { ipv4-address [ mask-length ] | all | external | group group-name | internal } { export | import } vpnv4 [ vpn-instance vpn-instance-name ] |
复位BGP IPv4 RT-Filter地址族下的BGP会话 |
reset bgp [ instance instance-name ] { as-number | ipv4-address [ mask-length ] | all | external | internal | group group-name } ipv4 rtfilter |
复位VPNv4地址族下的BGP会话 |
reset bgp [ instance instance-name ] { as-number | ipv4-address [ mask-length ] | all | external | internal | group group-name } vpnv4 [ vpn-instance vpn-instance-name ] |
在完成上述配置后,在任意视图下执行display命令可以显示配置后MPLS L3VPN的运行情况,通过查看显示信息验证配置的效果。在用户视图下执行reset命令清除BGP VPNv4路由的相关信息。
display bgp group vpnv4、display bgp peer vpnv4和display bgp update-group vpnv4命令的详细介绍,请参见“三层技术-IP路由命令参考”中的“BGP”。
表1-2 显示MPLS L3VPN的运行状态
操作 |
命令 |
显示BGP VPNv4路由衰减参数 |
display bgp [ instance instance-name ] dampening parameter vpnv4 |
显示BGP IPv4 RT-Filter对等体组信息 |
display bgp [ instance instance-name ] group ipv4 rtfilter [ group-name group-name ] |
显示BGP VPNv4对等体组信息 |
display bgp [ instance instance-name ] group vpnv4 [ vpn-instance vpn-instance-name ] [ group-name group-name ] |
显示BGP IPv4 RT-Filter的信息 |
display bgp [ instance instance-name ] ipv4 rtfilter [ peer ipv4-address [ statistics ] | statistics ] |
显示BGP IPv4 RT-Filter对等体信息 |
display bgp [ instance instance-name ] peer ipv4 rtfilter [ ipv4-address mask-length | { ipv4-address | group-name group-name } log-info | [ ipv4-address ] verbose ] |
显示BGP VPNv4对等体信息 |
display bgp [ instance instance-name ] peer vpnv4 [ vpn-instance vpn-instance-name ] [ ipv4-address mask-length | { ipv4-address | group-name group-name } log-info | [ ipv4-address ] verbose ] |
显示衰减的BGP VPNv4路由信息 |
display bgp [ instance instance-name ] routing-table dampened vpnv4 |
显示BGP VPNv4路由的震荡统计信息 |
display bgp [ instance instance-name ] routing-table flap-info vpnv4 [ ipv4-address [ { mask | mask-length } [ longest-match ] ] | as-path-acl as-path-acl-number ] |
显示BGP IPv4单播路由的入标签信息 |
display bgp [ instance instance-name ] routing-table ipv4 [ unicast ] [ vpn-instance vpn-instance-name ] inlabel |
显示BGP IPv4单播路由的出标签信息 |
display bgp [ instance instance-name ] routing-table ipv4 [ unicast ] [ vpn-instance vpn-instance-name ] outlabel |
显示BGP IPv4 RT-Filter路由信息 |
display bgp [ instance instance-name ] routing-table ipv4 rtfilter [ default-rt [ advertise-info ] | [ origin-as as-number ] [ route-target [ advertise-info ] ] | peer ipv4-address { advertised-routes | received-routes } [ default-rt | [ origin-as as-number ] [ route-target ] | statistics ] | statistics ] |
显示BGP VPNv4路由信息 |
display bgp [ instance instance-name ] routing-table vpnv4 [ [ route-distinguisher route-distinguisher ] [ ipv4-address [ { mask-length | mask } [ longest-match ] ] | ipv4-address [ mask-length | mask ] advertise-info | as-path-acl as-path-acl-number | community-list { { basic-community-list-number | comm-list-name } [ whole-match ] | adv-community-list-number } ] | [ vpn-instance vpn-instance-name ] peer ipv4-address { advertised-routes | received-routes } [ ipv4-address [ mask-length | mask ] | statistics ] | statistics ] display bgp [ instance instance-name ] routing-table vpnv4 [ same-rd-selected ] |
显示BGP VPNv4路由的入标签信息 |
display bgp [ instance instance-name ] routing-table vpnv4 inlabel |
显示BGP VPNv4路由的出标签信息 |
display bgp [ instance instance-name ] routing-table vpnv4 outlabel |
显示BGP IPv4 RT-Filter地址族下打包组的相关信息 |
display bgp [ instance instance-name ] update-group ipv4 rtfilter [ ipv4-address ] |
显示BGP VPNv4地址族下打包组的相关信息 |
display bgp [ instance instance-name ] update-group vpnv4 [ vpn-instance vpn-instance-name ] [ ipv4-address ] |
显示指定VPN实例的FIB信息 |
display fib vpn-instance vpn-instance-name |
显示指定VPN实例中与指定目的IP地址匹配的FIB信息 |
display fib vpn-instance vpn-instance-name ip-address [ mask-length | mask ] |
显示与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 ] |
显示OSPF伪连接信息 |
display ospf [ process-id ] sham-link [ area area-id ] |
清除BGP VPNv4路由的衰减信息,并解除对BGP路由的抑制 |
reset bgp [ instance instance-name ] dampening vpnv4 [ ipv4-address [ mask | mask-length ] ] |
清除BGP VPNv4路由的震荡统计信息 |
reset bgp [ instance instance-name ] flap-info vpnv4 [ ipv4-address [ mask | mask-length ] | as-path-acl as-path-acl-number | peer ipv4-address [ mask-length ] ] |
本特性的支持情况与设备型号有关,请以设备的实际情况为准。
型号 |
说明 |
MSR610 |
不支持 |
MSR810、MSR810-W、MSR810-W-DB、MSR810-LM、MSR810-W-LM、MSR810-10-PoE、MSR810-LM-HK、MSR810-W-LM-HK、MSR810-LM-CNDE-SJK、MSR810-CNDE-SJK、MSR810-EI、MSR810-LM-EA、MSR810-LM-EI |
不支持 |
MSR810-LMS、MSR810-LUS |
不支持 |
MSR810-SI、MSR810-LM-SI |
不支持 |
MSR810-LMS-EA、MSR810-LME |
不支持 |
MSR1004S-5G、MSR1004S-5G-CN |
不支持 |
MSR1104S-W、MSR1104S-W-CAT6、MSR1104S-5G-CN、MSR1104S-W-5G-CN |
不支持 |
MSR2600-6-X1、MSR2600-15-X1、MSR2600-15-X1-T |
不支持 |
MSR2600-10-X1 |
不支持 |
MSR 2630 |
支持 |
MSR3600-28、MSR3600-51 |
支持 |
MSR3600-28-SI、MSR3600-51-SI |
不支持 |
MSR3600-28-X1、MSR3600-28-X1-DP、MSR3600-51-X1、MSR3600-51-X1-DP |
支持 |
MSR3600-28-G-DP、MSR3600-51-G-DP |
支持 |
MSR3610-I-DP、MSR3610-IE-DP、MSR3610-IE-ES、MSR3610-IE-EAD、MSR-EAD-AK770、MSR3610-I-IG、MSR3610-IE-IG |
支持 |
MSR-iMC |
支持 |
MSR3610-X1、MSR3610-X1-DP、MSR3610-X1-DC、MSR3610-X1-DP-DC、MSR3620-X1、MSR3640-X1 |
支持 |
MSR 3610、MSR 3620、MSR 3620-DP、MSR 3640、MSR 3660 |
支持 |
MSR3610-G、MSR3620-G |
支持 |
MSR3640-G |
支持 |
MSR3640-X1-HI |
支持 |
型号 |
说明 |
MSR810-W-WiNet、MSR810-LM-WiNet |
不支持 |
MSR830-4LM-WiNet |
不支持 |
MSR830-5BEI-WiNet、MSR830-6EI-WiNet、MSR830-10BEI-WiNet |
不支持 |
MSR830-6BHI-WiNet、MSR830-10BHI-WiNet |
不支持 |
MSR2600-6-WiNet |
不支持 |
MSR2600-10-X1-WiNet |
不支持 |
MSR2630-WiNet |
支持 |
MSR3600-28-WiNet |
支持 |
MSR3610-X1-WiNet |
支持 |
MSR3620-X1-WiNet |
支持 |
MSR3610-WiNet、MSR3620-10-WiNet、MSR3620-DP-WiNet、MSR3620-WiNet、MSR3660-WiNet |
支持 |
型号 |
说明 |
MSR860-6EI-XS |
不支持 |
MSR860-6HI-XS |
不支持 |
MSR2630-XS |
不支持 |
MSR3600-28-XS |
支持 |
MSR3610-XS |
支持 |
MSR3620-XS |
支持 |
MSR3610-I-XS |
支持 |
MSR3610-IE-XS |
支持 |
MSR3620-X1-XS |
支持 |
MSR3640-XS |
支持 |
MSR3660-XS |
支持 |
型号 |
说明 |
MSR810-LM-GL |
不支持 |
MSR810-W-LM-GL |
不支持 |
MSR830-6EI-GL |
不支持 |
MSR830-10EI-GL |
不支持 |
MSR830-6HI-GL |
不支持 |
MSR830-10HI-GL |
不支持 |
MSR1004S-5G-GL |
不支持 |
MSR2600-6-X1-GL |
不支持 |
MSR3600-28-SI-GL |
不支持 |
在完成上述配置后,在任意视图下执行display命令可以显示VPN实例的MPLS标签转发统计信息,用户可以通过查看显示信息验证配置的效果。
在用户视图下执行reset命令可以清除指定VPN实例的MPLS标签转发统计信息。
表1-3 显示和维护VPN实例的MPLS标签转发统计信息
操作 |
命令 |
显示VPN实例的MPLS标签转发统计信息 |
display ip vpn-instance mpls statistics [ instance-name vpn-instance-name ] |
清除指定VPN实例的MPLS标签转发统计信息 |
reset ip vpn-instance mpls statistics [ instance-name vpn-instance-name ] |
· CE 1、CE 3属于VPN 1,CE 2、CE 4属于VPN 2;
· VPN 1使用的Route Target属性为111:1,VPN 2使用的Route Target属性为222:2。不同VPN用户之间不能互相访问;
· CE与PE之间配置EBGP交换VPN路由信息;
· PE与PE之间配置OSPF实现PE内部的互通、配置MP-IBGP交换VPN路由信息。
设备 |
接口 |
IP地址 |
设备 |
接口 |
IP地址 |
CE 1 |
GE1/0/1 |
10.1.1.1/24 |
P |
Loop0 |
2.2.2.9/32 |
PE 1 |
Loop0 |
1.1.1.9/32 |
|
GE1/0/4 |
172.1.1.2/24 |
|
GE1/0/1 |
10.1.1.2/24 |
|
GE1/0/5 |
172.2.1.1/24 |
|
GE1/0/2 |
10.2.1.2/24 |
PE 2 |
Loop0 |
3.3.3.9/32 |
|
GE1/0/4 |
172.1.1.1/24 |
|
GE1/0/1 |
10.3.1.2/24 |
CE 2 |
GE1/0/1 |
10.2.1.1/24 |
|
GE1/0/2 |
10.4.1.2/24 |
CE 3 |
GE1/0/1 |
10.3.1.1/24 |
|
GE1/0/4 |
172.2.1.2/24 |
CE 4 |
GE1/0/1 |
10.4.1.1/24 |
|
|
|
(1) 在MPLS骨干网上配置IGP协议,实现骨干网PE和P的互通
# 配置PE 1。
<PE1> system-view
[PE1] interface loopback 0
[PE1-LoopBack0] ip address 1.1.1.9 32
[PE1-LoopBack0] quit
[PE1] interface gigabitethernet 1/0/4
[PE1-GigabitEthernet1/0/4] ip address 172.1.1.1 24
[PE1-GigabitEthernet1/0/4] 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> system-view
[P] interface loopback 0
[P-LoopBack0] ip address 2.2.2.9 32
[P-LoopBack0] quit
[P] interface gigabitethernet 1/0/4
[P-GigabitEthernet1/0/4] ip address 172.1.1.2 24
[P-GigabitEthernet1/0/4] quit
[P] interface gigabitethernet 1/0/5
[P-GigabitEthernet1/0/5] ip address 172.2.1.1 24
[P-GigabitEthernet1/0/5] 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> system-view
[PE2] interface loopback 0
[PE2-LoopBack0] ip address 3.3.3.9 32
[PE2-LoopBack0] quit
[PE2] interface gigabitethernet 1/0/4
[PE2-GigabitEthernet1/0/4] ip address 172.2.1.2 24
[PE2-GigabitEthernet1/0/4] 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路由。
(2) 在MPLS骨干网上配置MPLS基本能力和MPLS LDP,建立LDP LSP
# 配置PE 1。
[PE1] mpls lsr-id 1.1.1.9
[PE1] mpls ldp
[PE1-ldp] quit
[PE1] interface gigabitethernet 1/0/4
[PE1-GigabitEthernet1/0/4] mpls enable
[PE1-GigabitEthernet1/0/4] mpls ldp enable
[PE1-GigabitEthernet1/0/4] quit
# 配置P。
[P] mpls lsr-id 2.2.2.9
[P] mpls ldp
[P-ldp] quit
[P] interface gigabitethernet 1/0/4
[P-GigabitEthernet1/0/4] mpls enable
[P-GigabitEthernet1/0/4] mpls ldp enable
[P-GigabitEthernet1/0/4] quit
[P] interface gigabitethernet 1/0/5
[P-GigabitEthernet1/0/5] mpls enable
[P-GigabitEthernet1/0/5] mpls ldp enable
[P-GigabitEthernet1/0/5] quit
# 配置PE 2。
[PE2] mpls lsr-id 3.3.3.9
[PE2] mpls ldp
[PE2-ldp] quit
[PE2] interface gigabitethernet 1/0/4
[PE2-GigabitEthernet1/0/4] mpls enable
[PE2-GigabitEthernet1/0/4] mpls ldp enable
[PE2-GigabitEthernet1/0/4] quit
上述配置完成后,PE 1、P、PE 2之间应能建立LDP会话,执行display mpls ldp peer命令可以看到LDP会话的状态为Operational。执行display mpls ldp lsp命令,可以看到LDP LSP的建立情况。
(3) 在PE设备上配置VPN实例,将CE接入PE
# 配置PE 1。
[PE1] ip vpn-instance vpn1
[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 1/0/1
[PE1-GigabitEthernet1/0/1] ip binding vpn-instance vpn1
[PE1-GigabitEthernet1/0/1] ip address 10.1.1.2 24
[PE1-GigabitEthernet1/0/1] quit
[PE1] interface gigabitethernet 1/0/2
[PE1-GigabitEthernet1/0/2] ip binding vpn-instance vpn2
[PE1-GigabitEthernet1/0/2] ip address 10.2.1.2 24
[PE1-GigabitEthernet1/0/2] quit
# 配置PE 2。
[PE2] ip vpn-instance vpn1
[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 1/0/1
[PE2-GigabitEthernet1/0/1] ip binding vpn-instance vpn1
[PE2-GigabitEthernet1/0/1] ip address 10.3.1.2 24
[PE2-GigabitEthernet1/0/1] quit
[PE2] interface gigabitethernet 1/0/2
[PE2-GigabitEthernet1/0/2] ip binding vpn-instance vpn2
[PE2-GigabitEthernet1/0/2] ip address 10.4.1.2 24
[PE2-GigabitEthernet1/0/2] quit
# 按图1-25配置各CE的接口IP地址,配置过程略。
配置完成后,在PE设备上执行display ip vpn-instance命令可以看到VPN实例的配置情况。各PE能ping通自己接入的CE。
(4) 在PE与CE之间建立EBGP对等体,引入VPN路由
# 配置CE 1。
<CE1> system-view
[CE1] bgp 65410
[CE1-bgp-default] peer 10.1.1.2 as-number 100
[CE1-bgp-default] address-family ipv4 unicast
[CE1-bgp-default-ipv4] peer 10.1.1.2 enable
[CE1-bgp-default-ipv4] import-route direct
[CE1-bgp-default-ipv4] quit
[CE1-bgp-default] quit
# 另外3个CE设备(CE 2~CE 4)配置与CE 1设备配置类似,配置过程省略。
# 配置PE 1。
[PE1] bgp 100
[PE1-bgp-default] ip vpn-instance vpn1
[PE1-bgp-default-vpn1] peer 10.1.1.1 as-number 65410
[PE1-bgp-default-vpn1] address-family ipv4 unicast
[PE1-bgp-default-ipv4-vpn1] peer 10.1.1.1 enable
[PE1-bgp-default-ipv4-vpn1] import-route direct
[PE1-bgp-default-ipv4-vpn1] quit
[PE1-bgp-default-vpn1] quit
[PE1-bgp-default] ip vpn-instance vpn2
[PE1-bgp-default-vpn2] peer 10.2.1.1 as-number 65420
[PE1-bgp-default-vpn2] address-family ipv4 unicast
[PE1-bgp-default-ipv4-vpn2] peer 10.2.1.1 enable
[PE1-bgp-default-ipv4-vpn2] import-route direct
[PE1-bgp-default-ipv4-vpn2] quit
[PE1-bgp-default-vpn2] quit
[PE1-bgp-default] quit
# PE 2的配置与PE 1类似,配置过程省略。
配置完成后,在PE设备上执行display bgp peer ipv4 vpn-instance命令,可以看到PE与CE之间的BGP对等体关系已建立,并达到Established状态。
(5) 在PE之间建立MP-IBGP对等体
# 配置PE 1。
[PE1] bgp 100
[PE1-bgp-default] peer 3.3.3.9 as-number 100
[PE1-bgp-default] peer 3.3.3.9 connect-interface loopback 0
[PE1-bgp-default] address-family vpnv4
[PE1-bgp-default-vpnv4] peer 3.3.3.9 enable
[PE1-bgp-default-vpnv4] quit
[PE1-bgp-default] quit
# 配置PE 2。
[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 vpnv4
[PE2-bgp-default-vpnv4] peer 1.1.1.9 enable
[PE2-bgp-default-vpnv4] quit
[PE2-bgp-default] quit
配置完成后,在PE设备上执行display bgp peer vpnv4命令,可以看到PE之间的BGP对等体关系已建立,并达到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 GE1/0/1
10.1.1.0/32 Direct 0 0 10.1.1.2 GE1/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 GE1/0/1
10.3.1.0/24 BGP 255 0 3.3.3.9 GE1/0/4
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)。
· CE 1和CE 2属于VPN 1。
· 在运营商骨干网上,PE设备具备MPLS能力,P设备只提供纯IP功能,不具备MPLS能力。
· 在骨干网上使用GRE隧道封装并转发VPN报文,实现MPLS L3VPN。
· 在PE上配置隧道策略,指定VPN流量使用的隧道类型为GRE。(本配置可选)
图1-26 配置采用GRE隧道的MPLS L3VPN组网图
接口 |
IP地址 |
设备 |
接口 |
IP地址 |
|
CE 1 |
GE1/0/1 |
10.1.1.1/24 |
P |
GE1/0/4 |
172.1.1.2/24 |
PE 1 |
Loop0 |
1.1.1.9/32 |
|
GE1/0/5 |
172.2.1.1/24 |
|
GE1/0/1 |
10.1.1.2/24 |
PE 2 |
Loop0 |
2.2.2.9/32 |
|
GE1/0/5 |
172.1.1.1/24 |
|
GE1/0/1 |
10.2.1.2/24 |
|
Tunnel0 |
20.1.1.1/24 |
|
GE1/0/4 |
172.2.1.2/24 |
CE 2 |
GE1/0/1 |
10.2.1.1/24 |
|
Tunnel0 |
20.1.1.2/24 |
(1) 在MPLS骨干网上配置IGP协议,实现骨干网PE和P的互通
本例中采用OSPF发布接口(包括Loopback接口)所在网段的路由,具体配置过程略。
配置完成后,PE 1、P、PE 2之间应能建立OSPF邻居,执行display ospf peer命令可以看到邻居达到FULL状态。执行display ip routing-table命令可以看到PE之间学习到对方的Loopback路由。
(2) 在PE设备上使能MPLS基本能力
# 配置PE 1。
<PE1> system-view
[PE1] mpls lsr-id 1.1.1.9
# 配置PE 2。
<PE2> system-view
[PE2] mpls lsr-id 2.2.2.9
(3) 在PE设备上配置VPN实例,将CE接入PE,并在PE上应用隧道策略,指定使用GRE隧道转发VPN报文
# 配置PE 1。
[PE1] tunnel-policy gre1
[PE1-tunnel-policy-gre1] select-seq gre load-balance-number 1
[PE1-tunnel-policy-gre1] quit
[PE1] ip vpn-instance vpn1
[PE1-vpn-instance-vpn1] route-distinguisher 100:1
[PE1-vpn-instance-vpn1] vpn-target 100:1 both
[PE1-vpn-instance-vpn1] tnl-policy gre1
[PE1-vpn-instance-vpn1] quit
[PE1] interface gigabitethernet 1/0/1
[PE1-GigabitEthernet1/0/1] ip binding vpn-instance vpn1
[PE1-GigabitEthernet1/0/1] ip address 10.1.1.2 24
[PE1-GigabitEthernet1/0/1] quit
# 配置PE 2。
[PE2] tunnel-policy gre1
[PE2-tunnel-policy-gre1] select-seq gre load-balance-number 1
[PE2-tunnel-policy-gre1] quit
[PE2] ip vpn-instance vpn1
[PE2-vpn-instance-vpn1] route-distinguisher 100:2
[PE2-vpn-instance-vpn1] vpn-target 100:1 both
[PE2-vpn-instance-vpn1] tnl-policy gre1
[PE2-vpn-instance-vpn1] quit
[PE2] interface gigabitethernet 1/0/1
[PE2-GigabitEthernet1/0/1] ip binding vpn-instance vpn1
[PE2-GigabitEthernet1/0/1] ip address 10.2.1.2 24
[PE2-GigabitEthernet1/0/1] quit
# 配置CE 1。
<CE1> system-view
[CE1] interface gigabitethernet 1/0/1
[CE1-GigabitEthernet1/0/1] ip address 10.1.1.1 24
[CE1-GigabitEthernet1/0/1] quit
# 配置CE2。
<CE2> system-view
[CE2] interface gigabitethernet 1/0/1
[CE2-GigabitEthernet1/0/1] ip address 10.2.1.1 24
[CE2-GigabitEthernet1/0/1] quit
配置完成后,在PE设备上执行display ip vpn-instance命令可以看到VPN实例的配置情况。各PE能ping通自己接入的CE。
(4) 在PE与CE之间建立EBGP对等体,引入VPN路由
# 配置CE 1。
[CE1] bgp 65410
[CE1-bgp-default] peer 10.1.1.2 as-number 100
[CE1-bgp-default] address-family ipv4 unicast
[CE1-bgp-default-ipv4] peer 10.1.1.2 enable
[CE1-bgp-default-ipv4] import-route direct
[CE1-bgp-default-ipv4] quit
[CE1-bgp-default] quit
# 配置PE 1。
[PE1] bgp 100
[PE1-bgp-default] ip vpn-instance vpn1
[PE1-bgp-default-vpn1] peer 10.1.1.1 as-number 65410
[PE1-bgp-default-vpn1] address-family ipv4 unicast
[PE1-bgp-default-ipv4-vpn1] peer 10.1.1.1 enable
[PE1-bgp-default-ipv4-vpn1] peer 10.1.1.1 next-hop-local
[PE1-bgp-default-ipv4-vpn1] import-route direct
[PE1-bgp-default-ipv4-vpn1] quit
[PE1-bgp-default-vpn1] quit
[PE1-bgp-default] quit
# CE 2的配置与CE 1类似,PE 2的配置与PE 1类似,配置过程省略。
配置完成后,在PE设备上执行display bgp peer ipv4 vpn-instance命令,可以看到PE与CE之间的BGP对等体关系已建立,并达到Established状态。
(5) 在PE之间建立MP-IBGP对等体
# 配置PE 1。
[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 vpnv4
[PE1-bgp-default-vpnv4] peer 2.2.2.9 enable
[PE1-bgp-default-vpnv4] quit
[PE1-bgp-default] quit
# PE 2的配置与PE 1类似,配置过程省略。
配置完成后,在PE设备上执行display bgp peer vpnv4命令,可以看到PE之间的BGP对等体关系已建立,并达到Established状态。
# 配置PE 1。
[PE1] interface tunnel 0 mode gre
[PE1-Tunnel0] source loopback 0
[PE1-Tunnel0] destination 2.2.2.9
[PE1-Tunnel0] ip address 20.1.1.1 24
[PE1-Tunnel0] mpls enable
[PE1-Tunnel0] quit
# 配置PE 2。
[PE2] interface tunnel 0 mode gre
[PE2-Tunnel0] source loopback 0
[PE2-Tunnel0] destination 1.1.1.9
[PE2-Tunnel0] ip address 20.1.1.2 24
[PE2-Tunnel0] mpls enable
[PE2-Tunnel0] quit
# 配置完成后,CE能学到对端CE的接口路由。以CE 1为例:
[CE1] 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
10.1.1.0/24 Direct 0 0 10.1.1.1 GE1/0/1
10.1.1.0/32 Direct 0 0 10.1.1.1 GE1/0/1
10.1.1.1/32 Direct 0 0 127.0.0.1 InLoop0
10.1.1.255/32 Direct 0 0 10.1.1.1 GE1/0/1
10.2.1.0/24 BGP 255 0 10.1.1.2 GE1/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 1和CE 2之间能够ping通。
· 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地址 |
Spoke-CE 1 |
GE1/0/1 |
10.1.1.1/24 |
Hub-CE |
GE1/0/1 |
10.3.1.1/24 |
Spoke-PE 1 |
Loop0 |
1.1.1.9/32 |
|
GE1/0/2 |
10.4.1.1/24 |
|
GE1/0/1 |
10.1.1.2/24 |
Hub-PE |
Loop0 |
2.2.2.9/32 |
|
GE1/0/4 |
172.1.1.1/24 |
|
GE1/0/4 |
172.1.1.2/24 |
Spoke-CE 2 |
GE1/0/1 |
10.2.1.1/24 |
|
GE1/0/5 |
172.2.1.2/24 |
Spoke-PE 2 |
Loop0 |
3.3.3.9/32 |
|
GE1/0/1 |
10.3.1.2/24 |
|
GE1/0/1 |
10.2.1.2/24 |
|
GE1/0/2 |
10.4.1.2/24 |
|
GE1/0/4 |
172.2.1.1/24 |
|
|
|
(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 1/0/4
[Spoke-PE1-GigabitEthernet1/0/4] ip address 172.1.1.1 24
[Spoke-PE1-GigabitEthernet1/0/4] 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 1/0/4
[Spoke-PE2-GigabitEthernet1/0/4] ip address 172.2.1.1 24
[Spoke-PE2-GigabitEthernet1/0/4] 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 1/0/4
[Hub-PE-GigabitEthernet1/0/4] ip address 172.1.1.2 24
[Hub-PE-GigabitEthernet1/0/4] quit
[Hub-PE] interface gigabitethernet 1/0/5
[Hub-PE-GigabitEthernet1/0/5] ip address 172.2.1.2 24
[Hub-PE-GigabitEthernet1/0/5] 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 1/0/4
[Spoke-PE1-GigabitEthernet1/0/4] mpls enable
[Spoke-PE1-GigabitEthernet1/0/4] mpls ldp enable
[Spoke-PE1-GigabitEthernet1/0/4] 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 1/0/4
[Spoke-PE2-GigabitEthernet1/0/4] mpls enable
[Spoke-PE2-GigabitEthernet1/0/4] mpls ldp enable
[Spoke-PE2-GigabitEthernet1/0/4] quit
# 配置Hub-PE。
[Hub-PE] mpls lsr-id 2.2.2.9
[Hub-PE] mpls ldp
[Hub-PE-ldp] quit
[Hub-PE] interface gigabitethernet 1/0/4
[Hub-PE-GigabitEthernet1/0/4] mpls enable
[Hub-PE-GigabitEthernet1/0/4] mpls ldp enable
[Hub-PE-GigabitEthernet1/0/4] quit
[Hub-PE] interface gigabitethernet 1/0/5
[Hub-PE-GigabitEthernet1/0/5] mpls enable
[Hub-PE-GigabitEthernet1/0/5] mpls ldp enable
[Hub-PE-GigabitEthernet1/0/5] 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 1/0/1
[Spoke-PE1-GigabitEthernet1/0/1] ip binding vpn-instance vpn1
[Spoke-PE1-GigabitEthernet1/0/1] ip address 10.1.1.2 24
[Spoke-PE1-GigabitEthernet1/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 1/0/1
[Spoke-PE2-GigabitEthernet1/0/1] ip binding vpn-instance vpn1
[Spoke-PE2-GigabitEthernet1/0/1] ip address 10.2.1.2 24
[Spoke-PE2-GigabitEthernet1/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 1/0/1
[Hub-PE-GigabitEthernet1/0/1] ip binding vpn-instance vpn1-in
[Hub-PE-GigabitEthernet1/0/1] ip address 10.3.1.2 24
[Hub-PE-GigabitEthernet1/0/1] quit
[Hub-PE] interface gigabitethernet 1/0/2
[Hub-PE-GigabitEthernet1/0/2] ip binding vpn-instance vpn1-out
[Hub-PE-GigabitEthernet1/0/2] ip address 10.4.1.2 24
[Hub-PE-GigabitEthernet1/0/2] quit
# 按图1-27配置各CE的接口IP地址,配置过程略。
配置完成后,在PE设备上执行display ip vpn-instance命令可以看到VPN实例的配置情况。各PE能ping通自己接入的CE。
(4) 在PE与CE之间建立EBGP对等体,引入VPN路由
# 配置Spoke-CE 1。
<Spoke-CE1> system-view
[Spoke-CE1] bgp 65410
[Spoke-CE1-bgp-default] peer 10.1.1.2 as-number 100
[Spoke-CE1-bgp-default] address-family ipv4
[Spoke-CE1-bgp-default-ipv4] peer 10.1.1.2 enable
[Spoke-CE1-bgp-default-ipv4] import-route direct
[Spoke-CE1-bgp-default-ipv4] quit
[Spoke-CE1-bgp-default] quit
# 配置Spoke-CE 2。
<Spoke-CE2> system-view
[Spoke-CE2] bgp 65420
[Spoke-CE2-bgp-default] peer 10.2.1.2 as-number 100
[Spoke-CE2-bgp-default] address-family ipv4
[Spoke-CE2-bgp-default-ipv4] peer 10.2.1.2 enable
[Spoke-CE2-bgp-default-ipv4] import-route direct
[Spoke-CE2-bgp-default-ipv4] quit
[Spoke-CE2-bgp-default] quit
# 配置Hub-CE。
<Hub-CE> system-view
[Hub-CE] bgp 65430
[Hub-CE-bgp-default] peer 10.3.1.2 as-number 100
[Hub-CE-bgp-default] peer 10.4.1.2 as-number 100
[Hub-CE-bgp-default] address-family ipv4
[Hub-CE-bgp-default-ipv4] peer 10.3.1.2 enable
[Hub-CE-bgp-default-ipv4] peer 10.4.1.2 enable
[Hub-CE-bgp-default-ipv4] import-route direct
[Hub-CE-bgp-default-ipv4] quit
[Hub-CE-bgp-default] quit
# 配置Spoke-PE 1。
[Spoke-PE1] bgp 100
[Spoke-PE1-bgp-default] ip vpn-instance vpn1
[Spoke-PE1-bgp-default-vpn1] peer 10.1.1.1 as-number 65410
[Spoke-PE1-bgp-default-vpn1] address-family ipv4
[Spoke-PE1-bgp-default-ipv4-vpn1] peer 10.1.1.1 enable
[Spoke-PE1-bgp-default-ipv4-vpn1] import-route direct
[Spoke-PE1-bgp-default-ipv4-vpn1] quit
[Spoke-PE1-bgp-default-vpn1] quit
[Spoke-PE1-bgp-default] quit
# 配置Spoke-PE 2。
[Spoke-PE2] bgp 100
[Spoke-PE2-bgp-default] ip vpn-instance vpn1
[Spoke-PE2-bgp-default-vpn1] peer 10.2.1.1 as-number 65420
[Spoke-PE2-bgp-default-vpn1] address-family ipv4
[Spoke-PE2-bgp-default-ipv4-vpn1] peer 10.2.1.1 enable
[Spoke-PE2-bgp-default-ipv4-vpn1] import-route direct
[Spoke-PE2-bgp-default-ipv4-vpn1] quit
[Spoke-PE2-bgp-default-vpn1] quit
[Spoke-PE2-bgp-default] quit
# 配置Hub-PE。
[Hub-PE] bgp 100
[Hub-PE-bgp-default] ip vpn-instance vpn1-in
[Hub-PE-bgp-default-vpn1-in] peer 10.3.1.1 as-number 65430
[Hub-PE-bgp-default-vpn1-in] address-family ipv4
[Hub-PE-bgp-default-ipv4-vpn1-in] peer 10.3.1.1 enable
[Hub-PE-bgp-default-ipv4-vpn1-in] import-route direct
[Hub-PE-bgp-default-ipv4-vpn1-in] quit
[Hub-PE-bgp-default-vpn1-in] quit
[Hub-PE-bgp-default] ip vpn-instance vpn1-out
[Hub-PE-bgp-default-vpn1-out] peer 10.4.1.1 as-number 65430
[Hub-PE-bgp-default-vpn1-out] address-family ipv4
[Hub-PE-bgp-default-ipv4-vpn1-out] peer 10.4.1.1 enable
[Hub-PE-bgp-default-ipv4-vpn1-out] import-route direct
[Hub-PE-bgp-default-ipv4-vpn1-out] peer 10.4.1.1 allow-as-loop 2
[Hub-PE-bgp-default-ipv4-vpn1-out] quit
[Hub-PE-bgp-default-vpn1-out] quit
[Hub-PE-bgp-default] 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-default] peer 2.2.2.9 as-number 100
[Spoke-PE1-bgp-default] peer 2.2.2.9 connect-interface loopback 0
[Spoke-PE1-bgp-default] address-family vpnv4
[Spoke-PE1-bgp-default-vpnv4] peer 2.2.2.9 enable
[Spoke-PE1-bgp-default-vpnv4] quit
[Spoke-PE1-bgp-default] quit
# 配置Spoke-PE 2。
[Spoke-PE2] bgp 100
[Spoke-PE2-bgp-default] peer 2.2.2.9 as-number 100
[Spoke-PE2-bgp-default] peer 2.2.2.9 connect-interface loopback 0
[Spoke-PE2-bgp-default] address-family vpnv4
[Spoke-PE2-bgp-default-vpnv4] peer 2.2.2.9 enable
[Spoke-PE2-bgp-default-vpnv4] quit
[Spoke-PE2-bgp-default] quit
# 配置Hub-PE。
[Hub-PE] bgp 100
[Hub-PE-bgp-default] peer 1.1.1.9 as-number 100
[Hub-PE-bgp-default] peer 1.1.1.9 connect-interface loopback 0
[Hub-PE-bgp-default] peer 3.3.3.9 as-number 100
[Hub-PE-bgp-default] peer 3.3.3.9 connect-interface loopback 0
[Hub-PE-bgp-default] address-family vpnv4
[Hub-PE-bgp-default-vpnv4] peer 1.1.1.9 enable
[Hub-PE-bgp-default-vpnv4] peer 3.3.3.9 enable
[Hub-PE-bgp-default-vpnv4] quit
[Hub-PE-bgp-default] 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
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 Direct 0 0 10.1.1.2 GE1/0/1
10.1.1.0/32 Direct 0 0 10.1.1.2 GE1/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 GE1/0/1
10.2.1.0/24 BGP 255 0 2.2.2.9 GE1/0/4
10.3.1.0/24 BGP 255 0 2.2.2.9 GE1/0/4
10.4.1.0/24 BGP 255 0 2.2.2.9 GE1/0/4
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
# 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 (10.2.1.1): 56 data bytes, press CTRL_C to break
56 bytes from 10.2.1.1: icmp_seq=0 ttl=250 time=1.000 ms
56 bytes from 10.2.1.1: icmp_seq=1 ttl=250 time=2.000 ms
56 bytes from 10.2.1.1: icmp_seq=2 ttl=250 time=0.000 ms
56 bytes from 10.2.1.1: icmp_seq=3 ttl=250 time=1.000 ms
56 bytes from 10.2.1.1: icmp_seq=4 ttl=250 time=0.000 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 = 0.000/0.800/2.000/0.748 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。
接口 |
IP地址 |
设备 |
接口 |
IP地址 |
|
CE 1 |
GE1/0/1 |
10.1.1.1/24 |
CE 2 |
GE1/0/1 |
10.2.1.1/24 |
PE 1 |
Loop0 |
1.1.1.9/32 |
PE 2 |
Loop0 |
4.4.4.9/32 |
|
GE1/0/1 |
10.1.1.2/24 |
|
GE1/0/1 |
10.2.1.2/24 |
|
GE1/0/4 |
172.1.1.2/24 |
|
GE1/0/4 |
162.1.1.2/24 |
ASBR-PE1 |
Loop0 |
2.2.2.9/32 |
ASBR-PE2 |
Loop0 |
3.3.3.9/32 |
|
GE1/0/4 |
172.1.1.1/24 |
|
GE1/0/4 |
162.1.1.1/24 |
|
GE1/0/5 |
192.1.1.1/24 |
|
GE1/0/5 |
192.1.1.2/24 |
(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> system-view
[PE1] mpls lsr-id 1.1.1.9
[PE1] mpls ldp
[PE1-ldp] quit
[PE1] interface gigabitethernet 1/0/4
[PE1-GigabitEthernet1/0/4] mpls enable
[PE1-GigabitEthernet1/0/4] mpls ldp enable
[PE1-GigabitEthernet1/0/4] quit
# 配置ASBR-PE 1的MPLS基本能力,并在与PE 1相连的接口上使能LDP。
<ASBR-PE1> system-view
[ASBR-PE1] mpls lsr-id 2.2.2.9
[ASBR-PE1] mpls ldp
[ASBR-PE1-ldp] quit
[ASBR-PE1] interface gigabitethernet 1/0/4
[ASBR-PE1-GigabitEthernet1/0/4] mpls enable
[ASBR-PE1-GigabitEthernet1/0/4] mpls ldp enable
[ASBR-PE1-GigabitEthernet1/0/4] quit
# 配置ASBR-PE 2的MPLS基本能力,并在与PE 2相连的接口上使能LDP。
<ASBR-PE2> system-view
[ASBR-PE2] mpls lsr-id 3.3.3.9
[ASBR-PE2] mpls ldp
[ASBR-PE2-ldp] quit
[ASBR-PE2] interface gigabitethernet 1/0/4
[ASBR-PE2-GigabitEthernet1/0/4] mpls enable
[ASBR-PE2-GigabitEthernet1/0/4] mpls ldp enable
[ASBR-PE2-GigabitEthernet1/0/4] quit
# 配置PE 2的MPLS基本能力,并在与ASBR-PE 2相连的接口上使能LDP。
<PE2> system-view
[PE2] mpls lsr-id 4.4.4.9
[PE2] mpls ldp
[PE2-ldp] quit
[PE2] interface gigabitethernet 1/0/4
[PE2-GigabitEthernet1/0/4] mpls enable
[PE2-GigabitEthernet1/0/4] mpls ldp enable
[PE2-GigabitEthernet1/0/4] quit
上述配置完成后,同一AS的PE和ASBR-PE之间应该建立起LDP邻居,在各设备上执行display mpls ldp peer命令可以看到LDP会话状态为“Operational”。
(3) 在PE设备上配置VPN实例,将CE接入PE
同一AS内的ASBR-PE与PE的VPN实例的Route Target应能匹配,不同AS的PE的VPN实例的Route Target则不需要匹配。
# 配置CE 1。
<CE1> system-view
[CE1] interface gigabitethernet 1/0/1
[CE1-GigabitEthernet1/0/1] ip address 10.1.1.1 24
[CE1-GigabitEthernet1/0/1] quit
# 配置PE 1。
[PE1] ip vpn-instance vpn1
[PE1-vpn-instance-vpn1] route-distinguisher 100:2
[PE1-vpn-instance-vpn1] vpn-target 100:1 both
[PE1-vpn-instance-vpn1] quit
[PE1] interface gigabitethernet 1/0/1
[PE1-GigabitEthernet1/0/1] ip binding vpn-instance vpn1
[PE1-GigabitEthernet1/0/1] ip address 10.1.1.2 24
[PE1-GigabitEthernet1/0/1] quit
# 配置CE 2。
<CE2> system-view
[CE2] interface gigabitethernet 1/0/1
[CE2-GigabitEthernet1/0/1] ip address 10.2.1.1 24
[CE2-GigabitEthernet1/0/1] quit
# 配置PE 2。
[PE2] ip vpn-instance vpn1
[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 1/0/1
[PE2-GigabitEthernet1/0/1] ip binding vpn-instance vpn1
[PE2-GigabitEthernet1/0/1] ip address 10.2.1.2 24
[PE2-GigabitEthernet1/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-instance-vpn1] route-distinguisher 100:1
[ASBR-PE1-vpn-instance-vpn1] vpn-target 100:1 both
[ASBR-PE1-vpn-instance-vpn1] quit
[ASBR-PE1] interface gigabitethernet 1/0/5
[ASBR-PE1-GigabitEthernet1/0/5] ip binding vpn-instance vpn1
[ASBR-PE1-GigabitEthernet1/0/5] ip address 192.1.1.1 24
[ASBR-PE1-GigabitEthernet1/0/5] quit
# 配置ASBR-PE 2:创建VPN实例,并将此实例绑定到连接ASBR-PE 1的接口(ASBR-PE 2认为ASBR-PE 1是自己的CE)。
[ASBR-PE2] ip vpn-instance vpn1
[ASBR-PE2-vpn-instance-vpn1] route-distinguisher 200:1
[ASBR-PE2-vpn-instance-vpn1] vpn-target 200:1 both
[ASBR-PE2-vpn-instance-vpn1] quit
[ASBR-PE2] interface gigabitethernet 1/0/5
[ASBR-PE2-GigabitEthernet1/0/5] ip binding vpn-instance vpn1
[ASBR-PE2-GigabitEthernet1/0/5] ip address 192.1.1.2 24
[ASBR-PE2-GigabitEthernet1/0/5] quit
上述配置完成后,在各PE设备上执行display ip vpn-instance命令能正确显示VPN实例配置。
各PE能ping通各自的CE。ASBR-PE之间也能互相ping通。
(4) 在PE与CE之间建立EBGP对等体,引入VPN路由
# 配置CE 1。
[CE1] bgp 65001
[CE1-bgp-default] peer 10.1.1.2 as-number 100
[CE1-bgp-default] address-family ipv4 unicast
[CE1-bgp-default-ipv4] peer 10.1.1.2 enable
[CE1-bgp-default-ipv4] import-route direct
[CE1-bgp-default-ipv4] quit
[CE1-bgp-default] quit
# 配置PE 1。
[PE1] bgp 100
[PE1-bgp-default] ip vpn-instance vpn1
[PE1-bgp-default-vpn1] peer 10.1.1.1 as-number 65001
[PE1-bgp-default-vpn1] address-family ipv4 unicast
[PE1-bgp-default-ipv4-vpn1] peer 10.1.1.1 enable
[PE1-bgp-default-ipv4-vpn1] import-route direct
[PE1-bgp-default-ipv4-vpn1] quit
[PE1-bgp-default-vpn1] quit
[PE1-bgp-default] quit
# 配置CE 2。
[CE2] bgp 65002
[CE2-bgp-default] peer 10.2.1.2 as-number 200
[CE2-bgp-default] address-family ipv4 unicast
[CE2-bgp-default-ipv4] peer 10.2.1.2 enable
[CE2-bgp-default-ipv4] import-route direct
[CE2-bgp-default-ipv4] quit
[CE2-bgp-default] quit
# 配置PE 2。
[PE2] bgp 200
[PE2-bgp-default] ip vpn-instance vpn1
[PE2-bgp-default-vpn1] peer 10.2.1.1 as-number 65002
[PE2-bgp-default-vpn1] address-family ipv4 unicast
[PE2-bgp-default-ipv4-vpn1] peer 10.2.1.1 enable
[PE2-bgp-default-ipv4-vpn1] import-route direct
[PE2-bgp-default-ipv4-vpn1] quit
[PE2-bgp-default-vpn1] quit
[PE2-bgp-default] quit
(5) PE与本AS的ASBR-PE之间建立MP-IBGP对等体,ASBR-PE之间建立EBGP对等体
# 配置PE 1。
[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 vpnv4
[PE1-bgp-default-vpnv4] peer 2.2.2.9 enable
[PE1-bgp-default-vpnv4] peer 2.2.2.9 next-hop-local
[PE1-bgp-default-vpnv4] quit
[PE1-bgp-default] quit
# 配置ASBR-PE 1。
[ASBR-PE1] bgp 100
[ASBR-PE1-bgp-default] ip vpn-instance vpn1
[ASBR-PE1-bgp-default-vpn1] peer 192.1.1.2 as-number 200
[ASBR-PE1-bgp-default-vpn1] address-family ipv4 unicast
[ASBR-PE1-bgp-default-ipv4-vpn1] peer 192.1.1.2 enable
[ASBR-PE1-bgp-default-ipv4-vpn1] quit
[ASBR-PE1-bgp-default-vpn1] quit
[ASBR-PE1-bgp-default] peer 1.1.1.9 as-number 100
[ASBR-PE1-bgp-default] peer 1.1.1.9 connect-interface loopback 0
[ASBR-PE1-bgp-default] address-family vpnv4
[ASBR-PE1-bgp-default-vpnv4] peer 1.1.1.9 enable
[ASBR-PE1-bgp-default-vpnv4] peer 1.1.1.9 next-hop-local
[ASBR-PE1-bgp-default-vpnv4] quit
[ASBR-PE1-bgp-default] quit
# 配置ASBR-PE 2。
[ASBR-PE2] bgp 200
[ASBR-PE2-bgp-default] ip vpn-instance vpn1
[ASBR-PE2-bgp-default-vpn1] peer 192.1.1.1 as-number 100
[ASBR-PE2-bgp-default-vpn1] address-family ipv4 unicast
[ASBR-PE2-bgp-default-ipv4-vpn1] peer 192.1.1.1 enable
[ASBR-PE2-bgp-default-ipv4-vpn1] quit
[ASBR-PE2-bgp-default-vpn1] quit
[ASBR-PE2-bgp-default] peer 4.4.4.9 as-number 200
[ASBR-PE2-bgp-default] peer 4.4.4.9 connect-interface loopback 0
[ASBR-PE2-bgp-default] address-family vpnv4
[ASBR-PE2-bgp-default-vpnv4] peer 4.4.4.9 enable
[ASBR-PE2-bgp-default-vpnv4] peer 4.4.4.9 next-hop-local
[ASBR-PE2-bgp-default-vpnv4] quit
[ASBR-PE2-bgp-default] quit
# 配置PE 2。
[PE2] bgp 200
[PE2-bgp-default] peer 3.3.3.9 as-number 200
[PE2-bgp-default] peer 3.3.3.9 connect-interface loopback 0
[PE2-bgp-default] address-family vpnv4
[PE2-bgp-default-vpnv4] peer 3.3.3.9 enable
[PE2-bgp-default-vpnv4] peer 3.3.3.9 next-hop-local
[PE2-bgp-default-vpnv4] quit
[PE2-bgp-default] 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路由进行Route Target过滤。
接口 |
IP地址 |
设备 |
接口 |
IP地址 |
|
PE 1 |
Loop0 |
2.2.2.9/32 |
PE 2 |
Loop0 |
5.5.5.9/32 |
|
GE1/0/1 |
30.0.0.1/8 |
|
GE1/0/1 |
20.0.0.1/8 |
|
GE1/0/5 |
1.1.1.2/8 |
|
GE1/0/5 |
9.1.1.2/8 |
ASBR-PE 1 |
Loop0 |
3.3.3.9/32 |
ASBR-PE 2 |
Loop0 |
4.4.4.9/32 |
|
GE1/0/5 |
1.1.1.1/8 |
|
GE1/0/5 |
9.1.1.1/8 |
|
GE1/0/4 |
11.0.0.2/8 |
|
GE1/0/4 |
11.0.0.1/8 |
(1) 配置PE 1
# 在PE 1上运行IS-IS。
<PE1> system-view
[PE1] isis 1
[PE1-isis-1] network-entity 10.0000.0000.0000.0001.00
[PE1-isis-1] quit
# 配置LSR ID,使能MPLS和LDP。
[PE1] mpls lsr-id 2.2.2.9
[PE1] mpls ldp
[PE1-ldp] quit
# 配置接口GigabitEthernet1/0/5,在接口上运行IS-IS,并使能MPLS和LDP。
[PE1] interface gigabitethernet 1/0/5
[PE1-GigabitEthernet1/0/5] ip address 1.1.1.2 255.0.0.0
[PE1-GigabitEthernet1/0/5] isis enable 1
[PE1-GigabitEthernet1/0/5] mpls enable
[PE1-GigabitEthernet1/0/5] mpls ldp enable
[PE1-GigabitEthernet1/0/5] quit
# 创建Loopback0接口,在接口上运行IS-IS。
[PE1] interface loopback 0
[PE1-LoopBack0] ip address 2.2.2.9 32
[PE1-LoopBack0] isis enable 1
[PE1-LoopBack0] quit
# 创建一个VPN实例,名为vpn1,配置RD和Route Target属性。
[PE1] ip vpn-instance vpn1
[PE1-vpn-instance-vpn1] route-distinguisher 11:11
[PE1-vpn-instance-vpn1] vpn-target 1:1 2:2 import-extcommunity
[PE1-vpn-instance-vpn1] vpn-target 1:1 export-extcommunity
[PE1-vpn-instance-vpn1] quit
# 将连接CE 1的接口绑定到创建的VPN实例。
[PE1] interface gigabitethernet 1/0/1
[PE1-GigabitEthernet1/0/1] ip binding vpn-instance vpn1
[PE1-GigabitEthernet1/0/1] ip address 30.0.0.1 8
[PE1-GigabitEthernet1/0/1] quit
# 在PE 1上运行BGP。
[PE1] bgp 100
# 配置IBGP对等体3.3.3.9为VPNv4对等体。
[PE1-bgp-default] peer 3.3.3.9 as-number 100
[PE1-bgp-default] peer 3.3.3.9 connect-interface loopback 0
[PE1-bgp-default] address-family vpnv4
[PE1-bgp-default-vpnv4] peer 3.3.3.9 enable
[PE1-bgp-default-vpnv4] quit
# 将直连路由引入vpn1的VPN路由表。
[PE1-bgp-default] ip vpn-instance vpn1
[PE1-bgp-default-vpn1] address-family ipv4 unicast
[PE1-bgp-default-ipv4-vpn1] import-route direct
[PE1-bgp-default-ipv4-vpn1] quit
[PE1-bgp-default-vpn1] quit
[PE1-bgp-default] quit
(2) 配置ASBR-PE 1
# 在ASBR-PE 1上运行IS-IS。
<ASBR-PE1> system-view
[ASBR-PE1] isis 1
[ASBR-PE1-isis-1] network-entity 10.0000.0000.0000.0002.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
# 配置接口GigabitEthernet1/0/5,在接口上运行IS-IS,并使能MPLS和LDP。
[ASBR-PE1] interface gigabitethernet 1/0/5
[ASBR-PE1-GigabitEthernet1/0/5] ip address 1.1.1.1 255.0.0.0
[ASBR-PE1-GigabitEthernet1/0/5] isis enable 1
[ASBR-PE1-GigabitEthernet1/0/5] mpls enable
[ASBR-PE1-GigabitEthernet1/0/5] mpls ldp enable
[ASBR-PE1-GigabitEthernet1/0/5] quit
# 配置接口GigabitEthernet1/0/4,使能MPLS。
[ASBR-PE1] interface gigabitethernet 1/0/4
[ASBR-PE1-GigabitEthernet1/0/4] ip address 11.0.0.2 255.0.0.0
[ASBR-PE1-GigabitEthernet1/0/4] mpls enable
[ASBR-PE1-GigabitEthernet1/0/4] 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 100
[ASBR-PE1-bgp-default] peer 2.2.2.9 as-number 100
[ASBR-PE1-bgp-default] peer 2.2.2.9 connect-interface loopback 0
[ASBR-PE1-bgp-default] peer 11.0.0.1 as-number 600
[ASBR-PE1-bgp-default] peer 11.0.0.1 connect-interface gigabitethernet 1/0/4
# 不对接收的VPNv4路由进行Route target过滤。
[ASBR-PE1-bgp-default] address-family vpnv4
[ASBR-PE1-bgp-default-vpnv4] undo policy vpn-target
# 将IBGP对等体2.2.2.9和EBGP对等体11.0.0.1都配置为VPNv4对等体。
[ASBR-PE1-bgp-default-vpnv4] peer 11.0.0.1 enable
[ASBR-PE1-bgp-default-vpnv4] peer 2.2.2.9 enable
[ASBR-PE1-bgp-default-vpnv4] quit
(3) 配置ASBR-PE 2
# 在ASBR-PE 2上运行IS-IS。
<ASBR-PE2> system-view
[ASBR-PE2] isis 1
[ASBR-PE2-isis-1] network-entity 10.0000.0000.0000.0003.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
# 配置接口GigabitEthernet1/0/5,在接口上运行IS-IS,并使能MPLS和LDP。
[ASBR-PE2] interface gigabitethernet 1/0/5
[ASBR-PE2-GigabitEthernet1/0/5] ip address 9.1.1.1 255.0.0.0
[ASBR-PE2-GigabitEthernet1/0/5] isis enable 1
[ASBR-PE2-GigabitEthernet1/0/5] mpls enable
[ASBR-PE2-GigabitEthernet1/0/5] mpls ldp enable
[ASBR-PE2-GigabitEthernet1/0/5] quit
# 配置接口GigabitEthernet1/0/4,使能MPLS。
[ASBR-PE2] interface gigabitethernet 1/0/4
[ASBR-PE2-GigabitEthernet1/0/4] ip address 11.0.0.1 255.0.0.0
[ASBR-PE2-GigabitEthernet1/0/4] mpls enable
[ASBR-PE2-GigabitEthernet1/0/4] 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 600
[ASBR-PE2-bgp-default] peer 11.0.0.2 as-number 100
[ASBR-PE2-bgp-default] peer 11.0.0.2 connect-interface gigabitethernet 1/0/4
[ASBR-PE2-bgp-default] peer 5.5.5.9 as-number 600
[ASBR-PE2-bgp-default] peer 5.5.5.9 connect-interface loopback 0
# 不对接收的VPNv4路由进行Route target过滤。
[ASBR-PE2-bgp-default] address-family vpnv4
[ASBR-PE2-bgp-default-vpnv4] undo policy vpn-target
# 将IBGP对等体5.5.5.9和EBGP对等体11.0.0.2都配置为VPNv4对等体。
[ASBR-PE2-bgp-default-vpnv4] peer 11.0.0.2 enable
[ASBR-PE2-bgp-default-vpnv4] peer 5.5.5.9 enable
[ASBR-PE2-bgp-default-vpnv4] quit
[ASBR-PE2-bgp-default] quit
(4) 配置PE 2
# 在PE 2上运行IS-IS。
<PE2> system-view
[PE2] isis 1
[PE2-isis-1] network-entity 10.0000.0000.0000.0004.00
[PE2-isis-1] quit
# 配置LSR ID,使能MPLS和LDP。
[PE2] mpls lsr-id 5.5.5.9
[PE2] mpls ldp
[PE2-ldp] quit
# 配置接口GigabitEthernet1/0/5,在接口上运行IS-IS,并使能MPLS和LDP。
[PE2] interface gigabitethernet 1/0/5
[PE2-GigabitEthernet1/0/5] ip address 9.1.1.2 255.0.0.0
[PE2-GigabitEthernet1/0/5] isis enable 1
[PE2-GigabitEthernet1/0/5] mpls enable
[PE2-GigabitEthernet1/0/5] mpls ldp enable
[PE2-GigabitEthernet1/0/5] quit
# 创建Loopback0接口,在接口上运行IS-IS。
[PE2] interface loopback 0
[PE2-LoopBack0] ip address 5.5.5.9 32
[PE2-LoopBack0] isis enable 1
[PE2-LoopBack0] quit
# 创建一个VPN实例,名为vpn1,配置RD和Route Target属性。
[PE2] ip vpn-instance vpn1
[PE2-vpn-instance-vpn1] route-distinguisher 12:12
[PE2-vpn-instance-vpn1] vpn-target 1:1 2:2 import-extcommunity
[PE2-vpn-instance-vpn1] vpn-target 2:2 export-extcommunity
[PE2-vpn-instance-vpn1] quit
# 将连接CE 1的接口绑定到创建的VPN实例。
[PE2] interface gigabitethernet 1/0/1
[PE2-GigabitEthernet1/0/1] ip binding vpn-instance vpn1
[PE2-GigabitEthernet1/0/1] ip address 20.0.0.1 8
[PE2-GigabitEthernet1/0/1] quit
# 在PE 2上运行BGP。
[PE2] bgp 600
# 配置IBGP对等体4.4.4.9为VPNv4对等体。
[PE2-bgp-default] peer 4.4.4.9 as-number 600
[PE2-bgp-default] peer 4.4.4.9 connect-interface loopback 0
[PE2-bgp-default] address-family vpnv4
[PE2-bgp-default-vpnv4] peer 4.4.4.9 enable
[PE2-bgp-default-vpnv4] quit
# 将直连路由引入vpn1的VPN路由表。
[PE2-bgp-default] ip vpn-instance vpn1
[PE2-bgp-default-vpn1] address-family ipv4 unicast
[PE2-bgp-default-ipv4-vpn1] import-route direct
[PE2-bgp-default-ipv4-vpn1] quit
[PE2-bgp-default-vpn1] quit
[PE2-bgp-default] quit
# 配置完成后,PE 1和PE 2上连接CE的接口GigabitEthernet1/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路由。
接口 |
IP地址 |
设备 |
接口 |
IP地址 |
|
PE 1 |
Loop0 |
2.2.2.9/32 |
PE 2 |
Loop0 |
5.5.5.9/32 |
|
GE1/0/1 |
30.0.0.1/24 |
|
GE1/0/1 |
20.0.0.1/24 |
|
GE1/0/5 |
1.1.1.2/8 |
|
GE1/0/5 |
9.1.1.2/8 |
ASBR-PE 1 |
Loop0 |
3.3.3.9/32 |
ASBR-PE 2 |
Loop0 |
4.4.4.9/32 |
|
GE1/0/5 |
1.1.1.1/8 |
|
GE1/0/5 |
9.1.1.1/8 |
|
GE1/0/4 |
11.0.0.2/8 |
|
GE1/0/4 |
11.0.0.1/8 |
CE 1 |
GE1/0/1 |
30.0.0.2/24 |
CE 2 |
GE1/0/1 |
20.0.0.2/24 |
(1) 配置CE 1
# 配置接口GigabitEthernet1/0/1的IP地址。
<CE1> system-view
[CE1] interface gigabitethernet 1/0/1
[CE1-GigabitEthernet1/0/1] ip address 30.0.0.2 24
[CE1-GigabitEthernet1/0/1] quit
# 配置CE 1与PE 1建立EBGP对等体,并引入VPN路由。
[CE1] bgp 65001
[CE1-bgp-default] peer 30.0.0.1 as-number 100
[CE1-bgp-default] address-family ipv4 unicast
[CE1-bgp-default-ipv4] peer 30.0.0.1 enable
[CE1-bgp-default-ipv4] import-route direct
[CE1-bgp-default-ipv4] quit
[CE1-bgp-default] quit
(2) 配置PE 1
# 在PE 1上运行IS-IS。
<PE1> system-view
[PE1] isis 1
[PE1-isis-1] network-entity 10.0000.0000.0000.0001.00
[PE1-isis-1] quit
# 配置LSR ID,使能MPLS和LDP。
[PE1] mpls lsr-id 2.2.2.9
[PE1] mpls ldp
[PE1-ldp] quit
# 配置接口GigabitEthernet1/0/5,在接口上运行IS-IS,并使能MPLS和LDP。
[PE1] interface gigabitethernet 1/0/5
[PE1-GigabitEthernet1/0/5] ip address 1.1.1.2 255.0.0.0
[PE1-GigabitEthernet1/0/5] isis enable 1
[PE1-GigabitEthernet1/0/5] mpls enable
[PE1-GigabitEthernet1/0/5] mpls ldp enable
[PE1-GigabitEthernet1/0/5] quit
# 创建Loopback0接口,在接口上运行IS-IS。
[PE1] interface loopback 0
[PE1-LoopBack0] ip address 2.2.2.9 32
[PE1-LoopBack0] isis enable 1
[PE1-LoopBack0] quit
# 创建VPN实例,名称为vpn1,为其配置RD和Route Target属性。
[PE1] ip vpn-instance vpn1
[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
# 配置接口GigabitEthernet1/0/1与VPN实例vpn1绑定,并配置该接口的IP地址。
[PE1] interface gigabitethernet 1/0/1
[PE1-GigabitEthernet1/0/1] ip binding vpn-instance vpn1
[PE1-GigabitEthernet1/0/1] ip address 30.0.0.1 24
[PE1-GigabitEthernet1/0/1] quit
# 在PE 1上运行BGP。
[PE1] bgp 100
# 配置PE 1向IBGP对等体3.3.3.9发布标签路由及从3.3.3.9接收标签路由的能力。
[PE1-bgp-default] peer 3.3.3.9 as-number 100
[PE1-bgp-default] peer 3.3.3.9 connect-interface loopback 0
[PE1-bgp-default] address-family ipv4 unicast
[PE1-bgp-default-ipv4] peer 3.3.3.9 enable
[PE1-bgp-default-ipv4] peer 3.3.3.9 label-route-capability
[PE1-bgp-default-ipv4] quit
# 配置PE 1到EBGP对等体5.5.5.9的最大跳数为10。
[PE1-bgp-default] peer 5.5.5.9 as-number 600
[PE1-bgp-default] peer 5.5.5.9 connect-interface loopback 0
[PE1-bgp-default] peer 5.5.5.9 ebgp-max-hop 10
# 配置对等体5.5.5.9作为VPNv4对等体。
[PE1-bgp-default] address-family vpnv4
[PE1-bgp-default-vpnv4] peer 5.5.5.9 enable
[PE1-bgp-default-vpnv4] quit
# 配置PE 1与CE 1建立EBGP对等体,将学习到的BGP路由添加到VPN实例的路由表中。
[PE1-bgp-default] ip vpn-instance vpn1
[PE1-bgp-default-vpn1] peer 30.0.0.2 as-number 65001
[PE1-bgp-default-vpn1] address-family ipv4 unicast
[PE1-bgp-default-ipv4-vpn1] peer 30.0.0.2 enable
[PE1-bgp-default-ipv4-vpn1] import-route direct
[PE1-bgp-default-ipv4-vpn1] quit
[PE1-bgp-default-vpn1] quit
[PE1-bgp-default] quit
(3) 配置ASBR-PE1
# 在ASBR-PE1上运行IS-IS。
<ASBR-PE1> system-view
[ASBR-PE1] isis 1
[ASBR-PE1-isis-1] network-entity 10.0000.0000.0000.0002.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
# 配置接口GigabitEthernet1/0/5,在接口上运行IS-IS,并使能MPLS和LDP。
[ASBR-PE1] interface gigabitethernet 1/0/5
[ASBR-PE1-GigabitEthernet1/0/5] ip address 1.1.1.1 255.0.0.0
[ASBR-PE1-GigabitEthernet1/0/5] isis enable 1
[ASBR-PE1-GigabitEthernet1/0/5] mpls enable
[ASBR-PE1-GigabitEthernet1/0/5] mpls ldp enable
[ASBR-PE1-GigabitEthernet1/0/5] quit
# 配置接口GigabitEthernet1/0/4,并在接口上使能MPLS。
[ASBR-PE1] interface gigabitethernet 1/0/4
[ASBR-PE1-GigabitEthernet1/0/4] ip address 11.0.0.2 255.0.0.0
[ASBR-PE1-GigabitEthernet1/0/4] mpls enable
[ASBR-PE1-GigabitEthernet1/0/4] 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 100
[ASBR-PE1-bgp-default] peer 2.2.2.9 as-number 100
[ASBR-PE1-bgp-default] peer 2.2.2.9 connect-interface loopback 0
[ASBR-PE1-bgp-default] address-family ipv4 unicast
[ASBR-PE1-bgp-default-ipv4] peer 2.2.2.9 enable
[ASBR-PE1-bgp-default-ipv4] peer 2.2.2.9 route-policy policy2 export
# 向IBGP对等体2.2.2.9发布标签路由及从2.2.2.9接收标签路由的能力。
[ASBR-PE1-bgp-default-ipv4] peer 2.2.2.9 label-route-capability
# 引入IS-IS进程1的路由。
[ASBR-PE1-bgp-default-ipv4] import-route isis 1
[ASBR-PE1-bgp-default-ipv4] quit
# 对向EBGP对等体11.0.0.1发布的路由应用已配置的路由策略policy1。
[ASBR-PE1-bgp-default] peer 11.0.0.1 as-number 600
[ASBR-PE1-bgp-default] address-family ipv4 unicast
[ASBR-PE1-bgp-default-ipv4] peer 11.0.0.1 enable
[ASBR-PE1-bgp-default-ipv4] peer 11.0.0.1 route-policy policy1 export
# 向EBGP对等体11.0.0.1发布标签路由及从11.0.0.1接收标签路由的能力。
[ASBR-PE1-bgp-default-ipv4] peer 11.0.0.1 label-route-capability
[ASBR-PE1-bgp-default-ipv4] quit
[ASBR-PE1-bgp-default] quit
(4) 配置ASBR-PE 2
# 在ASBR-PE 2上运行IS-IS。
<ASBR-PE2> system-view
[ASBR-PE2] isis 1
[ASBR-PE2-isis-1] network-entity 10.0000.0000.0000.0003.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
# 配置接口GigabitEthernet1/0/5,在接口上运行IS-IS,并在接口上使能MPLS和LDP。
[ASBR-PE2] interface gigabitethernet 1/0/5
[ASBR-PE2-GigabitEthernet1/0/5] ip address 9.1.1.1 255.0.0.0
[ASBR-PE2-GigabitEthernet1/0/5] isis enable 1
[ASBR-PE2-GigabitEthernet1/0/5] mpls enable
[ASBR-PE2-GigabitEthernet1/0/5] mpls ldp enable
[ASBR-PE2-GigabitEthernet1/0/5] 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
# 配置接口GigabitEthernet1/0/4,在接口上使能MPLS。
[ASBR-PE2] interface gigabitethernet 1/0/4
[ASBR-PE2-GigabitEthernet1/0/4] ip address 11.0.0.1 255.0.0.0
[ASBR-PE2-GigabitEthernet1/0/4] mpls enable
[ASBR-PE2-GigabitEthernet1/0/4] 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 600
[ASBR-PE2-bgp-default] peer 5.5.5.9 as-number 600
[ASBR-PE2-bgp-default] peer 5.5.5.9 connect-interface loopback 0
[ASBR-PE2-bgp-default] address-family ipv4 unicast
[ASBR-PE2-bgp-default-ipv4] peer 5.5.5.9 enable
[ASBR-PE2-bgp-default-ipv4] peer 5.5.5.9 label-route-capability
# 对向IBGP对等体5.5.5.9发布的路由应用已配置的路由策略policy2。
[ASBR-PE2-bgp-default-ipv4] peer 5.5.5.9 route-policy policy2 export
# 引入IS-IS进程1的路由。
[ASBR-PE2-bgp-default-ipv4] import-route isis 1
[ASBR-PE2-bgp-default-ipv4] quit
# 对向EBGP对等体11.0.0.2发布的路由应用已配置的路由策略policy1。
[ASBR-PE2-bgp-default] peer 11.0.0.2 as-number 100
[ASBR-PE2-bgp-default] address-family ipv4 unicast
[ASBR-PE2-bgp-default-ipv4] peer 11.0.0.2 enable
[ASBR-PE2-bgp-default-ipv4] peer 11.0.0.2 route-policy policy1 export
# 向EBGP对等体11.0.0.2发布标签路由及从11.0.0.2接收标签路由的能力。
[ASBR-PE2-bgp-default-ipv4] peer 11.0.0.2 label-route-capability
[ASBR-PE2-bgp-default-ipv4] quit
[ASBR-PE2-bgp-default] quit
(5) 配置PE 2
# 在PE 2上运行IS-IS。
<PE2> system-view
[PE2] isis 1
[PE2-isis-1] network-entity 10.0000.0000.0000.0004.00
[PE2-isis-1] quit
# 配置LSR ID,使能MPLS和LDP。
[PE2] mpls lsr-id 5.5.5.9
[PE2] mpls ldp
[PE2-ldp] quit
# 配置接口GigabitEthernet1/0/5,在接口上运行IS-IS,并使能MPLS和LDP。
[PE2] interface gigabitethernet 1/0/5
[PE2-GigabitEthernet1/0/5] ip address 9.1.1.2 255.0.0.0
[PE2-GigabitEthernet1/0/5] isis enable 1
[PE2-GigabitEthernet1/0/5] mpls enable
[PE2-GigabitEthernet1/0/5] mpls ldp enable
[PE2-GigabitEthernet1/0/5] quit
# 创建Loopback0接口,在接口上运行IS-IS。
[PE2] interface loopback 0
[PE2-LoopBack0] ip address 5.5.5.9 32
[PE2-LoopBack0] isis enable 1
[PE2-LoopBack0] quit
# 创建VPN实例,名称为vpn1,为其配置RD和Route Target属性。
[PE2] ip vpn-instance vpn1
[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
# 配置接口GigabitEthernet1/0/1与VPN实例vpn1绑定,并配置该接口的IP地址。
[PE2] interface gigabitethernet 1/0/1
[PE2-GigabitEthernet1/0/1] ip binding vpn-instance vpn1
[PE2-GigabitEthernet1/0/1] ip address 20.0.0.1 24
[PE2-GigabitEthernet1/0/1] quit
# 在PE 2上运行BGP。
[PE2] bgp 600
# 配置PE 2向IBGP对等体4.4.4.9发布标签路由及从4.4.4.9接收标签路由的能力。
[PE2-bgp-default] peer 4.4.4.9 as-number 600
[PE2-bgp-default] peer 4.4.4.9 connect-interface loopback 0
[PE2-bgp-default] address-family ipv4 unicast
[PE2-bgp-default-ipv4] peer 4.4.4.9 enable
[PE2-bgp-default-ipv4] peer 4.4.4.9 label-route-capability
[PE2-bgp-default-ipv4] quit
# 配置PE 2到EBGP对等体2.2.2.9的最大跳数为10。
[PE2-bgp-default] peer 2.2.2.9 as-number 100
[PE2-bgp-default] peer 2.2.2.9 connect-interface loopback 0
[PE2-bgp-default] peer 2.2.2.9 ebgp-max-hop 10
# 配置对等体2.2.2.9作为VPNv4对等体。
[PE2-bgp-default] address-family vpnv4
[PE2-bgp-default-vpnv4] peer 2.2.2.9 enable
[PE2-bgp-default-vpnv4] quit
# 配置PE 2与CE 2建立EBGP对等体,将学习到的BGP路由添加到VPN实例的路由表中。
[PE2-bgp-default] ip vpn-instance vpn1
[PE2-bgp-default-vpn1] peer 20.0.0.2 as-number 65002
[PE2-bgp-default-vpn1] address-family ipv4 unicast
[PE2-bgp-default-ipv4-vpn1] peer 20.0.0.2 enable
[PE2-bgp-default-ipv4-vpn1] import-route direct
[PE2-bgp-default-ipv4-vpn1] quit
[PE2-bgp-default-vpn1] quit
[PE2-bgp-default] quit
(6) 配置CE 2
# 配置接口GigabitEthernet1/0/1的IP地址。
<CE2> system-view
[CE2] interface gigabitethernet 1/0/1
[CE2-GigabitEthernet1/0/1] ip address 20.0.0.2 24
[CE2-GigabitEthernet1/0/1] quit
# 配置CE 2与PE 2建立EBGP对等体,并引入VPN路由。
[CE2] bgp 65002
[CE2-bgp-default] peer 20.0.0.1 as-number 600
[CE2-bgp-default] address-family ipv4 unicast
[CE2-bgp-default-ipv4] peer 20.0.0.1 enable
[CE2-bgp-default-ipv4] import-route direct
[CE2-bgp-default-ipv4] quit
[CE2-bgp-default] quit
# 配置完成后,在CE 1和CE 2上执行display ip routing-table命令可以查看到到达对方的路由,且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与PE 2建立MP-EBGP对等体交换VPNv4路由;
· ASBR-PE 1和ASBR-PE 2上分别配置路由策略,对从对方接收的路由压入标签;
· ASBR-PE 1与ASBR-PE 2间通过EBGP交换标签IPv4路由。
· ASBR-PE 1和ASBR-PE 2上将IGP路由和BGP路由互相引入。
图1-31 配置跨域VPN-OptionC方式组网图
设备 |
接口 |
IP地址 |
设备 |
接口 |
IP地址 |
PE 1 |
Loop0 |
2.2.2.9/32 |
PE 2 |
Loop0 |
5.5.5.9/32 |
|
GE1/0/1 |
30.0.0.1/24 |
|
GE1/0/1 |
20.0.0.1/24 |
|
GE1/0/5 |
1.1.1.2/8 |
|
GE1/0/5 |
9.1.1.2/8 |
ASBR-PE 1 |
Loop0 |
3.3.3.9/32 |
ASBR-PE 2 |
Loop0 |
4.4.4.9/32 |
|
GE1/0/5 |
1.1.1.1/8 |
|
GE1/0/5 |
9.1.1.1/8 |
|
GE1/0/4 |
11.0.0.2/8 |
|
GE1/0/4 |
11.0.0.1/8 |
CE 1 |
GE1/0/1 |
30.0.0.2/24 |
CE 2 |
GE1/0/1 |
20.0.0.2/24 |
(1) 配置CE 1
# 配置接口GigabitEthernet1/0/1的IP地址。
<CE1> system-view
[CE1] interface gigabitethernet 1/0/1
[CE1-GigabitEthernet1/0/1] ip address 30.0.0.2 24
[CE1-GigabitEthernet1/0/1] quit
# 配置CE 1与PE 1建立EBGP对等体,并引入VPN路由。
[CE1] bgp 65001
[CE1-bgp-default] peer 30.0.0.1 as-number 100
[CE1-bgp-default] address-family ipv4 unicast
[CE1-bgp-default-ipv4] peer 30.0.0.1 enable
[CE1-bgp-default-ipv4] import-route direct
[CE1-bgp-default-ipv4] quit
[CE1-bgp-default] quit
(2) 配置PE 1
# 在PE 1上运行IS-IS。
<PE1> system-view
[PE1] isis 1
[PE1-isis-1] network-entity 10.0000.0000.0000.0001.00
[PE1-isis-1] quit
# 配置LSR ID,使能MPLS和LDP。
[PE1] mpls lsr-id 2.2.2.9
[PE1] mpls ldp
[PE1-ldp] quit
# 配置接口GigabitEthernet1/0/5,在接口上运行IS-IS,并使能MPLS和LDP。
[PE1] interface gigabitethernet 1/0/5
[PE1-GigabitEthernet1/0/5] ip address 1.1.1.2 255.0.0.0
[PE1-GigabitEthernet1/0/5] isis enable 1
[PE1-GigabitEthernet1/0/5] mpls enable
[PE1-GigabitEthernet1/0/5] mpls ldp enable
[PE1-GigabitEthernet1/0/5] quit
# 创建Loopback0接口,在接口上运行IS-IS。
[PE1] interface loopback 0
[PE1-LoopBack0] ip address 2.2.2.9 32
[PE1-LoopBack0] isis enable 1
[PE1-LoopBack0] quit
# 创建VPN实例,名称为vpn1,为其配置RD和Route Target属性。
[PE1] ip vpn-instance vpn1
[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
# 配置接口GigabitEthernet1/0/1与VPN实例vpn1绑定,并配置该接口的IP地址。
[PE1] interface gigabitethernet 1/0/1
[PE1-GigabitEthernet1/0/1] ip binding vpn-instance vpn1
[PE1-GigabitEthernet1/0/1] ip address 30.0.0.1 24
[PE1-GigabitEthernet1/0/1] quit
# 在PE 1上运行BGP。
[PE1] bgp 100
# 配置PE 1到EBGP对等体5.5.5.9的最大跳数为10。
[PE1-bgp-default] peer 5.5.5.9 as-number 600
[PE1-bgp-default] peer 5.5.5.9 connect-interface loopback 0
[PE1-bgp-default] peer 5.5.5.9 ebgp-max-hop 10
# 配置对等体5.5.5.9作为VPNv4对等体。
[PE1-bgp-default] address-family vpnv4
[PE1-bgp-default-vpnv4] peer 5.5.5.9 enable
[PE1-bgp-default-vpnv4] quit
# 配置PE 1与CE 1建立EBGP对等体,将学习到的BGP路由添加到VPN实例的路由表中。
[PE1-bgp-default] ip vpn-instance vpn1
[PE1-bgp-default-vpn1] peer 30.0.0.2 as-number 65001
[PE1-bgp-default-vpn1] address-family ipv4 unicast
[PE1-bgp-default-ipv4-vpn1] peer 30.0.0.2 enable
[PE1-bgp-default-ipv4-vpn1] quit
[PE1-bgp-default-vpn1] quit
[PE1-bgp-default] quit
(3) 配置ASBR-PE1
# 在ASBR-PE1上运行IS-IS。
<ASBR-PE1> system-view
[ASBR-PE1] isis 1
[ASBR-PE1-isis-1] network-entity 10.0000.0000.0000.0002.00
# 引入BGP的路由。
[ASBR-PE1-isis-1] address-family ipv4 unicast
[ASBR-PE1-isis-1-ipv4] import-route bgp
[ASBR-PE1-isis-1-ipv4] quit
[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
# 配置接口GigabitEthernet1/0/5,在接口上运行IS-IS,并使能MPLS和LDP。
[ASBR-PE1] interface gigabitethernet 1/0/5
[ASBR-PE1-GigabitEthernet1/0/5] ip address 1.1.1.1 255.0.0.0
[ASBR-PE1-GigabitEthernet1/0/5] isis enable 1
[ASBR-PE1-GigabitEthernet1/0/5] mpls enable
[ASBR-PE1-GigabitEthernet1/0/5] mpls ldp enable
[ASBR-PE1-GigabitEthernet1/0/5] quit
# 配置接口GigabitEthernet1/0/4,并在接口上使能MPLS。
[ASBR-PE1] interface gigabitethernet 1/0/4
[ASBR-PE1-GigabitEthernet1/0/4] ip address 11.0.0.2 255.0.0.0
[ASBR-PE1-GigabitEthernet1/0/4] mpls enable
[ASBR-PE1-GigabitEthernet1/0/4] 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-PE 1上运行BGP,引入IS-IS进程1的路由。
[ASBR-PE1] bgp 100
[ASBR-PE1-bgp-default] address-family ipv4 unicast
[ASBR-PE1-bgp-default-ipv4] import-route isis 1
[ASBR-PE1-bgp-default-ipv4] quit
# 对向EBGP对等体11.0.0.1发布的路由应用已配置的路由策略policy1。
[ASBR-PE1-bgp-default] peer 11.0.0.1 as-number 600
[ASBR-PE1-bgp-default] address-family ipv4 unicast
[ASBR-PE1-bgp-default-ipv4] peer 11.0.0.1 enable
[ASBR-PE1-bgp-default-ipv4] peer 11.0.0.1 route-policy policy1 export
# 向EBGP对等体11.0.0.1发布标签路由及从11.0.0.1接收标签路由的能力。
[ASBR-PE1-bgp-default-ipv4] peer 11.0.0.1 label-route-capability
[ASBR-PE1-bgp-default-ipv4] quit
[ASBR-PE1-bgp-default] quit
(4) 配置ASBR-PE 2
# 在ASBR-PE 2上运行IS-IS。
<ASBR-PE2> system-view
[ASBR-PE2] isis 1
[ASBR-PE2-isis-1] network-entity 10.0000.0000.0000.0003.00
# 引入BGP的路由。
[ASBR-PE2-isis-1] address-family ipv4 unicast
[ASBR-PE2-isis-1-ipv4] import-route bgp
[ASBR-PE2-isis-1-ipv4] quit
[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
# 配置接口GigabitEthernet1/0/5,在接口上运行IS-IS,并在接口上使能MPLS和LDP。
[ASBR-PE2] interface gigabitethernet 1/0/5
[ASBR-PE2-GigabitEthernet1/0/5] ip address 9.1.1.1 255.0.0.0
[ASBR-PE2-GigabitEthernet1/0/5] isis enable 1
[ASBR-PE2-GigabitEthernet1/0/5] mpls enable
[ASBR-PE2-GigabitEthernet1/0/5] mpls ldp enable
[ASBR-PE2-GigabitEthernet1/0/5] 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
# 配置接口GigabitEthernet1/0/4,在接口上使能MPLS。
[ASBR-PE2] interface gigabitethernet 1/0/4
[ASBR-PE2-GigabitEthernet1/0/4] ip address 11.0.0.1 255.0.0.0
[ASBR-PE2-GigabitEthernet1/0/4] mpls enable
[ASBR-PE2-GigabitEthernet1/0/4] 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-PE 2上运行BGP,引入IS-IS进程1的路由。
[ASBR-PE2] bgp 600
[ASBR-PE2-bgp-default] address-family ipv4 unicast
[ASBR-PE2-bgp-default-ipv4] import-route isis 1
[ASBR-PE2-bgp-default-ipv4] quit
# 对向EBGP对等体11.0.0.2发布的路由应用已配置的路由策略policy1。
[ASBR-PE2-bgp-default] peer 11.0.0.2 as-number 100
[ASBR-PE2-bgp-default] address-family ipv4 unicast
[ASBR-PE2-bgp-default-ipv4] peer 11.0.0.2 enable
[ASBR-PE2-bgp-default-ipv4] peer 11.0.0.2 route-policy policy1 export
# 向EBGP对等体11.0.0.2发布标签路由及从11.0.0.2接收标签路由的能力。
[ASBR-PE2-bgp-default-ipv4] peer 11.0.0.2 label-route-capability
[ASBR-PE2-bgp-default-ipv4] quit
[ASBR-PE2-bgp-default] quit
(5) 配置PE 2
# 在PE 2上运行IS-IS。
<PE2> system-view
[PE2] isis 1
[PE2-isis-1] network-entity 10.0000.0000.0000.0004.00
[PE2-isis-1] quit
# 配置LSR ID,使能MPLS和LDP。
[PE2] mpls lsr-id 5.5.5.9
[PE2] mpls ldp
[PE2-ldp] quit
# 配置接口GigabitEthernet1/0/5,在接口上运行IS-IS,并使能MPLS和LDP。
[PE2] interface gigabitethernet 1/0/5
[PE2-GigabitEthernet1/0/5] ip address 9.1.1.2 255.0.0.0
[PE2-GigabitEthernet1/0/5] isis enable 1
[PE2-GigabitEthernet1/0/5] mpls enable
[PE2-GigabitEthernet1/0/5] mpls ldp enable
[PE2-GigabitEthernet1/0/5] quit
# 创建Loopback0接口,在接口上运行IS-IS。
[PE2] interface loopback 0
[PE2-LoopBack0] ip address 5.5.5.9 32
[PE2-LoopBack0] isis enable 1
[PE2-LoopBack0] quit
# 创建VPN实例,名称为vpn1,为其配置RD和Route Target属性。
[PE2] ip vpn-instance vpn1
[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
# 配置接口GigabitEthernet1/0/1与VPN实例vpn1绑定,并配置该接口的IP地址。
[PE2] interface gigabitethernet 1/0/1
[PE2-GigabitEthernet1/0/1] ip binding vpn-instance vpn1
[PE2-GigabitEthernet1/0/1] ip address 20.0.0.1 24
[PE2-GigabitEthernet1/0/1] quit
# 在PE 2上运行BGP。
[PE2] bgp 600
# 配置PE 2到EBGP对等体2.2.2.9的最大跳数为10。
[PE2-bgp-default] peer 2.2.2.9 as-number 100
[PE2-bgp-default] peer 2.2.2.9 connect-interface loopback 0
[PE2-bgp-default] peer 2.2.2.9 ebgp-max-hop 10
# 配置对等体2.2.2.9作为VPNv4对等体。
[PE2-bgp-default] address-family vpnv4
[PE2-bgp-default-vpnv4] peer 2.2.2.9 enable
[PE2-bgp-default-vpnv4] quit
# 配置PE 2与CE 2建立EBGP对等体,将学习到的BGP路由添加到VPN实例的路由表中。
[PE2-bgp-default] ip vpn-instance vpn1
[PE2-bgp-default-vpn1] peer 20.0.0.2 as-number 65002
[PE2-bgp-default-vpn1] address-family ipv4 unicast
[PE2-bgp-default-ipv4-vpn1] peer 20.0.0.2 enable
[PE2-bgp-default-ipv4-vpn1] quit
[PE2-bgp-default-vpn1] quit
[PE2-bgp-default] quit
(6) 配置CE 2
# 配置接口GigabitEthernet1/0/1的IP地址。
<CE2> system-view
[CE2] interface gigabitethernet 1/0/1
[CE2-GigabitEthernet1/0/1] ip address 20.0.0.2 24
[CE2-GigabitEthernet1/0/1] quit
# 配置CE 2与PE 2建立EBGP对等体,并引入VPN路由。
[CE2] bgp 65002
[CE2-bgp-default] peer 20.0.0.1 as-number 600
[CE2-bgp-default] address-family ipv4 unicast
[CE2-bgp-default-ipv4] peer 20.0.0.1 enable
[CE2-bgp-default-ipv4] import-route direct
[CE2-bgp-default-ipv4] quit
[CE2-bgp-default] quit
# 配置完成后,在CE 1和CE 2上执行display ip routing-table命令可以查看到到达对方的路由,且CE 1和CE 2互相可以ping通。
二级运营商向自己的客户提供MPLS L3VPN服务。
在图1-32中:
· PE 1和PE 2是一级运营商骨干网的PE设备;
· CE 1和CE 2是二级运营商的设备,作为CE接入一级运营商的骨干网;
· PE 3和PE 4是二级运营商的设备,为二级运营商的客户提供接入;
· CE 3和CE 4是二级运营商的客户;
· 一级运营商和二级运营商位于同一个AS。
运营商的运营商的配置关键在于理解两类路由的交换过程,即:
· 二级运营商VPN内部路由在一级运营商骨干网上的交换:一级运营商将二级运营商作为自己的CE接入;
· 二级运营商本身客户的VPN路由在二级运营商PE设备间的交换:需要在二级运营商PE设备(PE 3和PE 4)间建立MP-IBGP对等体关系。
图1-32 配置Carriers’ carriers(相同AS)组网图
接口 |
IP地址 |
设备 |
接口 |
IP地址 |
|
CE 3 |
GE1/0/1 |
100.1.1.1/24 |
CE 4 |
GE1/0/1 |
120.1.1.1/24 |
PE 3 |
Loop0 |
1.1.1.9/32 |
PE 4 |
Loop0 |
6.6.6.9/32 |
|
GE1/0/1 |
100.1.1.2/24 |
|
GE1/0/1 |
120.1.1.2/24 |
|
GE1/0/5 |
10.1.1.1/24 |
|
GE1/0/5 |
20.1.1.2/24 |
CE 1 |
Loop0 |
2.2.2.9/32 |
CE 2 |
Loop0 |
5.5.5.9/32 |
|
GE1/0/4 |
10.1.1.2/24 |
|
GE1/0/4 |
21.1.1.2/24 |
|
GE1/0/5 |
11.1.1.1/24 |
|
GE1/0/5 |
20.1.1.1/24 |
PE 1 |
Loop0 |
3.3.3.9/32 |
PE 2 |
Loop0 |
4.4.4.9/32 |
|
GE1/0/4 |
11.1.1.2/24 |
|
GE1/0/4 |
30.1.1.2/24 |
|
GE1/0/5 |
30.1.1.1/24 |
|
GE1/0/5 |
21.1.1.1/24 |
(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 1/0/5
[PE1-GigabitEthernet1/0/5] ip address 30.1.1.1 24
[PE1-GigabitEthernet1/0/5] isis enable 1
[PE1-GigabitEthernet1/0/5] mpls enable
[PE1-GigabitEthernet1/0/5] mpls ldp enable
[PE1-GigabitEthernet1/0/5] mpls ldp transport-address interface
[PE1-GigabitEthernet1/0/5] quit
[PE1] bgp 100
[PE1-bgp-default] peer 4.4.4.9 as-number 100
[PE1-bgp-default] peer 4.4.4.9 connect-interface loopback 0
[PE1-bgp-default] address-family vpnv4
[PE1-bgp-default-vpnv4] peer 4.4.4.9 enable
[PE1-bgp-default-vpnv4] quit
[PE1-bgp-default] 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。
(2) 配置二级运营商网络:使用IS-IS作为IGP协议,PE 3和CE 1、PE 4和CE 2之间分别使能LDP
# 配置PE 3。
<PE3> system-view
[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 1/0/5
[PE3-GigabitEthernet1/0/5] ip address 10.1.1.1 24
[PE3-GigabitEthernet1/0/5] isis enable 2
[PE3-GigabitEthernet1/0/5] mpls enable
[PE3-GigabitEthernet1/0/5] mpls ldp enable
[PE3-GigabitEthernet1/0/5] mpls ldp transport-address interface
[PE3-GigabitEthernet1/0/5] quit
# 配置CE 1。
<CE1> system-view
[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 1/0/4
[CE1-GigabitEthernet1/0/4] ip address 10.1.1.2 24
[CE1-GigabitEthernet1/0/4] isis enable 2
[CE1-GigabitEthernet1/0/4] mpls enable
[CE1-GigabitEthernet1/0/4] mpls ldp enable
[CE1-GigabitEthernet1/0/4] mpls ldp transport-address interface
[CE1-GigabitEthernet1/0/4] 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] ip vpn-instance vpn1
[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] address-family ipv4
[PE1-isis-2-ipv4] import-route bgp
[PE1-isis-2-ipv4] quit
[PE1-isis-2] quit
[PE1] interface gigabitethernet 1/0/4
[PE1-GigabitEthernet1/0/4] ip binding vpn-instance vpn1
[PE1-GigabitEthernet1/0/4] ip address 11.1.1.2 24
[PE1-GigabitEthernet1/0/4] isis enable 2
[PE1-GigabitEthernet1/0/4] mpls enable
[PE1-GigabitEthernet1/0/4] mpls ldp enable
[PE1-GigabitEthernet1/0/4] mpls ldp transport-address interface
[PE1-GigabitEthernet1/0/4] quit
[PE1] bgp 100
[PE1-bgp-default] ip vpn-instance vpn1
[PE1-bgp-default-vpn1] address-family ipv4 unicast
[PE1-bgp-default-ipv4-vpn1] import-route isis 2
[PE1-bgp-default-ipv4-vpn1] quit
[PE1-bgp-default-vpn1] quit
[PE1-bgp-default] quit
# 配置CE1。
[CE1] interface gigabitethernet 1/0/5
[CE1-GigabitEthernet1/0/5] ip address 11.1.1.1 24
[CE1-GigabitEthernet1/0/5] isis enable 2
[CE1-GigabitEthernet1/0/5] mpls enable
[CE1-GigabitEthernet1/0/5] mpls ldp enable
[CE1-GigabitEthernet1/0/5] mpls ldp transport-address interface
[CE1-GigabitEthernet1/0/5] quit
配置完成后,PE 1和CE 1之间应能建立LDP和IS-IS邻居关系。
# PE 2和CE 2之间的配置与PE 1和CE 1之间的配置类似,配置过程省略。
(4) 配置二级运营商的客户接入PE
# 配置CE 3。
<CE3> system-view
[CE3] interface gigabitethernet 1/0/1
[CE3-GigabitEthernet1/0/1] ip address 100.1.1.1 24
[CE3-GigabitEthernet1/0/1] quit
[CE3] bgp 65410
[CE3-bgp-default] peer 100.1.1.2 as-number 100
[CE3-bgp-default] address-family ipv4 unicast
[CE3-bgp-default-ipv4] peer 100.1.1.2 enable
[CE3-bgp-default-ipv4] import-route direct
[CE3-bgp-default-ipv4] quit
[CE3-bgp-default] quit
# 配置PE 3。
[PE3] ip vpn-instance vpn1
[PE3-vpn-instance-vpn1] route-distinguisher 100:1
[PE3-vpn-instance-vpn1] vpn-target 1:1
[PE3-vpn-instance-vpn1] quit
[PE3] interface gigabitethernet 1/0/1
[PE3-GigabitEthernet1/0/1] ip binding vpn-instance vpn1
[PE3-GigabitEthernet1/0/1] ip address 100.1.1.2 24
[PE3-GigabitEthernet1/0/1] quit
[PE3] bgp 100
[PE3-bgp-default] ip vpn-instance vpn1
[PE3-bgp-default-vpn1] peer 100.1.1.1 as-number 65410
[PE3-bgp-default-vpn1] address-family ipv4 unicast
[PE3-bgp-default-ipv4-vpn1] peer 100.1.1.1 enable
[PE3-bgp-default-ipv4-vpn1] import-route direct
[PE3-bgp-default-ipv4-vpn1] quit
[PE3-bgp-default-vpn1] quit
[PE3-bgp-default] quit
# PE 4和CE 4之间的配置与PE 3和CE 3之间的配置类似,配置过程省略。
(5) 在二级运营商的PE之间建立MP-IBGP对等体关系,交换二级运营商的客户的VPN路由
# 配置PE 3。
[PE3] bgp 100
[PE3-bgp-default] peer 6.6.6.9 as-number 100
[PE3-bgp-default] peer 6.6.6.9 connect-interface loopback 0
[PE3-bgp-default] address-family vpnv4
[PE3-bgp-default-vpnv4] peer 6.6.6.9 enable
[PE3-bgp-default-vpnv4] quit
[PE3-bgp-default] quit
# PE 4的配置与PE 3类似,配置过程省略。
# 在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 IS_L1 15 10 30.1.1.2 GE1/0/5
30.1.1.0/24 Direct 0 0 30.1.1.1 GE1/0/5
30.1.1.0/32 Direct 0 0 30.1.1.1 GE1/0/5
30.1.1.1/32 Direct 0 0 127.0.0.1 InLoop0
30.1.1.255/32 Direct 0 0 30.1.1.1 GE1/0/5
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 : 18 Routes : 18
Destination/Mask Proto Pre Cost NextHop Interface
0.0.0.0/32 Direct 0 0 127.0.0.1 InLoop0
1.1.1.9/32 IS_L1 15 20 11.1.1.1 GE1/0/4
2.2.2.9/32 IS_L1 15 10 11.1.1.1 GE1/0/4
5.5.5.9/32 BGP 255 10 4.4.4.9 GE1/0/5
6.6.6.9/32 BGP 255 20 4.4.4.9 GE1/0/5
10.1.1.0/24 IS_L1 15 20 11.1.1.1 GE1/0/4
11.1.1.0/24 Direct 0 0 11.1.1.2 GE1/0/4
11.1.1.0/32 Direct 0 0 11.1.1.2 GE1/0/4
11.1.1.2/32 Direct 0 0 127.0.0.1 InLoop0
11.1.1.255/32 Direct 0 0 11.1.1.2 GE1/0/4
20.1.1.0/24 BGP 255 20 4.4.4.9 GE1/0/5
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 1和CE 2上执行display ip routing-table命令,可以看到公网路由表中有二级运营商网络的内部路由,但没有二级运营商维护的VPN路由。以CE 1为例:
[CE1] display ip routing-table
Destinations : 21 Routes : 21
Destination/Mask Proto Pre Cost NextHop Interface
0.0.0.0/32 Direct 0 0 127.0.0.1 InLoop0
1.1.1.9/32 IS_L1 15 10 10.1.1.1 GE1/0/4
2.2.2.9/32 Direct 0 0 127.0.0.1 InLoop0
5.5.5.9/32 IS_L2 15 74 11.1.1.2 GE1/0/5
6.6.6.9/32 IS_L2 15 74 11.1.1.2 GE1/0/5
10.1.1.0/24 Direct 0 0 10.1.1.2 GE1/0/4
10.1.1.0/32 Direct 0 0 10.1.1.2 GE1/0/4
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 GE1/0/4
11.1.1.0/24 Direct 0 0 11.1.1.1 GE1/0/5
11.1.1.0/32 Direct 0 0 11.1.1.1 GE1/0/5
11.1.1.1/32 Direct 0 0 127.0.0.1 InLoop0
11.1.1.255/32 Direct 0 0 11.1.1.1 GE1/0/5
20.1.1.0/24 IS_L2 15 74 11.1.1.2 GE1/0/5
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 3和PE 4上执行display ip routing-table命令,可以看到公网路由表中有二级运营商网络的内部路由。以PE 3为例:
[PE3] 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
1.1.1.9/32 Direct 0 0 127.0.0.1 InLoop0
2.2.2.9/32 IS_L1 15 10 10.1.1.2 GE1/0/5
5.5.5.9/32 IS_L2 15 84 10.1.1.2 GE1/0/5
6.6.6.9/32 IS_L2 15 84 10.1.1.2 GE1/0/5
10.1.1.0/24 Direct 0 0 10.1.1.1 GE1/0/5
10.1.1.0/32 Direct 0 0 10.1.1.1 GE1/0/5
10.1.1.1/32 Direct 0 0 127.0.0.1 InLoop0
10.1.1.255/32 Direct 0 0 10.1.1.1 GE1/0/5
11.1.1.0/24 IS_L1 15 20 10.1.1.2 GE1/0/5
20.1.1.0/24 IS_L2 15 84 10.1.1.2 GE1/0/5
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 3和PE 4上执行display ip routing-table vpn-instance命令,可以看到VPN路由表中有远端VPN客户的路由。以PE 3为例:
[PE3] 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
100.1.1.0/24 Direct 0 0 100.1.1.2 GE1/0/1
100.1.1.0/32 Direct 0 0 100.1.1.2 GE1/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 GE1/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
120.1.1.0/24 BGP 255 0 6.6.6.9 GE1/0/5
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 3和PE 4可以相互Ping通。
# CE 3和CE 4可以互相Ping通。
二级运营商向自己的客户提供MPLS L3VPN服务。
在图1-33中:
· PE 1和PE 2是一级运营商骨干网的PE设备;
· CE 1和CE 2是二级运营商的设备,作为CE接入一级运营商的骨干网;
· PE 3和PE 4是二级运营商的设备,为二级运营商的客户提供接入;
· CE 3和CE 4是二级运营商的客户;
· 一级运营商和二级运营商位于不同的AS。
运营商的运营商的配置关键在于理解两类路由的交换过程,即:
· 二级运营商VPN内部路由在一级运营商骨干网上的交换:一级运营商将二级运营商作为自己的CE接入;
· 二级运营商本身客户的VPN路由在二级运营商PE设备间的交换:需要在二级运营商PE设备(PE 3和PE 4)间建立MP-EBGP对等体关系。
图1-33 配置Carriers’ carriers(不同AS)组网图
设备 |
接口 |
IP地址 |
设备 |
接口 |
IP地址 |
CE 3 |
GE1/0/1 |
100.1.1.1/24 |
CE 4 |
GE1/0/1 |
120.1.1.1/24 |
PE 3 |
Loop0 |
1.1.1.9/32 |
PE 4 |
Loop0 |
6.6.6.9/32 |
|
GE1/0/1 |
100.1.1.2/24 |
|
GE1/0/1 |
120.1.1.2/24 |
|
GE1/0/5 |
10.1.1.1/24 |
|
GE1/0/5 |
20.1.1.2/24 |
CE 1 |
Loop0 |
2.2.2.9/32 |
CE 2 |
Loop0 |
5.5.5.9/32 |
|
GE1/0/4 |
10.1.1.2/24 |
|
GE1/0/4 |
21.1.1.2/24 |
|
GE1/0/5 |
11.1.1.1/24 |
|
GE1/0/5 |
20.1.1.1/24 |
PE 1 |
Loop0 |
3.3.3.9/32 |
PE 2 |
Loop0 |
4.4.4.9/32 |
|
GE1/0/4 |
11.1.1.2/24 |
|
GE1/0/4 |
30.1.1.2/24 |
|
GE1/0/5 |
30.1.1.1/24 |
|
GE1/0/5 |
21.1.1.1/24 |
(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 1/0/5
[PE1-GigabitEthernet1/0/5] ip address 30.1.1.1 24
[PE1-GigabitEthernet1/0/5] isis enable 1
[PE1-GigabitEthernet1/0/5] mpls enable
[PE1-GigabitEthernet1/0/5] mpls ldp enable
[PE1-GigabitEthernet1/0/5] mpls ldp transport-address interface
[PE1-GigabitEthernet1/0/5] quit
[PE1] bgp 200
[PE1-bgp-default] peer 4.4.4.9 as-number 200
[PE1-bgp-default] peer 4.4.4.9 connect-interface loopback 0
[PE1-bgp-default] address-family vpnv4
[PE1-bgp-default-vpnv4] peer 4.4.4.9 enable
[PE1-bgp-default-vpnv4] quit
[PE1-bgp-default] 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。
(2) 配置二级运营商网络:使用IS-IS作为IGP协议,PE 3和CE 1、PE 4和CE 2之间分别使能LDP
# 配置PE 3。
<PE3> system-view
[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 1/0/5
[PE3-GigabitEthernet1/0/5] ip address 10.1.1.1 24
[PE3-GigabitEthernet1/0/5] isis enable 2
[PE3-GigabitEthernet1/0/5] mpls enable
[PE3-GigabitEthernet1/0/5] mpls ldp enable
[PE3-GigabitEthernet1/0/5] mpls ldp transport-address interface
[PE3-GigabitEthernet1/0/5] quit
# 配置CE 1。
<CE1> system-view
[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] import bgp
[CE1-ldp] quit
[CE1] isis 2
[CE1-isis-2] network-entity 10.0000.0000.0000.0002.00
[CE1-isis-2] address-family ipv4
[CE1-isis-2-ipv4] import-route bgp
[CE1-isis-2-ipv4] quit
[CE1-isis-2] quit
[CE1] interface loopback 0
[CE1-LoopBack0] isis enable 2
[CE1-LoopBack0] quit
[CE1] interface gigabitethernet 1/0/4
[CE1-GigabitEthernet1/0/4] ip address 10.1.1.2 24
[CE1-GigabitEthernet1/0/4] isis enable 2
[CE1-GigabitEthernet1/0/4] mpls enable
[CE1-GigabitEthernet1/0/4] mpls ldp enable
[CE1-GigabitEthernet1/0/4] mpls ldp transport-address interface
[CE1-GigabitEthernet1/0/4] quit
配置完成后,PE 3和CE 1之间应能建立LDP和IS-IS邻居关系。
# PE 4和CE 2之间的配置与PE 3和CE 1之间的配置类似,配置过程省略。
(3) 配置二级运营商CE接入到一级运营商的PE
# 配置PE 1。
[PE1] ip vpn-instance vpn1
[PE1-vpn-instance-vpn1] route-distinguisher 200:1
[PE1-vpn-instance-vpn1] vpn-target 1:1
[PE1-vpn-instance-vpn1] quit
[PE1] interface gigabitethernet 1/0/4
[PE1-GigabitEthernet1/0/4] ip binding vpn-instance vpn1
[PE1-GigabitEthernet1/0/4] ip address 11.1.1.2 24
[PE1-GigabitEthernet1/0/4] mpls enable
[PE1-GigabitEthernet1/0/4] quit
[PE1] bgp 200
[PE1-bgp-default] ip vpn-instance vpn1
[PE1-bgp-default-vpn1] peer 11.1.1.1 as-number 100
[PE1-bgp-default-vpn1] address-family ipv4 unicast
[PE1-bgp-default-ipv4-vpn1] peer 11.1.1.1 enable
[PE1-bgp-default-ipv4-vpn1] peer 11.1.1.1 label-route-capability
[PE1-bgp-default-ipv4-vpn1] peer 11.1.1.1 route-policy csc export
[PE1-bgp-default-ipv4-vpn1] import-route isis 2
[PE1-bgp-default-ipv4-vpn1] quit
[PE1-bgp-default-vpn1] quit
[PE1-bgp-default] quit
[PE1] route-policy csc permit node 0
[PE1-route-policy-csc-0] apply mpls-label
[PE1-route-policy-csc-0] quit
# 配置CE 1。
[CE1] interface gigabitethernet 1/0/5
[CE1-GigabitEthernet1/0/5] ip address 11.1.1.1 24
[CE1-GigabitEthernet1/0/5] mpls enable
[CE1-GigabitEthernet1/0/5] quit
[CE1] bgp 100
[CE1-bgp-default] peer 11.1.1.2 as-number 200
[CE1-bgp-default] address-family ipv4 unicast
[CE1-bgp-default-ipv4] peer 11.1.1.2 enable
[CE1-bgp-default-ipv4] peer 11.1.1.2 label-route-capability
[CE1-bgp-default-ipv4] peer 11.1.1.2 route-policy csc export
[CE1-bgp-default-ipv4] import-route isis 2
[CE1-bgp-default-ipv4] quit
[CE1-bgp-default] quit
[CE1] route-policy csc permit node 0
[CE1-route-policy-csc-0] apply mpls-label
[CE1-route-policy-csc-0] quit
配置完成后,PE 1和CE 1之间应能建立BGP会话,且可以通过BGP交互带标签的IPv4单播路由。
# PE 2和CE 2之间的配置与PE 1和CE 1之间的配置类似,配置过程省略。
(4) 配置二级运营商的客户接入PE
# 配置CE 3。
<CE3> system-view
[CE3] interface gigabitethernet 1/0/1
[CE3-GigabitEthernet1/0/1] ip address 100.1.1.1 24
[CE3-GigabitEthernet1/0/1] quit
[CE3] bgp 65410
[CE3-bgp-default] peer 100.1.1.2 as-number 100
[CE3-bgp-default] address-family ipv4 unicast
[CE3-bgp-default-ipv4] peer 100.1.1.2 enable
[CE3-bgp-default-ipv4] import-route direct
[CE3-bgp-default-ipv4] quit
[CE3-bgp-default] quit
# 配置PE 3。
[PE3] ip vpn-instance vpn1
[PE3-vpn-instance-vpn1] route-distinguisher 100:1
[PE3-vpn-instance-vpn1] vpn-target 1:1
[PE3-vpn-instance-vpn1] quit
[PE3] interface gigabitethernet 1/0/1
[PE3-GigabitEthernet1/0/1] ip binding vpn-instance vpn1
[PE3-GigabitEthernet1/0/1] ip address 100.1.1.2 24
[PE3-GigabitEthernet1/0/1] quit
[PE3] bgp 100
[PE3-bgp-default] ip vpn-instance vpn1
[PE3-bgp-default-vpn1] peer 100.1.1.1 as-number 65410
[PE3-bgp-default-vpn1] address-family ipv4 unicast
[PE3-bgp-default-ipv4-vpn1] peer 100.1.1.1 enable
[PE3-bgp-default-ipv4-vpn1] import-route direct
[PE3-bgp-default-ipv4-vpn1] quit
[PE3-bgp-default-vpn1] quit
[PE3-bgp-default] quit
# PE 4和CE 4之间的配置与PE 3和CE 3之间的配置类似,配置过程省略。
(5) 在二级运营商的PE之间建立MP-EBGP对等体关系,交换二级运营商的客户的VPN路由
# 配置PE 3。
[PE3] bgp 100
[PE3-bgp-default] peer 6.6.6.9 as-number 300
[PE3-bgp-default] peer 6.6.6.9 connect-interface loopback 0
[PE3-bgp-default] peer 6.6.6.9 ebgp-max-hop 10
[PE3-bgp-default] address-family vpnv4
[PE3-bgp-default-vpnv4] peer 6.6.6.9 enable
[PE3-bgp-default-vpnv4] quit
[PE3-bgp-default] quit
# PE 4的配置与PE 3类似,配置过程省略。
# 在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 IS_L1 15 10 30.1.1.2 GE1/0/5
30.1.1.0/24 Direct 0 0 30.1.1.1 GE1/0/5
30.1.1.0/32 Direct 0 0 30.1.1.1 GE1/0/5
30.1.1.1/32 Direct 0 0 127.0.0.1 InLoop0
30.1.1.255/32 Direct 0 0 30.1.1.1 GE1/0/5
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 : 14 Routes : 14
Destination/Mask Proto Pre Cost NextHop Interface
0.0.0.0/32 Direct 0 0 127.0.0.1 InLoop0
1.1.1.9/32 BGP 255 10 11.1.1.1 GE1/0/4
6.6.6.9/32 BGP 255 10 4.4.4.9 GE1/0/5
11.1.1.0/24 Direct 0 0 11.1.1.2 GE1/0/4
11.1.1.0/32 Direct 0 0 11.1.1.2 GE1/0/4
11.1.1.2/32 Direct 0 0 127.0.0.1 InLoop0
11.1.1.255/32 Direct 0 0 11.1.1.2 GE1/0/4
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 1和CE 2上执行display ip routing-table命令,可以看到公网路由表中有二级运营商网络的内部路由,但没有二级运营商维护的VPN路由。以CE 1为例:
[CE1] display ip routing-table
Destinations : 19 Routes : 19
Destination/Mask Proto Pre Cost NextHop Interface
0.0.0.0/32 Direct 0 0 127.0.0.1 InLoop0
1.1.1.9/32 IS_L1 15 10 10.1.1.1 GE1/0/4
2.2.2.9/32 Direct 0 0 127.0.0.1 InLoop0
6.6.6.9/32 BGP 255 0 11.1.1.2 GE1/0/5
10.1.1.0/24 Direct 0 0 10.1.1.2 GE1/0/4
10.1.1.0/32 Direct 0 0 10.1.1.2 GE1/0/4
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 GE1/0/4
11.1.1.0/24 Direct 0 0 11.1.1.1 GE1/0/5
11.1.1.0/32 Direct 0 0 11.1.1.1 GE1/0/5
11.1.1.1/32 Direct 0 0 127.0.0.1 InLoop0
11.1.1.255/32 Direct 0 0 11.1.1.1 GE1/0/5
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 3和PE 4上执行display ip routing-table命令,可以看到公网路由表中有二级运营商网络的内部路由。以PE 3为例:
[PE3] display ip routing-table
Destinations : 15 Routes : 15
Destination/Mask Proto Pre Cost NextHop Interface
0.0.0.0/32 Direct 0 0 127.0.0.1 InLoop0
1.1.1.9/32 Direct 0 0 127.0.0.1 InLoop0
2.2.2.9/32 IS_L1 15 10 10.1.1.2 GE1/0/5
6.6.6.9/32 IS_L2 15 74 10.1.1.2 GE1/0/5
10.1.1.0/24 Direct 0 0 10.1.1.1 GE1/0/5
10.1.1.0/32 Direct 0 0 10.1.1.1 GE1/0/5
10.1.1.1/32 Direct 0 0 127.0.0.1 InLoop0
10.1.1.255/32 Direct 0 0 10.1.1.1 GE1/0/5
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 3和PE 4上执行display ip routing-table vpn-instance命令,可以看到VPN路由表中有远端VPN客户的路由。以PE 3为例:
[PE3] 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
100.1.1.0/24 Direct 0 0 100.1.1.2 GE1/0/1
100.1.1.0/32 Direct 0 0 100.1.1.2 GE1/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 GE1/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
120.1.1.0/24 BGP 255 0 6.6.6.9 GE1/0/5
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 3和PE 4可以相互Ping通。
# CE 3和CE 4可以互相Ping通。
运营商向用户提供嵌套VPN服务。如图1-34所示:
· 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-34 嵌套VPN组网图
设备 |
接口 |
IP地址 |
设备 |
接口 |
IP地址 |
CE 1 |
Loop0 |
2.2.2.9/32 |
CE 2 |
Loop0 |
5.5.5.9/32 |
|
GE1/0/4 |
10.1.1.2/24 |
|
GE1/0/4 |
21.1.1.2/24 |
|
GE1/0/5 |
11.1.1.1/24 |
|
GE1/0/5 |
20.1.1.1/24 |
CE 3 |
GE1/0/1 |
100.1.1.1/24 |
CE 4 |
GE1/0/1 |
120.1.1.1/24 |
CE 5 |
GE1/0/1 |
110.1.1.1/24 |
CE 6 |
GE1/0/1 |
130.1.1.1/24 |
PE 1 |
Loop0 |
3.3.3.9/32 |
PE 2 |
Loop0 |
4.4.4.9/32 |
|
GE1/0/4 |
11.1.1.2/24 |
|
GE1/0/4 |
30.1.1.2/24 |
|
GE1/0/5 |
30.1.1.1/24 |
|
GE1/0/5 |
21.1.1.1/24 |
PE 3 |
Loop0 |
1.1.1.9/32 |
PE 4 |
Loop0 |
6.6.6.9/32 |
|
GE1/0/1 |
100.1.1.2/24 |
|
GE1/0/1 |
120.1.1.2/24 |
|
GE1/0/2 |
110.1.1.2/24 |
|
GE1/0/2 |
130.1.1.2/24 |
|
GE1/0/5 |
10.1.1.1/24 |
|
GE1/0/5 |
20.1.1.2/24 |
(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 1/0/5
[PE1-GigabitEthernet1/0/5] ip address 30.1.1.1 24
[PE1-GigabitEthernet1/0/5] isis enable 1
[PE1-GigabitEthernet1/0/5] mpls enable
[PE1-GigabitEthernet1/0/5] mpls ldp enable
[PE1-GigabitEthernet1/0/5] mpls ldp transport-address interface
[PE1-GigabitEthernet1/0/5] quit
[PE1] bgp 100
[PE1-bgp-default] peer 4.4.4.9 as-number 100
[PE1-bgp-default] peer 4.4.4.9 connect-interface loopback 0
[PE1-bgp-default] address-family vpnv4
[PE1-bgp-default-vpnv4] peer 4.4.4.9 enable
[PE1-bgp-default-vpnv4] quit
[PE1-bgp-default] 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。
(2) 配置用户网络:使用IS-IS作为IGP协议,PE 3和CE 1、PE 4和CE 2之间分别使能LDP
# 配置PE 3。
<PE3> system-view
[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 1/0/5
[PE3-GigabitEthernet1/0/5] ip address 10.1.1.1 24
[PE3-GigabitEthernet1/0/5] isis enable 2
[PE3-GigabitEthernet1/0/5] mpls enable
[PE3-GigabitEthernet1/0/5] mpls ldp enable
[PE3-GigabitEthernet1/0/5] quit
# 配置CE 1。
<CE1> system-view
[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 1/0/4
[CE1-GigabitEthernet1/0/4] ip address 10.1.1.2 24
[CE1-GigabitEthernet1/0/4] isis enable 2
[CE1-GigabitEthernet1/0/4] mpls enable
[CE1-GigabitEthernet1/0/4] mpls ldp enable
[CE1-GigabitEthernet1/0/4] quit
配置完成后,PE 3和CE 1之间可以建立LDP和IS-IS邻居关系。
# PE 4和CE 2之间的配置与PE 3和CE 1之间的配置类似,配置过程略。
(3) 配置运营商CE接入到运营商的PE
# 配置PE 1。
[PE1] ip vpn-instance vpn1
[PE1-vpn-instance-vpn1] route-distinguisher 200:1
[PE1-vpn-instance-vpn1] vpn-target 1:1
[PE1-vpn-instance-vpn1] quit
[PE1] interface gigabitethernet 1/0/4
[PE1-GigabitEthernet1/0/4] ip binding vpn-instance vpn1
[PE1-GigabitEthernet1/0/4] ip address 11.1.1.2 24
[PE1-GigabitEthernet1/0/4] mpls enable
[PE1-GigabitEthernet1/0/4] quit
[PE1] bgp 100
[PE1-bgp-default] ip vpn-instance vpn1
[PE1-bgp-default-vpn1] peer 11.1.1.1 as-number 200
[PE1-bgp-default-vpn1] address-family ipv4
[PE1-bgp-default-ipv4-vpn1] peer 11.1.1.1 enable
[PE1-bgp-default-ipv4-vpn1] import-route direct
[PE1-bgp-default-ipv4-vpn1] quit
[PE1-bgp-default-vpn1] quit
[PE1-bgp-default] quit
# 配置CE 1。
[CE1] interface gigabitethernet 1/0/5
[CE1-GigabitEthernet1/0/5] ip address 11.1.1.1 24
[CE1-GigabitEthernet1/0/5] mpls enable
[CE1-GigabitEthernet1/0/5] quit
[CE1] bgp 200
[CE1-bgp-default] peer 11.1.1.2 as-number 100
[CE1-bgp-default] address-family ipv4
[CE1-bgp-default-ipv4] peer 11.1.1.2 enable
[CE1-bgp-default-ipv4] import-route direct
[CE1-bgp-default-ipv4] quit
[CE1-bgp-default] quit
# PE 2和CE 2之间的配置与PE 1和CE 1之间的配置类似,配置过程省略。
(4) 配置用户CE接入用户网络的PE
# 配置CE 3。
<CE3> system-view
[CE3] interface gigabitethernet 1/0/1
[CE3-GigabitEthernet1/0/1] ip address 100.1.1.1 24
[CE3-GigabitEthernet1/0/1] quit
[CE3] bgp 65410
[CE3-bgp-default] peer 100.1.1.2 as-number 200
[CE3-bgp-default] address-family ipv4 unicast
[CE3-bgp-default-ipv4] peer 100.1.1.2 enable
[CE3-bgp-default-ipv4] import-route direct
[CE3-bgp-default-ipv4] quit
[CE3-bgp-default] quit
# 配置CE 5。
<CE5> system-view
[CE5] interface gigabitethernet 1/0/1
[CE5-GigabitEthernet1/0/1] ip address 110.1.1.1 24
[CE5-GigabitEthernet1/0/1] quit
[CE5] bgp 65411
[CE5-bgp-default] peer 110.1.1.2 as-number 200
[CE5-bgp-default] address-family ipv4 unicast
[CE5-bgp-default-ipv4] peer 110.1.1.2 enable
[CE5-bgp-default-ipv4] import-route direct
[CE5-bgp-default-ipv4] quit
[CE5-bgp-default] 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 1/0/1
[PE3-GigabitEthernet1/0/1] ip binding vpn-instance SUB_VPN1
[PE3-GigabitEthernet1/0/1] ip address 100.1.1.2 24
[PE3-GigabitEthernet1/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 1/0/2
[PE3-GigabitEthernet1/0/2] ip binding vpn-instance SUB_VPN2
[PE3-GigabitEthernet1/0/2] ip address 110.1.1.2 24
[PE3-GigabitEthernet1/0/2] quit
[PE3] bgp 200
[PE3-bgp-default] ip vpn-instance SUB_VPN1
[PE3-bgp-default-SUB_VPN1] peer 100.1.1.1 as-number 65410
[PE3-bgp-default-SUB_VPN1] address-family ipv4 unicast
[PE3-bgp-default-ipv4-SUB_VPN1] peer 100.1.1.1 enable
[PE3-bgp-default-ipv4-SUB_VPN1] import-route direct
[PE3-bgp-default-ipv4-SUB_VPN1] quit
[PE3-bgp-default-SUB_VPN1] quit
[PE3-bgp-default] ip vpn-instance SUB_VPN2
[PE3-bgp-default-SUB_VPN2] peer 110.1.1.1 as-number 65411
[PE3-bgp-default-SUB_VPN2] address-family ipv4 unicast
[PE3-bgp-default-ipv4-SUB_VPN2] peer 110.1.1.1 enable
[PE3-bgp-default-ipv4-SUB_VPN2] import-route direct
[PE3-bgp-default-ipv4-SUB_VPN2] quit
[PE3-bgp-default-SUB_VPN2] quit
[PE3-bgp-default] 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 100
[PE1-bgp-default] address-family vpnv4
[PE1-bgp-default-vpnv4] nesting-vpn
[PE1-bgp-default-vpnv4] quit
[PE1-bgp-default] ip vpn-instance vpn1
[PE1-bgp-default-vpn1] address-family vpnv4
[PE1-bgp-default-vpnv4-vpn1] peer 11.1.1.1 enable
[PE1-bgp-default-vpnv4-vpn1] import-route direct
[PE1-bgp-default-vpnv4-vpn1] quit
[PE1-bgp-default-vpn1] quit
[PE1-bgp-default] quit
# 在CE 1上使能其与PE 1交互VPNv4路由的能力。
[CE1] bgp 200
[CE1-bgp-default] address-family vpnv4
[CE1-bgp-default-vpnv4] peer 11.1.1.2 enable
# 在CE 1上配置允许本地AS号在所接收的路由的AS_PATH属性中出现。
[CE1-bgp-default-vpnv4] peer 11.1.1.2 allow-as-loop 2
# 在CE 1上配置接收所有VPNv4路由。
[CE1-bgp-default-vpnv4] undo policy vpn-target
[CE1-bgp-default-vpnv4] quit
[CE1-bgp-default] quit
# PE 2和CE 2之间的配置与PE 1和CE 1之间的配置类似,配置过程省略。
(6) 在用户PE和运营商CE之间建立MP-IBGP对等体关系,交换用户内部子VPN的VPNv4路由
# 配置PE 3。
[PE3] bgp 200
[PE3-bgp-default] peer 2.2.2.9 as-number 200
[PE3-bgp-default] peer 2.2.2.9 connect-interface loopback 0
[PE3-bgp-default] address-family vpnv4
[PE3-bgp-default-vpnv4] peer 2.2.2.9 enable
# 配置允许本地AS号在所接收的路由的AS_PATH属性中出现。
[PE3-bgp-default-vpnv4] peer 2.2.2.9 allow-as-loop 2
[PE3-bgp-default-vpnv4] quit
[PE3-bgp-default] quit
# 配置CE 1。
[CE1] bgp 200
[CE1-bgp-default] peer 1.1.1.9 as-number 200
[CE1-bgp-default] peer 1.1.1.9 connect-interface loopback 0
[CE1-bgp-default] address-family vpnv4
[CE1-bgp-default-vpnv4] peer 1.1.1.9 enable
[CE1-bgp-default-vpnv4] undo policy vpn-target
[CE1-bgp-default-vpnv4] quit
[CE1-bgp-default] 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 IS_L1 15 10 30.1.1.2 GE1/0/5
30.1.1.0/24 Direct 0 0 30.1.1.1 GE1/0/5
30.1.1.0/32 Direct 0 0 30.1.1.1 GE1/0/5
30.1.1.1/32 Direct 0 0 127.0.0.1 InLoop0
30.1.1.255/32 Direct 0 0 30.1.1.1 GE1/0/5
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.2 GE1/0/4
11.1.1.0/32 Direct 0 0 11.1.1.2 GE1/0/4
11.1.1.2/32 Direct 0 0 127.0.0.1 InLoop0
11.1.1.255/32 Direct 0 0 11.1.1.2 GE1/0/4
100.1.1.0/24 BGP 255 0 11.1.1.1 GE1/0/4
110.1.1.0/24 BGP 255 0 11.1.1.1 GE1/0/4
120.1.1.0/24 BGP 255 0 4.4.4.9 GE1/0/5
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 GE1/0/5
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 2.2.2.9
Status codes: * - valid, > - best, d - dampened, 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
* >i 100.1.1.0/24 1.1.1.9 0 100 0 200 65410?
Route distinguisher: 101:1
Total number of routes: 1
Network NextHop MED LocPrf PrefVal Path/Ogn
* >i 110.1.1.0/24 1.1.1.9 0 100 0 200 65411?
Route distinguisher: 200:1
Total number of routes: 1
Network NextHop MED LocPrf PrefVal Path/Ogn
* >e 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
* >e 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 GE1/0/1
100.1.1.0/32 Direct 0 0 100.1.1.2 GE1/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 GE1/0/1
120.1.1.0/24 BGP 255 0 2.2.2.9 GE1/0/5
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 GE1/0/1
100.1.1.0/32 Direct 0 0 100.1.1.1 GE1/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 GE1/0/1
120.1.1.0/24 BGP 255 0 100.1.1.2 GE1/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 GE1/0/1
110.1.1.0/32 Direct 0 0 110.1.1.1 GE1/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 GE1/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 GE1/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通。
· 主机Host A通过CE 1接入,其IP地址为100.1.1.2。Host A可以访问VPN 1和VPN 2。
· 主机Host B通过CE 1接入,其IP地址为100.1.1.3。Host B只可以访问VPN 1。
(1) 配置CE 1
# 配置CE 1的接口IP地址。
<CE1> system-view
[CE1] interface gigabitethernet 1/0/1
[CE1-GigabitEthernet1/0/1] ip address 100.1.1.1 24
[CE1-GigabitEthernet1/0/1] quit
[CE1] interface gigabitethernet 1/0/5
[CE1-GigabitEthernet1/0/5] ip address 1.1.1.2 24
[CE1-GigabitEthernet1/0/5] quit
# 在CE 1上配置一条指向PE 1的缺省路由。
[CE1] ip route-static 0.0.0.0 0 1.1.1.1
(2) 配置PE 1
# 在PE 1上为VPN 1和VPN 2分别创建VPN实例,并配置RD和不同的Route Target属性。
<PE1> system-view
[PE1] ip vpn-instance vpn1
[PE1-vpn-instance-vpn1] route-distinguisher 100:1
[PE1-vpn-instance-vpn1] vpn-target 100:1 both
[PE1-vpn-instance-vpn1] quit
[PE1] ip vpn-instance vpn2
[PE1-vpn-instance-vpn2] route-distinguisher 100:2
[PE1-vpn-instance-vpn2] vpn-target 100:2 both
[PE1-vpn-instance-vpn2] quit
# 将PE 1与CE 1相连的接口关联到VPN 1。
[PE1] interface gigabitethernet 1/0/4
[PE1-GigabitEthernet1/0/4] ip binding vpn-instance vpn1
[PE1-GigabitEthernet1/0/4] ip address 1.1.1.1 255.255.255.0
[PE1-GigabitEthernet1/0/4] quit
# 配置静态路由,并引入到BGP中,使Host A访问VPN 2的返回报文能够在PE 1的VPN实例vpn1中找到正确的路由,返回到Host A。
[PE1] ip route-static vpn-instance vpn2 100.1.1.0 24 vpn-instance vpn1 1.1.1.2
[PE1] bgp 100
[PE1-bgp-default] ip vpn-instance vpn2
[PE1-bgp-default-vpn2] address-family ipv4
[PE1-bgp-default-ipv4-vpn2] import-route static
[PE1-bgp-default-ipv4-vpn2] quit
[PE1-bgp-default-vpn2] quit
[PE1-bgp-default] quit
# 配置策略路由,对于Host A发出的报文,如果在本接口所属的VPN实例vpn1中没有找到路由,就在名为vpn2的VPN实例中查找私网路由并转发。
[PE1] acl advanced 3001
[PE1-acl-ipv4-adv-3001] rule 0 permit ip vpn-instance vpn1 source 100.1.1.2 0
[PE1-acl-ipv4-adv-3001] quit
[PE1] policy-based-route policy1 permit node 10
[PE1-policy-based-route] if-match acl 3001
[PE1-policy-based-route] apply access-vpn vpn-instance vpn1 vpn2
[PE1-policy-based-route] quit
# 在接口GigabitEthernet1/0/4上应用定义的策略路由。
[PE1] interface gigabitethernet 1/0/4
[PE1-GigabitEthernet1/0/4] ip policy-based-route policy1
(3) 配置基本MPLS L3VPN。(配置过程略)
配置完成后,在Host A上可以ping通Host C,在Host B上无法ping通Host C。
以一个包括省骨干和地市的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不能互相访问。
接口 |
IP地址 |
设备 |
接口 |
IP地址 |
|
CE 1 |
GE1/0/1 |
10.2.1.1/24 |
CE 3 |
GE1/0/1 |
10.1.1.1/24 |
CE 2 |
GE1/0/1 |
10.4.1.1/24 |
CE 4 |
GE1/0/1 |
10.3.1.1/24 |
UPE 1 |
Loop0 |
1.1.1.9/32 |
UPE 2 |
Loop0 |
4.4.4.9/32 |
|
GE1/0/1 |
10.2.1.2/24 |
|
GE1/0/1 |
172.2.1.1/24 |
|
GE1/0/2 |
10.4.1.2/24 |
|
GE1/0/2 |
10.1.1.2/24 |
|
GE1/0/3 |
172.1.1.1/24 |
|
GE1/0/3 |
10.3.1.2/24 |
SPE 1 |
Loop0 |
2.2.2.9/32 |
SPE 2 |
Loop0 |
3.3.3.9/32 |
|
GE1/0/1 |
172.1.1.2/24 |
|
GE1/0/1 |
180.1.1.2/24 |
|
GE1/0/2 |
180.1.1.1/24 |
|
GE1/0/2 |
172.2.1.2/24 |
(1) 配置UPE 1
# 配置MPLS基本能力和MPLS LDP能力,建立LDP LSP。
<UPE1> system-view
[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 1/0/3
[UPE1-GigabitEthernet1/0/3] ip address 172.1.1.1 24
[UPE1-GigabitEthernet1/0/3] mpls enable
[UPE1-GigabitEthernet1/0/3] mpls ldp enable
[UPE1-GigabitEthernet1/0/3] quit
# 配置IGP协议,以OSPF为例。
[UPE1] 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] ip vpn-instance vpn1
[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 1/0/1
[UPE1-GigabitEthernet1/0/1] ip binding vpn-instance vpn1
[UPE1-GigabitEthernet1/0/1] ip address 10.2.1.2 24
[UPE1-GigabitEthernet1/0/1] quit
[UPE1] interface gigabitethernet 1/0/2
[UPE1-GigabitEthernet1/0/2] ip binding vpn-instance vpn2
[UPE1-GigabitEthernet1/0/2] ip address 10.4.1.2 24
[UPE1-GigabitEthernet1/0/2] quit
# 配置UPE 1与SPE 1建立MP-IBGP对等体。
[UPE1] bgp 100
[UPE1-bgp-default] peer 2.2.2.9 as-number 100
[UPE1-bgp-default] peer 2.2.2.9 connect-interface loopback 0
[UPE1-bgp-default] address-family vpnv4
[UPE1-bgp-default-vpnv4] peer 2.2.2.9 enable
[UPE1-bgp-default-vpnv4] quit
# 配置UPE 1与CE 1建立EBGP对等体。
[UPE1-bgp-default] ip vpn-instance vpn1
[UPE1-bgp-default-vpn1] peer 10.2.1.1 as-number 65410
[UPE1-bgp-default-vpn1] address-family ipv4 unicast
[UPE1-bgp-default-ipv4-vpn1] peer 10.2.1.1 enable
[UPE1-bgp-default-ipv4-vpn1] import-route direct
[UPE1-bgp-default-ipv4-vpn1] quit
[UPE1-bgp-default-vpn1] quit
# 配置UPE 1与CE 2建立EBGP对等体。
[UPE1-bgp-default] ip vpn-instance vpn2
[UPE1-bgp-default-vpn2] peer 10.4.1.1 as-number 65420
[UPE1-bgp-default-vpn2] address-family ipv4 unicast
[UPE1-bgp-default-ipv4-vpn2] peer 10.4.1.1 enable
[UPE1-bgp-default-ipv4-vpn2] import-route direct
[UPE1-bgp-default-ipv4-vpn2] quit
[UPE1-bgp-default-vpn2] quit
[UPE1-bgp-default] quit
(2) 配置CE 1
<CE1> system-view
[CE1] interface gigabitethernet 1/0/1
[CE1-GigabitEthernet1/0/1] ip address 10.2.1.1 255.255.255.0
[CE1-GigabitEthernet1/0/1] quit
[CE1] bgp 65410
[CE1-bgp-default] peer 10.2.1.2 as-number 100
[CE1-bgp-default] address-family ipv4 unicast
[CE1-bgp-default-ipv4] peer 10.2.1.2 enable
[CE1-bgp-default-ipv4] import-route direct
[CE1-bgp-default-ipv4] quit
[CE1-bgp-default] quit
(3) 配置CE 2
<CE2> system-view
[CE2] interface gigabitethernet 1/0/1
[CE2-GigabitEthernet1/0/1] ip address 10.4.1.1 255.255.255.0
[CE2-GigabitEthernet1/0/1] quit
[CE2] bgp 65420
[CE2-bgp-default] peer 10.4.1.2 as-number 100
[CE2-bgp-default] address-family ipv4 unicast
[CE2-bgp-default-ipv4] peer 10.4.1.2 enable
[CE2-bgp-default-ipv4] import-route direct
[CE2-bgp-default-ipv4] quit
[CE2-bgp-default] quit
(4) 配置UPE 2
# 配置MPLS基本能力和MPLS LDP能力,建立LDP LSP。
<UPE2> system-view
[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 1/0/1
[UPE2-GigabitEthernet1/0/1] ip address 172.2.1.1 24
[UPE2-GigabitEthernet1/0/1] mpls enable
[UPE2-GigabitEthernet1/0/1] mpls ldp enable
[UPE2-GigabitEthernet1/0/1] quit
# 配置IGP协议,以OSPF为例。
[UPE2] 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] ip vpn-instance vpn1
[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 1/0/2
[UPE2-GigabitEthernet1/0/2] ip binding vpn-instance vpn1
[UPE2-GigabitEthernet1/0/2] ip address 10.1.1.2 24
[UPE2-GigabitEthernet1/0/2] quit
[UPE2] interface gigabitethernet 1/0/3
[UPE2-GigabitEthernet1/0/3] ip binding vpn-instance vpn2
[UPE2-GigabitEthernet1/0/3] ip address 10.3.1.2 24
[UPE2-GigabitEthernet1/0/3] quit
# 配置UPE 2与SPE 2建立MP-IBGP对等体。
[UPE2] bgp 100
[UPE2-bgp-default] peer 3.3.3.9 as-number 100
[UPE2-bgp-default] peer 3.3.3.9 connect-interface loopback 0
[UPE2-bgp-default] address-family vpnv4
[UPE2-bgp-default-vpnv4] peer 3.3.3.9 enable
[UPE2-bgp-default-vpnv4] quit
# 配置UPE 2与CE 3建立EBGP对等体。
[UPE2-bgp-default] ip vpn-instance vpn1
[UPE2-bgp-default-vpn1] peer 10.1.1.1 as-number 65430
[UPE2-bgp-default-vpn1] address-family ipv4 unicast
[UPE2-bgp-default-ipv4-vpn1] peer 10.1.1.1 enable
[UPE2-bgp-default-ipv4-vpn1] import-route direct
[UPE2-bgp-default-ipv4-vpn1] quit
[UPE2-bgp-default-vpn1] quit
# 配置UPE 2与CE 4建立EBGP对等体。
[UPE2-bgp-default] ip vpn-instance vpn2
[UPE2-bgp-default-vpn2] peer 10.3.1.1 as-number 65440
[UPE2-bgp-default-vpn2] address-family ipv4 unicast
[UPE2-bgp-default-ipv4-vpn2] peer 10.3.1.1 enable
[UPE2-bgp-default-ipv4-vpn2] import-route direct
[UPE2-bgp-default-ipv4-vpn2] quit
[UPE2-bgp-default-vpn2] quit
[UPE2-bgp-default] quit
(5) 配置CE 3
<CE3> system-view
[CE3] interface gigabitethernet 1/0/1
[CE3-GigabitEthernet1/0/1] ip address 10.1.1.1 255.255.255.0
[CE3-GigabitEthernet1/0/1] quit
[CE3] bgp 65430
[CE3-bgp-default] peer 10.1.1.2 as-number 100
[CE3-bgp-default] address-family ipv4 unicast
[CE3-bgp-default-ipv4] peer 10.1.1.2 enable
[CE3-bgp-default-ipv4] import-route direct
[CE3-bgp-default-ipv4] quit
[CE3-bgp-default] quit
(6) 配置CE 4
<CE4> system-view
[CE4] interface gigabitethernet 1/0/1
[CE4-GigabitEthernet1/0/1] ip address 10.3.1.1 255.255.255.0
[CE4-GigabitEthernet1/0/1] quit
[CE4] bgp 65440
[CE4-bgp-default] peer 10.3.1.2 as-number 100
[CE4-bgp-default] address-family ipv4 unicast
[CE4-bgp-default-ipv4] peer 10.3.1.2 enable
[CE4-bgp-default-ipv4] import-route direct
[CE4-bgp-default-ipv4] quit
[CE4-bgp-default] quit
(7) 配置SPE 1
# 配置MPLS基本能力和MPLS LDP能力,建立LDP LSP。
<SPE1> system-view
[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 1/0/1
[SPE1-GigabitEthernet1/0/1] ip address 172.1.1.2 24
[SPE1-GigabitEthernet1/0/1] mpls enable
[SPE1-GigabitEthernet1/0/1] mpls ldp enable
[SPE1-GigabitEthernet1/0/1] quit
[SPE1] interface gigabitethernet 1/0/2
[SPE1-GigabitEthernet1/0/2] ip address 180.1.1.1 24
[SPE1-GigabitEthernet1/0/2] mpls enable
[SPE1-GigabitEthernet1/0/2] mpls ldp enable
[SPE1-GigabitEthernet1/0/2] quit
# 配置IGP协议,以OSPF为例。
[SPE1] 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] ip vpn-instance vpn1
[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 100
[SPE1-bgp-default] peer 1.1.1.9 as-number 100
[SPE1-bgp-default] peer 1.1.1.9 connect-interface loopback 0
[SPE1-bgp-default] peer 3.3.3.9 as-number 100
[SPE1-bgp-default] peer 3.3.3.9 connect-interface loopback 0
[SPE1-bgp-default] address-family vpnv4
[SPE1-bgp-default-vpnv4] peer 3.3.3.9 enable
[SPE1-bgp-default-vpnv4] peer 1.1.1.9 enable
[SPE1-bgp-default-vpnv4] peer 1.1.1.9 upe
[SPE1-bgp-default-vpnv4] peer 1.1.1.9 next-hop-local
[SPE1-bgp-default-vpnv4] quit
# 为VPN实例vpn1和vpn2分别创建BGP-VPN实例,以便根据Route Target属性将学习到的VPNv4路由添加到相应VPN实例的BGP路由表中。
[SPE1-bgp-default] ip vpn-instance vpn1
[SPE1-bgp-default-vpn1] quit
[SPE1-bgp-default] ip vpn-instance vpn2
[SPE1-bgp-default-vpn2] quit
[SPE1-bgp-default] 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-default] address-family vpnv4
[SPE1-bgp-default-vpnv4] peer 1.1.1.9 upe route-policy hope export
(8) 配置SPE 2
# 配置MPLS基本能力和MPLS LDP能力,建立LDP LSP。
<SPE2> system-view
[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 1/0/1
[SPE2-GigabitEthernet1/0/1] ip address 180.1.1.2 24
[SPE2-GigabitEthernet1/0/1] mpls enable
[SPE2-GigabitEthernet1/0/1] mpls ldp enable
[SPE2-GigabitEthernet1/0/1] quit
[SPE2] interface gigabitethernet 1/0/2
[SPE2-GigabitEthernet1/0/2] ip address 172.2.1.2 24
[SPE2-GigabitEthernet1/0/2] mpls enable
[SPE2-GigabitEthernet1/0/2] mpls ldp enable
[SPE2-GigabitEthernet1/0/2] quit
# 配置IGP协议,以OSPF为例。
[SPE2] 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] ip vpn-instance vpn1
[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 100
[SPE2-bgp-default] peer 4.4.4.9 as-number 100
[SPE2-bgp-default] peer 4.4.4.9 connect-interface loopback 0
[SPE2-bgp-default] peer 2.2.2.9 as-number 100
[SPE2-bgp-default] peer 2.2.2.9 connect-interface loopback 0
[SPE2-bgp-default] address-family vpnv4
[SPE2-bgp-default-vpnv4] peer 2.2.2.9 enable
[SPE2-bgp-default-vpnv4] peer 4.4.4.9 enable
[SPE2-bgp-default-vpnv4] peer 4.4.4.9 upe
[SPE2-bgp-default-vpnv4] peer 4.4.4.9 next-hop-local
[SPE2-bgp-default-vpnv4] quit
# 为VPN实例vpn1和vpn2分别创建BGP-VPN实例,以便根据Route Target属性将学习到的VPNv4路由添加到相应VPN实例的BGP路由表中。
[SPE2-bgp-default] ip vpn-instance vpn1
[SPE2-bgp-default-vpn1] quit
[SPE2-bgp-default] ip vpn-instance vpn2
[SPE2-bgp-default-vpn2] quit
[SPE2-bgp-default] 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-default] address-family vpnv4
[SPE2-bgp-default-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-37 OSPF伪连接配置组网图
接口 |
IP地址 |
设备 |
接口 |
IP地址 |
|
CE 1 |
GE1/0/1 |
100.1.1.1/24 |
CE 2 |
GE1/0/1 |
120.1.1.1/24 |
|
GE1/0/4 |
20.1.1.1/24 |
|
GE1/0/4 |
30.1.1.2/24 |
PE 1 |
Loop0 |
1.1.1.9/32 |
PE 2 |
Loop0 |
2.2.2.9/32 |
|
Loop1 |
3.3.3.3/32 |
|
Loop1 |
5.5.5.5/32 |
|
GE1/0/1 |
100.1.1.2/24 |
|
GE1/0/1 |
120.1.1.2/24 |
|
GE1/0/4 |
10.1.1.1/24 |
|
GE1/0/5 |
10.1.1.2/24 |
Router A |
GE1/0/5 |
30.1.1.1/24 |
|
|
|
|
GE1/0/4 |
20.1.1.2/24 |
|
|
|
(1) 配置用户网络上的OSPF
在CE 1、Router A、CE 2上配置普通OSPF,发布图1-37中所示各接口的网段地址,并配置CE 1和Router A、CE 2和Router A之间的链路开销值为2。具体配置过程略。
配置完成后,执行display ip routing-table命令,可以看到CE 1和CE 2学到了到达对端的路由。
(2) 在骨干网上配置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 1/0/4
[PE1-GigabitEthernet1/0/4] ip address 10.1.1.1 24
[PE1-GigabitEthernet1/0/4] mpls enable
[PE1-GigabitEthernet1/0/4] mpls ldp enable
[PE1-GigabitEthernet1/0/4] 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 vpnv4
[PE1-bgp-default-vpnv4] peer 2.2.2.9 enable
[PE1-bgp-default-vpnv4] 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 1/0/5
[PE2-GigabitEthernet1/0/5] ip address 10.1.1.2 24
[PE2-GigabitEthernet1/0/5] mpls enable
[PE2-GigabitEthernet1/0/5] mpls ldp enable
[PE2-GigabitEthernet1/0/5] 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 vpnv4
[PE2-bgp-default-vpnv4] peer 1.1.1.9 enable
[PE2-bgp-default-vpnv4] 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 1/0/1
[PE1-GigabitEthernet1/0/1] ip binding vpn-instance vpn1
[PE1-GigabitEthernet1/0/1] ip address 100.1.1.2 24
[PE1-GigabitEthernet1/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-default] ip vpn-instance vpn1
[PE1-bgp-default-vpn1] address-family ipv4 unicast
[PE1-bgp-default-ipv4-vpn1] import-route ospf 100
[PE1-bgp-default-ipv4-vpn1] import-route direct
[PE1-bgp-default-ipv4-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 1/0/1
[PE2-GigabitEthernet1/0/1] ip binding vpn-instance vpn1
[PE2-GigabitEthernet1/0/1] ip address 120.1.1.2 24
[PE2-GigabitEthernet1/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-default] ip vpn-instance vpn1
[PE2-bgp-default-vpn1] address-family ipv4 unicast
[PE2-bgp-default-ipv4-vpn1] import-route ospf 100
[PE2-bgp-default-ipv4-vpn1] import-route direct
[PE2-bgp-default-ipv4-vpn1] quit
[PE2-bgp-default-vpn1] quit
[PE2-bgp-default] quit
完成上述配置后,在PE设备上执行display ip routing-table vpn-instance命令,可以看到去往对端CE的路由是通过用户网络的OSPF路由,不是通过骨干网的BGP路由。
(4) 配置Sham-link
# 配置PE 1。
[PE1] interface loopback 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
[PE1-ospf-100-area-0.0.0.1] quit
[PE1-ospf-100] quit
# 配置PE 2。
[PE2] interface loopback 1
[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
[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的GigabitEthernet接口,即去往对端的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 1
执行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: 1 State: P-2-P Type: Sham
Timers: Hello 10, Dead 40, Retransmit 5, Transmit Delay 1
Request list: 0 Retransmit list: 0
如图所示,CE 1和CE 2同属于VPN 1,分别接入PE 1和PE 2,并且CE 1和CE 2复用AS号600。
图1-38 BGP的AS号替换组网图
接口 |
IP地址 |
设备 |
接口 |
IP地址 |
|
CE 1 |
GE1/0/1 |
10.1.1.1/24 |
P |
Loop0 |
2.2.2.9/32 |
|
GE1/0/2 |
100.1.1.1/24 |
|
GE1/0/1 |
20.1.1.2/24 |
PE 1 |
Loop0 |
1.1.1.9/32 |
|
GE1/0/2 |
30.1.1.1/24 |
|
GE1/0/1 |
10.1.1.2/24 |
PE 2 |
Loop0 |
3.3.3.9/32 |
|
GE1/0/2 |
20.1.1.1/24 |
|
GE1/0/1 |
10.2.1.2/24 |
CE 2 |
GE1/0/1 |
10.2.1.1/24 |
|
GE1/0/2 |
30.1.1.2/24 |
|
GE1/0/2 |
200.1.1.1/24 |
|
|
|
(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.28.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 GE1/0/1
10.2.1.0/24 Direct 0 0 10.2.1.1 GE1/0/1
10.2.1.0/32 Direct 0 0 10.2.1.1 GE1/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 GE1/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 GE1/0/2
200.1.1.0/32 Direct 0 0 200.1.1.1 GE1/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 GE1/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 GE1/0/2
10.2.1.0/24 Direct 0 0 10.2.1.2 GE1/0/1
10.2.1.0/32 Direct 0 0 10.2.1.2 GE1/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 GE1/0/1
100.1.1.0/24 BGP 255 0 1.1.1.9 GE1/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 GE1/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 monitor
<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> system-view
[PE2] bgp 100
[PE2-bgp-default] ip vpn-instance vpn1
[PE2-bgp-default-vpn1] peer 10.2.1.1 substitute-as
[PE2-bgp-default-vpn1] address-family ipv4 unicast
[PE2-bgp-default-ipv4-vpn1] peer 10.2.1.1 enable
[PE2-bgp-default-ipv4-vpn1] quit
[PE2-bgp-default-vpn1] quit
[PE2-bgp-default] 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 GE1/0/1
10.2.1.0/24 Direct 0 0 10.2.1.1 GE1/0/1
10.2.1.0/32 Direct 0 0 10.2.1.1 GE1/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 GE1/0/1
100.1.1.0/24 BGP 255 0 10.2.1.2 GE1/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 GE1/0/2
200.1.1.0/32 Direct 0 0 200.1.1.1 GE1/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 GE1/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的GigabitEthernet接口能够相互Ping通。
· CE 1、CE 2和CE 3同属于VPN 1,分别接入PE 1、PE 2和PE 3。
· CE 1和CE 2位于同一个站点。
· CE 1、CE 2和CE 3复用AS号600。
· 为了避免路由丢失,在PE上配置AS号替换;为了避免路由在CE 1和CE 2之间产生环路,在PE 1和PE 2上分别为CE 1和CE 2配置相同的SoO属性。
图1-39 BGP的AS号替换和SoO属性组网图
设备 |
接口 |
IP地址 |
设备 |
接口 |
IP地址 |
CE 1 |
Loop0 |
100.1.1.1/32 |
CE 3 |
Loop0 |
200.1.1.1 /32 |
|
GE1/0/1 |
10.1.1.1/24 |
|
GE1/0/1 |
10.3.1.1/24 |
CE 2 |
GE1/0/1 |
10.2.1.1/24 |
PE 2 |
Loop0 |
2.2.2.9/32 |
PE 1 |
Loop0 |
1.1.1.9/32 |
|
GE1/0/1 |
10.2.1.2/24 |
|
GE1/0/1 |
10.1.1.2/24 |
|
GE1/0/2 |
40.1.1.1/24 |
|
GE1/0/2 |
20.1.1.1/24 |
|
GE1/0/3 |
20.1.1.2/24 |
|
GE1/0/3 |
30.1.1.1/24 |
P |
Loop0 |
3.3.3.9/32 |
PE 3 |
Loop0 |
4.4.4.9/32 |
|
GE1/0/1 |
30.1.1.2/24 |
|
GE1/0/1 |
10.3.1.2/24 |
|
GE1/0/2 |
40.1.1.2/24 |
|
GE1/0/2 |
50.1.1.2/24 |
|
GE1/0/3 |
50.1.1.1/24 |
(1) 配置基本MPLS L3VPN
¡ 在MPLS骨干网上配置OSPF,PE和P之间能够学到对方Loopback接口的路由;
¡ 在MPLS骨干网上配置MPLS基本能力和MPLS LDP,建立LDP LSP;
¡ PE之间建立MP-IBGP对等体关系,发布VPNv4路由;
¡ 在PE 1上配置VPN 1的VPN实例,接入CE 1;
¡ 在PE 2上配置VPN 1的VPN实例,接入CE 2;
¡ 在PE 3上配置VPN 1的VPN实例,接入CE 3;
¡ PE 1和CE 1、PE 2和CE 2、PE 3和CE 3之间配置BGP,将CE的路由引入PE。
¡ 上述配置可参考“1.28.1 配置MPLS L3VPN示例”,具体配置过程略。
(2) 配置BGP的AS号替换功能
# 在PE 1、PE 2和PE 3上配置BGP的AS号替换功能,具体配置参见“1.28.14 配置BGP的AS号替换”。
# 查看CE 2接收的路由信息,可以看到CE 1发来的路由100.1.1.1/32。可见,由于CE 1和CE 2位于同一站点,造成了路由环路。
<CE2> display bgp routing-table ipv4 peer 10.2.1.2 received-routes
Total number of routes: 6
BGP local router ID is 1.1.1.9
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?
* 10.2.1.0/24 10.2.1.2 0 0 100?
* 10.2.1.1/32 10.2.1.2 0 0 100?
* >e 10.3.1.0/24 10.2.1.2 0 100?
* >e 100.1.1.1/32 10.2.1.2 0 100 100?
* >e 200.1.1.1/32 10.2.1.2 0 100 100?
(3) 配置BGP的SoO属性
# 在PE 1上为对等体CE 1配置SoO属性为1:100。
<PE1> system-view
[PE1] bgp 100
[PE1-bgp-default] ip vpn-instance vpn1
[PE1-bgp-default-vpn1] address-family ipv4
[PE1-bgp-default-ipv4-vpn1] peer 10.1.1.1 soo 1:100
# 在PE 2上为对等体CE 2配置SoO属性为1:100。
<PE2> system-view
[PE2] bgp 100
[PE2-bgp-default] ip vpn-instance vpn1
[PE2-bgp-default-vpn1] address-family ipv4
[PE2-bgp-default-ipv4-vpn1] peer 10.2.1.1 soo 1:100
# 由于配置的SoO属性相同,PE 2不会将CE 1发过来的路由发布给CE 2。查看CE 2路由表,不会再看到100.1.1.1/32路由。
<CE2> 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
10.2.1.0/24 Direct 0 0 10.2.1.1 GE1/0/1
10.2.1.0/32 Direct 0 0 10.2.1.1 GE1/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 GE1/0/1
10.3.1.0/24 BGP 255 0 10.2.1.2 GE1/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.1/32 BGP 255 0 10.2.1.2 GE1/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 1和CE 2属于VPN 1。
· CE与PE之间配置EBGP交换VPN路由信息。
· PE与PE之间配置OSPF实现PE内部的互通、配置MP-IBGP交换VPNv4路由信息。
· 在PE 1上配置MPLS L3VPN快速重路由功能。PE 1和PE 2之间的路径正常工作时,CE 1通过路径CE 1—PE 1—PE 2—CE 2将流量转发给CE 2;PE 1通过BFD检测出PE 1到PE 2的公网LSP出现故障后,将流量切换到备份路径,即CE 1通过路径CE 1—PE 1—PE 3—CE 2将流量转发给CE 2,从而缩短故障恢复时间。
图1-40 VPNv4路由备份VPNv4路由组网图
设备 |
接口 |
IP地址 |
设备 |
接口 |
IP地址 |
CE 1 |
Loop0 |
5.5.5.5/32 |
PE 1 |
Loop0 |
1.1.1.1/32 |
GE1/0/1 |
10.2.1.1/24 |
GE1/0/1 |
10.2.1.2/24 |
||
PE 2 |
Loop0 |
2.2.2.2/32 |
GE1/0/2 |
172.1.1.1/24 |
|
GE1/0/1 |
172.1.1.2/24 |
GE1/0/3 |
172.2.1.1/24 |
||
GE1/0/2 |
10.1.1.2/24 |
CE 2 |
Loop0 |
4.4.4.4/32 |
|
PE 3 |
Loop0 |
3.3.3.3/32 |
GE1/0/1 |
10.1.1.1/24 |
|
GE1/0/1 |
172.2.1.3/24 |
GE1/0/2 |
10.3.1.1/24 |
||
GE1/0/2 |
10.3.1.2/24 |
(1) 配置各路由器接口的IP地址、BGP路由协议和MPLS L3VPN
请按照上面的组网图配置各接口的IP地址和子网掩码。
完成MPLS L3VPN基本配置,具体配置过程请参见“1.28.1 配置MPLS L3VPN示例”。
(2) 配置MPLS L3VPN快速重路由
# 在PE 1上配置使用BFD检测到达2.2.2.2/32(PE 1到达PE 2)的公网LSP的连通性。
<PE1> system-view
[PE1] mpls bfd enable
[PE1] mpls bfd 2.2.2.2 32
# 在PE 1上创建路由策略frr,为路由4.4.4.4/32指定快速重路由的备份下一跳地址为3.3.3.3(PE 3的地址)。
[PE1] ip prefix-list abc index 10 permit 4.4.4.4 32
[PE1] route-policy frr permit node 10
[PE1-route-policy-frr-10] if-match ip address prefix-list abc
[PE1-route-policy-frr-10] apply fast-reroute backup-nexthop 3.3.3.3
[PE1-route-policy-frr-10] quit
# 在PE 1上配置VPN实例vpn1的快速重路由功能引用路由策略frr。
[PE1] bgp 100
[PE1-bgp-default] ip vpn-instance vpn1
[PE1-bgp-default-vpn1] address-family ipv4 unicast
[PE1-bgp-default-ipv4-vpn1] fast-reroute route-policy frr
[PE1-bgp-default-ipv4-vpn1] quit
[PE1-bgp-default-vpn1] quit
# 在PE 1上配置从PE 2接收到的BGP VPNv4路由的首选值为100,大于从PE 3接收到的路由的首选值0,以保证PE 1优选从PE 2接收到的路由。
[PE1-bgp-default] address-family vpnv4
[PE1-bgp-default-vpnv4] peer 2.2.2.2 preferred-value 100
[PE1-bgp-default-vpnv4] quit
[PE1-bgp-default] quit
# 在 PE 2上使能MPLS BFD功能。
<PE2> system-view
[PE2] mpls bfd enable
# 在PE 1上查看私网路由4.4.4.4/32,可以看到备份下一跳信息。
[PE1] display ip routing-table vpn-instance vpn1 4.4.4.4 32 verbose
Summary Count : 1
Destination: 4.4.4.4/32
Protocol: BGP
Process ID: 0
SubProtID: 0x1 Age: 00h00m03s
Cost: 0 Preference: 255
IpPre: N/A QosLocalID: N/A
Tag: 0 State: Active Adv
OrigTblID: 0x0 OrigVrf: default-vrf
TableID: 0x102 OrigAs: 300
NibID: 0x15000002 LastAs: 300
AttrID: 0x2 Neighbor: 2.2.2.2
Flags: 0x110060 OrigNextHop: 2.2.2.2
Label: 1146 RealNextHop: 172.1.1.2
BkLabel: 1275 BkNextHop: 172.2.1.3
Tunnel ID: Invalid Interface: GE1/0/2
BkTunnel ID: Invalid BkInterface: GE1/0/3
FtnIndex: 0x0 TrafficIndex: N/A
Connector: N/A
· CE 1和CE 2属于VPN 1。
· CE与PE之间配置EBGP交换VPN路由信息。
· PE与PE之间配置OSPF实现PE内部的互通、配置MP-IBGP交换VPNv4路由信息。
· 在PE 2上配置MPLS L3VPN快速重路由功能。PE 2和CE 2之间的路径正常工作时,CE 1通过路径CE 1—PE 1—PE 2—CE 2将流量转发给CE 2;PE 2通过BFD检测出PE 2到CE 2这条路径出现故障后,将流量切换到备份路径,即CE 1通过路径CE 1—PE 1—PE 2—PE3—CE 2将流量转发给CE 2,从而缩短故障恢复时间。
图1-41 配置MPLS L3VPN快速重路由示例二组网图
设备 |
接口 |
IP地址 |
设备 |
接口 |
IP地址 |
CE 1 |
Loop0 |
5.5.5.5/32 |
PE 2 |
Loop0 |
2.2.2.2/32 |
GE1/0/1 |
10.2.1.1/24 |
GE1/0/1 |
172.1.1.2/24 |
||
PE 1 |
Loop0 |
1.1.1.1/32 |
GE1/0/2 |
10.1.1.2/24 |
|
GE1/0/1 |
10.2.1.2/24 |
GE1/0/3 |
172.3.1.2/24 |
||
GE1/0/2 |
172.1.1.1/24 |
PE 3 |
Loop0 |
3.3.3.3/32 |
|
GE1/0/3 |
172.2.1.1/24 |
GE1/0/1 |
172.2.1.3/24 |
||
CE 2 |
Loop0 |
4.4.4.4/32 |
GE1/0/2 |
10.3.1.2/24 |
|
GE1/0/1 |
10.1.1.1/24 |
GE1/0/3 |
172.3.1.3/24 |
||
GE1/0/2 |
10.3.1.1/24 |
(1) 配置各路由器接口的IP地址、BGP路由协议和MPLS L3VPN
请按照上面的组网图配置各接口的IP地址和子网掩码。
完成MPLS L3VPN基本配置,具体配置过程请参见“1.28.1 配置MPLS L3VPN示例”。
(2) 配置MPLS L3VPN快速重路由
# 在PE 2上配置BFD echo报文的源IP地址为12.1.1.1。
<PE2> system-view
[PE2] bfd echo-source-ip 12.1.1.1
# 在PE 2上创建路由策略frr,为路由4.4.4.4/32指定快速重路由的备份下一跳地址为3.3.3.3(PE 3的地址)。
[PE2] ip prefix-list abc index 10 permit 4.4.4.4 32
[PE2] route-policy frr permit node 10
[PE2-route-policy-frr-10] if-match ip address prefix-list abc
[PE2-route-policy-frr-10] apply fast-reroute backup-nexthop 3.3.3.3
[PE2-route-policy-frr-10] quit
# 在PE 2上配置通过Echo方式的BFD会话检测主路由的下一跳是否可达。
[PE2] bgp 100
[PE2-bgp-default] primary-path-detect bfd echo
# 在PE 2上配置VPN实例vpn1的快速重路由功能引用路由策略frr。
[PE2-bgp-default] ip vpn-instance vpn1
[PE2-bgp-default-vpn1] address-family ipv4 unicast
[PE2-bgp-default-ipv4-vpn1] fast-reroute route-policy frr
# 在PE 2上配置从CE 2接收到的BGP路由的首选值为200,大于从PE 3接收到的路由的首选值0,以保证PE 2优选从CE 2接收到的路由。
[PE2-bgp-default-ipv4-vpn1] peer 10.1.1.1 preferred-value 200
[PE2-bgp-default-vpn1] quit
[PE2-bgp-default] quit
# 在PE 2上查看私网路由4.4.4.4/32,可以看到备份下一跳信息。
[PE2] display ip routing-table vpn-instance vpn1 4.4.4.4 32 verbose
Summary Count : 1
Destination: 4.4.4.4/32
Protocol: BGP
Process ID: 0
SubProtID: 0x2 Age: 01h54m24s
Cost: 0 Preference: 10
IpPre: N/A QosLocalID: N/A
Tag: 0 State: Active Adv
OrigTblID: 0x0 OrigVrf: vpn1
TableID: 0x102 OrigAs: 300
NibID: 0x15000002 LastAs: 300
AttrID: 0x0 Neighbor: 10.1.1.1
Flags: 0x10060 OrigNextHop: 10.1.1.1
Label: NULL RealNextHop: 10.1.1.1
BkLabel: 1275 BkNextHop: 172.3.1.3
Tunnel ID: Invalid Interface: GE1/0/2
BkTunnel ID: 0x409 BkInterface: GE1/0/3
FtnIndex: 0x0 TrafficIndex: N/A
Connector: N/A
· CE 1和CE 2属于VPN 1;
· CE与PE之间配置EBGP交换VPN路由信息;
· PE与PE之间配置OSPF实现PE内部的互通、配置MP-IBGP交换VPNv4路由信息。
· 在PE 1上配置MPLS L3VPN快速重路由功能。PE 1和PE 2之间的路径正常工作时,CE 1通过路径CE 1—PE 1—PE 2—CE 2将流量转发给CE 2;PE 1通过BFD检测出PE 1到PE 2这条路径出现故障后,将流量切换到备份路径,即CE 1通过路径CE 1—PE 1—CE 2将流量转发给CE 2,从而缩短故障恢复时间。
图1-42 IPv4路由备份VPNv4路由组网图
设备 |
接口 |
IP地址 |
设备 |
接口 |
IP地址 |
CE 1 |
Loop0 |
5.5.5.5/32 |
CE 2 |
Loop0 |
4.4.4.4/32 |
GE1/0/1 |
10.2.1.1/24 |
GE1/0/1 |
10.1.1.1/24 |
||
PE 1 |
Loop0 |
1.1.1.1/32 |
GE1/0/2 |
10.3.1.1/24 |
|
GE1/0/1 |
10.2.1.2/24 |
PE 2 |
Loop0 |
2.2.2.2/32 |
|
GE1/0/2 |
10.1.1.2/24 |
GE1/0/2 |
10.3.1.2/24 |
||
GE1/0/3 |
172.2.1.1/24 |
GE1/0/3 |
172.2.1.2/24 |
(1) 配置各路由器接口的IP地址、BGP路由协议和MPLS L3VPN
请按照上面的组网图配置各接口的IP地址和子网掩码。
完成MPLS L3VPN基本配置,具体配置过程请参见“1.28.1 配置MPLS L3VPN示例”。
(2) 配置MPLS L3VPN快速重路由
# 在PE 1上配置使用BFD检测到达2.2.2.2/32(PE 1到达PE 2)的公网LSP的连通性。
<PE1> system-view
[PE1] mpls bfd enable
[PE1] mpls bfd 2.2.2.2 32
# 在PE 1上创建路由策略frr,为路由4.4.4.4/32指定快速重路由的备份下一跳地址为10.1.1.1(CE 2的地址)。
[PE1] ip prefix-list abc index 10 permit 4.4.4.4 32
[PE1] route-policy frr permit node 10
[PE1-route-policy-frr-10] if-match ip address prefix-list abc
[PE1-route-policy-frr-10] apply fast-reroute backup-nexthop 10.1.1.1
[PE1-route-policy-frr-10] quit
# 在PE 1上配置VPN实例vpn1的快速重路由功能引用路由策略frr。
[PE1] bgp 100
[PE1-bgp-default] ip vpn-instance vpn1
[PE1-bgp-default-vpn1] address-family ipv4 unicast
[PE1-bgp-default-ipv4-vpn1] fast-reroute route-policy frr
[PE1-bgp-default-ipv4-vpn1] quit
[PE1-bgp-default-vpn1] quit
# 在PE 1上配置从PE 2接收到的BGP VPNv4路由的首选值为200,大于从CE 2接收到的IPv4单播路由的首选值0,以保证PE 1优选从PE 2接收到的路由。
[PE1-bgp-default] address-family vpnv4
[PE1-bgp-default-vpnv4] peer 2.2.2.2 preferred-value 200
[PE1-bgp-default-vpnv4] quit
[PE1-bgp-default] quit
# 在 PE 2上使能MPLS BFD功能。
<PE2> system-view
[PE2] mpls bfd enable
# 在PE 1上查看私网路由4.4.4.4/32,可以看到备份下一跳信息。
[PE1] display ip routing-table vpn-instance vpn1 4.4.4.4 32 verbose
Summary Count : 1
Destination: 4.4.4.4/32
Protocol: BGP
Process ID: 0
SubProtID: 0x1 Age: 00h00m04s
Cost: 0 Preference: 255
IpPre: N/A QosLocalID: N/A
Tag: 0 State: Active Adv
OrigTblID: 0x0 OrigVrf: default-vrf
TableID: 0x102 OrigAs: 300
NibID: 0x15000004 LastAs: 300
AttrID: 0x1 Neighbor: 2.2.2.2
Flags: 0x110060 OrigNextHop: 2.2.2.2
Label: 1275 RealNextHop: 172.2.1.2
BkLabel: NULL BkNextHop: 10.1.1.1
Tunnel ID: 0x409 Interface: GE1/0/3
BkTunnel ID: Invalid BkInterface: GE1/0/2
FtnIndex: 0x0 TrafficIndex: N/A
Connector: N/A
MPLS L3VPN应用于IPv4组网环境,利用BGP在服务提供商骨干网上发布VPN的IPv4路由,利用MPLS在服务提供商骨干网上转发VPN的IPv4报文。IPv6 MPLS L3VPN(即6VPE,IPv6 VPN Provider Edge)的工作原理与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和Route Target属性,形成VPN-IPv6路由,存放到为CE创建的VPN实例的路由表中,并为其分配私网标签。
入口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-OptionB
· 跨域VPN-OptionC
· 运营商的运营商
· 多角色主机
· OSPFv3 VPN扩展:与OSPF VPN扩展的不同之处为OSPFv3的Type-3、Type-5和Type-7 LSA均支持DN位,缺省情况下,均使用DN位避免路由环路
· BGP的AS号替换和SoO组网
与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
本特性的支持情况与设备型号有关,请以设备的实际情况为准。
型号 |
说明 |
MSR610 |
不支持 |
MSR810、MSR810-W、MSR810-W-DB、MSR810-LM、MSR810-W-LM、MSR810-10-PoE、MSR810-LM-HK、MSR810-W-LM-HK、MSR810-LM-CNDE-SJK、MSR810-CNDE-SJK、MSR810-EI、MSR810-LM-EA、MSR810-LM-EI |
支持 |
MSR810-LMS、MSR810-LUS |
不支持 |
MSR810-SI、MSR810-LM-SI |
不支持 |
MSR810-LMS-EA、MSR810-LME |
支持 |
MSR1004S-5G、MSR1004S-5G-CN |
支持 |
MSR1104S-W、MSR1104S-W-CAT6、MSR1104S-5G-CN、MSR1104S-W-5G-CN |
支持 |
MSR2600-6-X1、MSR2600-15-X1、MSR2600-15-X1-T |
支持 |
MSR2600-10-X1 |
支持 |
MSR 2630 |
支持 |
MSR3600-28、MSR3600-51 |
支持 |
MSR3600-28-SI、MSR3600-51-SI |
不支持 |
MSR3600-28-X1、MSR3600-28-X1-DP、MSR3600-51-X1、MSR3600-51-X1-DP |
支持 |
MSR3600-28-G-DP、MSR3600-51-G-DP |
支持 |
MSR3610-I-DP、MSR3610-IE-DP、MSR3610-IE-ES、MSR3610-IE-EAD、MSR-EAD-AK770、MSR3610-I-IG、MSR3610-IE-IG |
支持 |
MSR-iMC |
支持 |
MSR3610-X1、MSR3610-X1-DP、MSR3610-X1-DC、MSR3610-X1-DP-DC、MSR3620-X1、MSR3640-X1 |
支持 |
MSR 3610、MSR 3620、MSR 3620-DP、MSR 3640、MSR 3660 |
支持 |
MSR3610-G、MSR3620-G |
支持 |
MSR3640-G |
支持 |
MSR3640-X1-HI |
支持 |
型号 |
描述 |
MSR810-W-WiNet、MSR810-LM-WiNet |
支持 |
MSR830-4LM-WiNet |
支持 |
MSR830-5BEI-WiNet、MSR830-6EI-WiNet、MSR830-10BEI-WiNet |
支持 |
MSR830-6BHI-WiNet、MSR830-10BHI-WiNet |
支持 |
MSR2600-6-WiNet |
支持 |
MSR2600-10-X1-WiNet |
支持 |
MSR2630-WiNet |
支持 |
MSR3600-28-WiNet |
支持 |
MSR3610-X1-WiNet |
支持 |
MSR3620-X1-WiNet |
支持 |
MSR3610-WiNet、MSR3620-10-WiNet、MSR3620-DP-WiNet、MSR3620-WiNet、MSR3660-WiNet |
支持 |
型号 |
说明 |
MSR860-6EI-XS |
支持 |
MSR860-6HI-XS |
支持 |
MSR2630-XS |
支持 |
MSR3600-28-XS |
支持 |
MSR3610-XS |
支持 |
MSR3620-XS |
支持 |
MSR3610-I-XS |
支持 |
MSR3610-IE-XS |
支持 |
MSR3620-X1-XS |
支持 |
MSR3640-XS |
支持 |
MSR3660-XS |
支持 |
型号 |
说明 |
MSR810-LM-GL |
支持 |
MSR810-W-LM-GL |
支持 |
MSR830-6EI-GL |
支持 |
MSR830-10EI-GL |
支持 |
MSR830-6HI-GL |
支持 |
MSR830-10HI-GL |
支持 |
MSR1004S-5G-GL |
支持 |
MSR2600-6-X1-GL |
支持 |
MSR3600-28-SI-GL |
不支持 |
IPv6 MPLS L3VPN的公网隧道可以是LSP隧道、MPLS TE隧道和GRE隧道等。目前,IPv6 MPLS L3VPN不支持采用GRE over IPv6隧道作为公网隧道。
除特殊说明外,IPv6 MPLS L3VPN的配置均在PE设备上执行。IPv6 MPLS L3VPN配置任务如下:
(1) 配置IPv6 MPLS L3VPN基本功能
a. 配置VPN实例
d. (可选)配置BGP VPNv6路由
(2) 配置IPv6 MPLS L3VPN高级组网
请根据实际情况选择以下任务进行配置:
如果承载IPv6 VPN路由的MPLS骨干网跨越多个AS,则需要执行本配置。
¡ 配置多角色主机
多角色主机功能通过在PE上配置策略路由,使得来自Site内某些主机或服务器的报文可以访问多个VPN。
(3) (可选)配置OSPFv3伪连接
(4) (可选)配置BGP的AS号替换和SoO属性
(5) (可选)配置BGP Add-Path
(6) (可选)配置VPN实例的BGP路由添加到IP路由表以及发布时的规则
(7) (可选)配置路由信息引入功能
(8) (可选)配置优先发送指定路由的撤销消息
(9) (可选)配置BGP路由根据路由策略来过滤迭代到的下一跳路由
在配置IPv6 MPLS L3VPN之前,需完成以下任务:
· 对MPLS骨干网(PE、P)配置IGP,实现骨干网的IP连通性
· 对MPLS骨干网(PE、P)配置MPLS基本能力
· 对MPLS骨干网(PE、P)配置MPLS LDP,建立LDP LSP
VPN实例在实现中与Site关联。VPN实例不是直接对应于VPN,一个VPN实例综合了和它所对应Site的VPN成员关系和路由规则。
(1) 进入系统视图。
system-view
(2) 配置VPN实例的MPLS标签范围。
mpls per-vrf-label range minimum maximum
(3) 创建VPN实例,并进入VPN实例视图。
ip vpn-instance vpn-instance-name
(4) 配置VPN实例的RD。
route-distinguisher route-distinguisher
缺省情况下,未配置VPN实例的RD。
(5) (可选)配置VPN实例的描述信息。
description text
缺省情况下,未配置VPN实例的描述信息。
(6) (可选)配置VPN实例的ID。
vpn-id vpn-id
缺省情况下,未配置VPN实例的ID。
(7) (可选)配置VPN实例的SNMP上下文。
snmp context-name context-name
缺省情况下,未配置VPN实例的SNMP上下文。
(8) 进入VPN实例IPv6地址族视图。
address-family ipv6
(9) 配置VPN路由的MPLS标签分配方式。
apply-label { per-instance [ static static-label-value ] | per-route }
缺省情况下,采用每下一跳每标签的标签分配方式,即BGP为VPN路由中的每个下一跳分配一个标签。
执行本命令将改变标签的分配方式,导致VPN实例下的所有路由重分发。因此已经有业务在VPN实例中运行时,执行本命令会导致业务短暂中断,请慎重操作。
如果主接口已经与VSI或MPLS L2VPN的交叉连接关联,则该接口或其子接口无法与VPN实例进行关联。
如果子接口已经与VSI或MPLS L2VPN的交叉连接关联,则该子接口无法与VPN实例进行关联。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 配置接口与指定VPN实例关联。
ip binding vpn-instance vpn-instance-name
缺省情况下,接口未关联VPN实例,接口属于公网。
配置或取消接口与VPN实例关联后,该接口上的IP地址、路由协议等配置将被删除。
执行本命令将删除接口上已经配置的IPv6地址,因此需要重新配置接口的IPv6地址。
VPN实例视图下配置的路由相关属性既可以用于IPv4 VPN,也可以用于IPv6 VPN。
VPN实例视图和VPN实例IPv6地址族视图下配置的路由相关属性均能用于IPv6 VPN。如果同时配置二者,则IPv6 VPN采用VPN实例IPv6地址族视图下的配置。
在对VPN实例应用入方向或出方向路由策略时,还需要创建并配置路由策略,配置方法请参见“三层技术-IP路由配置指导”中的“路由策略”。
(1) 进入系统视图。
system-view
(2) 进入VPN实例视图或VPN实例IPv6地址族视图。
¡ 进入VPN实例视图。
ip vpn-instance vpn-instance-name
¡ 请依次执行以下命令进入VPN实例IPv6地址族视图。
ip vpn-instance vpn-instance-name
address-family ipv6
(3) 配置Route Target。
vpn-target vpn-target&<1-8> [ both | export-extcommunity | import-extcommunity ]
缺省情况下,未配置VPN实例的Route Target。
(4) 配置支持的最大激活路由前缀数。
routing-table limit number { warn-threshold | simply-alert }
缺省情况下,未限制VPN实例支持的最多激活路由前缀数。
通过本配置可以防止PE路由器上保存过多的激活路由前缀信息。
(5) 应用入方向路由策略。
import route-policy route-policy
缺省情况下,接收所有Route Target属性匹配的路由。
(6) 应用出方向路由策略。
export route-policy route-policy
缺省情况下,不对发布的路由进行过滤。
(7) 配置VPN实例的隧道策略。
tnl-policy tunnel-policy-name
缺省情况下,隧道策略为按照LSP隧道->GRE隧道->CRLSP->SRLSP隧道的优先级顺序选择隧道,负载分担条数为1。
如果本配置中指定的隧道策略尚未创建,则采用缺省策略。隧道策略的创建及配置方法,请参见“MPLS配置指导”中的“隧道策略”。
本配置在PE上进行,CE上的配置方法与普通IPv6静态路由相同。
有关IPv6静态路由的配置请参见“三层技术-IP路由配置指导”中的“IPv6静态路由”。
(1) 进入系统视图。
system-view
(2) 为指定VPN实例配置IPv6静态路由。
ipv6 route-static vpn-instance s-vpn-instance-name ipv6-address prefix-length { interface-type interface-number [ next-hop-address ] | nexthop-address [ public ] | vpn-instance d-vpn-instance-name nexthop-address }
本配置在PE上进行,CE上配置普通RIPng即可。
有关RIPng的介绍和详细配置,请参见“三层技术-IP路由配置指导”中的“RIPng”。
(1) 进入系统视图。
system-view
(2) 创建PE-CE间的RIPng实例,并进入RIPng视图。
ripng [ process-id ] vpn-instance vpn-instance-name
一个RIPng进程只能属于一个VPN实例。
(3) 配置引入BGP路由。
import-route bgp4+ [ as-number ] [ allow-ibgp ] [ cost cost-value | route-policy route-policy-name ] *
缺省情况下,没有引入其他协议的路由信息。
(4) 退回系统视图。
quit
(5) 进入接口视图。
interface interface-type interface-number
(6) 在接口上使能RIPng路由协议。
ripng process-id enable
缺省情况下,接口禁用RIPng路由协议。
本配置在PE上进行,CE上配置普通OSPFv3即可。
有关OSPFv3的介绍和详细配置,请参见“三层技术-IP路由配置指导”中的“OSPFv3”。
(1) 进入系统视图。
system-view
(2) 创建PE-CE间的OSPFv3实例,并进入OSPFv3视图。
ospfv3 [ process-id | vpn-instance vpn-instance-name ] *
一个OSPFv3进程只能属于一个VPN实例。
删除VPN实例后,相关的所有OSPFv3进程也将全部被删除。
(3) 配置Router ID。
router-id router-id
(4) 配置引入BGP路由。
import-route bgp4+ [ as-number ] [ allow-ibgp ] [ cost cost-value | nssa-only | route-policy route-policy-name | tag tag | type type ] *
缺省情况下,没有引入其他协议的路由信息。
若在设备上配置OSPFv3实例引入BGP路由,则该OSPFv3实例下未配置vpn-instance-capability simple命令时,设备会将从MP-IBGP对等体学习到的VPNv6路由引入到OSPFv3实例,无需指定allow-ibgp参数;否则,只有指定allow-ibgp参数,设备才会将从MP-IBGP对等体学习到的VPNv6路由引入到OSPFv3实例。
(5) (可选)配置OSPFv3路由属性。
a. 配置OSPFv3域标识符。
domain-id { domain-id [ secondary ] | null }
缺省情况下,OSPFv3域标识符为0。
域标识符的作用 |
域标识符配置注意事项 |
OSPFv3进程的域标识符包含在此进程生成的路由中,在将OSPFv3路由引入BGP时,域标识符被附加到BGP路由上,作为BGP的扩展团体属性传递 |
· 不同OSPFv3进程的域标识符可以相同 · 同一VPN的所有OSPFv3进程应配置相同的域标识符,以保证路由发布的正确性 |
b. 配置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。
c. 在PE上配置VPN引入路由的外部路由标记值。
route-tag tag-value
缺省情况下,若本端配置了BGP路由协议,并且BGP的AS号不大于65535,则外部路由标记值的前面两个字节固定为0xD000,后面的两个字节为本端BGP的AS号;否则,外部路由标记值为0。
d. 配置PE上不设置OSPFv3 LSA的DN位。
disable-dn-bit-set
缺省情况下,将BGP路由引入OSPFv3,并生成OSPFv3 LSA时,设备为生成的LSA设置DN位。
配置该命令后,可能会导致路由环路,需谨慎使用。
e. 配置PE上忽略OSPFv3 LSA的DN位检查。
disable-dn-bit-check
缺省情况下,PE上检查OSPFv3 LSA的DN位。
配置该命令后,可能会导致路由环路,需谨慎使用。
f. 在PE上使能OSPFv3 LSA的外部路由标记检查。
route-tag-check enable
缺省情况下,PE上不检查OSPFv3 LSA的外部路由标记,通过DN位检查避免路由环路。
该命令是为了兼容旧的协议(RFC 4577),现在不建议使用。
g. 退回系统视图。
quit
(6) 进入接口视图。
interface interface-type interface-number
(7) 在接口上使能OSPFv3。
ospfv3 process-id area area-id [ instance instance-id ]
缺省情况下,接口上没有使能OSPFv3。
配置本命令时,需要确保OSPFv3进程所属的VPN实例与接口绑定的VPN实例相同,否则,命令会执行失败。
该配置在PE上进行,CE上配置普通IPv6 IS-IS即可。
有关IPv6 IS-IS的介绍和详细配置,请参见“三层技术-IP路由配置指导”中的“IPv6 IS-IS”。
(1) 进入系统视图。
system-view
(2) 创建PE-CE间的IPv6 IS-IS实例,并进入IS-IS视图。
isis [ process-id ] vpn-instance vpn-instance-name
一个IPv6 IS-IS进程只能属于一个VPN实例。
(3) 配置网络实体名称。
network-entity net
缺省情况下,未配置网络实体名称。
(4) 创建并进入IS-IS IPv6单播地址族视图。
address-family ipv6 [ unicast ]
(5) 配置引入BGP路由。
import-route bgp4+ [ as-number ] [ allow-ibgp ] [ [ cost cost-value | inherit-cost ] | [ level-1 | level-1-2 | level-2 ] | route-policy route-policy-name | tag tag ] *
缺省情况下,没有引入其他协议的路由信息。
(6) 退回系统视图。
quit
quit
(7) 进入接口视图。
interface interface-type interface-number
(8) 使能接口IS-IS路由进程的IPv6能力,并指定要关联的IS-IS进程号。
isis ipv6 enable [ process-id ]
缺省情况下,接口上没有使能IS-IS路由进程的IPv6能力。
(1) 进入系统视图。
system-view
(2) 启动BGP实例,进入BGP实例视图。
bgp as-number [ instance instance-name ]
缺省情况下,没有运行BGP。
(3) 进入BGP-VPN实例视图。
ip vpn-instance vpn-instance-name
(4) 将CE配置为VPN私网EBGP对等体。
peer { group-name | ipv6-address [ prefix-length ] } as-number as-number
(5) 创建BGP-VPN IPv6单播地址族,并进入BGP-VPN IPv6单播地址族视图。
address-family ipv6 [ unicast ]
BGP-VPN IPv6单播地址族视图下的配置命令与BGP IPv6单播地址族视图下的配置命令相同。本文只列举了部分命令,更多的命令请参见“三层技术-IP路由配置指导”中的“BGP”。
(6) 使能本地路由器与指定对等体交换IPv6单播路由信息的能力。
peer { group-name | ipv6-address [ prefix-length ] } enable
缺省情况下,本地路由器不能与对等体交换IPv6单播路由信息。
(7) 引入本端CE路由。
import-route protocol [ { process-id | all-processes } [ allow-direct | med med-value | route-policy route-policy-name ] * ]
PE需要将到本端CE的路由引入VPN路由表中,以发布给对端PE。
(8) (可选)配置允许本地AS号在所接收的路由的AS_PATH属性中出现,并可同时配置允许重复的次数。
peer { group-name | ipv6-address [ prefix-length ] } allow-as-loop [ number ]
缺省情况下,不允许本地AS号在接收路由的AS_PATH属性中出现。
Hub&Spoke组网中,如果在Hub-PE和Hub-CE之间运行EBGP,则需要在Hub-PE上执行本配置,否则Hub-PE不能接受Hub-CE返回的路由更新信息。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图。
bgp as-number [ instance instance-name ]
(3) 将PE配置为EBGP对等体。
peer { group-name | ipv6-address [ prefix-length ] } as-number as-number
(4) 创建BGP IPv6单播地址族,并进入BGP IPv6单播地址族视图。
address-family ipv6 [ unicast ]
(5) 使能本地路由器与指定对等体交换IPv6单播路由信息的能力。
peer { group-name | ipv6-address [ prefix-length ] } enable
缺省情况下,本地路由器不能与对等体交换IPv6单播路由信息。
(6) 配置路由引入。
import-route protocol [ { process-id | all-processes } [ allow-direct | med med-value | route-policy route-policy-name ] * ]
CE需要将自己所能到达的VPN网段地址发布给接入的PE,通过PE发布给对端CE。
PE和CE之间使用IBGP路由协议只适用于基本的IPv6 MPLS L3VPN组网环境,跨域VPN和运营商的运营商组网中,PE和CE之间不能配置IBGP。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图。
bgp as-number [ instance instance-name ]
(3) 进入BGP-VPN实例视图。
ip vpn-instance vpn-instance-name
BGP-VPN实例视图下的配置任务与BGP实例视图下的相同,有关介绍和详细配置,请参见“三层技术-IP路由配置指导”中的“BGP”。
(4) 将CE配置为VPN私网IBGP对等体。
peer { group-name | ipv6-address [ prefix-length ] } as-number as-number
(5) 创建BGP-VPN IPv6单播地址族,并进入BGP-VPN IPv6单播地址族视图。
address-family ipv6 [ unicast ]
(6) 使能本地路由器与指定对等体/对等体组交换IPv6单播路由信息的能力。
peer { group-name | ipv6-address [ prefix-length ] } enable
缺省情况下,本地路由器不能与对等体交换IPv6单播路由信息。
(7) 将CE配置为路由反射器的客户端,以便PE将从CE学习的路由发送给其他IBGP对等体。
peer { group-name | ipv6-address [ prefix-length ] } reflect-client
缺省情况下,未配置路由发射器及其客户端。
配置路由反射器后不会修改路由的下一跳。如果需要修改下一跳,则需在路由的接收端通过入策略进行修改。
(8) (可选)允许路由反射器在客户机之间反射路由。
reflect between-clients
缺省情况下,允许路由反射器在客户机之间反射路由。
(9) (可选)配置路由反射器的集群ID。
reflector cluster-id { cluster-id | ip-address }
缺省情况下,每个路由反射器都使用自己的Router ID作为集群ID。
如果一个集群中配置了多个路由反射器,请使用本命令为所有的路由反射器配置相同的集群ID,以避免产生路由环路。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图。
bgp as-number [ instance instance-name ]
(3) 将PE配置为IBGP对等体。
peer { group-name | ipv6-address [ prefix-length ] } as-number as-number
(4) 创建BGP IPv6单播地址族,并进入BGP IPv6单播地址族视图。
address-family ipv6 [ unicast ]
(5) 使能本地路由器与指定对等体/对等体组交换IPv6单播路由信息的能力。
peer { group-name | ipv6-address [ prefix-length ] } enable
缺省情况下,本地路由器不能与对等体交换IPv6单播路由信息。
(6) 配置路由引入。
import-route protocol [ { process-id | all-processes } [ allow-direct | med med-value | route-policy route-policy-name ] * ]
CE需要将自己所能到达的VPN网段地址发布给接入的PE,通过PE发布给对端CE。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图。
bgp as-number [ instance instance-name ]
(3) 将对端PE配置为对等体。
peer { group-name | ipv4-address [ mask-length ] } as-number as-number
(4) 指定与对等体/对等体组创建BGP会话时建立TCP连接使用的源接口。
peer { group-name | ipv4-address [ mask-length ] } connect-interface interface-type interface-number
缺省情况下,BGP使用到达BGP对等体的最佳路由的出接口作为与对等体/对等体组创建BGP会话时建立TCP连接的源接口。
(5) 创建BGP VPNv6地址族,并进入BGP VPNv6地址族视图。
address-family vpnv6
(6) 使能本地路由器与指定对等体交换VPNv6路由信息的能力。
peer { group-name | ipv4-address [ mask-length ] } enable
缺省情况下,本地路由器不能与对等体交换VPNv6路由信息。
BGP VPNv6路由的属性需要在BGP VPNv6地址族视图下配置。BGP VPNv6路由的很多配置都与BGP IPv6单播路由相同,详细配置请参见“三层技术-IP路由配置指导”中的“BGP”。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图。
bgp as-number [ instance instance-name ]
(3) 进入BGP VPNv6地址族视图。
address-family vpnv6
(4) 为从对等体/对等体组接收的路由分配首选值。
peer { group-name | ipv4-address [ mask-length ] } preferred-value value
缺省情况下,从对等体/对等体组接收的路由的首选值为0。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图。
bgp as-number [ instance instance-name ]
(3) 进入BGP VPNv6地址族视图。
address-family vpnv6
(4) 设置允许从指定对等体/对等体组收到的路由数量。
peer { group-name | ipv4-address [ mask-length ] } route-limit prefix-number [ { alert-only | discard | reconnect reconnect-time } | percentage-value ] *
缺省情况下,不限制从对等体/对等体组接收的路由数量。
为保证IBGP对等体之间的连通性,需要在IBGP对等体之间建立全连接关系。当IBGP对等体数目很多时,网络资源和CPU资源的消耗都很大。
利用路由反射可以解决这一问题。在一个AS内,其中一台路由器作为RR(Route Reflector,路由反射器),作为客户机(Client)的路由器与路由反射器之间建立IBGP连接。路由反射器从客户机接收到路由后,将其传递(反射)给所有其他的客户机,从而保证客户机之间不需要建立IBGP连接,就可以学习到彼此的路由。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图。
bgp as-number [ instance instance-name ]
(3) 进入BGP VPNv6地址族视图。
address-family vpnv6
(4) 配置将本机作为路由反射器,并将对等体作为路由反射器的客户。
peer { group-name | ipv4-address [ mask-length ] } reflect-client
缺省情况下,未配置路由反射器及其客户。
(5) (可选)允许路由反射器在客户机之间反射路由。
reflect between-clients
缺省情况下,允许路由反射器在客户机之间反射路由。
(6) (可选)配置路由反射器的集群ID。
reflector cluster-id { cluster-id | ip-address }
缺省情况下,每个路由反射器都使用自己的Router ID作为集群ID。
如果一个集群中配置了多个路由反射器,请使用本命令为所有的路由反射器配置相同的集群ID,以避免产生路由环路。
(7) (可选)创建路由反射器的反射策略。
rr-filter ext-comm-list-number
缺省情况下,路由反射器不会对反射的路由进行过滤。
执行本命令后,只有与本命令配置的扩展团体属性号匹配的IBGP路由才会被反射。
通过在不同的路由反射器上配置不同的反射策略,可以实现路由反射器之间的负载分担。
(8) (可选)允许路由反射器反射路由时修改路由属性。
reflect change-path-attribute
缺省情况下,不允许路由反射器反射路由时修改路由属性。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图。
bgp as-number [ instance instance-name ]
(3) 进入BGP VPNv6地址族视图。
address-family vpnv6
(4) 配置AS_PATH属性。
¡ 配置对于从对等体/对等体组接收的路由,允许本地AS号在接收路由的AS_PATH属性中出现,并配置允许出现的次数。
peer { group-name | ipv4-address [ mask-length ] } allow-as-loop [ number ]
缺省情况下,不允许本地AS号在接收路由的AS_PATH属性中出现。
¡ 向指定EBGP对等体/对等体组发送BGP更新消息时只携带公有AS号,不携带私有AS号。
peer { group-name | ipv4-address [ mask-length ] } public-as-only
缺省情况下,向EBGP对等体/对等体组发送BGP更新消息时,既可以携带公有AS号,又可以携带私有AS号。
(5) 配置向对等体/对等体组发布路由时不改变下一跳。
peer { group-name | ipv4-address [ mask-length ] } next-hop-invariable
缺省情况下,向对等体/对等体组发布路由时会将下一跳改为自己的地址。
如果在跨域VPN OptionC组网中使用路由反射器RR(Route Reflector)通告VPNv6路由,则需要在路由反射器上通过本命令配置向BGP邻居和反射客户通告VPNv6路由时,不改变路由的下一跳,以保证私网路由下一跳不会被修改。
(6) 配置向对等体/对等体组发布团体属性。
peer { group-name | ipv4-address [ mask-length ] } advertise-community
缺省情况下,不向对等体/对等体组发布团体属性。
(7) 为BGP对等体/对等体组配置SoO属性。
peer { group-name | ipv4-address [ mask-length ] } soo site-of-origin
缺省情况下,没有为BGP对等体/对等体组配置SoO属性。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图。
bgp as-number [ instance instance-name ]
(3) 进入BGP VPNv6地址族视图。
address-family vpnv6
(4) 配置对发布的路由信息进行过滤。
filter-policy { ipv6-acl-number | name ipv6-acl-name | prefix-list ipv6-prefix-name } export [ direct | { isisv6 | ospfv3 | ripng } process-id | static ]
缺省情况下,不对发布的路由信息进行过滤。
(5) 配置对接收的路由信息进行过滤。
filter-policy { ipv6-acl-number | name ipv6-acl-name | prefix-list ipv6-prefix-name } import
缺省情况下,不对接收的路由信息进行过滤。
(6) 为对等体/对等体组设置基于AS路径过滤列表的BGP路由过滤策略。
peer { group-name | ipv4-address [ mask-length ] } as-path-acl as-path-acl-number { export | import }
缺省情况下,未配置基于AS路径过滤列表的BGP路由过滤策略。
(7) 为对等体/对等体组设置基于ACL的BGP路由过滤策略。
peer { group-name | ipv4-address [ mask-length ] } filter-policy { ipv6-acl-number | name ipv6-acl-name } { export | import }
缺省情况下,未配置基于ACL的BGP路由过滤策略。
(8) 为对等体/对等体组设置基于IPv6地址前缀列表的BGP路由过滤策略。
peer { group-name | ipv4-address [ mask-length ] } prefix-list ipv6-prefix-name { export | import }
缺省情况下,未配置基于IPv6地址前缀列表的BGP路由过滤策略。
(9) 对来自对等体/对等体组的路由或发布给对等体/对等体组的路由应用路由策略。
peer { group-name | ipv4-address [ mask-length ] } route-policy route-policy-name { export | import }
缺省情况下,没有为对等体/对等体组指定路由策略。
(10) 配置对接收到的VPNv6路由进行Route Target过滤。
policy vpn-target
缺省情况下,对接收到的VPNv6路由进行Route Target过滤,即只将Export Route Target属性与本地Import Route Target属性匹配的VPNv6路由加入到路由表。
本功能的配置在BGP选路规则中的具体优先级顺序,请参见“三层技术-IP路由配置指导”中的“BGP概述”。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图。
bgp as-number [ instance instance-name ]
(3) 进入BGP VPNv6地址族视图。
address-family vpnv6
(4) 为指定对等体/对等体组设置高优先级,路由选路时优选从该对等体/对等体组学习到的路由。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } high-priority [ preferred ]
缺省情况下,BGP不为指定对等体/对等体组设置高优先级,选路规则不发生变化。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图。
bgp as-number [ instance instance-name ]
(3) 进入BGP VPNv6地址族视图。
address-family vpnv6
(4) 配置BGP路由的下一跳地址类型影响路由优选。
bestroute nexthop-priority { ipv4 | ipv6 } [ preferred ]
缺省情况下,BGP优选下一跳地址为IPv4地址的路由。
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。
在IPv6跨域VPN-OptionA方式中,对于同一个IPv6 VPN,同一AS内的ASBR-PE和PE上配置的Route Target应能匹配,即Route Target的配置应能保证PE(或ASBR-PE)发送的VPN路由能够被ASBR-PE(或PE)接受;不同AS的PE上配置的Route Target则不需要匹配。
配置跨域VPN-OptionB时,需要注意:ASBR在将VPNv6路由发布给MP-IBGP对等体时,始终会将下一跳修改为自身的地址,不受peer next-hop-local命令的控制。
配置基本IPv6 MPLS L3VPN,并指定同一AS内的ASBR为MP-IBGP对等体。对于同一个IPv6 VPN,不同AS的PE上为该VPN实例配置的Route Target需要匹配。
(1) 进入系统视图。
system-view
(2) 在连接AS内部路由器的接口上使能MPLS和LDP能力。
a. 配置本节点的LSR ID。
mpls lsr-id lsr-id
缺省情况下,未配置LSR ID。
b. 使能本节点的LDP能力,并进入LDP视图。
mpls ldp
缺省情况下,LDP能力处于关闭状态。
c. 退回系统视图。
quit
d. 进入连接AS内部路由器接口的接口视图。
interface interface-type interface-number
e. 使能接口的MPLS能力。
mpls enable
缺省情况下,接口的MPLS能力处于关闭状态。
f. 使能接口的LDP能力。
mpls ldp enable
缺省情况下,接口的LDP能力处于关闭状态。
g. 退回系统视图。
quit
(3) 在连接对端ASBR的接口上使能MPLS能力。
a. 进入连接对端ASBR接口的接口视图。
interface interface-type interface-number
b. 使能接口的MPLS能力。
mpls enable
缺省情况下,接口的MPLS能力处于关闭状态。
c. 退回系统视图。
quit
(4) 进入BGP实例视图。
bgp as-number [ instance instance-name ]
(5) 创建BGP对等体,将同一AS的PE配置为IBGP对等体,将不同AS的ASBR配置为EBGP对等体。
peer { group-name | ipv4-address [ mask-length ] } as-number as-number
(6) 进入BGP VPNv6地址族视图。
address-family vpnv6
(7) 使能本地路由器与同一AS的PE、不同AS的ASBR交换VPNv6路由信息的能力。
peer { group-name | ipv4-address [ mask-length ] } enable
缺省情况下,本地路由器不能与对等体交换VPNv6路由信息。
(8) 配置对接收到的VPNv6路由不进行Route Target过滤。
undo policy vpn-target
缺省情况下,对接收到的VPNv6路由进行Route Target过滤。
执行本配置前,需要在PE或ASBR上配置通过BGP发布PE地址对应的路由,配置方法请参见“三层技术-IP路由配置指导”中的“BGP”。
PE上还需完成以下操作:
· 配置VPN实例
· 配置PE-CE之间的路由交换
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图。
bgp as-number [ instance instance-name ]
(3) 创建BGP对等体,将本AS的ASBR-PE配置为IBGP对等体,将另一AS的PE配置为EBGP对等体。
peer { group-name | ipv4-address [ mask-length ] } as-number as-number
(4) 进入BGP IPv4单播地址族视图。
address-family ipv4 [ unicast ]
(5) 使能与本AS的ASBR-PE交换BGP IPv4单播路由的能力。
peer { group-name | ipv4-address [ mask-length ] } enable
缺省情况下,不能与本AS的ASBR-PE交换BGP IPv4单播路由。
(6) 配置与本AS的ASBR-PE之间能够交换带标签的路由。
peer { group-name | ipv4-address [ mask-length ] } label-route-capability
缺省情况下,不向IPv4对等体/对等体组发送标签路由。
(7) 退回BGP实例视图。
quit
(8) 进入BGP VPNv6地址族视图。
address-family vpnv6
(9) 使能本地路由器与另一AS的PE交换VPNv6路由信息的能力。
peer ipv4-address [ mask-length ] enable
缺省情况下,本地路由器不能与对等体交换VPNv6路由信息。
(10) 配置向对等体发送路由时不改变下一跳。
peer { group-name | ipv4-address [ mask-length ] } next-hop-invariable
该步骤用于使用RR通告VPNv6路由的情况:在RR上执行本配置,使得RR之间通告VPNv6路由时,路由的下一跳不会被改变。
(1) 进入系统视图。
system-view
(2) 配置路由策略。
a. 创建路由策略,并进入路由策略视图。
route-policy route-policy-name { deny | permit } node node-number
b. 匹配带标签的IPv4路由。
if-match mpls-label
缺省情况下,不匹配路由信息的MPLS标签。
在路由策略中,还可以配置其他的if-match子句,以实现只对满足某些条件的路由分配标签,其它路由仍作为普通IPv4路由发布。
c. 为IPv4路由分配标签。
apply mpls-label
缺省情况下,没有为IPv4路由分配标签。
d. 退回系统视图。
quit
(3) 在连接AS内部路由器的接口上使能MPLS和LDP能力。
a. 配置本节点的LSR ID。
mpls lsr-id lsr-id
缺省情况下,未配置LSR ID。
b. 使能本节点的LDP能力,并进入LDP视图。
mpls ldp
缺省情况下,LDP能力处于关闭状态。
c. 退回系统视图。
quit
d. 进入连接AS内部路由器接口的接口视图。
interface interface-type interface-number
e. 使能接口的MPLS能力。
mpls enable
缺省情况下,接口的MPLS能力处于关闭状态。
f. 使能接口的LDP能力。
mpls ldp enable
缺省情况下,接口的LDP能力处于关闭状态。
g. 退回系统视图。
quit
(4) 在连接对端ASBR的接口上使能MPLS能力。
a. 进入连接对端ASBR接口的接口视图。
interface interface-type interface-number
b. 使能接口的MPLS能力。
mpls enable
缺省情况下,接口的MPLS能力处于关闭状态。
c. 退回系统视图。
quit
(5) 进入BGP实例视图。
bgp as-number [ instance instance-name ]
(6) 创建BGP对等体,将本AS的PE配置为IBGP对等体,将另一AS的ASBR配置为EBGP对等体。
peer { group-name | ipv4-address [ mask-length ] } as-number as-number
(7) 创建BGP IPv4单播地址族,并进入BGP IPv4单播地址族视图。
address-family ipv4 [ unicast ]
(8) 使能本地路由器与本AS的PE、另一AS的ASBR交换IPv4单播路由信息的能力。
peer { group-name | ipv4-address [ mask-length ] } enable
缺省情况下,本地路由器不能与对等体交换IPv4单播路由信息。
(9) 配置与本AS的PE及另一AS的ASBR之间能够交换带标签的IPv4路由。
peer { group-name | ipv4-address [ mask-length ] } label-route-capability
缺省情况下,不具有与对等体/对等体组交换带标签IPv4路由的能力。
(10) 对来自对等体/对等体组的路由或发布给对等体/对等体组的路由应用路由策略。
peer { group-name | ipv4-address [ mask-length ] } route-policy route-policy-name { export | import }
缺省情况下,没有为对等体/对等体组指定路由策略。
执行本配置前,需要在PE或ASBR上配置通过BGP发布PE地址对应的路由,配置方法请参见“三层技术-IP路由配置指导”中的“BGP”。
PE上还需完成以下操作:
· 配置VPN实例
· 配置PE-CE之间的路由交换
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图。
bgp as-number [ instance instance-name ]
(3) 创建BGP对等体,将另一AS的PE配置为EBGP对等体。
peer { group-name | ipv4-address [ mask-length ] } as-number as-number
(4) 进入BGP VPNv6地址族视图。
address-family vpnv6
(5) 使能本地路由器与另一AS的PE交换VPNv6路由信息的能力。
peer ipv4-address [ mask-length ] enable
缺省情况下,本地路由器不能与对等体交换VPNv6路由信息。
(6) (可选)配置向对等体发送路由时不改变下一跳。
peer { group-name | ipv4-address [ mask-length ] } next-hop-invariable
缺省情况下,向对等体/对等体组发布路由时会将下一跳改为自己的地址。
本配置用于使用RR通告VPNv6路由的情况:在RR上执行本配置,使得RR之间通告VPNv6路由时,路由的下一跳不会被改变。
(1) 进入系统视图。
system-view
(2) 配置路由策略。
a. 创建路由策略,并进入路由策略视图。
route-policy route-policy-name { deny | permit } node node-number
b. 匹配带标签的IPv4路由。
if-match mpls-label
缺省情况下,不匹配路由信息的MPLS标签。
在路由策略中,还可以配置其他的if-match子句,以实现只对满足某些条件的路由分配标签,其它路由仍作为普通IPv4路由发布。
c. 为IPv4路由分配标签。
apply mpls-label
缺省情况下,没有为IPv4路由分配标签。
d. 退回系统视图。
quit
(3) 在连接AS内部路由器的接口上使能MPLS和LDP能力。
a. 配置本节点的LSR ID。
mpls lsr-id lsr-id
缺省情况下,未配置LSR ID。
b. 使能本节点的LDP能力,并进入LDP视图。
mpls ldp
缺省情况下,LDP能力处于关闭状态。
c. 退回系统视图。
quit
d. 进入连接AS内部路由器接口的接口视图。
interface interface-type interface-number
e. 使能接口的MPLS能力。
mpls enable
缺省情况下,接口的MPLS能力处于关闭状态。
f. 使能接口的LDP能力。
mpls ldp enable
缺省情况下,接口的LDP能力处于关闭状态。
g. 退回系统视图。
quit
(4) 在连接对端ASBR的接口上使能MPLS能力。
a. 进入连接对端ASBR接口的接口视图。
interface interface-type interface-number
b. 使能接口的MPLS能力。
mpls enable
缺省情况下,接口的MPLS能力处于关闭状态。
c. 退回系统视图。
quit
(5) 进入BGP实例视图。
bgp as-number [ instance instance-name ]
(6) 创建BGP对等体,将另一AS的ASBR配置为EBGP对等体。
peer { group-name | ipv4-address [ mask-length ] } as-number as-number
(7) 创建BGP IPv4单播地址族,并进入BGP IPv4单播地址族视图。
address-family ipv4 [ unicast ]
(8) 使能本地路由器与另一AS的ASBR交换IPv4单播路由信息的能力。
peer { group-name | ipv4-address [ mask-length ] } enable
缺省情况下,本地路由器不能与对等体交换IPv4单播路由信息。
(9) 配置与另一AS的ASBR之间能够交换带标签的IPv4路由。
peer { group-name | ipv4-address [ mask-length ] } label-route-capability
缺省情况下,不具有与对等体/对等体组交换带标签IPv4路由的能力。
(10) 配置向本AS的PE发布路由时将下一跳改为自己的地址。
peer { group-name | ipv4-address [ mask-length ] } next-hop-local
缺省情况下,在向IBGP对等体/对等体组发布路由时不会将下一跳改为自己的地址。
(11) 对来自对等体/对等体组的路由或发布给对等体/对等体组的路由应用路由策略。
peer { group-name | ipv4-address [ mask-length ] } route-policy route-policy-name { export | import }
缺省情况下,没有为对等体/对等体组指定路由策略。
多角色主机特性的配置都在多角色主机所属Site接入的PE上进行,主要包括如下配置:
· 配置并应用策略路由:使得多角色主机发送的报文可以发送到多个VPN。
· 配置静态路由:使得其他VPN返回的报文能够发送给多角色主机。
(1) 进入系统视图。
system-view
(2) 创建IPv6策略节点,并进入IPv6策略节点视图。
ipv6 policy-based-route policy-name { deny | permit } node node-number
(3) 配置IPv6策略节点的匹配规则。
详细介绍请参见“三层技术-IP路由配置指导”中的“IPv6策略路由”
缺省情况下,未配置IPv6策略节点的匹配规则,所有报文都满足该节点的匹配规则。
本配置用来匹配来自多角色主机的报文。
(4) 设置报文在指定VPN实例中进行转发。
apply access-vpn vpn-instance vpn-instance-name&<1-n>
缺省情况下,未设置报文在指定VPN实例中进行转发。
本配置中需要指定多个VPN实例,第一个为多角色主机所属的VPN实例,其余为需要访问的其他VPN实例。报文满足匹配规则后,将根据第一个可用的VPN实例转发表进行转发。
(5) 退回系统视图。
quit
(6) 进入接入CE的接口视图。
interface interface-type interface-number
(7) 对接口转发的报文应用策略。
ipv6 policy-based-route policy-name
缺省情况下,对接口转发的报文没有应用策略。
(1) 进入系统视图。
system-view
(2) 为指定VPN实例配置静态路由。
ipv6 route-static vpn-instance s-vpn-instance-name ipv6-address prefix-length vpn-instance d-vpn-instance-name nexthop-address
其中,d-vpn-instance-name为多角色主机所属的VPN实例,next-hop-address为多角色主机所在Site的CE设备的地址。
在配置OSPF伪连接之前,需完成以下任务:
· 配置基本IPv6 MPLS L3VPN(PE-CE间使用OSPFv3)
· 在用户CE所在局域网内配置OSPFv3
(1) 进入系统视图。
system-view
(2) 创建Loopback接口,并进入Loopback接口视图。
interface loopback interface-number
(3) 将Loopback接口与VPN实例关联。
ip binding vpn-instance vpn-instance-name
缺省情况下,接口不关联任何VPN实例,属于公网接口。
(4) 配置Loopback接口的IPv6地址。
配置方法,请参见“三层技术-IP业务配置指导”中的“IPv6基础”。
缺省情况下,未配置Loopback接口的IPv6地址。
(5) 进入BGP实例视图。
bgp as-number [ instance instance-name ]
(6) 进入BGP-VPN实例视图。
ip vpn-instance vpn-instance-name
(7) 进入BGP-VPN IPv6单播地址族视图。
address-family ipv6 [ unicast ]
(8) 引入直连路由(将Loopback主机路由引入BGP)。
import-route direct
缺省情况下,不会引入直连路由。
(1) 进入系统视图。
system-view
(2) 进入OSPFv3视图。
ospfv3 [ process-id | vpn-instance vpn-instance-name ] *
(3) 进入OSPFv3区域视图。
area area-id
(4) 创建一条OSPFv3伪连接。
sham-link source-ipv6-address destination-ipv6-address [ cost cost-value | dead dead-interval | hello hello-interval | instance instance-id | ipsec-profile profile-name | keychain keychain-name | retransmit retrans-interval | trans-delay delay ] *
不同Site的CE具有相同的AS号时,PE上需要开启BGP的AS号替换功能,从而避免路由被丢弃。
使能了BGP的AS号替换功能后,当PE向指定CE发布路由时,如果路由的AS_PATH中有与CE相同的AS号,将被替换成PE的AS号后再发布。
PE使用不同接口连接同一站点的多个CE时,如果配置了BGP的AS号替换功能,则会导致路由环路。这种情况下,需要在PE上通过peer soo命令为从同一站点不同CE学习到的路由添加相同的SoO属性,且PE向CE发布路由时检查SoO属性,如果路由的SoO属性与为CE配置的SoO属性相同,则不将该路由发布给CE,从而避免路由环路。
本配置中各命令的详细介绍,请参见“三层技术-IP路由命令参考”中的“BGP”。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图。
bgp as-number [ instance instance-name ]
(3) 进入BGP-VPN实例视图。
ip vpn-instance vpn-instance-name
(4) 使能BGP的AS号替换功能。
peer { group-name | ipv6-address [ prefix-length ] } substitute-as
缺省情况下,BGP的AS号替换功能处于关闭状态。
(5) 进入BGP-VPN IPv6单播地址族视图。
address-family ipv6 [ unicast ]
(6) (可选)为BGP对等体/对等体组配置SoO属性。
peer { group-name | ipv6-address [ prefix-length ] } soo site-of-origin
缺省情况下,没有为BGP对等体/对等体组配置SoO属性。
缺省情况下,BGP只发布一条最优路由。如果最优路由所在路径出现网络故障,数据流量将会被中断,直到BGP根据新的网络拓扑路由收敛后,被中断的流量才能恢复正常的传输。
配置了Add-Path(Additional Paths)功能后,BGP可以向邻居发送本地前缀相同下一跳不同的多条路由。网络出现故障后,次优路由可以成为新的最优路由,这样就缩短了流量中断时间。
Add-Path能力包括接收和发送两种。为了让对等体间的Add-Path能力协商成功,必须一端使能接收能力,另一端使能发送能力。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图。
bgp as-number [ instance instance-name ]
(3) 进入BGP VPNv6地址族视图。
address-family vpnv6
(4) 配置Add-Path功能。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } additional-paths { receive | send } *
缺省情况下,未配置Add-Path功能。
(5) 配置向指定对等体/对等体组发送的Add-Path优选路由的最大条数。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } advertise additional-paths best number
缺省情况下,向指定对等体/对等体组发送的Add-Path优选路由的最大条数为1。
(6) 配置Add-Path优选路由的最大条数。
additional-paths select-best best-number
缺省情况下,Add-Path优选路由的最大条数为1。
本配置可以实现以下功能:
· BGP向VPN实例的IP路由表添加路由时,优选与当前VPN实例Route Target属性匹配的路由。
配置了undo policy vpn-target命令后,与当前VPN实例Route Target属性不匹配的VPNv6路由可以添加到VPN实例的BGP路由表中,并能够在BGP路由表中被优选。但是这些路由无法添加到当前VPN实例的IP路由表中,从而导致该路由在当前VPN实例内不可达。
通过配置本功能,可以解决上述问题。配置本功能后,对于到达同一目的地址的不同BGP路由,如果其中存在与当前VPN实例Route Target属性匹配的路由,则将其中最优的路由添加到当前VPN实例的IP路由表中。
例如,VPN实例vpna的Import Target值为10:1,vpna的BGP路由表中存在两条目的地址为3::3的路由,分别是3::3 <RT: 10:1>和3::3 <RT: 20:1>,其中3::3 <RT: 20:1>为最优路由。配置本功能后,BGP会将与vpna的Import Target值匹配的路由3::3 <RT: 10:1>添加到vpna的IP路由表中。
· 向对等体发布BGP路由时,如果最优路由无法发布,则发布次优路由;只有到达同一目的地址的所有路由均无法发布时,才不发布该目的地址对应的路由。
由于VPN实例下的BGP路由表中包含当前VPN实例IP路由表的路由,所以某些BGP地址族的路由表中可能包含非当前地址族学习到的路由。例如,通过BGP EVPN地址族学习到IP前缀路由后,该路由会被添加到对应VPN实例的IP路由表中,同时在该VPN实例的BGP-VPN IPv6单播地址族以及BGP VPNv6地址族的BGP路由表中也存在该路由。在发布路由时,如果BGP最优路由不是来自当前的地址族,则该路由无法发送给当前地址族的对等体,导致路由发送失败。
配置本功能后,设备在发布BGP路由时,如果最优路由无法发送给对等体,则选择次优路由进行发布;如果次优路由也不能发布,则根据优先级选择更次优的路由发布;直至选择出能发布的路由进行发布,或到达同一目的地址的所有路由均发布失败后,不发布该目的地址对应的路由。
例如,设备同时通过BGP VPNv6地址族以及BGP EVPN地址族学习到了IP前缀为3::3/128的路由,则在BGP VPNv6地址族的BGP路由表中,存在两条目的地址为3::3/128的路由,从BGP EVPN地址族学习到的路由为最优路由。由于这条路由来自BGP EVPN地址族,该路由不能发布给BGP VPNv6对等体,导致网络中仅部署了BGP VPNv6的节点无法获得IP前缀为3::3/128的路由信息。配置了本功能后,设备会向BGP VPNv6对等体发布通过BGP VPNv6地址族学习到的IP前缀为3::3/128的次优路由,以保障路由信息的正常发布。
本命令对所有VPN实例的BGP路由均生效,请谨慎使用。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图。
bgp as-number [ instance instance-name ]
(3) 配置BGP向VPN实例IP路由表添加路由时优选RT匹配的路由,以及BGP VPN实例下的路由发布时可以发布非最优路由。
bestroute same-rd
缺省情况下,BGP向VPN实例路由表添加路由时,优选当前BGP路由表中的最优路由;向对等体发布BGP路由时,只发布最优路由。
在IPv6 BGP/IPv6 MPLS L3VPN组网中,只有Route Target属性匹配的VPN实例之间才可以通信。通过配置本功能可以实现:
· 将公网或其他VPN实例的路由信息引入到指定VPN实例中,从而使指定VPN用户可以获取访问公网或其他VPN的路由。
· 将指定VPN实例的路由信息引入到公网中,从而使公网获取指定VPN的路由,以便转发用户流量。
在流量智能调控场景中,不同租户的流量被划分到不同的VPN中。为了使租户流量可以流向公网,则需要将公网的路由信息引入到指定VPN实例中。
(1) 进入系统视图。
system-view
(2) 进入VPN实例视图。
ip vpn-instance vpn-instance-name
(3) 进入VPN实例IPv6地址族视图。
address-family ipv6
(4) 将公网或其他VPN实例的路由信息引入到指定VPN实例中。
route-replicate from { public | vpn-instance vpn-instance-name } protocol { bgp4+ as-number | direct | static | { isisv6 | ospfv3 | ripng } process-id } [ advertise ] [ route-policy route-policy-name ]
缺省情况下,公网或其他VPN实例的路由信息不能引入到指定VPN实例中。
(1) 进入系统视图。
system-view
(2) 进入公网实例视图。
ip public-instance
(3) 进入公网实例IPv6地址族视图。
address-family ipv6
(4) 将指定VPN实例的路由信息引入到公网中。
route-replicate from vpn-instance vpn-instance-name protocol { bgp4+ as-number | direct | static | { isisv6 | ospfv3 | ripng } process-id } [ advertise ] [ route-policy route-policy-name ]
缺省情况下,VPN实例的路由信息不能引入到公网中。
当BGP路由器需要撤销大量路由时,撤销所有的路由会耗费一定时间,导致有些流量不能快速切换到有效路径。对于某些重要的、不希望长时间中断的流量,可以通过本配置,确保BGP路由器优先发送这些路由的撤销消息,以便将指定流量快速地切换到有效路径上,最大限度地减少流量中断时间。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图。
bgp as-number [ instance instance-name ]
(3) 创建BGP VPNv6地址族,并进入BGP VPNv6地址族视图。
address-family vpnv6
(4) 配置优先发送指定路由的撤销消息。
update-first route-policy route-policy-name
缺省情况下,不支持优先发送指定路由的撤销消息。
BGP如果在路由迭代的过程中不对迭代的结果路由进行任何限制,则可能会将路由迭代到一个错误的转发路径上。可以通过配置本功能,使得用户通过路由策略灵活的匹配条件,有选择性地影响BGP路由的迭代结果,从而保证BGP路由的下一跳能够迭代到用户期望的路径上。
配置本功能后,BGP路由的下一跳只能迭代到通过路由策略过滤的路由上。如果BGP路由迭代到的下一跳路由均无法通过路由策略的过滤,则该路由将被标识为不可达,无法生效。路由通过路由策略过滤的判断条件是:路由能够通过本命令指定的路由策略中允许模式节点的过滤。
如果在BGP VPNv6地址族视图下配置了nexthop recursive-lookup route-policy命令,并同时在RIB IPv4地址族视图下配置了protocol nexthop recursive-lookup命令,则对于BGP VPNv6地址族中的BGP路由,采用该地址族视图下配置的nexthop recursive-lookup route-policy命令。如果BGP VPNv6地址族视图下未配置nexthop recursive-lookup route-policy命令,仅在RIB IPv4地址族视图下配置了protocol nexthop recursive-lookup命令,则BGP VPNv6路由使用RIB IPv4地址族视图下protocol nexthop recursive-lookup命令的配置来进行下一跳迭代查找。
nexthop recursive-lookup route-policy命令的详细介绍,请参见“三层技术-IP路由命令参考”中的“BGP”。
protocol nexthop recursive-lookup命令的详细介绍,请参见“三层技术-IP路由命令参考”中的“IP路由基础”。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图。
bgp as-number [ instance instance-name ]
(3) 进入BGP VPNv6地址族视图。
address-family vpnv6
(4) 配置BGP路由根据路由策略来过滤迭代到的下一跳路由。
nexthop recursive-lookup route-policy route-policy-name
缺省情况下,BGP不根据路由策略来过滤迭代到的下一跳路由。
配置本命令后,如果BGP VPNv6地址族中的所有BGP路由迭代到的下一跳路由均无法通过路由策略的过滤,该地址族下的所有BGP路由将全部成为不可达路由。请用户在配置本命令前,规划好期望迭代到的下一跳路由,使其能够通过指定路由策略中允许模式节点的过滤。
当BGP配置变化后,可以通过软复位或复位BGP会话使新的配置生效。软复位BGP会话是指在不断开BGP邻居关系的情况下,更新BGP路由信息;复位BGP会话是指断开并重新建立BGP邻居关系的情况下,更新BGP路由信息。软复位需要BGP对等体具备路由刷新能力(支持ROUTE-REFRESH消息)。
请在用户视图下进行下列操作。下表中各命令的详细介绍,请参见“三层技术-IP路由命令参考”中的“BGP”。
操作 |
命令 |
手工对VPNv6地址族下的BGP会话进行软复位 |
refresh bgp [ instance instance-name ] { ipv4-address [ mask-length ] | all | external | group group-name | internal } { export | import } vpnv6 |
复位VPNv6地址族下的BGP会话 |
reset bgp [ instance instance-name ] { as-number | ipv4-address [ mask-length ] | 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”。
操作 |
命令 |
显示BGP VPNv6对等体组的信息 |
display bgp [ instance instance-name ] group vpnv6 [ group-name group-name ] |
显示BGP VPNv6对等体的信息 |
display bgp [ instance instance-name ] peer vpnv6 [ ipv4-address mask-length | { ipv4-address | group-name group-name } log-info | [ ipv4-address ] verbose ] |
显示BGP VPNv6路由信息 |
display bgp [ instance instance-name ] routing-table vpnv6 [ [ route-distinguisher route-distinguisher ] [ ipv6-address prefix-length [ advertise-info ] | as-path-acl as-path-acl-number | community-list { { basic-community-list-number | comm-list-name } [ whole-match ] | adv-community-list-number } ] | peer ipv4-address { advertised-routes | received-routes } [ ipv6-address prefix-length | statistics ] | statistics ] display bgp [ instance instance-name ] routing-table vpnv6 [ same-rd-selected ] |
显示所有BGP VPNv6路由的入标签信息 |
display bgp [ instance instance-name ] routing-table vpnv6 inlabel |
显示所有BGP VPNv6路由的出标签信息 |
display bgp [ instance instance-name ] routing-table vpnv6 outlabel |
显示BGP VPNv6地址族下打包组的相关信息 |
display bgp [ instance instance-name ] update-group vpnv6 [ ipv4-address ] |
显示指定VPN实例信息 |
display ip vpn-instance [ instance-name vpn-instance-name ] |
显示指定VPN实例的IPv6 FIB信息 |
display ipv6 fib vpn-instance vpn-instance-name [ ipv6-address [ prefix-length ] ] |
显示与VPN实例相关联的IPv6路由表(本命令的详细介绍请参见“三层技术-IP路由命令参考”中的“IP路由基础命令”) |
display ipv6 routing-table vpn-instance vpn-instance-name [ verbose ] |
显示OSPFv3伪连接信息 |
display ospfv3 [ process-id ] [ area area-id ] sham-link [ verbose ] |
· CE 1、CE 3属于VPN 1,CE 2、CE 4属于VPN 2;
· VPN 1使用的Route Target属性为111:1,VPN 2使用的Route Target属性为222:2。不同VPN用户之间不能互相访问;
· CE与PE之间配置EBGP交换VPN路由信息;
· PE与PE之间配置OSPF实现PE内部的互通、配置MP-IBGP交换VPN路由信息。
设备 |
接口 |
IP地址 |
设备 |
接口 |
IP地址 |
CE 1 |
GE1/0/1 |
2001:1::1/96 |
P |
Loop0 |
2.2.2.9/32 |
PE 1 |
Loop0 |
1.1.1.9/32 |
|
GE1/0/4 |
172.1.1.2/24 |
|
GE1/0/1 |
2001:1::2/96 |
|
GE1/0/5 |
172.2.1.1/24 |
|
GE1/0/2 |
2001:2::2/96 |
PE 2 |
Loop0 |
3.3.3.9/32 |
|
GE1/0/4 |
172.1.1.1/24 |
|
GE1/0/1 |
2001:3::2/96 |
CE 2 |
GE1/0/1 |
2001:2::1/96 |
|
GE1/0/2 |
2001:4::2/96 |
CE 3 |
GE1/0/1 |
2001:3::1/96 |
|
GE1/0/4 |
172.2.1.2/24 |
CE 4 |
GE1/0/1 |
2001:4::1/96 |
|
|
|
(1) 在MPLS骨干网上配置IGP协议,实现骨干网PE和P的互通
# 配置PE 1。
<PE1> system-view
[PE1] interface loopback 0
[PE1-LoopBack0] ip address 1.1.1.9 32
[PE1-LoopBack0] quit
[PE1] interface gigabitethernet 1/0/4
[PE1-GigabitEthernet1/0/4] ip address 172.1.1.1 24
[PE1-GigabitEthernet1/0/4] 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> system-view
[P] interface loopback 0
[P-LoopBack0] ip address 2.2.2.9 32
[P-LoopBack0] quit
[P] interface gigabitethernet 1/0/4
[P-GigabitEthernet1/0/4] ip address 172.1.1.2 24
[P-GigabitEthernet1/0/4] quit
[P] interface gigabitethernet 1/0/5
[P-GigabitEthernet1/0/5] ip address 172.2.1.1 24
[P-GigabitEthernet1/0/5] 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> system-view
[PE2] interface loopback 0
[PE2-LoopBack0] ip address 3.3.3.9 32
[PE2-LoopBack0] quit
[PE2] interface gigabitethernet 1/0/4
[PE2-GigabitEthernet1/0/4] ip address 172.2.1.2 24
[PE2-GigabitEthernet1/0/4] 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路由。
(2) 在MPLS骨干网上配置MPLS基本能力和MPLS LDP,建立LDP LSP
# 配置PE 1。
[PE1] mpls lsr-id 1.1.1.9
[PE1] mpls ldp
[PE1-ldp] quit
[PE1] interface gigabitethernet 1/0/4
[PE1-GigabitEthernet1/0/4] mpls enable
[PE1-GigabitEthernet1/0/4] mpls ldp enable
[PE1-GigabitEthernet1/0/4] quit
# 配置P。
[P] mpls lsr-id 2.2.2.9
[P] mpls ldp
[P-ldp] quit
[P] interface gigabitethernet 1/0/4
[P-GigabitEthernet1/0/4] mpls enable
[P-GigabitEthernet1/0/4] mpls ldp enable
[P-GigabitEthernet1/0/4] quit
[P] interface gigabitethernet 1/0/5
[P-GigabitEthernet1/0/5] mpls enable
[P-GigabitEthernet1/0/5] mpls ldp enable
[P-GigabitEthernet1/0/5] quit
# 配置PE 2。
[PE2] mpls lsr-id 3.3.3.9
[PE2] mpls ldp
[PE2-ldp] quit
[PE2] interface gigabitethernet 1/0/4
[PE2-GigabitEthernet1/0/4] mpls enable
[PE2-GigabitEthernet1/0/4] mpls ldp enable
[PE2-GigabitEthernet1/0/4] quit
上述配置完成后,PE 1、P、PE 2之间应能建立LDP会话,执行display mpls ldp peer命令可以看到LDP会话状态为Operational。执行display mpls ldp lsp命令,可以看到LDP LSP的建立情况。
(3) 在PE设备上配置IPv6 VPN实例,将CE接入PE
# 配置PE 1。
[PE1] ip vpn-instance vpn1
[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 1/0/1
[PE1-GigabitEthernet1/0/1] ip binding vpn-instance vpn1
[PE1-GigabitEthernet1/0/1] ipv6 address 2001:1::2 96
[PE1-GigabitEthernet1/0/1] quit
[PE1] interface gigabitethernet 1/0/2
[PE1-GigabitEthernet1/0/2] ip binding vpn-instance vpn2
[PE1-GigabitEthernet1/0/2] ipv6 address 2001:2::2 96
[PE1-GigabitEthernet1/0/2] quit
# 配置PE 2。
[PE2] ip vpn-instance vpn1
[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 1/0/1
[PE2-GigabitEthernet1/0/1] ip binding vpn-instance vpn1
[PE2-GigabitEthernet1/0/1] ipv6 address 2001:3::2 96
[PE2-GigabitEthernet1/0/1] quit
[PE2] interface gigabitethernet 1/0/2
[PE2-GigabitEthernet1/0/2] ip binding vpn-instance vpn2
[PE2-GigabitEthernet1/0/2] ipv6 address 2001:4::2 96
[PE2-GigabitEthernet1/0/2] quit
# 按图2-3配置各CE的接口IP地址,配置过程略。
配置完成后,在PE设备上执行display ip vpn-instance命令可以看到VPN实例的配置情况。各PE能ping通自己接入的CE。
(4) 在PE与CE之间建立EBGP对等体,引入VPN路由
# 配置CE 1。
<CE1> system-view
[CE1] bgp 65410
[CE1-bgp-default] peer 2001:1::2 as-number 100
[CE1-bgp-default] address-family ipv6 unicast
[CE1-bgp-default-ipv6] peer 2001:1::2 enable
[CE1-bgp-default-ipv6] import-route direct
[CE1-bgp-default-ipv6] quit
[CE1-bgp-default] quit
# 另外3个CE设备(CE 2~CE 4)配置与CE 1设备配置类似,配置过程省略。
# 配置PE 1。
[PE1] bgp 100
[PE1-bgp-default] ip vpn-instance vpn1
[PE1-bgp-default-vpn1] peer 2001:1::1 as-number 65410
[PE1-bgp-default-vpn1] address-family ipv6 unicast
[PE1-bgp-default-ipv6-vpn1] peer 2001:1::1 enable
[PE1-bgp-default-ipv6-vpn1] import-route direct
[PE1-bgp-default-ipv6-vpn1] quit
[PE1-bgp-default-vpn1] quit
[PE1-bgp-default] ip vpn-instance vpn2
[PE1-bgp-default-vpn2] peer 2001:2::1 as-number 65420
[PE1-bgp-default-vpn2] address-family ipv6 unicast
[PE1-bgp-default-ipv6-vpn2] peer 2001:2::1 enable
[PE1-bgp-default-ipv6-vpn2] import-route direct
[PE1-bgp-default-ipv6-vpn2] quit
[PE1-bgp-default-vpn2] quit
[PE1-bgp-default] quit
# PE 2的配置与PE 1类似,配置过程省略。
配置完成后,在PE设备上执行display bgp peer ipv6 vpn-instance命令,可以看到PE与CE之间的BGP对等体关系已建立,并达到Established状态。
(5) 在PE之间建立MP-IBGP对等体
# 配置PE 1。
[PE1] bgp 100
[PE1-bgp-default] peer 3.3.3.9 as-number 100
[PE1-bgp-default] peer 3.3.3.9 connect-interface loopback 0
[PE1-bgp-default] address-family vpnv6
[PE1-bgp-default-vpnv6] peer 3.3.3.9 enable
[PE1-bgp-default-vpnv6] quit
[PE1-bgp-default] quit
# 配置PE 2。
[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设备上执行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 : GE1/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 : GE1/0/4 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 : GE1/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 : GE1/0/4 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 1。
· 在运营商骨干网上,PE设备具备MPLS能力,P设备只提供纯IP功能,不具备MPLS能力。
· 在骨干网上使用GRE隧道封装并转发VPN报文,实现IPv6 MPLS L3VPN。
· 在PE上配置隧道策略,指定VPN流量使用的隧道类型为GRE。(本配置可选)
图2-4 配置采用GRE隧道的IPv6 MPLS L3VPN组网图
设备 |
接口 |
IP地址 |
设备 |
接口 |
IP地址 |
CE 1 |
GE1/0/1 |
2001:1::1/96 |
P |
GE1/0/4 |
172.1.1.2/24 |
PE 1 |
Loop0 |
1.1.1.9/32 |
|
GE1/0/5 |
172.2.1.1/24 |
|
GE1/0/1 |
2001:1::2/96 |
PE 2 |
Loop0 |
2.2.2.9/32 |
|
GE1/0/5 |
172.1.1.1/24 |
|
GE1/0/1 |
2001:2::2/96 |
|
Tunnel0 |
20.1.1.1/24 |
|
GE1/0/4 |
172.2.1.2/24 |
CE 2 |
GE1/0/1 |
2001:2::1/96 |
|
Tunnel0 |
20.1.1.2/24 |
(1) 在MPLS骨干网上配置IGP协议,实现骨干网PE和P的互通
本例中采用OSPF发布接口(包括Loopback接口)所在网段的路由,具体配置过程略。
配置完成后,PE 1、P、PE 2之间应能建立OSPF邻居,执行display ospf peer命令可以看到邻居达到FULL状态。执行display ip routing-table命令可以看到PE之间学习到对方的Loopback路由。
(2) 在PE设备上使能MPLS基本能力
# 配置PE 1。
<PE1> system-view
[PE1] mpls lsr-id 1.1.1.9
# 配置PE 2。
<PE2> system-view
[PE2] mpls lsr-id 2.2.2.9
(3) 在PE设备上配置VPN实例,将CE接入PE,并在PE上应用隧道策略,指定使用GRE隧道转发VPN报文
# 配置PE 1。
[PE1] tunnel-policy gre1
[PE1-tunnel-policy-gre1] select-seq gre load-balance-number 1
[PE1-tunnel-policy-gre1] quit
[PE1] ip vpn-instance vpn1
[PE1-vpn-instance-vpn1] route-distinguisher 100:1
[PE1-vpn-instance-vpn1] vpn-target 100:1 both
[PE1-vpn-instance-vpn1] tnl-policy gre1
[PE1-vpn-instance-vpn1] quit
[PE1] interface gigabitethernet 1/0/1
[PE1-GigabitEthernet1/0/1] ip binding vpn-instance vpn1
[PE1-GigabitEthernet1/0/1] ipv6 address 2001:1::2 96
[PE1-GigabitEthernet1/0/1] quit
# 配置PE 2。
[PE2] tunnel-policy gre1
[PE2-tunnel-policy-gre1] select-seq gre load-balance-number 1
[PE2-tunnel-policy-gre1] quit
[PE2] ip vpn-instance vpn1
[PE2-vpn-instance-vpn1] route-distinguisher 100:2
[PE2-vpn-instance-vpn1] vpn-target 100:1 both
[PE2-vpn-instance-vpn1] tnl-policy gre1
[PE2-vpn-instance-vpn1] quit
[PE2] interface gigabitethernet 1/0/1
[PE2-GigabitEthernet1/0/1] ip binding vpn-instance vpn1
[PE2-GigabitEthernet1/0/1] ipv6 address 2001:2::2 96
[PE2-GigabitEthernet1/0/1] quit
# 配置CE 1。
<CE1> system-view
[CE1] interface gigabitethernet 1/0/1
[CE1-GigabitEthernet1/0/1] ipv6 address 2001:1::1 96
[CE1-GigabitEthernet1/0/1] quit
# 配置CE2。
<CE2> system-view
[CE2] interface gigabitethernet 1/0/1
[CE2-GigabitEthernet1/0/1] ipv6 address 2001:2::1 96
[CE2-GigabitEthernet1/0/1] quit
配置完成后,在PE设备上执行display ip vpn-instance命令可以看到VPN实例的配置情况。各PE能ping通自己接入的CE。
(4) 在PE与CE之间建立EBGP对等体,引入VPN路由
# 配置CE 1。
[CE1] bgp 65410
[CE1-bgp-default] peer 2001:1::2 as-number 100
[CE1-bgp-default] address-family ipv6 unicast
[CE1-bgp-default-ipv6] peer 2001:1::2 enable
[CE1-bgp-default-ipv6] import-route direct
[CE1-bgp-default-ipv6] quit
# 配置PE 1。
[PE1] bgp 100
[PE1-bgp-default] ip vpn-instance vpn1
[PE1-bgp-default-vpn1] peer 2001:1::1 as-number 65410
[PE1-bgp-default-vpn1] address-family ipv6 unicast
[PE1-bgp-default-ipv6-vpn1] peer 2001:1::1 enable
[PE1-bgp-default-ipv6-vpn1] import-route direct
[PE1-bgp-default-ipv6-vpn1] quit
[PE1-bgp-default-vpn1] quit
[PE1-bgp-default] quit
# CE 2的配置与CE 1类似,PE 2的配置与PE 1类似,配置过程省略。
配置完成后,在PE设备上执行display bgp peer ipv6 vpn-instance命令,可以看到PE与CE之间的BGP对等体关系已建立,并达到Established状态。
(5) 在PE之间建立MP-IBGP对等体
# 配置PE 1。
[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 2的配置与PE 1类似,配置过程省略。
配置完成后,在PE设备上执行display bgp peer vpnv6命令,可以看到PE之间的BGP对等体关系已建立,并达到Established状态。
(6) 配置GRE隧道
# 配置PE 1。
[PE1] interface tunnel 0 mode gre
[PE1-Tunnel0] source loopback 0
[PE1-Tunnel0] destination 2.2.2.9
[PE1-Tunnel0] ip address 20.1.1.1 24
[PE1-Tunnel0] mpls enable
[PE1-Tunnel0] quit
# 配置PE 2。
[PE2] interface tunnel 0 mode gre
[PE2-Tunnel0] source loopback 0
[PE2-Tunnel0] destination 1.1.1.9
[PE2-Tunnel0] ip address 20.1.1.2 24
[PE2-Tunnel0] mpls enable
[PE2-Tunnel0] quit
配置完成后,CE能学到对端CE的接口路由。CE之间能够ping通。
· 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路由信息。
图2-5 Hub&Spoke组网图
设备 |
接口 |
IP地址 |
设备 |
接口 |
IP地址 |
Spoke-CE 1 |
GE1/0/1 |
11::1/64 |
Hub-CE |
GE1/0/1 |
13::1/64 |
Spoke-PE 1 |
Loop0 |
1.1.1.9/32 |
|
GE1/0/2 |
14::1/64 |
|
GE1/0/1 |
11::2/64 |
Hub-PE |
Loop0 |
2.2.2.9/32 |
|
GE1/0/4 |
172.1.1.1/24 |
|
GE1/0/4 |
172.1.1.2/24 |
Spoke-CE 2 |
GE1/0/1 |
12::1/64 |
|
GE1/0/5 |
172.2.1.2/24 |
Spoke-PE 2 |
Loop0 |
3.3.3.9/32 |
|
GE1/0/1 |
13::2/64 |
|
GE1/0/1 |
12::2/64 |
|
GE1/0/2 |
14::2/64 |
|
GE1/0/4 |
172.2.1.1/24 |
|
|
|
(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 1/0/4
[Spoke-PE1-GigabitEthernet1/0/4] ip address 172.1.1.1 24
[Spoke-PE1-GigabitEthernet1/0/4] 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 1/0/4
[Spoke-PE2-GigabitEthernet1/0/4] ip address 172.1.1.1 24
[Spoke-PE2-GigabitEthernet1/0/4] 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 1/0/4
[Hub-PE-GigabitEthernet1/0/4] ip address 172.1.1.2 24
[Hub-PE-GigabitEthernet1/0/4] quit
[Hub-PE] interface gigabitethernet 1/0/5
[Hub-PE-GigabitEthernet1/0/5] ip address 172.2.1.2 24
[Hub-PE-GigabitEthernet1/0/5] 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 1/0/4
[Spoke-PE1-GigabitEthernet1/0/4] mpls enable
[Spoke-PE1-GigabitEthernet1/0/4] mpls ldp enable
[Spoke-PE1-GigabitEthernet1/0/4] 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 1/0/4
[Spoke-PE2-GigabitEthernet1/0/4] mpls enable
[Spoke-PE2-GigabitEthernet1/0/4] mpls ldp enable
[Spoke-PE2-GigabitEthernet1/0/4] quit
# 配置Hub-PE。
[Hub-PE] mpls lsr-id 2.2.2.9
[Hub-PE] mpls ldp
[Hub-PE-ldp] quit
[Hub-PE] interface gigabitethernet 1/0/4
[Hub-PE-GigabitEthernet1/0/4] mpls enable
[Hub-PE-GigabitEthernet1/0/4] mpls ldp enable
[Hub-PE-GigabitEthernet1/0/4] quit
[Hub-PE] interface gigabitethernet 1/0/5
[Hub-PE-GigabitEthernet1/0/5] mpls enable
[Hub-PE-GigabitEthernet1/0/5] mpls ldp enable
[Hub-PE-GigabitEthernet1/0/5] 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 1/0/1
[Spoke-PE1-GigabitEthernet1/0/1] ip binding vpn-instance vpn1
[Spoke-PE1-GigabitEthernet1/0/1] ip address 11::2 24
[Spoke-PE1-GigabitEthernet1/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 1/0/1
[Spoke-PE2-GigabitEthernet1/0/1] ip binding vpn-instance vpn1
[Spoke-PE2-GigabitEthernet1/0/1] ip address 12::2 24
[Spoke-PE2-GigabitEthernet1/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 1/0/1
[Hub-PE-GigabitEthernet1/0/1] ip binding vpn-instance vpn1-in
[Hub-PE-GigabitEthernet1/0/1] ip address 13::2 24
[Hub-PE-GigabitEthernet1/0/1] quit
[Hub-PE] interface gigabitethernet 1/0/2
[Hub-PE-GigabitEthernet1/0/2] ip binding vpn-instance vpn1-out
[Hub-PE-GigabitEthernet1/0/2] ip address 14::2 24
[Hub-PE-GigabitEthernet1/0/2] quit
# 配置各CE的接口IP地址,配置过程略。
配置完成后,在PE设备上执行display ip vpn-instance命令可以看到VPN实例的配置情况。各PE能ping通自己接入的CE。
(4) 在PE与CE之间建立EBGP对等体,引入VPN路由
# 配置Spoke-CE 1。
<Spoke-CE1> system-view
[Spoke-CE1] bgp 65410
[Spoke-CE1-bgp-default] peer 11::2 as-number 100
[Spoke-CE1-bgp-default] address-family ipv6
[Spoke-CE1-bgp-default-ipv6] peer 11::2 enable
[Spoke-CE1-bgp-default-ipv6] import-route direct
[Spoke-CE1-bgp-default-ipv6] quit
[Spoke-CE1-bgp-default] quit
# 配置Spoke-CE 2。
<Spoke-CE2> system-view
[Spoke-CE2] bgp 65420
[Spoke-CE2-bgp-default] peer 12::2 as-number 100
[Spoke-CE2-bgp-default] address-family ipv6
[Spoke-CE2-bgp-default-ipv6] peer 12::2 enable
[Spoke-CE2-bgp-default-ipv6] import-route direct
[Spoke-CE2-bgp-default-ipv6] quit
[Spoke-CE2-bgp-default] quit
# 配置Hub-CE。
<Hub-CE> system-view
[Hub-CE] bgp 65430
[Hub-CE-bgp-default] peer 13::2 as-number 100
[Hub-CE-bgp-default] peer 14::2 as-number 100
[Hub-CE-bgp-default] address-family ipv6
[Hub-CE-bgp-default-ipv6] peer 13::2 enable
[Hub-CE-bgp-default-ipv6] peer 14::2 enable
[Hub-CE-bgp-default-ipv6] import-route direct
[Hub-CE-bgp-default-ipv6] quit
[Hub-CE-bgp-default] quit
# 配置Spoke-PE 1。
[Spoke-PE1] bgp 100
[Spoke-PE1-bgp-default] ip vpn-instance vpn1
[Spoke-PE1-bgp-default-vpn1] peer 11::1 as-number 65410
[Spoke-PE1-bgp-default-vpn1] address-family ipv6
[Spoke-PE1-bgp-default-ipv6-vpn1] peer 11::1 enable
[Spoke-PE1-bgp-default-ipv6-vpn1] import-route direct
[Spoke-PE1-bgp-default-ipv6-vpn1] quit
[Spoke-PE1-bgp-default-vpn1] quit
[Spoke-PE1-bgp-default] quit
# 配置Spoke-PE 2。
[Spoke-PE2] bgp 100
[Spoke-PE2-bgp-default] ip vpn-instance vpn1
[Spoke-PE2-bgp-default-vpn1] peer 12::1 as-number 65420
[Spoke-PE2-bgp-default-vpn1] address-family ipv6
[Spoke-PE2-bgp-default-ipv6-vpn1] peer 12::1 enable
[Spoke-PE2-bgp-default-ipv6-vpn1] import-route direct
[Spoke-PE2-bgp-default-ipv6-vpn1] quit
[Spoke-PE2-bgp-default-vpn1] quit
[Spoke-PE2-bgp-default] quit
# 配置Hub-PE。
[Hub-PE] bgp 100
[Hub-PE-bgp-default] ip vpn-instance vpn1-in
[Hub-PE-bgp-default-vpn1-in] peer 13::1 as-number 65430
[Hub-PE-bgp-default-vpn1-in] address-family ipv6
[Hub-PE-bgp-default-ipv6-vpn1-in] peer 13::1 enable
[Hub-PE-bgp-default-ipv6-vpn1-in] import-route direct
[Hub-PE-bgp-default-ipv6-vpn1-in] quit
[Hub-PE-bgp-default-vpn1-in] quit
[Hub-PE-bgp-default] ip vpn-instance vpn1-out
[Hub-PE-bgp-default-vpn1-out] peer 14::1 as-number 65430
[Hub-PE-bgp-default-vpn1-out] address-family ipv6
[Hub-PE-bgp-default-ipv6-vpn1-out] peer 14::1 enable
[Hub-PE-bgp-default-ipv6-vpn1-out] peer 14::1 allow-as-loop 2
[Hub-PE-bgp-default-ipv6-vpn1-out] import-route direct
[Hub-PE-bgp-default-ipv6-vpn1-out] quit
[Hub-PE-bgp-default-vpn1-out] quit
[Hub-PE-bgp-default] quit
配置完成后,在PE设备上执行display bgp peer ipv6 vpn-instance命令,可以看到PE与CE之间的BGP对等体关系已建立,并达到Established状态。
(5) 在Spoke-PE和Hub-PE之间建立MP-IBGP对等体
# 配置Spoke-PE 1。
[Spoke-PE1] bgp 100
[Spoke-PE1-bgp-default] peer 2.2.2.9 as-number 100
[Spoke-PE1-bgp-default] peer 2.2.2.9 connect-interface loopback 0
[Spoke-PE1-bgp-default] address-family vpnv6
[Spoke-PE1-bgp-default-vpnv6] peer 2.2.2.9 enable
[Spoke-PE1-bgp-default-vpnv6] quit
[Spoke-PE1-bgp-default] quit
# 配置Spoke-PE 2。
[Spoke-PE2] bgp 100
[Spoke-PE2-bgp-default] peer 2.2.2.9 as-number 100
[Spoke-PE2-bgp-default] peer 2.2.2.9 connect-interface loopback 0
[Spoke-PE2-bgp-default] address-family vpnv6
[Spoke-PE2-bgp-default-vpnv6] peer 2.2.2.9 enable
[Spoke-PE2-bgp-default-vpnv6] quit
[Spoke-PE2-bgp-default] quit
# 配置Hub-PE。
[Hub-PE] bgp 100
[Hub-PE-bgp-default] peer 1.1.1.9 as-number 100
[Hub-PE-bgp-default] peer 1.1.1.9 connect-interface loopback 0
[Hub-PE-bgp-default] peer 3.3.3.9 as-number 100
[Hub-PE-bgp-default] peer 3.3.3.9 connect-interface loopback 0
[Hub-PE-bgp-default] address-family vpnv6
[Hub-PE-bgp-default-vpnv6] peer 1.1.1.9 enable
[Hub-PE-bgp-default-vpnv6] peer 3.3.3.9 enable
[Hub-PE-bgp-default-vpnv6] quit
[Hub-PE-bgp-default] quit
配置完成后,在PE设备上执行display bgp peer vpnv6命令,可以看到PE之间的BGP对等体关系已建立,并达到Established状态。
# Spoke-CE 1和Spoke-CE 2之间可以ping通。从TTL值可以推算出Spoke-CE 1到Spoke-CE 2经过6跳(64-59+1),即Spoke-CE 1和Spoke-CE 2之间的流量需要通过Hub-CE转发。以Spoke-CE 1为例:
[Spoke-CE1] ping ipv6 12::1
Ping6(56 bytes) 11::1 --> 12::1, press CTRL_C to break
56 bytes from 12::1, icmp_seq=0 hlim=59 time=0.000 ms
56 bytes from 12::1, icmp_seq=1 hlim=59 time=1.000 ms
56 bytes from 12::1, icmp_seq=2 hlim=59 time=0.000 ms
56 bytes from 12::1, icmp_seq=3 hlim=59 time=1.000 ms
56 bytes from 12::1, icmp_seq=4 hlim=59 time=0.000 ms
--- Ping6 statistics for 12::1 ---
5 packet(s) transmitted, 5 packet(s) received, 0.0% packet loss
round-trip min/avg/max/std-dev = 0.000/0.400/1.000/0.490 ms
· CE 1和CE 2属于同一个VPN。
· CE 1通过AS100的PE 1接入,CE2通过AS200的PE 2接入。
· 采用OptionA方式实现跨域的IPv6 MPLS L3VPN,即采用VRF-to-VRF方式管理VPN路由。
· 同一个AS内部的MPLS骨干网使用OSPF作为IGP。
图2-6 配置跨域VPN-OptionA方式组网图
设备 |
接口 |
IP地址 |
设备 |
接口 |
IP地址 |
CE 1 |
GE1/0/1 |
2001:1::1/96 |
CE 2 |
GE1/0/1 |
2001:2::1/96 |
PE 1 |
Loop0 |
1.1.1.9/32 |
PE 2 |
Loop0 |
4.4.4.9/32 |
|
GE1/0/1 |
2001:1::2/96 |
|
GE1/0/1 |
2001:2::2/96 |
|
GE1/0/4 |
172.1.1.2/24 |
|
GE1/0/4 |
162.1.1.2/24 |
ASBR-PE1 |
Loop0 |
2.2.2.9/32 |
ASBR-PE2 |
Loop0 |
3.3.3.9/32 |
|
GE1/0/4 |
172.1.1.1/24 |
|
GE1/0/4 |
162.1.1.1/24 |
|
GE1/0/5 |
2002:1::1/96 |
|
GE1/0/5 |
2002:1::2/96 |
(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> system-view
[PE1] mpls lsr-id 1.1.1.9
[PE1] mpls ldp
[PE1-ldp] quit
[PE1] interface gigabitethernet 1/0/4
[PE1-GigabitEthernet1/0/4] mpls enable
[PE1-GigabitEthernet1/0/4] mpls ldp enable
[PE1-GigabitEthernet1/0/4] quit
# 配置ASBR-PE 1的MPLS基本能力,并在与PE 1相连的接口上使能LDP。
<ASBR-PE1> system-view
[ASBR-PE1] mpls lsr-id 2.2.2.9
[ASBR-PE1] mpls ldp
[ASBR-PE1-ldp] quit
[ASBR-PE1] interface gigabitethernet 1/0/4
[ASBR-PE1-GigabitEthernet1/0/4] mpls enable
[ASBR-PE1-GigabitEthernet1/0/4] mpls ldp enable
[ASBR-PE1-GigabitEthernet1/0/4] quit
# 配置ASBR-PE 2的MPLS基本能力,并在与PE 2相连的接口上使能LDP。
<ASBR-PE2> system-view
[ASBR-PE2] mpls lsr-id 3.3.3.9
[ASBR-PE2] mpls ldp
[ASBR-PE2-ldp] quit
[ASBR-PE2] interface gigabitethernet 1/0/4
[ASBR-PE2-GigabitEthernet1/0/4] mpls enable
[ASBR-PE2-GigabitEthernet1/0/4] mpls ldp enable
[ASBR-PE2-GigabitEthernet1/0/4] quit
# 配置PE 2的MPLS基本能力,并在与ASBR-PE 2相连的接口上使能LDP。
<PE2> system-view
[PE2] mpls lsr-id 4.4.4.9
[PE2] mpls ldp
[PE2-ldp] quit
[PE2] interface gigabitethernet 1/0/4
[PE2-GigabitEthernet1/0/4] mpls enable
[PE2-GigabitEthernet1/0/4] mpls ldp enable
[PE2-GigabitEthernet1/0/4] quit
上述配置完成后,同一AS的PE和ASBR-PE之间应该建立起LDP邻居,在各设备上执行display mpls ldp peer命令可以看到LDP会话状态为“Operational”。
(3) 在PE设备上配置VPN实例,将CE接入PE
同一AS内的ASBR-PE与PE的VPN实例的Route Target应能匹配,不同AS的PE的VPN实例的Route Target则不需要匹配。
# 配置CE 1。
<CE1> system-view
[CE1] interface gigabitethernet 1/0/1
[CE1-GigabitEthernet1/0/1] ipv6 address 2001:1::1 96
[CE1-GigabitEthernet1/0/1] quit
# 配置PE 1。
[PE1] ip vpn-instance vpn1
[PE1-vpn-instance-vpn1] route-distinguisher 100:2
[PE1-vpn-instance-vpn1] vpn-target 100:1 both
[PE1-vpn-instance-vpn1] quit
[PE1] interface gigabitethernet 1/0/1
[PE1-GigabitEthernet1/0/1] ip binding vpn-instance vpn1
[PE1-GigabitEthernet1/0/1] ipv6 address 2001:1::2 96
[PE1-GigabitEthernet1/0/1] quit
# 配置CE 2。
<CE2> system-view
[CE2] interface gigabitethernet 1/0/1
[CE2-GigabitEthernet1/0/1] ipv6 address 2001:2::1 96
[CE2-GigabitEthernet1/0/1] quit
# 配置PE 2。
[PE2] ip vpn-instance vpn1
[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 1/0/1
[PE2-GigabitEthernet1/0/1] ip binding vpn-instance vpn1
[PE2-GigabitEthernet1/0/1] ipv6 address 2001:2::2 96
[PE2-GigabitEthernet1/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-instance-vpn1] route-distinguisher 100:1
[ASBR-PE1-vpn-instance-vpn1] vpn-target 100:1 both
[ASBR-PE1-vpn-instance-vpn1] quit
[ASBR-PE1] interface gigabitethernet 1/0/5
[ASBR-PE1-GigabitEthernet1/0/5] ip binding vpn-instance vpn1
[ASBR-PE1-GigabitEthernet1/0/5] ipv6 address 2002:1::1 96
[ASBR-PE1-GigabitEthernet1/0/5] quit
# 配置ASBR-PE 2:创建VPN实例,并将此实例绑定到连接ASBR-PE 1的接口(ASBR-PE 2认为ASBR-PE 1是自己的CE)。
[ASBR-PE2] ip vpn-instance vpn1
[ASBR-PE2-vpn-instance-vpn1] route-distinguisher 200:1
[ASBR-PE2-vpn-instance-vpn1] vpn-target 200:1 both
[ASBR-PE2-vpn-instance-vpn1] quit
[ASBR-PE2] interface gigabitethernet 1/0/5
[ASBR-PE2-GigabitEthernet1/0/5] ip binding vpn-instance vpn1
[ASBR-PE2-GigabitEthernet1/0/5] ipv6 address 2002:1::2 96
[ASBR-PE2-GigabitEthernet1/0/5] quit
上述配置完成后,在各PE设备上执行display ip vpn-instance命令能正确显示VPN实例配置。
各PE能ping通各自的CE。ASBR-PE之间也能互相ping通。
(4) 在PE与CE之间建立EBGP对等体,引入VPN路由
# 配置CE 1。
[CE1] bgp 65001
[CE1-bgp-default] peer 2001:1::2 as-number 100
[CE1-bgp-default] address-family ipv6 unicast
[CE1-bgp-default-ipv6] peer 2001:1::2 enable
[CE1-bgp-default-ipv6] import-route direct
[CE1-bgp-default-ipv6] quit
[CE1-bgp-default] quit
# 配置PE 1。
[PE1] bgp 100
[PE1-bgp-default] ip vpn-instance vpn1
[PE1-bgp-default-vpn1] peer 2001:1::1 as-number 65001
[PE1-bgp-default-vpn1] address-family ipv6 unicast
[PE1-bgp-default-ipv6-vpn1] peer 2001:1::1 enable
[PE1-bgp-default-ipv6-vpn1] import-route direct
[PE1-bgp-default-ipv6-vpn1] quit
[PE1-bgp-default-vpn1] quit
[PE1-bgp-default] quit
# 配置CE 2。
[CE2] bgp 65002
[CE2-bgp-default] peer 2001:2::2 as-number 200
[CE2-bgp-default] address-family ipv6
[CE2-bgp-default-ipv6] peer 2001:2::2 enable
[CE2-bgp-default-ipv6] import-route direct
[CE2-bgp-default-ipv6] quit
[CE2-bgp-default] quit
# 配置PE 2。
[PE2] bgp 200
[PE2-bgp-default] ip vpn-instance vpn1
[PE2-bgp-default-vpn1] peer 2001:2::1 as-number 65002
[PE2-bgp-default-vpn1] address-family ipv6 unicast
[PE2-bgp-default-ipv6-vpn1] peer 2001:2::1 enable
[PE2-bgp-default-ipv6-vpn1] import-route direct
[PE2-bgp-default-ipv6-vpn1] quit
[PE2-bgp-default-vpn1] quit
[PE2-bgp-default] quit
(5) PE与本AS的ASBR-PE之间建立IBGP对等体,ASBR-PE之间建立EBGP对等体
# 配置PE 1。
[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
# 配置ASBR-PE 1。
[ASBR-PE1] bgp 100
[ASBR-PE1-bgp-default] ip vpn-instance vpn1
[ASBR-PE1-bgp-default-vpn1] peer 2002:1::2 as-number 200
[ASBR-PE1-bgp-default-vpn1] address-family ipv6 unicast
[ASBR-PE1-bgp-default-ipv6-vpn1] peer 2002:1::2 enable
[ASBR-PE1-bgp-default-ipv6-vpn1] quit
[ASBR-PE1-bgp-default-vpn1] quit
[ASBR-PE1-bgp-default] peer 1.1.1.9 as-number 100
[ASBR-PE1-bgp-default] peer 1.1.1.9 connect-interface loopback 0
[ASBR-PE1-bgp-default] address-family vpnv6
[ASBR-PE1-bgp-default-vpnv6] peer 1.1.1.9 enable
[ASBR-PE1-bgp-default-vpnv6] quit
[ASBR-PE1-bgp-default] quit
# 配置ASBR-PE 2。
[ASBR-PE2] bgp 200
[ASBR-PE2-bgp-default] ip vpn-instance vpn1
[ASBR-PE2-bgp-default-vpn1] peer 2002:1::1 as-number 100
[ASBR-PE2-bgp-default-vpn1] address-family ipv6 unicast
[ASBR-PE2-bgp-default-ipv6-vpn1] peer 2002:1::1 enable
[ASBR-PE2-bgp-default-ipv6-vpn1] quit
[ASBR-PE2-bgp-default-vpn1] quit
[ASBR-PE2-bgp-default] peer 4.4.4.9 as-number 200
[ASBR-PE2-bgp-default] peer 4.4.4.9 connect-interface loopback 0
[ASBR-PE2-bgp-default] address-family vpnv6
[ASBR-PE2-bgp-default-vpnv6] peer 4.4.4.9 enable
[ASBR-PE2-bgp-default-vpnv6] quit
[ASBR-PE2-bgp-default] quit
# 配置PE 2。
[PE2] bgp 200
[PE2-bgp-default] peer 3.3.3.9 as-number 200
[PE2-bgp-default] peer 3.3.3.9 connect-interface loopback 0
[PE2-bgp-default] address-family vpnv6
[PE2-bgp-default-vpnv6] peer 3.3.3.9 enable
[PE2-bgp-default-vpnv6] quit
[PE2-bgp-default] 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-7 配置IPv6跨域VPN-OptionC方式组网图
设备 |
接口 |
IP地址 |
设备 |
接口 |
IP地址 |
PE 1 |
Loop0 |
2.2.2.9/32 |
PE 2 |
Loop0 |
5.5.5.9/32 |
|
GE1/0/1 |
2001::1/64 |
|
GE1/0/1 |
2002::1/64 |
|
GE1/0/5 |
1.1.1.2/8 |
|
GE1/0/5 |
9.1.1.2/8 |
ASBR-PE 1 |
Loop0 |
3.3.3.9/32 |
ASBR-PE 2 |
Loop0 |
4.4.4.9/32 |
|
GE1/0/5 |
1.1.1.1/8 |
|
GE1/0/5 |
9.1.1.1/8 |
|
GE1/0/4 |
11.0.0.2/8 |
|
GE1/0/4 |
11.0.0.1/8 |
CE 1 |
GE1/0/1 |
2001::2/64 |
CE 1 |
GE1/0/1 |
2002::2/64 |
(1) 配置CE 1
# 配置接口GigabitEthernet1/0/1的IPv6地址。
<CE1> system-view
[CE1] interface gigabitethernet 1/0/1
[CE1-GigabitEthernet1/0/1] ipv6 address 2001::2 64
[CE1-GigabitEthernet1/0/1] quit
# 配置CE 1与PE 1建立EBGP对等体,并引入VPN路由。
[CE1] bgp 65001
[CE1-bgp-default] peer 2001::1 as-number 100
[CE1-bgp-default] address-family ipv6 unicast
[CE1-bgp-default-ipv6] peer 2001::1 enable
[CE1-bgp-default-ipv6] import-route direct
[CE1-bgp-default-ipv6] quit
[CE1-bgp-default] quit
(2) 配置PE 1
# 在PE 1上运行IS-IS。
<PE1> system-view
[PE1] isis 1
[PE1-isis-1] network-entity 10.0000.0000.0000.0001.00
[PE1-isis-1] quit
# 配置LSR ID,使能MPLS和LDP。
[PE1] mpls lsr-id 2.2.2.9
[PE1] mpls ldp
[PE1-ldp] quit
# 配置接口GigabitEthernet1/0/5,在接口上运行IS-IS,并使能MPLS和LDP。
[PE1] interface gigabitethernet 1/0/5
[PE1-GigabitEthernet1/0/5] ip address 1.1.1.2 255.0.0.0
[PE1-GigabitEthernet1/0/5] isis enable 1
[PE1-GigabitEthernet1/0/5] mpls enable
[PE1-GigabitEthernet1/0/5] mpls ldp enable
[PE1-GigabitEthernet1/0/5] quit
# 创建Loopback0接口,在接口上运行IS-IS。
[PE1] interface loopback 0
[PE1-LoopBack0] ip address 2.2.2.9 32
[PE1-LoopBack0] isis enable 1
[PE1-LoopBack0] quit
# 创建VPN实例,名称为vpn1,为其配置RD和Route Target属性。
[PE1] ip vpn-instance vpn1
[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
# 配置接口GigabitEthernet1/0/1与VPN实例vpn1绑定,并配置该接口的IPv6地址。
[PE1] interface gigabitethernet 1/0/1
[PE1-GigabitEthernet1/0/1] ip binding vpn-instance vpn1
[PE1-GigabitEthernet1/0/1] ipv6 address 2001::1 64
[PE1-GigabitEthernet1/0/1] quit
# 在PE 1上运行BGP。
[PE1] bgp 100
# 配置PE 1向IBGP对等体3.3.3.9发布标签路由及从3.3.3.9接收标签路由的能力。
[PE1-bgp-default] peer 3.3.3.9 as-number 100
[PE1-bgp-default] peer 3.3.3.9 connect-interface loopback 0
[PE1-bgp-default] address-family ipv4 unicast
[PE1-bgp-default-ipv4] peer 3.3.3.9 enable
[PE1-bgp-default-ipv4] peer 3.3.3.9 label-route-capability
[PE1-bgp-default-ipv4] quit
# 配置PE 1到EBGP对等体5.5.5.9的最大跳数为10。
[PE1-bgp-default] peer 5.5.5.9 as-number 600
[PE1-bgp-default] peer 5.5.5.9 connect-interface loopback 0
[PE1-bgp-default] peer 5.5.5.9 ebgp-max-hop 10
# 配置对等体5.5.5.9作为VPNv6对等体。
[PE1-bgp-default] address-family vpnv6
[PE1-bgp-default-vpnv6] peer 5.5.5.9 enable
[PE1-bgp-default-vpnv6] quit
# 配置PE 1与CE 1建立EBGP对等体,将学习到的BGP路由添加到VPN实例的路由表中。
[PE1-bgp-default] ip vpn-instance vpn1
[PE1-bgp-default-vpn1] peer 2001::2 as-number 65001
[PE1-bgp-default-vpn1] address-family ipv6 unicast
[PE1-bgp-default-ipv6-vpn1] peer 2001::2 enable
[PE1-bgp-default-ipv6-vpn1] import-route direct
[PE1-bgp-default-ipv6-vpn1] quit
[PE1-bgp-default-vpn1] quit
[PE1-bgp-default] quit
(3) 配置ASBR-PE1
# 在ASBR-PE1上运行IS-IS。
<ASBR-PE1> system-view
[ASBR-PE1] isis 1
[ASBR-PE1-isis-1] network-entity 10.0000.0000.0000.0002.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
# 配置接口GigabitEthernet1/0/5,在接口上运行IS-IS,并使能MPLS和LDP。
[ASBR-PE1] interface gigabitethernet 1/0/5
[ASBR-PE1-GigabitEthernet1/0/5] ip address 1.1.1.1 255.0.0.0
[ASBR-PE1-GigabitEthernet1/0/5] isis enable 1
[ASBR-PE1-GigabitEthernet1/0/5] mpls enable
[ASBR-PE1-GigabitEthernet1/0/5] mpls ldp enable
[ASBR-PE1-GigabitEthernet1/0/5] quit
# 配置接口GigabitEthernet1/0/4,并在接口上使能MPLS。
[ASBR-PE1] interface gigabitethernet 1/0/4
[ASBR-PE1-GigabitEthernet1/0/4] ip address 11.0.0.2 255.0.0.0
[ASBR-PE1-GigabitEthernet1/0/4] mpls enable
[ASBR-PE1-GigabitEthernet1/0/4] 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 100
[ASBR-PE1-bgp-default] peer 2.2.2.9 as-number 100
[ASBR-PE1-bgp-default] peer 2.2.2.9 connect-interface loopback 0
[ASBR-PE1-bgp-default] address-family ipv4 unicast
[ASBR-PE1-bgp-default-ipv4] peer 2.2.2.9 enable
[ASBR-PE1-bgp-default-ipv4] peer 2.2.2.9 route-policy policy2 export
# 向IBGP对等体2.2.2.9发布标签路由及从2.2.2.9接收标签路由的能力。
[ASBR-PE1-bgp-default-ipv4] peer 2.2.2.9 label-route-capability
# 引入IS-IS进程1的路由。
[ASBR-PE1-bgp-default-ipv4] import-route isis 1
[ASBR-PE1-bgp-default-ipv4] quit
# 对向EBGP对等体11.0.0.1发布的路由应用已配置的路由策略policy1。
[ASBR-PE1-bgp-default] peer 11.0.0.1 as-number 600
[ASBR-PE1-bgp-default] address-family ipv4 unicast
[ASBR-PE1-bgp-default-ipv4] peer 11.0.0.1 enable
[ASBR-PE1-bgp-default-ipv4] peer 11.0.0.1 route-policy policy1 export
# 向EBGP对等体11.0.0.1发布标签路由及从11.0.0.1接收标签路由的能力。
[ASBR-PE1-bgp-default-ipv4] peer 11.0.0.1 label-route-capability
[ASBR-PE1-bgp-default-ipv4] quit
[ASBR-PE1-bgp-default] quit
(4) 配置ASBR-PE 2
# 在ASBR-PE 2上运行IS-IS。
<ASBR-PE2> system-view
[ASBR-PE2] isis 1
[ASBR-PE2-isis-1] network-entity 10.0000.0000.0000.0003.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
# 配置接口GigabitEthernet1/0/5,在接口上运行IS-IS,并在接口上使能MPLS和LDP。
[ASBR-PE2] interface gigabitethernet 1/0/5
[ASBR-PE2-GigabitEthernet1/0/5] ip address 9.1.1.1 255.0.0.0
[ASBR-PE2-GigabitEthernet1/0/5] isis enable 1
[ASBR-PE2-GigabitEthernet1/0/5] mpls enable
[ASBR-PE2-GigabitEthernet1/0/5] mpls ldp enable
[ASBR-PE2-GigabitEthernet1/0/5] 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
# 配置接口GigabitEthernet1/0/4,在接口上使能MPLS。
[ASBR-PE2] interface gigabitethernet 1/0/4
[ASBR-PE2-GigabitEthernet1/0/4] ip address 11.0.0.1 255.0.0.0
[ASBR-PE2-GigabitEthernet1/0/4] mpls enable
[ASBR-PE2-GigabitEthernet1/0/4] 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 600
[ASBR-PE2-bgp-default] peer 5.5.5.9 as-number 600
[ASBR-PE2-bgp-default] peer 5.5.5.9 connect-interface loopback 0
[ASBR-PE2-bgp-default] address-family ipv4 unicast
[ASBR-PE2-bgp-default-ipv4] peer 5.5.5.9 enable
[ASBR-PE2-bgp-default-ipv4] peer 5.5.5.9 label-route-capability
# 对向IBGP对等体5.5.5.9发布的路由应用已配置的路由策略policy2。
[ASBR-PE2-bgp-default-ipv4] peer 5.5.5.9 route-policy policy2 export
# 引入IS-IS进程1的路由。
[ASBR-PE2-bgp-default-ipv4] import-route isis 1
[ASBR-PE2-bgp-default-ipv4] quit
# 对向EBGP对等体11.0.0.2发布的路由应用已配置的路由策略policy1。
[ASBR-PE2-bgp-default] peer 11.0.0.2 as-number 100
[ASBR-PE2-bgp-default] address-family ipv4 unicast
[ASBR-PE2-bgp-default-ipv4] peer 11.0.0.2 enable
[ASBR-PE2-bgp-default-ipv4] peer 11.0.0.2 route-policy policy1 export
# 向EBGP对等体11.0.0.2发布标签路由及从11.0.0.2接收标签路由的能力。
[ASBR-PE2-bgp-default-ipv4] peer 11.0.0.2 label-route-capability
[ASBR-PE2-bgp-default-ipv4] quit
[ASBR-PE2-bgp-default] quit
(5) 配置PE 2
# 在PE 2上运行IS-IS。
<PE2> system-view
[PE2] isis 1
[PE2-isis-1] network-entity 10.0000.0000.0000.0004.00
[PE2-isis-1] quit
# 配置LSR ID,使能MPLS和LDP。
[PE2] mpls lsr-id 5.5.5.9
[PE2] mpls ldp
[PE2-ldp] quit
# 配置接口GigabitEthernet1/0/5,在接口上运行IS-IS,并使能MPLS和LDP。
[PE2] interface gigabitethernet 1/0/5
[PE2-GigabitEthernet1/0/5] ip address 9.1.1.2 255.0.0.0
[PE2-GigabitEthernet1/0/5] isis enable 1
[PE2-GigabitEthernet1/0/5] mpls enable
[PE2-GigabitEthernet1/0/5] mpls ldp enable
[PE2-GigabitEthernet1/0/5] quit
# 创建Loopback0接口,在接口上运行IS-IS。
[PE2] interface loopback 0
[PE2-LoopBack0] ip address 5.5.5.9 32
[PE2-LoopBack0] isis enable 1
[PE2-LoopBack0] quit
# 创建VPN实例,名称为vpn1,为其配置RD和Route Target属性。
[PE2] ip vpn-instance vpn1
[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
# 配置接口GigabitEthernet1/0/1与VPN实例vpn1绑定,并配置该接口的IPv6地址。
[PE2] interface gigabitethernet 1/0/1
[PE2-GigabitEthernet1/0/1] ip binding vpn-instance vpn1
[PE2-GigabitEthernet1/0/1] ipv6 address 2002::1 64
[PE2-GigabitEthernet1/0/1] quit
# 在PE 2上运行BGP。
[PE2] bgp 600
# 配置PE 2向IBGP对等体4.4.4.9发布标签路由及从4.4.4.9接收标签路由的能力。
[PE2-bgp-default] peer 4.4.4.9 as-number 600
[PE2-bgp-default] peer 4.4.4.9 connect-interface loopback 0
[PE2-bgp-default] address-family ipv4 unicast
[PE2-bgp-default-ipv4] peer 4.4.4.9 enable
[PE2-bgp-default-ipv4] peer 4.4.4.9 label-route-capability
[PE2-bgp-default-ipv4] quit
# 配置PE 2到EBGP对等体2.2.2.9的最大跳数为10。
[PE2-bgp-default] peer 2.2.2.9 as-number 100
[PE2-bgp-default] peer 2.2.2.9 connect-interface loopback 0
[PE2-bgp-default] peer 2.2.2.9 ebgp-max-hop 10
# 配置对等体2.2.2.9作为VPNv6对等体。
[PE2-bgp-default] address-family vpnv6
[PE2-bgp-default-vpnv6] peer 2.2.2.9 enable
[PE2-bgp-default-vpnv6] quit
# 配置PE 2与CE 2建立EBGP对等体,将学习到的BGP路由添加到VPN实例的路由表中。
[PE2-bgp-default] ip vpn-instance vpn1
[PE2-bgp-default-vpn1] peer 2002::2 as-number 65002
[PE2-bgp-default-vpn1] address-family ipv6 unicast
[PE2-bgp-default-ipv6-vpn1] peer 2002::2 enable
[PE2-bgp-default-ipv6-vpn1] import-route direct
[PE2-bgp-default-ipv6-vpn1] quit
[PE2-bgp-default-vpn1] quit
[PE2-bgp-default] quit
(6) 配置CE 2
# 配置接口GigabitEthernet1/0/1的IPv6地址。
<CE2> system-view
[CE2] interface gigabitethernet 1/0/1
[CE2-GigabitEthernet1/0/1] ipv6 address 2002::2 64
[CE2-GigabitEthernet1/0/1] quit
# 配置CE 2与PE 2建立EBGP对等体,并引入VPN路由。
[CE2] bgp 65002
[CE2-bgp-default] peer 2002::1 as-number 600
[CE2-bgp-default] address-family ipv6 unicast
[CE2-bgp-default-ipv6] peer 2002::1 enable
[CE2-bgp-default-ipv6] import-route direct
[CE2-bgp-default-ipv6] quit
[CE2-bgp-default] quit
# 配置完成后,在CE 1和CE 2上执行display ipv6 routing-table命令可以查看到到达对方的路由,且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与PE 2建立MP-EBGP对等体交换VPNv6路由;
· ASBR-PE 1和ASBR-PE 2上分别配置路由策略,对从对方接收的路由压入标签;
· ASBR-PE 1与ASBR-PE 2间通过EBGP交换标签IPv4路由。
· ASBR-PE 1和ASBR-PE 2上将IGP路由和BGP路由互相引入。
图2-8 配置IPv6跨域VPN-OptionC方式组网图
设备 |
接口 |
IP地址 |
设备 |
接口 |
IP地址 |
PE 1 |
Loop0 |
2.2.2.9/32 |
PE 2 |
Loop0 |
5.5.5.9/32 |
|
GE1/0/1 |
2001::1/64 |
|
GE1/0/1 |
2002::1/64 |
|
GE1/0/5 |
1.1.1.2/8 |
|
GE1/0/5 |
9.1.1.2/8 |
ASBR-PE 1 |
Loop0 |
3.3.3.9/32 |
ASBR-PE 2 |
Loop0 |
4.4.4.9/32 |
|
GE1/0/5 |
1.1.1.1/8 |
|
GE1/0/5 |
9.1.1.1/8 |
|
GE1/0/4 |
11.0.0.2/8 |
|
GE1/0/4 |
11.0.0.1/8 |
CE 1 |
GE1/0/1 |
2001::2/64 |
CE 1 |
GE1/0/1 |
2002::2/64 |
(1) 配置CE 1
# 配置接口GigabitEthernet1/0/1的IPv6地址。
<CE1> system-view
[CE1] interface gigabitethernet 1/0/1
[CE1-GigabitEthernet1/0/1] ipv6 address 2001::2 64
[CE1-GigabitEthernet1/0/1] quit
# 配置CE 1与PE 1建立EBGP对等体,并引入VPN路由。
[CE1] bgp 65001
[CE1-bgp-default] peer 2001::1 as-number 100
[CE1-bgp-default] address-family ipv6 unicast
[CE1-bgp-default-ipv6] peer 2001::1 enable
[CE1-bgp-default-ipv6] import-route direct
[CE1-bgp-default-ipv6] quit
[CE1-bgp-default] quit
(2) 配置PE 1
# 在PE 1上运行IS-IS。
<PE1> system-view
[PE1] isis 1
[PE1-isis-1] network-entity 10.0000.0000.0000.0001.00
[PE1-isis-1] quit
# 配置LSR ID,使能MPLS和LDP。
[PE1] mpls lsr-id 2.2.2.9
[PE1] mpls ldp
[PE1-ldp] quit
# 配置接口GigabitEthernet1/0/5,在接口上运行IS-IS,并使能MPLS和LDP。
[PE1] interface gigabitethernet 1/0/5
[PE1-GigabitEthernet1/0/5] ip address 1.1.1.2 255.0.0.0
[PE1-GigabitEthernet1/0/5] isis enable 1
[PE1-GigabitEthernet1/0/5] mpls enable
[PE1-GigabitEthernet1/0/5] mpls ldp enable
[PE1-GigabitEthernet1/0/5] quit
# 创建Loopback0接口,在接口上运行IS-IS。
[PE1] interface loopback 0
[PE1-LoopBack0] ip address 2.2.2.9 32
[PE1-LoopBack0] isis enable 1
[PE1-LoopBack0] quit
# 创建VPN实例,名称为vpn1,为其配置RD和Route Target属性。
[PE1] ip vpn-instance vpn1
[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
# 配置接口GigabitEthernet1/0/1与VPN实例vpn1绑定,并配置该接口的IPv6地址。
[PE1] interface gigabitethernet 1/0/1
[PE1-GigabitEthernet1/0/1] ip binding vpn-instance vpn1
[PE1-GigabitEthernet1/0/1] ipv6 address 2001::1 64
[PE1-GigabitEthernet1/0/1] quit
# 在PE 1上运行BGP。
[PE1] bgp 100
# 配置PE 1到EBGP对等体5.5.5.9的最大跳数为10。
[PE1-bgp-default] peer 5.5.5.9 as-number 600
[PE1-bgp-default] peer 5.5.5.9 connect-interface loopback 0
[PE1-bgp-default] peer 5.5.5.9 ebgp-max-hop 10
# 配置对等体5.5.5.9作为VPNv6对等体。
[PE1-bgp-default] address-family vpnv6
[PE1-bgp-default-vpnv6] peer 5.5.5.9 enable
[PE1-bgp-default-vpnv6] quit
# 配置PE 1与CE 1建立EBGP对等体,将学习到的BGP路由添加到VPN实例的路由表中。
[PE1-bgp-default] ip vpn-instance vpn1
[PE1-bgp-default-vpn1] peer 2001::2 as-number 65001
[PE1-bgp-default-vpn1] address-family ipv6 unicast
[PE1-bgp-default-ipv6-vpn1] peer 2001::2 enable
[PE1-bgp-default-ipv6-vpn1] quit
[PE1-bgp-default-vpn1] quit
[PE1-bgp-default] quit
(3) 配置ASBR-PE1
# 在ASBR-PE1上运行IS-IS。
<ASBR-PE1> system-view
[ASBR-PE1] isis 1
[ASBR-PE1-isis-1] network-entity 10.0000.0000.0000.0002.00
# 引入BGP的路由。
[ASBR-PE1-isis-1] address-family ipv4 unicast
[ASBR-PE1-isis-1-ipv4] import-route bgp
[ASBR-PE1-isis-1-ipv4] quit
[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
# 配置接口GigabitEthernet1/0/5,在接口上运行IS-IS,并使能MPLS和LDP。
[ASBR-PE1] interface gigabitethernet 1/0/5
[ASBR-PE1-GigabitEthernet1/0/5] ip address 1.1.1.1 255.0.0.0
[ASBR-PE1-GigabitEthernet1/0/5] isis enable 1
[ASBR-PE1-GigabitEthernet1/0/5] mpls enable
[ASBR-PE1-GigabitEthernet1/0/5] mpls ldp enable
[ASBR-PE1-GigabitEthernet1/0/5] quit
# 配置接口GigabitEthernet1/0/4,并在接口上使能MPLS。
[ASBR-PE1] interface gigabitethernet 1/0/4
[ASBR-PE1-GigabitEthernet1/0/4] ip address 11.0.0.2 255.0.0.0
[ASBR-PE1-GigabitEthernet1/0/4] mpls enable
[ASBR-PE1-GigabitEthernet1/0/4] 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,引入IS-IS进程1的路由。
[ASBR-PE1] bgp 100
[ASBR-PE1-bgp-default] address-family ipv4 unicast
[ASBR-PE1-bgp-default-ipv4] import-route isis 1
[ASBR-PE1-bgp-default-ipv4] quit
# 对向EBGP对等体11.0.0.1发布的路由应用已配置的路由策略policy1。
[ASBR-PE1-bgp-default] peer 11.0.0.1 as-number 600
[ASBR-PE1-bgp-default] address-family ipv4 unicast
[ASBR-PE1-bgp-default-ipv4] peer 11.0.0.1 enable
[ASBR-PE1-bgp-default-ipv4] peer 11.0.0.1 route-policy policy1 export
# 向EBGP对等体11.0.0.1发布标签路由及从11.0.0.1接收标签路由的能力。
[ASBR-PE1-bgp-default-ipv4] peer 11.0.0.1 label-route-capability
[ASBR-PE1-bgp-default-ipv4] quit
[ASBR-PE1-bgp-default] quit
(4) 配置ASBR-PE 2
# 在ASBR-PE 2上运行IS-IS。
<ASBR-PE2> system-view
[ASBR-PE2] isis 1
[ASBR-PE2-isis-1] network-entity 10.0000.0000.0000.0003.00
# 引入BGP的路由。
[ASBR-PE2-isis-1] address-family ipv4 unicast
[ASBR-PE2-isis-1-ipv4] import-route bgp
[ASBR-PE2-isis-1-ipv4] quit
[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
# 配置接口GigabitEthernet1/0/5,在接口上运行IS-IS,并在接口上使能MPLS和LDP。
[ASBR-PE2] interface gigabitethernet 1/0/5
[ASBR-PE2-GigabitEthernet1/0/5] ip address 9.1.1.1 255.0.0.0
[ASBR-PE2-GigabitEthernet1/0/5] isis enable 1
[ASBR-PE2-GigabitEthernet1/0/5] mpls enable
[ASBR-PE2-GigabitEthernet1/0/5] mpls ldp enable
[ASBR-PE2-GigabitEthernet1/0/5] 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
# 配置接口GigabitEthernet1/0/4,在接口上使能MPLS。
[ASBR-PE2] interface gigabitethernet 1/0/4
[ASBR-PE2-GigabitEthernet1/0/4] ip address 11.0.0.1 255.0.0.0
[ASBR-PE2-GigabitEthernet1/0/4] mpls enable
[ASBR-PE2-GigabitEthernet1/0/4] 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,引入IS-IS进程1的路由。
[ASBR-PE2] bgp 600
[ASBR-PE2-bgp-default] address-family ipv4 unicast
[ASBR-PE2-bgp-default-ipv4] import-route isis 1
[ASBR-PE2-bgp-default-ipv4] quit
# 对向EBGP对等体11.0.0.2发布的路由应用已配置的路由策略policy1。
[ASBR-PE2-bgp-default] peer 11.0.0.2 as-number 100
[ASBR-PE2-bgp-default] address-family ipv4 unicast
[ASBR-PE2-bgp-default-ipv4] peer 11.0.0.2 enable
[ASBR-PE2-bgp-default-ipv4] peer 11.0.0.2 route-policy policy1 export
# 向EBGP对等体11.0.0.2发布标签路由及从11.0.0.2接收标签路由的能力。
[ASBR-PE2-bgp-default-ipv4] peer 11.0.0.2 label-route-capability
[ASBR-PE2-bgp-default-ipv4] quit
[ASBR-PE2-bgp-default] quit
(5) 配置PE 2
# 在PE 2上运行IS-IS。
<PE2> system-view
[PE2] isis 1
[PE2-isis-1] network-entity 10.0000.0000.0000.0004.00
[PE2-isis-1] quit
# 配置LSR ID,使能MPLS和LDP。
[PE2] mpls lsr-id 5.5.5.9
[PE2] mpls ldp
[PE2-ldp] quit
# 配置接口GigabitEthernet1/0/5,在接口上运行IS-IS,并使能MPLS和LDP。
[PE2] interface gigabitethernet 1/0/5
[PE2-GigabitEthernet1/0/5] ip address 9.1.1.2 255.0.0.0
[PE2-GigabitEthernet1/0/5] isis enable 1
[PE2-GigabitEthernet1/0/5] mpls enable
[PE2-GigabitEthernet1/0/5] mpls ldp enable
[PE2-GigabitEthernet1/0/5] quit
# 创建Loopback0接口,在接口上运行IS-IS。
[PE2] interface loopback 0
[PE2-LoopBack0] ip address 5.5.5.9 32
[PE2-LoopBack0] isis enable 1
[PE2-LoopBack0] quit
# 创建VPN实例,名称为vpn1,为其配置RD和Route Target属性。
[PE2] ip vpn-instance vpn1
[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
# 配置接口GigabitEthernet1/0/1与VPN实例vpn1绑定,并配置该接口的IPv6地址。
[PE2] interface gigabitethernet 1/0/1
[PE2-GigabitEthernet1/0/1] ip binding vpn-instance vpn1
[PE2-GigabitEthernet1/0/1] ipv6 address 2002::1 64
[PE2-GigabitEthernet1/0/1] quit
# 在PE 2上运行BGP。
[PE2] bgp 600
# 配置PE 2到EBGP对等体2.2.2.9的最大跳数为10。
[PE2-bgp-default] peer 2.2.2.9 as-number 100
[PE2-bgp-default] peer 2.2.2.9 connect-interface loopback 0
[PE2-bgp-default] peer 2.2.2.9 ebgp-max-hop 10
# 配置对等体2.2.2.9作为VPNv6对等体。
[PE2-bgp-default] address-family vpnv6
[PE2-bgp-default-vpnv6] peer 2.2.2.9 enable
[PE2-bgp-default-vpnv6] quit
# 配置PE 2与CE 2建立EBGP对等体,将学习到的BGP路由添加到VPN实例的路由表中。
[PE2-bgp-default] ip vpn-instance vpn1
[PE2-bgp-default-vpn1] peer 2002::2 as-number 65002
[PE2-bgp-default-vpn1] address-family ipv6 unicast
[PE2-bgp-default-ipv6-vpn1] peer 2002::2 enable
[PE2-bgp-default-ipv6-vpn1] quit
[PE2-bgp-default-vpn1] quit
[PE2-bgp-default] quit
(6) 配置CE 2
# 配置接口GigabitEthernet1/0/1的IPv6地址。
<CE2> system-view
[CE2] interface gigabitethernet 1/0/1
[CE2-GigabitEthernet1/0/1] ipv6 address 2002::2 64
[CE2-GigabitEthernet1/0/1] quit
# 配置CE 2与PE 2建立EBGP对等体,并引入VPN路由。
[CE2] bgp 65002
[CE2-bgp-default] peer 2002::1 as-number 600
[CE2-bgp-default] address-family ipv6 unicast
[CE2-bgp-default-ipv6] peer 2002::1 enable
[CE2-bgp-default-ipv6] import-route direct
[CE2-bgp-default-ipv6] quit
[CE2-bgp-default] quit
# 配置完成后,在CE 1和CE 2上执行display ipv6 routing-table命令可以查看到到达对方的路由,且CE 1和CE 2互相可以ping通。
在图2-9中:
· PE 1和PE 2是一级运营商骨干网的PE设备,为二级运营商提供VPN服务;
· CE 1和CE 2是同一个二级运营商的设备,作为CE接入一级运营商的骨干网;
· PE 3和PE 4是二级运营商的PE设备,为二级运营商的客户提供IPv6 MPLS L3VPN服务;
· CE 3和CE 4是二级运营商的客户;
· 一级运营商和二级运营商位于同一个AS域。
配置运营商的运营商关键在于配置两类路由的交换:
· 二级运营商VPN内部路由在一级运营商骨干网上的交换:一级运营商将二级运营商作为自己的CE接入;
· 二级运营商本身客户的VPN路由在二级运营商PE设备间的交换:需要在二级运营商PE设备(PE 3和PE 4)间建立MP-IBGP对等体关系。
图2-9 配置Carriers’ carriers(相同AS)组网图
设备 |
接口 |
IP地址 |
设备 |
接口 |
IP地址 |
CE 3 |
GE1/0/1 |
2001:1::1/96 |
CE 4 |
GE1/0/1 |
2001:2::1/96 |
PE 3 |
Loop0 |
1.1.1.9/32 |
PE 4 |
Loop0 |
6.6.6.9/32 |
|
GE1/0/1 |
2001:1::2/96 |
|
GE1/0/1 |
2001:2::2/96 |
|
GE1/0/5 |
10.1.1.1/24 |
|
GE1/0/5 |
20.1.1.2/24 |
CE 1 |
Loop0 |
2.2.2.9/32 |
CE 2 |
Loop0 |
5.5.5.9/32 |
|
GE1/0/4 |
10.1.1.2/24 |
|
GE1/0/4 |
21.1.1.2/24 |
|
GE1/0/5 |
11.1.1.1/24 |
|
GE1/0/5 |
20.1.1.1/24 |
PE 1 |
Loop0 |
3.3.3.9/32 |
PE 2 |
Loop0 |
4.4.4.9/32 |
|
GE1/0/4 |
11.1.1.2/24 |
|
GE1/0/4 |
30.1.1.2/24 |
|
GE1/0/5 |
30.1.1.1/24 |
|
GE1/0/5 |
21.1.1.1/24 |
(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 1/0/5
[PE1-GigabitEthernet1/0/5] ip address 30.1.1.1 24
[PE1-GigabitEthernet1/0/5] isis enable 1
[PE1-GigabitEthernet1/0/5] mpls enable
[PE1-GigabitEthernet1/0/5] mpls ldp enable
[PE1-GigabitEthernet1/0/5] mpls ldp transport-address interface
[PE1-GigabitEthernet1/0/5] quit
[PE1] bgp 100
[PE1-bgp-default] peer 4.4.4.9 as-number 100
[PE1-bgp-default] peer 4.4.4.9 connect-interface loopback 0
[PE1-bgp-default] address-family vpnv4
[PE1-bgp-default-vpnv4] peer 4.4.4.9 enable
[PE1-bgp-default-vpnv4] quit
[PE1-bgp-default] 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。
(2) 配置二级运营商网络:使用IS-IS作为IGP协议,PE 3和CE 1、PE 4和CE 2之间分别使能LDP
# 配置PE 3。
<PE3> system-view
[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 1/0/5
[PE3-GigabitEthernet1/0/5] ip address 10.1.1.1 24
[PE3-GigabitEthernet1/0/5] isis enable 2
[PE3-GigabitEthernet1/0/5] mpls enable
[PE3-GigabitEthernet1/0/5] mpls ldp enable
[PE3-GigabitEthernet1/0/5] mpls ldp transport-address interface
[PE3-GigabitEthernet1/0/5] quit
# 配置CE 1。
<CE1> system-view
[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 1/0/4
[CE1-GigabitEthernet1/0/4] ip address 10.1.1.2 24
[CE1-GigabitEthernet1/0/4] isis enable 2
[CE1-GigabitEthernet1/0/4] mpls enable
[CE1-GigabitEthernet1/0/4] mpls ldp enable
[CE1-GigabitEthernet1/0/4] mpls ldp transport-address interface
[CE1-GigabitEthernet1/0/4] quit
配置完成后,PE 3和CE 1之间应能建立LDP和IS-IS邻居关系。
# PE 4和CE 2之间的配置与PE 3和CE 1之间的配置类似,配置过程省略。
(3) 配置二级运营商CE接入到一级运营商的PE
# 配置PE 1。
[PE1] ip vpn-instance vpn1
[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] address-family ipv4
[PE1-isis-2-ipv4] import-route bgp allow-ibgp
[PE1-isis-2-ipv4] quit
[PE1-isis-2] quit
[PE1] interface gigabitethernet 1/0/4
[PE1-GigabitEthernet1/0/4] ip binding vpn-instance vpn1
[PE1-GigabitEthernet1/0/4] ip address 11.1.1.2 24
[PE1-GigabitEthernet1/0/4] isis enable 2
[PE1-GigabitEthernet1/0/4] mpls enable
[PE1-GigabitEthernet1/0/4] mpls ldp enable
[PE1-GigabitEthernet1/0/4] mpls ldp transport-address interface
[PE1-GigabitEthernet1/0/4] quit
[PE1] bgp 100
[PE1-bgp-default] ip vpn-instance vpn1
[PE1-bgp-default-vpn1] address-family ipv4 unicast
[PE1-bgp-default-ipv4-vpn1] import-route isis 2
[PE1-bgp-default-ipv4-vpn1] quit
[PE1-bgp-default-vpn1] quit
[PE1-bgp-default] quit
# 配置CE1。
[CE1] interface gigabitethernet 1/0/5
[CE1-GigabitEthernet1/0/5] ip address 11.1.1.1 24
[CE1-GigabitEthernet1/0/5] isis enable 2
[CE1-GigabitEthernet1/0/5] mpls enable
[CE1-GigabitEthernet1/0/5] mpls ldp enable
[CE1-GigabitEthernet1/0/5] mpls ldp transport-address interface
[CE1-GigabitEthernet1/0/5] quit
配置完成后,PE 1和CE 1之间应能建立LDP和IS-IS邻居关系。
# PE 2和CE 2之间的配置与PE 1和CE 1之间的配置类似,配置过程省略。
(4) 配置二级运营商的客户接入PE
# 配置CE 3。
<CE3> system-view
[CE3] interface gigabitethernet 1/0/1
[CE3-GigabitEthernet1/0/1] ipv6 address 2001:1::1 96
[CE3-GigabitEthernet1/0/1] quit
[CE3] bgp 65410
[CE3-bgp-default] peer 2001:1::2 as-number 100
[CE3-bgp-default] address-family ipv6
[CE3-bgp-default-ipv6] peer 2001:1::2 enable
[CE3-bgp-default-ipv6] import-route direct
[CE3-bgp-default-ipv6] quit
[CE3-bgp-default] quit
# 配置PE 3。
[PE3] ip vpn-instance vpn1
[PE3-vpn-instance-vpn1] route-distinguisher 100:1
[PE3-vpn-instance-vpn1] vpn-target 1:1
[PE3-vpn-instance-vpn1] quit
[PE3] interface gigabitethernet 1/0/1
[PE3-GigabitEthernet1/0/1] ip binding vpn-instance vpn1
[PE3-GigabitEthernet1/0/1] ipv6 address 2001:1::2 96
[PE3-GigabitEthernet1/0/1] quit
[PE3] bgp 100
[PE3-bgp-default] ip vpn-instance vpn1
[PE3-bgp-default-vpn1] peer 2001:1::1 as-number 65410
[PE3-bgp-default-vpn1] address-family ipv6 unicast
[PE3-bgp-default-ipv6-vpn1] peer 2001:1::1 enable
[PE3-bgp-default-ipv6-vpn1] import-route direct
[PE3-bgp-default-ipv6-vpn1] quit
[PE3-bgp-default-vpn1] quit
[PE3-bgp-default] quit
# PE 4和CE 4之间的配置与PE 3和CE 3之间的配置类似,配置过程省略。
(5) 在二级运营商的PE之间建立MP-IBGP对等体关系,交换二级运营商的客户的VPN路由
# 配置PE 3。
[PE3] bgp 100
[PE3-bgp-default] peer 6.6.6.9 as-number 100
[PE3-bgp-default] peer 6.6.6.9 connect-interface loopback 0
[PE3-bgp-default] address-family vpnv6
[PE3-bgp-default-vpnv6] peer 6.6.6.9 enable
[PE3-bgp-default-vpnv6] quit
[PE3-bgp-default] quit
# PE 4的配置与PE 3类似,配置过程省略。
# 在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 IS_L1 15 10 30.1.1.2 GE1/0/5
30.1.1.0/24 Direct 0 0 30.1.1.1 GE1/0/5
30.1.1.0/32 Direct 0 0 30.1.1.1 GE1/0/5
30.1.1.1/32 Direct 0 0 127.0.0.1 InLoop0
30.1.1.255/32 Direct 0 0 30.1.1.1 GE1/0/5
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路由表中有二级运营商网络的内部路由。以PE 1为例:
[PE1] display ip routing-table vpn-instance vpn1
Destinations : 18 Routes : 18
Destination/Mask Proto Pre Cost NextHop Interface
0.0.0.0/32 Direct 0 0 127.0.0.1 InLoop0
1.1.1.9/32 IS_L1 15 20 11.1.1.1 GE1/0/4
2.2.2.9/32 IS_L1 15 10 11.1.1.1 GE1/0/4
5.5.5.9/32 BGP 255 10 4.4.4.9 GE1/0/5
6.6.6.9/32 BGP 255 20 4.4.4.9 GE1/0/5
10.1.1.0/24 IS_L1 15 20 11.1.1.1 GE1/0/4
11.1.1.0/24 Direct 0 0 11.1.1.2 GE1/0/4
11.1.1.0/32 Direct 0 0 11.1.1.2 GE1/0/4
11.1.1.2/32 Direct 0 0 127.0.0.1 InLoop0
11.1.1.255/32 Direct 0 0 11.1.1.2 GE1/0/4
20.1.1.0/24 BGP 255 20 4.4.4.9 GE1/0/5
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 1和CE 2上执行display ip routing-table命令,可以看到公网路由表中有二级运营商网络的内部路由。以CE 1为例:
[CE1] display ip routing-table
Destinations : 21 Routes : 21
Destination/Mask Proto Pre Cost NextHop Interface
0.0.0.0/32 Direct 0 0 127.0.0.1 InLoop0
1.1.1.9/32 IS_L1 15 10 10.1.1.1 GE1/0/4
2.2.2.9/32 Direct 0 0 127.0.0.1 InLoop0
5.5.5.9/32 IS_L2 15 74 11.1.1.2 GE1/0/5
6.6.6.9/32 IS_L2 15 74 11.1.1.2 GE1/0/5
10.1.1.0/24 Direct 0 0 10.1.1.2 GE1/0/4
10.1.1.0/32 Direct 0 0 10.1.1.2 GE1/0/4
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 GE1/0/4
11.1.1.0/24 Direct 0 0 11.1.1.1 GE1/0/5
11.1.1.0/32 Direct 0 0 11.1.1.1 GE1/0/5
11.1.1.1/32 Direct 0 0 127.0.0.1 InLoop0
11.1.1.255/32 Direct 0 0 11.1.1.1 GE1/0/5
20.1.1.0/24 IS_L2 15 74 11.1.1.2 GE1/0/5
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 3和PE 4上执行display ip routing-table命令,可以看到公网路由表中有二级运营商网络的内部路由。以PE 3为例:
[PE3] 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
1.1.1.9/32 Direct 0 0 127.0.0.1 InLoop0
2.2.2.9/32 IS_L1 15 10 10.1.1.2 GE1/0/5
5.5.5.9/32 IS_L2 15 84 10.1.1.2 GE1/0/5
6.6.6.9/32 IS_L2 15 84 10.1.1.2 GE1/0/5
10.1.1.0/24 Direct 0 0 10.1.1.1 GE1/0/5
10.1.1.0/32 Direct 0 0 10.1.1.1 GE1/0/5
10.1.1.1/32 Direct 0 0 127.0.0.1 InLoop0
10.1.1.255/32 Direct 0 0 10.1.1.1 GE1/0/5
11.1.1.0/24 IS_L1 15 20 10.1.1.2 GE1/0/5
20.1.1.0/24 IS_L2 15 84 10.1.1.2 GE1/0/5
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 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 : GE1/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:6.6.6.9 Preference: 255
Interface : GE1/0/5 Cost : 0
Destination: FE80::/10 Protocol : Direct
NextHop : :: Preference: 0
Interface : InLoop0 Cost : 0
Destination: FF00::/8 Protocol : Direct
NextHop : :: Preference: 0
Interface : NULL0 Cost : 0
# PE 3和PE 4可以相互Ping通。
# CE 3和CE 4可以互相Ping通。
· 主机Host A通过CE 1接入,其IP地址为100::2。Host A可以访问VPN 1和VPN 2。
· 主机Host B通过CE 1接入,其IP地址为100::3。Host B只可以访问VPN 1。
(1) 配置CE 1
# 配置CE 1的接口IP地址。
<CE1> system-view
[CE1] interface gigabitethernet 1/0/1
[CE1-GigabitEthernet1/0/1] ipv6 address 100::1 64
[CE1-GigabitEthernet1/0/1] quit
[CE1] interface gigabitethernet 1/0/5
[CE1-GigabitEthernet1/0/5] ipv6 address 1::2 64
[CE1-GigabitEthernet1/0/5] quit
# 在CE 1上配置一条指向PE 1的缺省路由。
[CE1] ipv6 route-static :: 0 1::1
(2) 配置PE 1
# 在PE 1上为VPN 1和VPN 2分别创建VPN实例,并配置RD和不同的Route Target属性。
<PE1> system-view
[PE1] ip vpn-instance vpn1
[PE1-vpn-instance-vpn1] route-distinguisher 100:1
[PE1-vpn-instance-vpn1] vpn-target 100:1 both
[PE1-vpn-instance-vpn1] quit
[PE1] ip vpn-instance vpn2
[PE1-vpn-instance-vpn2] route-distinguisher 100:2
[PE1-vpn-instance-vpn2] vpn-target 100:2 both
[PE1-vpn-instance-vpn2] quit
# 将PE 1与CE 1相连的接口关联到VPN 1。
[PE1] interface gigabitethernet 1/0/4
[PE1-GigabitEthernet1/0/4] ip binding vpn-instance vpn1
[PE1-GigabitEthernet1/0/4] ipv6 address 1::1 64
[PE1-GigabitEthernet1/0/4] quit
# 配置静态路由,并引入到BGP中,使Host A访问VPN 2的返回报文能够在PE 1的VPN实例vpn1中找到正确的路由,返回到Host A。
[PE1] ipv6 route-static vpn-instance vpn2 100:: 64 vpn-instance vpn1 1::2
[PE1] bgp 100
[PE1-bgp-default] ip vpn-instance vpn2
[PE1-bgp-default-vpn2] address-family ipv6
[PE1-bgp-default-ipv6-vpn2] import-route static
[PE1-bgp-default-ipv6-vpn2] quit
[PE1-bgp-default-vpn2] quit
[PE1-bgp-default] quit
# 配置策略路由,对于Host A发出的报文,如果在本接口所属的VPN实例vpn1中没有找到路由,就在名为vpn2的VPN实例中查找私网路由并转发。
[PE1] acl ipv6 advanced 3001
[PE1-acl-ipv6-adv-3001] rule 0 permit ipv6 vpn-instance vpn1 source 100::2 128
[PE1-acl-ipv6-adv-3001] quit
[PE1] ipv6 policy-based-route policy1 permit node 10
[PE1-policy-based-route] if-match acl 3001
[PE1-policy-based-route] apply access-vpn vpn-instance vpn1 vpn2
[PE1-policy-based-route] quit
# 在接口GigabitEthernet1/0/4上应用定义的策略路由。
[PE1] interface gigabitethernet 1/0/4
[PE1-GigabitEthernet1/0/4] ipv6 policy-based-route policy1
(3) 配置基本IPv6 MPLS L3VPN。(配置过程略)
配置完成后,在Host A上可以ping通Host C,在Host B上无法ping通Host C。
· CE 1和CE 2都属于VPN 1,它们分别接入PE 1和PE 2;
· CE 1和CE 2在同一个OSPFv3区域中;
· CE 1与CE 2之间的VPN流量通过MPLS骨干网转发,不使用OSPFv3的区域内路由。
图2-11 OSPFv3伪连接配置组网图
设备 |
接口 |
接口地址 |
设备 |
接口 |
接口地址 |
CE 1 |
GE1/0/1 |
100::1/64 |
CE 2 |
GE1/0/1 |
120::1/64 |
|
GE1/0/4 |
20::1/64 |
|
GE1/0/4 |
30::2/64 |
PE 1 |
Loop0 |
1.1.1.9/32 |
PE 2 |
Loop0 |
2.2.2.9/32 |
|
Loop1 |
3::3/128 |
|
Loop1 |
5::5/128 |
|
GE1/0/1 |
100::2/64 |
|
GE1/0/1 |
120::2/64 |
|
GE1/0/4 |
10.1.1.1/24 |
|
GE1/0/5 |
10.1.1.2/24 |
Router A |
GE1/0/5 |
30::1/64 |
|
|
|
|
GE1/0/4 |
20::2/64 |
|
|
|
(1) 配置用户网络上的OSPFv3
在CE 1、Router A、CE 2上配置普通OSPFv3,发布图2-11中所示各接口的网段地址,并配置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 1/0/4
[PE1-GigabitEthernet1/0/4] ip address 10.1.1.1 24
[PE1-GigabitEthernet1/0/4] mpls enable
[PE1-GigabitEthernet1/0/4] mpls ldp enable
[PE1-GigabitEthernet1/0/4] 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 1/0/5
[PE2-GigabitEthernet1/0/5] ip address 10.1.1.2 24
[PE2-GigabitEthernet1/0/5] mpls enable
[PE2-GigabitEthernet1/0/5] mpls ldp enable
[PE2-GigabitEthernet1/0/5] 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 1/0/1
[PE1-GigabitEthernet1/0/1] ip binding vpn-instance vpn1
[PE1-GigabitEthernet1/0/1] ipv6 address 100::2 64
[PE1-GigabitEthernet1/0/1] ospfv3 100 area 1
[PE1-GigabitEthernet1/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 1/0/1
[PE2-GigabitEthernet1/0/1] ip binding vpn-instance vpn1
[PE2-GigabitEthernet1/0/1] ipv6 address 120::2 64
[PE2-GigabitEthernet1/0/1] ospfv3 100 area 1
[PE2-GigabitEthernet1/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
CE 1和CE 2同属于VPN 1,分别接入PE 1和PE 2,并且CE 1和CE 2复用AS号600。
图2-12 BGP的AS号替换组网图
设备 |
接口 |
IP地址 |
设备 |
接口 |
IP地址 |
CE 1 |
GE1/0/1 |
10:1::2/96 |
P |
Loop0 |
2.2.2.9/32 |
|
GE1/0/2 |
100::1/96 |
|
GE1/0/1 |
20.1.1.2/24 |
PE 1 |
Loop0 |
10.1.1.1/32 |
|
GE1/0/2 |
30.1.1.1/24 |
|
GE1/0/1 |
10:1::1/96 |
PE 2 |
Loop0 |
10.1.1.2/32 |
|
GE1/0/2 |
20.1.1.1/24 |
|
GE1/0/1 |
10:2::1/96 |
CE 2 |
GE1/0/1 |
10:2::2/96 |
|
GE1/0/2 |
30.1.1.2/24 |
|
GE1/0/2 |
200::1/96 |
|
|
|
(1) 配置基本IPv6 MPLS L3VPN
¡ 在MPLS骨干网上配置OSPF,PE和P之间能够学到对方Loopback接口的路由;
¡ 在MPLS骨干网上配置MPLS基本能力和MPLS LDP,建立LDP LSP;
¡ PE之间建立MP-IBGP对等体关系,交换VPNv6路由;
¡ 在PE 1上配置VPN 1的VPN实例,接入CE 1;
¡ 在PE 2上配置VPN 1的VPN实例,接入CE 2;
¡ PE 1和CE 1、PE 2和CE 2之间配置BGP,将CE的路由引入PE。
上述配置可参考“2.20.1 配置IPv6 MPLS L3VPN示例”,具体配置过程略。
# 完成上述配置后,在CE 2上执行display ipv6 routing-table命令,可以看到没有到达CE 1内部VPN(100::/96)的路由。CE 1上也存在同样的现象。
<CE2> display ipv6 routing-table
Destinations : 6 Routes : 6
Destination: ::1/128 Protocol : Direct
NextHop : ::1 Preference: 0
Interface : InLoop0 Cost : 0
Destination: 10:2::/96 Protocol : Direct
NextHop : :: Preference: 0
Interface : GE1/0/1 Cost : 0
Destination: 10:2::2/128 Protocol : Direct
NextHop : ::1 Preference: 0
Interface : InLoop0 Cost : 0
Destination: 200::/96 Protocol : Static
NextHop : :: Preference: 60
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上执行display ipv6 routing-table vpn-instance命令,可以看到PE的VPN实例中有到达对端CE内部VPN的路由。以PE 2为例:
<PE2> display ipv6 routing-table vpn-instance vpn1
Destinations : 7 Routes : 7
Destination: ::1/128 Protocol : Direct
NextHop : ::1 Preference: 0
Interface : InLoop0 Cost : 0
Destination: 10:2::/96 Protocol : Direct
NextHop : :: Preference: 0
Interface : GE1/0/1 Cost : 0
Destination: 10:2::1/128 Protocol : Direct
NextHop : ::1 Preference: 0
Interface : InLoop0 Cost : 0
Destination: 100::/96 Protocol : BGP4+
NextHop : ::FFFF:10.1.1.1 Preference: 255
Interface : GE1/0/2 Cost : 0
Destination: 200::/96 Protocol : BGP4+
NextHop : 10:2::2 Preference: 255
Interface : GE1/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
# 在PE 2上打开BGP的Update报文调试信息开关,可以看到PE 2发布了去往100::/96的路由,AS路径信息为“100 600”。
<PE2> terminal monitor
<PE2> terminal logging level 7
<PE2> debugging bgp update vpn-instance vpn1 10:2::2 ipv6
<PE2> refresh bgp all export ipv6 vpn-instance vpn1
*Jun 13 16:12:52:096 2012 PE2 BGP/7/DEBUG:
BGP_IPV6.vpn1: Send UPDATE to update-group 0 for following destinations:
Origin : Incomplete
AS path : 100 600
Next hop : ::FFFF:10.1.1.1
100::/96,
*Jun 13 16:12:53:024 2012 PE2 BGP/7/DEBUG:
BGP.vpn1: Send UPDATE MSG to peer 10:2::2(IPv6-UNC) NextHop: 10:2::1.
# 在CE 2上执行display bgp routing-table ipv6 peer received-routes命令,可以看到CE 2没有接收100::/96的路由。
<CE2> display bgp routing-table ipv6 peer 10:2::1 received-routes
Total number of routes: 0
(2) 配置BGP的AS号替换功能
# 在PE 1上配置BGP的AS号替换功能。
<PE1> system-view
[PE1] bgp 100
[PE1-bgp-default] ip vpn-instance vpn1
[PE1-bgp-default-vpn1] peer 10:1::2 substitute-as
[PE1-bgp-default-vpn1] quit
[PE1-bgp-default] quit
# 在PE 2上配置BGP的AS号替换功能。
<PE2> system-view
[PE2] bgp 100
[PE2-bgp-default] ip vpn-instance vpn1
[PE2-bgp-default-vpn1] peer 10:2::2 substitute-as
[PE2-bgp-default-vpn1] quit
[PE2-bgp-default] quit
# 可以看到PE 2向CE 2发布的路由中,100::/96的AS路径信息由“100 600”变为“100 100”。
*Jun 27 18:07:34:420 2013 PE2 BGP/7/DEBUG:
BGP_IPV6.vpn1: Send UPDATE to peer 10:2::2 for following destinations:
Origin : Incomplete
AS path : 100 100
Next hop : 10:2::1
100::/96,
# 再次查看CE 2接收的路由信息和路由表,可以看到CE 2学习到了路由100::/96。
<CE2> display bgp routing-table ipv6 peer 10:2::1 received-routes
Total number of routes: 1
BGP local router ID is 12.1.1.3
Status codes: * - valid, > - best, d - dampened, h - history,
s - suppressed, S - stale, i - internal, e - external
Origin: i - IGP, e - EGP, ? - incomplete
* >e Network : 100:: PrefixLen : 96
NextHop : 10:2::1 LocPrf :
PrefVal : 0 OutLabel : NULL
MED :
Path/Ogn: 100 100?
<CE2> display ipv6 routing-table
Destinations : 7 Routes : 7
Destination: ::1/128 Protocol : Direct
NextHop : ::1 Preference: 0
Interface : InLoop0 Cost : 0
Destination: 10:2::/96 Protocol : Direct
NextHop : :: Preference: 0
Interface : GE1/0/1 Cost : 0
Destination: 10:2::2/128 Protocol : Direct
NextHop : ::1 Preference: 0
Interface : InLoop0 Cost : 0
Destination: 100::/96 Protocol : BGP4+
NextHop : 10:2::1 Preference: 255
Interface : GE1/0/1 Cost : 0
Destination: 200::/96 Protocol : Static
NextHop : :: Preference: 60
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
# CE 1和CE 2的GigabitEthernet1/0/2接口地址之间能够相互Ping通。
· CE 1、CE 2和CE 3同属于VPN 1,分别接入PE 1、PE 2和PE 3。
· CE 1和CE 2位于同一个站点。
· CE 1、CE 2和CE 3复用AS号600。
· 为了避免路由丢失,在PE上配置AS号替换;为了避免路由在CE 1和CE 2之间产生环路,在PE 1和PE 2上分别为CE 1和CE 2配置相同的SoO属性。
图2-13 BGP的AS号替换和SoO属性组网图
设备 |
接口 |
IP地址 |
设备 |
接口 |
IP地址 |
CE 1 |
Loop0 |
100::1/96 |
CE 3 |
Loop0 |
200::1/96 |
|
GE1/0/1 |
10:1::1/96 |
|
GE1/0/1 |
10:3::1/96 |
CE 2 |
GE1/0/1 |
10:2::1/96 |
PE 2 |
Loop0 |
2.2.2.9/32 |
PE 1 |
Loop0 |
1.1.1.9/32 |
|
GE1/0/1 |
10:2::2/96 |
|
GE1/0/1 |
10:1::2/96 |
|
GE1/0/2 |
40.1.1.1/24 |
|
GE1/0/2 |
20.1.1.1/24 |
|
GE1/0/3 |
20.1.1.2/24 |
|
GE1/0/3 |
30.1.1.1/24 |
P |
Loop0 |
3.3.3.9/32 |
PE 3 |
Loop0 |
4.4.4.9/32 |
|
GE1/0/1 |
30.1.1.2/24 |
|
GE1/0/1 |
10:3::2/96 |
|
GE1/0/2 |
40.1.1.2/24 |
|
GE1/0/2 |
50.1.1.2/24 |
|
GE1/0/3 |
50.1.1.1/24 |
(1) 配置基本IPv6 MPLS L3VPN
¡ 在MPLS骨干网上配置OSPF,PE和P之间能够学到对方Loopback接口的路由;
¡ 在MPLS骨干网上配置MPLS基本能力和MPLS LDP,建立LDP LSP;
¡ PE之间建立MP-IBGP对等体关系,发布VPNv6路由;
¡ 在 PE 1上配置VPN 1的VPN实例,接入CE 1;
¡ 在PE 2上配置VPN 1的VPN实例,接入CE 2;
¡ 在PE 3上配置VPN 1的VPN实例,接入CE 3;
¡ PE 1和CE 1、PE 2和CE 2、PE 3和CE 3之间配置BGP,将CE的路由引入PE。
¡ 上述配置可参考“2.20.1 配置IPv6 MPLS L3VPN示例”,具体配置过程略。
(2) 配置BGP的AS号替换功能
# 在PE 1、PE 2和PE 3上配置BGP的AS号替换功能,具体配置参见“2.20.10 配置BGP的AS号替换”。
# 查看CE 2接收的路由信息,可以看到CE 1发来的路由100::/96。可见,由于CE 1和CE 2位于同一站点,造成了路由环路。
<CE2> display bgp routing-table ipv6 peer 10:2::2 received-routes
Total number of routes: 2
BGP local router ID is 12.1.1.3
Status codes: * - valid, > - best, d - dampened, h - history,
s - suppressed, S - stale, i - internal, e - external
Origin: i - IGP, e - EGP, ? - incomplete
* >e Network : 100:: PrefixLen : 96
NextHop : 10:2::2 LocPrf :
PrefVal : 0 OutLabel : NULL
MED :
Path/Ogn: 100 100?
* >e Network : 200:: PrefixLen : 96
NextHop : 10:2::2 LocPrf :
PrefVal : 0 OutLabel : NULL
MED :
Path/Ogn: 100 100?
(3) 配置BGP的SoO属性
# 在PE 1上为对等体CE 1配置SoO属性为1:100。
<PE1> system-view
[PE1] bgp 100
[PE1-bgp-default] ip vpn-instance vpn1
[PE1-bgp-default-vpn1] address-family ipv6
[PE1-bgp-default-ipv6-vpn1] peer 10:1::1 soo 1:100
# 在PE 2上为对等体CE 2配置SoO属性为1:100。
[PE2] bgp 100
[PE2-bgp-default] ip vpn-instance vpn1
[PE2-bgp-default-vpn1] address-family ipv6
[PE2-bgp-default-ipv6-vpn1] peer 10:2::1 soo 1:100
# 由于配置的SoO属性相同,PE 2不会将CE 1发过来的路由发布给CE 2。查看CE 2路由表,不会再看到100::/96路由。
<CE2> display ipv6 routing-table
Destinations : 4 Routes : 4
Destination: ::1/128 Protocol : Direct
NextHop : ::1 Preference: 0
Interface : InLoop0 Cost : 0
Destination: 10:2::/96 Protocol : Direct
NextHop : :: Preference: 0
Interface : GE1/0/1 Cost : 0
Destination: 10:2::1/128 Protocol : Direct
NextHop : ::1 Preference: 0
Interface : InLoop0 Cost : 0
Destination: 200::/96 Protocol : Static
NextHop : :: Preference: 60
Interface : NULL0 Cost : 0
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!