01-MCE配置
本章节下载: 01-MCE配置 (738.7 KB)
目 录
:
l 本章所指的路由器代表了一般意义下的路由器,以及运行了路由协议的三层交换机。为提高可读性,在手册的描述中将不另行说明。
l 本章只涉及MCE的介绍和配置,涉及到的各种路由协议的介绍和配置请参见“三层技术-IP路由配置指导”中的相关内容。
l 本章中提到的三层以太网接口是指工作模式被配置成三层模式的以太网端口,有关以太网端口工作模式切换的操作,请参见“二层技术-以太网交换配置指导”中的“以太网端口配置”部分。
MPLS L3VPN是服务提供商VPN解决方案中一种基于PE的L3VPN技术,它使用BGP在服务提供商骨干网上发布VPN路由,使用MPLS在服务提供商骨干网上转发VPN报文。
MPLS L3VPN组网方式灵活、可扩展性好,并能够方便地支持MPLS QoS和MPLS TE,因此得到越来越多的应用。
MPLS L3VPN模型由三部分组成:CE、PE和P。
l CE(Customer Edge)设备:用户网络边缘设备,有接口直接与SP(Service Provider,服务提供商)相连。CE可以是路由器或交换机,也可以是一台主机。CE“感知”不到VPN的存在,也不需要必须支持MPLS。
l PE(Provider Edge)路由器:服务提供商边缘路由器,是服务提供商网络的边缘设备,与用户的CE直接相连。在MPLS网络中,对VPN的所有处理都发生在PE上。
l P(Provider)路由器:服务提供商网络中的骨干路由器,不与CE直接相连。P设备只需要具备基本MPLS转发能力。
图1-1是一个MPLS L3VPN组网方案的示意图。
CE和PE的划分主要是根据SP与用户的管理范围,CE和PE是两者管理范围的边界。
CE设备通常是一台路由器,当CE与直接相连的PE建立邻接关系后,CE把本站点的VPN路由发布给PE,并从PE学到远端VPN的路由。CE与PE之间使用BGP/IGP交换路由信息,也可以使用静态路由。
PE从CE学到CE本地的VPN路由信息后,通过BGP与其它PE交换VPN路由信息。PE路由器只维护与它直接相连的VPN的路由信息,不维护服务提供商网络中的所有VPN路由。
P路由器只维护到PE的路由,不需要了解任何VPN路由信息。
当在MPLS骨干网上传输VPN流量时,入口PE做为Ingress LSR(Label Switch Router,标签交换路由器),出口PE做为Egress LSR,P路由器则做为Transit LSR。
在介绍VPN时经常会提到“站点”,站点(Site)的含义可以从下述几个方面理解:
l 站点是指相互之间具备IP连通性的一组IP系统,并且,这组IP系统的IP连通性不需通过服务提供商网络实现;
l 站点的划分是根据设备的拓扑关系,而不是地理位置,尽管在大多数情况下一个站点中的设备地理位置相邻;
l 一个站点中的设备可以属于多个VPN,换言之,一个站点可以属于多个VPN;
l 站点通过CE连接到服务提供商网络,一个站点可以包含多个CE,但一个CE只属于一个站点。
对于多个连接到同一服务提供商网络的站点,通过制定策略,可以将它们划分为不同的集合(set),只有属于相同集合的站点之间才能通过服务提供商网络互访,这种集合就是VPN。
VPN是一种私有网络,不同的VPN独立管理自己使用的地址范围,也称为地址空间(Address Space)。
不同VPN的地址空间可能会在一定范围内重合,比如,VPN 1和VPN 2都使用了10.110.10.0/24网段的地址,这就发生了地址空间重叠(Overlapping Address Spaces)。
在MPLS VPN中,不同VPN之间的路由隔离通过VPN实例(VPN-instance)实现。
PE为每个直接相连的站点建立并维护专门的VPN实例。VPN实例中包含对应站点的VPN成员关系和路由规则。如果一个站点中的用户同时属于多个VPN,则该站点的VPN实例中将包括所有这些VPN的信息。
为保证VPN数据的独立性和安全性,PE上每个VPN实例都有相对独立的路由表和LFIB(Label Forwarding Information Base,标签转发表)。
具体来说,VPN实例中的信息包括:标签转发表、IP路由表、与VPN实例绑定的接口以及VPN实例的管理信息。VPN实例的管理信息包括RD(Route Distinguisher,路由标识符)、路由过滤策略、成员接口列表等。
传统BGP无法正确处理地址空间重叠的VPN的路由。假设VPN 1和VPN 2都使用了10.110.10.0/24网段的地址,并各自发布了一条去往此网段的路由,BGP将只会选择其中一条路由,从而导致去往另一个VPN的路由丢失。
PE路由器之间使用MP-BGP来发布VPN路由,并使用VPN-IPv4地址族来解决上述问题。
VPN-IPv4地址共有12个字节,包括8字节的RD和4字节的IPv4地址前缀,如图1-2所示。
图1-2 VPN-IPv4地址结构
PE从CE接收到普通IPv4路由后,需要将这些私网VPN路由发布给对端PE。私网路由的独立性是通过为这些路由附加RD实现的。
SP可以独立地分配RD,但必须保证RD的全局唯一性。这样,即使来自不同服务提供商的VPN使用了同样的IPv4地址空间,PE路由器也可以向各VPN发布不同的路由。
建议为PE上每个VPN实例配置专门的RD,以保证到达同一CE的路由都使用相同的RD。RD为0的VPN-IPv4地址相当于全局唯一的IPv4地址。
RD的作用是添加到一个特定的IPv4前缀,使之成为全局唯一的VPN IPv4前缀。
RD或者是与自治系统号(ASN)相关的,在这种情况下,RD是由一个自治系统号和一个任意的数组成;或者是与IP地址相关的,在这种情况下,RD是由一个IP地址和一个任意的数组成。
RD有三种格式,通过2字节的Type字段区分:
l Type为0时,Administrator子字段占2字节,Assigned number子字段占4字节,格式为:16bits自治系统号:32bits用户自定义数字。例如:100:1
l Type为1时,Administrator子字段占4字节,Assigned number子字段占2字节,格式为:32bitsIPv4地址:16bits用户自定义数字。例如:172.1.1.1:1
l Type为2时,Administrator子字段占4字节,Assigned number子字段占2字节,格式为:32bits自治系统号:16bits用户自定义数字,其中的自治系统号最小值为65536。例如:65536:1
为保证RD的全局唯一性,建议不要将Administrator子字段的值设置为私有AS号或私有IP地址。
MPLS L3VPN使用BGP扩展团体属性——VPN Target(也称为Route Target)来控制VPN路由信息的发布。
PE路由器上的VPN实例有两类VPN Target属性:
l Export Target属性:在本地PE将从与自己直接相连的站点学到的VPN-IPv4路由发布给其它PE之前,为这些路由设置Export Target属性;
l Import Target属性:PE在接收到其它PE路由器发布的VPN-IPv4路由时,检查其Export Target属性,只有当此属性与PE上VPN实例的Import Target属性匹配时,才把路由加入到相应的VPN路由表中。
也就是说,VPN Target属性定义了一条VPN-IPv4路由可以为哪些站点所接收,PE路由器可以接收哪些站点发送来的路由。
与RD类似,VPN Target也有三种格式:
l 16bits自治系统号:32bits用户自定义数字,例如:100:1。
l 32bits IPv4地址:16bits用户自定义数字,例如:172.1.1.1:1。
l 32bits自治系统号:16bits用户自定义数字,其中的自治系统号最小值为65536。例如:65536:1。
BGP/MPLS VPN以隧道的方式解决了在公网中传送私网数据的问题,但传统的BGP/MPLS VPN架构要求每个VPN实例单独使用一个CE与PE相连,如图1-1所示。
随着用户业务的不断细化和安全需求的提高,很多情况下一个私有网络内的用户需要划分成多个VPN,不同VPN用户间的业务需要完全隔离。此时,为每个VPN单独配置一台CE将加大用户的设备开支和维护成本;而多个VPN共用一台CE,使用同一个路由表项,又无法保证数据的安全性。
使用本系列产品提供的MCE(Multi-VPN-Instance CE,具备多VPN实例功能的CE)功能,可以有效解决多VPN网络带来的用户数据安全与网络成本之间的矛盾,它使用CE设备本身的VLAN接口编号与网络内的VPN进行绑定,并为每个VPN创建和维护独立的路由转发表(Multi-VRF)。这样不但能够隔离私网内不同VPN的报文转发路径,而且通过与PE间的配合,也能够将每个VPN的路由正确发布至对端PE,保证VPN报文在公网内的传输。
下面以图1-3为例介绍MCE对多个VPN的路由表项进行维护,并与PE交互VPN路由的过程。
图1-3 MCE工作原理示意图
如图1-3所示,左侧私网内有两个VPN站点:站点1和站点2,分别通过MCE设备接入MPLS骨干网,其中VPN1和VPN2的用户,需要分别与远端站点2内的VPN1用户和站点1内的VPN2用户建立VPN隧道。
通过配置MCE功能,可以在MCE设备上为VPN1和VPN2创建不同的VPN实例,为其维护各自独立的路由表,并使用Vlan-interface2接口与VPN1进行绑定、Vlan-interface3与VPN2进行绑定。在接收路由信息时,MCE设备根据接收接口的编号,即可判断该路由信息的来源,并将其维护到对应VPN实例的路由转发表中。
同时,MCE需要通过不同的路由协议或进程来向PE发布VPN1和VPN2的路由,以便PE能够识别并分别维护不同VPN的路由。因此,MCE需要通过两个接口连接到PE,并创建两个VPN实例与两个接口分别绑定。在向PE发布VPN路由时,将不同的路由协议或进程与VPN实例绑定,并在不同的协议或进程中分别引入VPN1和VPN2内的路由。
通过上述过程,MCE即可将两个VPN内的路由信息分别发布到PE设备。
除MPLS L3VPN外,目前能够提供VPN功能的还有隧道技术。本交换机提供的MCE功能在通过隧道实现VPN的组网中,也可以进行应用。具体的实现方式如图1-4所示:
图1-4 在隧道组网中使用MCE的组网方式一
在两台MCE设备间建立多条隧道,并将隧道接口与指定的VPN实例进行绑定,可以使VPN实例的路由信息和数据通过绑定的隧道接口传输至对端设备,对端MCE设备根据接收路由的隧道接口来判断该路由所属的VPN实例,并将其发布给相应的站点。例如在图1-4中将隧道1与VPN1实例绑定,便可以使MCE设备在该隧道上传输VPN1的路由信息和数据。
另外一种隧道环境的组网方式是将MCE设备通过隧道与远端多个CE进行连接,该方式中CE设备只需按正常方式接收和发布路由,MCE设备根据隧道接口与VPN的绑定关系来发送和接收VPN路由信息。组网示意如图1-5所示:
图1-5 在隧道组网中使用MCE的组网方式二
l 在隧道环境中使用MCE时,MCE设备可以直接与对端MCE设备(或多个CE设备)交互VPN路由信息,交互方式与在MPLS L3VPN环境下MCE与PE的交互方式相同,请参见1.2.2 MCE与PE间的路由交换。
l 目前支持MCE功能的隧道类型有GRE隧道、IPv4 over IPv4隧道、IPv4 over IPv6隧道。
l 关于隧道种类的介绍和相关配置,请参见“三层技术-IP业务配置指导”中的“隧道配置”部分。
通过接口与VPN实例的绑定,MCE与PE已经能够正确判断报文的来源,参考对应VPN实例的路由信息对报文进行转发。下面介绍一下MCE设备如何将多个VPN实例的私网路由信息准确传播到PE设备。
MCE可以使用如下的路由协议与站点交换VPN私网路由:
l 静态路由
l RIP
l OSPF
l IS-IS
l IBGP
l EBGP
下文只介绍各路由协议与MCE功能配合的配置思路,有关路由协议的基本原理,请参见“三层技术-IP路由配置指导”中的相关介绍。
MCE可以通过静态路由与站点连接。传统CE配置的静态路由对全局生效,无法解决多VPN间的地址重叠问题。本系列产品提供的MCE功能可以将静态路由与VPN实例相绑定,将各VPN之间的静态路由进行隔离。
本系列产品提供了将RIP进程与VPN实例绑定的方法,通过在MCE上配置RIP进程与VPN实例的绑定关系,使不同VPN内的私网路由可以通过不同的RIP进程在站点和MCE间进行交互,保证了私网路由的隔离和安全。
本系列产品提供了将OSPF进程与VPN实例绑定的功能,用来在MCE上隔离不同VPN的路由。
需要注意的是:
在VPN实例所绑定的OSPF进程中,将不会使用在系统视图下配置的公网Router ID,需要用户在启动进程时手工配置Router ID。
一个OSPF进程只能绑定一个VPN实例,但一个VPN实例可以使用多个OSPF进程为其传播私网路由。同一VPN实例内的OSPF进程应配置有相同的域ID,以保证路由发布的正确性。
对于标准的BGP/OSPF互相引用功能,当在MCE设备上配置引入BGP路由到OSPF中时,该路由的原OSPF属性将无法恢复,造成该路由与从其他域引入的路由无法区分。为了区分原属于不同OSPF域的路由,需要在远端PE将OSPF路由引入到BGP时携带标识域的属性,即OSPF的域ID(Domain ID)。OSPF进程的域ID包含在此进程生成的路由中,在将OSPF路由引入BGP中时,域ID被附加到BGP VPN路由上,作为BGP的扩展团体属性传递。
在某些情况下,同一个VPN可能会连接多个MCE设备,当其中一个MCE将从BGP学到的路由向VPN内发布时,可能会被另外的MCE设备学到,造成路由环。为避免路由环路,可以在MCE上为不同的VPN实例配置Route Tag,建议在多个MCE上为同一个VPN配置相同的Route Tag。
MCE和站点之间使用IS-IS传播私网路由的方式与使用OSPF时类似,将进程与VPN实例进行绑定。一个IS-IS进程只能属于一个VPN实例。
当MCE和站点之间使用IBGP传播私网路由时,需要在MCE上为每个VPN实例配置IBGP对等体,并引入相应VPN内的IGP路由信息。当MCE同时与属于同一VPN的多个站点进行连接时,可以将MCE设备配置为路由反射器,站点的出口路由器配置为客户端,使MCE在多个站点之间传递(反射)路由信息,而站点之间不需要建立BGP连接,减少了BGP连接数量,简化了网络配置。
当MCE和站点之间使用EBGP传播私网路由时,需要在MCE上为每个VPN实例配置EBGP对等体,并引入相应VPN内的IGP路由信息。由于一般情况下各个站点处于不同的AS内,因此应使用EBGP进行路由的传播。
(1) 配置EBGP引入各站点内的IGP路由
为正确的将私网路由发布到PE,需要MCE首先将与其直连站点内的IGP路由引入到自己的BGP路由表中。
(2) 为每个VPN实例配置对等体组
为准确地与各站点交换路由信息,可以在BGP的IPv4地址族视图下,为每个VPN实例配置对等体组,并指定对等体组的AS编号。
(3) 通过Filter-policy对路由进行过滤
为正确地将路由信息传播到站点和PE设备,在指定对等体后,还需要使用Filter-policy对接收/发布的路由进行过滤。
由于在MCE设备上已经将路由信息与VPN实例进行了绑定,因此,只需要在MCE与PE之间将接口与VPN实例进行绑定,再进行简单的路由配置,便可以将MCE的VPN路由表项引入到MCE-PE间的路由协议中,实现私网VPN路由信息的传播。
MCE与PE之间可以使用以下的路由协议进行路由交换:
l 静态路由
l RIP
l OSPF
l IS-IS
l IBGP
l EBGP
各路由协议的配置方法及引入路由的操作,请参考“三层技术-IP路由配置指导”中的介绍。
VPN实例用于将VPN私网路由与公网路由隔离,在所有MCE组网方案中,都需要配置VPN实例。
VPN实例不仅可以将VPN私网路由与公网路由隔离,不同VPN实例的路由之间也是相互隔离的,这一特点使得VPN实例的使用不限于MCE。
VPN实例在实现中与站点关联。VPN实例不是直接对应于VPN,一个VPN实例综合了和它所对应站点的VPN成员关系和路由规则。
一个VPN实例只有配置了RD后才生效。在配置RD之前,除了描述信息外,不能配置VPN实例的其他任何参数。
描述信息用于描述VPN实例,可以用来记录VPN实例与某个VPN的关系等信息。
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建VPN实例,并进入VPN实例视图 |
ip vpn-instance vpn-instance-name |
必选 |
配置VPN实例的RD |
route-distinguisher route-distinguisher |
必选 |
配置VPN实例的描述信息 |
description text |
可选 |
为方便记忆和管理,建议用户在MCE设备和PE设备上为同一个VPN实例配置相同的RD。
l 在MPLS L3VPN环境中,需要将VPN实例与连接PE设备的接口进行关联。
l 在隧道环境中,需要将VPN实例与连接对端MCE设备(或CE设备)的隧道接口进行关联。
l 本系列产品还支持将管理用以太网口与VPN实例进行绑定,使管理用以太网口上的IP地址仅参与VPN实例内部的路由计算。
VPN实例配置完成后,还需要与连接各个VPN 站点的接口进行关联。
表1-2 配置VPN实例与接口关联
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入要关联接口的VLAN接口视图或三层以太网接口视图 |
interface interface-type interface-number |
- |
将当前接口与VPN实例关联 |
ip binding vpn-instance vpn-instance-name |
必选 缺省情况下,接口不关联任何VPN实例 |
执行ip binding vpn-instance命令将删除接口上已经配置的IP地址,因此需要重新配置接口的IP地址。
MCE设备对VPN路由的发布控制过程如下:
l 当从VPN 站点内学习到的一条VPN路由引入BGP时,BGP为它关联一个VPN Target扩展团体属性列表,通常这个列表是与该站点相关联的VPN实例的输出路由属性列表。
l VPN实例根据VPN Target中import-extcommunity决定可被接受并引入此VPN实例的路由。
l VPN实例根据VPN Target中的export-extcommunity对向外发布的路由进行VPN Target属性的修改。
表1-3 配置VPN实例的路由相关属性
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入VPN实例视图 |
ip vpn-instance vpn-instance-name |
必选 |
进入IPv4 VPN视图 |
ipv4-family |
可选 |
将当前VPN实例与一个或多个VPN Target相关联 |
vpn-target vpn-target&<1-8> [ both | export-extcommunity | import-extcommunity ] |
必选 |
配置VPN实例支持的最大路由数 |
routing-table limit number { warn-threshold | simply-alert } |
可选 缺省情况下,没有配置当前VPN实例支持的最多路由数 |
对当前VPN实例应用入方向路由策略 |
import route-policy route-policy |
可选 缺省情况下,允许所有VPN Target属性匹配的路由通过 |
对当前VPN实例应用出方向路由策略 |
export route-policy route-policy |
可选 缺省情况下,允许所有VPN Target属性匹配的路由通过 |
l 只有当MCE与PE间运行BGP时,VPN Target属性才会随路由发布到PE,否则配置该属性没有意义。
l 既可以在VPN实例视图下,也可以在IPv4 VPN视图下,配置IPv4 VPN的路由相关属性。如果同时在两个视图下配置了路由相关属性,则IPv4 VPN采用IPv4 VPN视图下配置的路由相关属性。
l 命令vpn-target最多可以配置8个VPN Target;一个VPN实例最多可以配置64个VPN Target。
l 可以配置一个VPN实例可以支持的最大路由数,以防止PE路由器的入接口有过多的路由。
l 为VPN实例配置路由策略之前必须已经创建了路由策略,否则将采用缺省路由策略。
MCE可以看作一种通过路由隔离实现业务隔离的组网方案,配置上,与传统的CE接入方式相比并没有特殊之处,但需要使能多VPN实例CE功能。
配置该功能后,路由计算时关闭PE路由上的路由环路检测功能,防止路由丢失;同时禁止各路由协议互操作功能,节省系统资源。
本节中以MPLS L3VPN组网环境为例对MCE上的配置进行介绍,在隧道环境中,MCE设备与对端MCE设备(CE设备)之间的路由交换配置与MPLS L3VPN环境中MCE与PE间的路由交换配置相同。
MCE可以通过静态路由与站点和PE间交换路由信息。传统CE配置的静态路由对全局生效,无法解决多VPN间的地址重叠问题。本交换机提供的MCE功能可以将静态路由与VPN实例相绑定,将各VPN之间的静态路由进行隔离。
表1-4 配置MCE与静态路由进行路由交换
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
为指定VPN实例配置静态路由 |
ip route-static vpn-instance s-vpn-instance-name&<1-6> dest-address { mask | mask-length } { gateway-address [ public ] | interface-type interface-number [ gateway-address ] | vpn-instance d-vpn-instance-name gateway-address } [ preference preference-value ] [ tag tag-value ] [ description description-text ] |
必选 缺省情况下,静态路由的优先级preference为60,静态路由tag值为0,未配置描述信息 一般情况下,使用第一条命令向站点和PE发布某个VPN实例的静态路由,如果用户想发布全局的静态路由信息,可以使用第二条命令 |
ip route-static dest-address { mask | mask-length } { gateway-address | interface-type interface-number [ gateway-address ] | vpn-instance d-vpn-instance-name gateway-address } [ preference preference-value ] [ tag tag-value ] [ description description-text ] |
||
配置静态路由的缺省优先级 |
ip route-static default-preference default-preference-value |
可选 缺省情况下,静态路由的缺省优先级为60 |
一个RIP进程只能绑定一个VPN实例。如果在启动RIP进程时不绑定到VPN实例,则该进程属于公网进程。通过在MCE和站点间配置相同的绑定关系,使不同VPN内的私网路由可以通过不同的RIP进程在站点和MCE间进行交互,保证了私网路由的隔离和安全。
表1-5 配置MCE与RIP进行路由交换
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入RIP视图,并将RIP进程与VPN实例进行绑定 |
rip [ process-id ] vpn-instance vpn-instance-name |
必选 |
分别引入连接PE和站点端其它协议的路由 |
import-route protocol [ process-id ] [ allow-ibgp ] [ cost cost | route-policy route-policy-name | tag tag ] * |
必选 缺省情况下,RIP未引入其它路由 l 如果当前配置的是MCE与站点间的RIP协议,则这里引入的路由应来自于MCE与PE间传播该VPN的路由时所使用的路由协议进程 l 如果当前配置的是MCE与PE间的RIP协议,则这里引入的路由应来自于MCE与站点间传播该VPN的路由时所使用的路由协议进程 |
配置引入路由的缺省度量值 |
default cost value |
可选 缺省情况下,引入路由的缺省度量值为0 |
配置RIP实例后,需要启动RIP,具体配置与普通的RIP相同,有关RIP协议的配置,请参见“三层技术-IP路由配置指导”中的“RIP配置”。
一个OSPF进程只能属于一个VPN实例。如果在启动OSPF进程时不绑定到VPN实例,则该进程属于公网进程。
在MCE与PE之间,除了配置与VPN实例绑定的OSPF进程和Router ID外,还需要手工将MCE中维护的站点内的VPN路由引入到PE的路由表中,或将MCE从PE设备接收的VPN路由引入到站点中。
表1-6 配置MCE使用OSPF进行路由交换
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入OSPF视图,并将OSPF进程与VPN实例进行绑定 |
ospf [ process-id | router-id router-id | vpn-instance vpn-instance-name ] * |
必选 |
开启OSPF的VPN多实例功能 |
vpn-instance-capability simple |
必选 缺省情况下,没有开启OSPF的VPN多实例功能 |
配置OSPF域标识符 |
domain-id domain-id [ secondary ] |
可选 缺省情况下,OSPF域标识符为0 该配置在MCE上进行,站点上配置普通OSPF即可 该命令只需要在与站点交互路由的OSPF进程下配置 |
分别引入PE和站点端其它协议的路由 |
import-route protocol [ process-id | allow-ibgp ] [ cost cost | type type | tag tag | route-policy route-policy-name ] * |
必选 缺省情况下,没有引入其他协议的路由信息 l 如果当前配置的是MCE与站点间的OSPF协议,则这里引入的路由应来自于MCE与PE间传播该VPN的路由时所使用的路由协议进程 l 如果当前配置的是MCE与PE间的OSPF协议,则这里引入的路由应来自于MCE与站点间传播该VPN的路由时所使用的路由协议进程 |
配置对引入的路由进行过滤 |
filter-policy { acl-number | ip-prefix ip-prefix-name } export [ protocol [ process-id ] ] |
可选 缺省情况下,没有对引入的路由信息进行过滤 |
配置引入外部路由时的参数缺省值(开销、路由数量、标记、类型)(该配置仅连接PE端使用) |
default { cost cost | limit limit | tag tag | type type } * |
可选 缺省情况下,OSPF引入外部路由的度量值为1,单位时间内引入外部路由数量的上限为1000,外部路由标记值为1,引入的外部路由类型为Type2 |
配置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 该命令仅在需要修改Domain ID的类型编码时需要配置 |
l VPN实例绑定的OSPF进程中不使用系统视图下配置的公网Router ID,因此用户需要在启动进程时手工配置Router ID。同一VPN的所有OSPF进程应配置相同的域ID,以保证路由发布的正确性。
l 一个OSPF进程只能属于一个VPN实例,但一个VPN实例可以使用多个OSPF进程为其传播私网路由。同一VPN实例内的OSPF进程应配置有相同的域ID,以保证路由发布的正确性。
l 配置OSPF实例后,需要启动OSPF,具体配置与普通的OSPF相同。有关OSPF协议的配置,请参见“三层技术-IP路由配置指导”中的“OSPF配置”。
一个IS-IS进程只能属于一个VPN实例。如果在启动IS-IS进程时不绑定到VPN实例,则该进程属于公网进程。
表1-7 配置MCE使用IS-IS进行路由交换
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入IS-IS视图 |
isis [ process-id ] vpn-instance vpn-instance-name |
必选 |
分别引入PE和站点端其它协议的路由 |
import-route { isis [ process-id ] | ospf [ process-id ] | rip [ process-id ] | bgp [ allow-ibgp ] | direct | static } [ cost cost | cost-type { external | internal } | [ level-1 | level-1-2 | level-2 ] | route-policy route-policy-name | tag tag ] * |
可选 缺省情况下,IS-IS不引入其它协议的路由信息 如果import-route命令中不指定引入的级别,则默认为引入路由到Level-2路由表中 l 如果当前配置的是MCE与站点间的IS-IS协议,则这里引入的路由应来自于MCE与PE间传播该VPN的路由时所使用的路由协议进程 l 如果当前配置的是MCE与PE间的IS-IS协议,则这里引入的路由应来自于MCE与站点间传播该VPN的路由时所使用的路由协议进程 |
对引入的路由进行过滤(该配置仅连接PE端使用) |
filter-policy { acl-number | ip-prefix ip-prefix-name | route-policy route-policy-name } export [ isis process-id | ospf process-id | rip process-id | bgp | direct | static ] |
可选 缺省情况下,IS-IS不对引入的路由信息进行过滤 |
配置IS-IS实例后,需要启动IS-IS,具体配置与普通的IS-IS相同。有关IS-IS协议的配置,请参见“三层技术-IP路由配置指导”中的“IS-IS配置”。
当MCE与PE或站点出口路由器之间使用IBGP交换路由信息时,需要将MCE与PE或站点出口路由器配置为IBGP对等体。
如果MCE与同一VPN中的多个站点相连,则需要将MCE设备与这些站点的出口路由器配置为一个集群,并设置MCE设备为这个集群的路由反射器。
表1-8 配置MCE使用IBGP进行路由交换
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入BGP视图 |
bgp as-number |
- |
进入BGP-VPN实例视图 |
ipv4-family vpn-instance vpn-instance-name |
必选 |
将PE或站点出口路由器配置为VPN私网IBGP对等体 |
peer { group-name | ip-address } as-number as-number |
必选 |
将站点出口路由器配置为路由反射器的客户端 |
peer { group-name | ip-address } reflect-client |
可选 缺省情况下,没有配置路由反射器及其客户端 |
配置允许客户端到客户端的路由反射 |
reflect between-clients |
可选 缺省情况下,允许客户端到客户端的路由反射 如果客户之间是全连接的,则不需要配置路由反射 |
配置路由反射器的集群ID |
reflector cluster-id cluster-id |
可选 缺省情况下,每个路由反射器都使用自己的Router ID作为群ID 如果一个群中配置了多个路由反射器,请使用本命令为所有的路由反射器配置相同的群ID,以避免产生路由环路 |
配置对发布的路由信息进行过滤 |
filter-policy { acl-number | ip-prefix ip-prefix-name } export [ direct | isis process-id | ospf process-id | rip process-id | static ] |
可选 缺省情况下,不对发布的路由信息进行过滤 |
配置对接收的路由信息进行过滤 |
filter-policy { acl-number | ip-prefix ip-prefix-name } import |
可选 缺省情况下,不对接收的路由信息进行过滤 |
站点出口路由器上需要将MCE设备配置为IBGP对等体,如果站点内部使用的是其它路由协议,将该路由协议的路由信息引入IBGP,配置过程与普通IBGP的配置一致,请参见“三层技术-IP路由配置指导”中的“BGP配置”。
在MCE与PE间使用EBGP交换路由信息时,需要在两端的BGP-VPN实例中将对端设置为对等体,并在MCE上引入站点内的VPN路由发布到PE上。
在MCE与站点间使用EBGP交换路由信息时,需要在MCE上为每个VPN实例配置BGP对等体,并引入相应VPN内的IGP路由信息。由于各个站点间正常情况下是处在不同的AS内,因此使用EBGP进行路由的传播。
(1) 配置EBGP引入各站点内的IGP路由
为正确的将私网路由发布到PE,需要MCE首先将与其直连站点内的IGP路由引入到自己的BGP路由表中。
(2) 为每个VPN实例配置对等体组
为准确地与各站点交换路由信息,可以在BGP的IPv4地址族视图下,为每个VPN实例配置对等体组,并指定对等体组的AS编号。
(3) 通过Filter-policy对路由进行过滤
为正确地将路由信息传播到站点和PE设备,在指定对等体后,还需要使用Filter-policy对接收/发布的路由进行过滤。
表1-9 配置MCE使用EBGP进行路由交换
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入BGP视图 |
bgp as-number |
- |
进入BGP-VPN实例视图 |
ipv4-family vpn-instance vpn-instance-name |
必选 |
配置对等体组中加入对等体 |
peer { group-name | ip-address } [ as-number as-number ] |
二者必选其一 |
配置允许本地AS号在所接收的路由的AS_PATH属性中出现,并可同时配置允许重复的次数 |
peer { group-name | ip-address } allow-as-loop [ number ] |
|
分别引入PE和站点端其它协议的路由 |
import-route protocol [ process-id | all-processes ] [ med med-value | route-policy route-policy-name ] * |
必选 缺省情况下,BGP不引入且不通告其它协议的路由 l 如果当前配置的是MCE与站点间的BGP协议,则这里引入的路由应来自于MCE与PE间传播该VPN的路由时所使用的路由协议进程 l 如果当前配置的是MCE与PE间的BGP协议,则这里引入的路由应来自于MCE与站点间传播该VPN的路由时所使用的路由协议进程 |
配置对发布的路由信息进行过滤 |
filter-policy { acl-number | ip-prefix ip-prefix-name } export [ direct | isis process-id | ospf process-id | rip process-id | static ] |
可选 缺省情况下,不对发布的路由信息进行过滤 |
配置对接收的路由信息进行过滤 |
filter-policy { acl-number | ip-prefix ip-prefix-name } import |
可选 缺省情况下,不对接收的路由信息进行过滤 |
l 通常情况下,BGP通过AS号检测路由环路。如果在MCE和站点之间运行EBGP,当MCE将路由信息通告给站点时带上本自治系统的AS号,再从站点接收路由更新时,路由更新消息中会带有本自治系统的AS号,这样MCE就不能接收这条路由更新信息,此时需要配置允许路由环路。
l 对于标准的BGP/OSPF互相引用功能,当在MCE设备上配置引入BGP路由到OSPF中时,该路由的原OSPF属性将无法恢复,造成该路由与从其他域引入的路由无法区分。为了区分原属于不同OSPF域的路由,需要在远端PE将OSPF路由引入到BGP时携带标识域的属性,即OSPF的域ID(Domain ID)。OSPF进程的域ID包含在此进程生成的路由中,在将OSPF路由引入BGP中时,域ID被附加到BGP VPN路由上,作为BGP的扩展团体属性传递。
l 配置BGP VPN实例后,VPN实例中的BGP路由交换与普通的BGP相同。有关BGP协议的配置,请参见“三层技术-IP路由配置指导”中的“BGP配置”。
当BGP配置变化后,可以通过软复位或复位BGP连接使新的配置生效。软复位需要BGP对等体具备路由刷新能力(支持ROUTE-REFRESH消息)。
请在用户视图下进行下列操作。
操作 |
命令 |
软复位指定VPN实例的BGP连接 |
refresh bgp vpn-instance vpn-instance-name { ip-address | all | external | group group-name } { export | import } |
复位指定VPN实例的BGP连接 |
reset bgp vpn-instance vpn-instance-name { as-number | ip-address | all | external | group group-name } |
在完成上述配置后,在任意视图下执行display命令可以显示配置后MPLS L3VPN的运行情况,通过查看显示信息验证配置的效果。
在用户视图下执行reset命令可以清除路由振荡衰减信息。
表1-11 显示MCE的运行状态
操作 |
命令 |
显示与VPN实例相关联的IP路由表 |
display ip routing-table vpn-instance vpn-instance-name [ verbose ] [ verbose ] [ | { begin | exclude | include } regular-expression ] |
显示指定VPN实例信息 |
display ip vpn-instance [ instance-name vpn-instance-name ] [ | { begin | exclude | include } regular-expression ] |
显示指定VPN实例的FIB信息 |
display fib vpn-instance vpn-instance-name [ acl acl-number | ip-prefix ip-prefix-name ] [ | { begin | exclude | include } regular-expression ] |
显示指定VPN实例中与指定目的IP地址匹配的FIB信息 |
display fib vpn-instance vpn-instance-name ip-address [ mask | mask-length ] [ | { begin | exclude | include } regular-expression ] |
显示BGP VPNv4对等体组信息 |
display bgp vpnv4 vpn-instance vpn-instance-name group [ group-name ] [ | { begin | exclude | include } regular-expression ] |
显示引入的BGP VPNv4路由信息 |
display bgp vpnv4 vpn-instance vpn-instance-name network [ | { begin | exclude | include } regular-expression ] |
显示BGP VPNv4的AS路径信息 |
display bgp vpnv4 vpn-instance vpn-instance-name paths [ as-regular-expression | { | { begin | exclude | include } regular-expression } ] |
显示BGP VPNv4对等体信息 |
display bgp vpnv4 vpn-instance vpn-instance-name peer [ group-name log-info | ip-address { log-info | verbose } | verbose ] [ | { begin | exclude | include } regular-expression ] |
显示从指定邻居收到的ORF报文中的前缀信息 |
display bgp vpnv4 all peer [ ip-address verbose | verbose ] [ | { begin | exclude | include } regular-expression ] |
显示指定VPN实例的BGP VPNv4路由信息 |
display bgp vpnv4 vpn-instance vpn-instance-name routing-table [ [ network-address [ { mask | mask-length } [ longer-prefixes ] ] | as-path-acl as-path-acl-number | cidr | community [ aa:nn ]&<1-13> [ no-advertise | no-export | no-export-subconfed ] * [ whole-match ] | community-list { basic-community-list-number [ whole-match ] | adv-community-list-number }&<1-16> | dampened | dampening parameter | different-origin-as | flap-info [ network-address [ { mask | mask-length } [ longer-match ] ] | as-path-acl as-path-acl-number ] | peer ip-address { advertised-routes | received-routes } | statistic ] [ | { begin | exclude | include } regular-expression ] | [ flap-info ] regular-expression as-regular-expression ] |
清除指定VPN实例的路由振荡衰减信息 |
reset bgp vpn-instance vpn-instance-name dampening [ network-address [ mask | mask-length ] |
清除指定VPN实例的BGP对等体路由振荡历史信息 |
reset bgp vpn-instance vpn-instance-name ip-address flap-info reset bgp vpn-instance vpn-instance-name flap-info [ ip-address [ mask | mask-length ] | as-path-acl as-path-acl-number | regexp as-path-regexp ] |
有关查看路由表的命令介绍请参见“三层技术-IP路由命令参考”中的“IP路由表显示”。
l MCE设备通过Vlan-interface10接口(IP地址10.214.10.3)连接到VPN1,地址范围为192.168.0.0/16,通过Vlan-interface20(IP地址10.214.20.3)接口连接到VPN2,其中VPN2内运行RIP路由协议,地址范围为192.168.10.0/24。
l MCE设备通过Vlan-interface30和Vlan-interface40与PE连接,IP地址分别为10.214.30.1/30和10.214.40.1/30。
l 要求MCE设备能够将VPN之间的路由隔离,并通过OSPF将各VPN的路由发布到PE 1。
图1-6 MCE和PE间使用OSPF引入VPN路由组网示意图
为区分设备,假设MCE系统名为“MCE”,VPN1和VPN2的出口路由器分别名为“VR1”和“VR2”,PE设备系统名为“PE”。
l VPN实例配置
# 在MCE设备上配置VPN实例,名称分别为VPN1和VPN2,RD分别取值为10:1和20:1。
<MCE> system-view
[MCE] ip vpn-instance vpn1
[MCE-vpn-instance-vpn1] route-distinguisher 10:1
[MCE-vpn-instance-vpn1] vpn-target 10:1
[MCE-vpn-instance-vpn1] quit
[MCE] ip vpn-instance vpn2
[MCE-vpn-instance-vpn2] route-distinguisher 20:1
[MCE-vpn-instance-vpn2] vpn-target 20:1
# 创建VLAN10,将端口GigabitEthernet 1/0/10加入VLAN10,并创建Vlan-interface10接口。
[MCE-vpn-instance-vpn2] quit
[MCE] vlan 10
[MCE-vlan10] port GigabitEthernet 1/0/10
[MCE-vlan10] quit
[MCE] interface Vlan-interface 10
# 配置Vlan-interface10接口与VPN1实例进行绑定,并配置IP地址为10.214.10.3,掩码为24位。
[MCE-Vlan-interface10] ip binding vpn-instance vpn1
[MCE-Vlan-interface10] ip address 10.214.10.3 24
# 使用类似步骤配置VLAN20,将端口GigabitEthernet 1/0/20加入VLAN20,配置接口与VPN2实例绑定并配置IP地址。
[MCE-Vlan-interface10] quit
[MCE] vlan 20
[MCE-vlan20] port GigabitEthernet 1/0/20
[MCE-vlan20] quit
[MCE] interface Vlan-interface 20
[MCE-Vlan-interface20] ip binding vpn-instance vpn2
[MCE-Vlan-interface20] ip address 10.214.20.3 24
[MCE-Vlan-interface20] quit
# 创建VLAN30和VLAN40,并创建相应的VLAN接口,配置IP地址,将VLAN30与VPN1绑定,VLAN40与VPN2绑定。
[MCE] vlan 30
[MCE-vlan30] quit
[MCE] interface Vlan-interface 30
[MCE-Vlan-interface30] ip binding vpn-instance vpn1
[MCE-Vlan-interface30] ip address 10.214.30.1 30
[MCE-Vlan-interface30] quit
[MCE] vlan 40
[MCE-vlan40] quit
[MCE] interface Vlan-interface 40
[MCE-Vlan-interface40] ip binding vpn-instance vpn2
[MCE-Vlan-interface40] ip address 10.214.40.1 30
[MCE-Vlan-interface40] quit
l MCE与站点间路由配置
MCE与VPN1直接相连,且VPN1内未使用路由协议,因此可以使用静态路由进行配置。
# VR1设备的配置。配置与MCE连接的接口地址为10.214.10.2/24,连接VPN1接口的地址为192.168.0.1/24。向VLAN中增加端口和配置接口IP地址的配置这里省略。
# 在VR1上配置缺省路由,指定出方向报文的下一跳地址为10.214.10.3。
<VR1> system-view
[VR1] ip route-static 0.0.0.0 0.0.0.0 10.214.10.3
# 在MCE上指定静态路由,去往192.168.0.0网段的报文,下一跳地址为10.214.10.2,并将此路由与VPN1实例绑定。
[MCE-Vlan-interface20] quit
[MCE] ip route-static vpn-instance vpn1 192.168.0.0 16 10.214.10.2
# 显示MCE上为VPN1实例维护的路由信息。
[MCE] display ip routing-table vpn-instance vpn1
Routing Tables: vpn1
Destinations : 5 Routes : 5
Destination/Mask Proto Pre Cost NextHop Interface
127.0.0.0/8 Direct 0 0 127.0.0.1 InLoop0
127.0.0.1/32 Direct 0 0 127.0.0.1 InLoop0
10.214.10.0/24 Direct 0 0 10.214.10.3 Vlan10
10.214.10.3/32 Direct 0 0 127.0.0.1 InLoop0
10.214.30.0/24 Direct 0 0 10.214.30.1 Vlan10
10.214.30.1/32 Direct 0 0 127.0.0.1 InLoop0
192.168.0.0/16 Static 60 0 10.214.10.2 Vlan10
可以看到,已经在MCE上为VPN1指定了静态路由。
# 在VR2上,配置与MCE连接的接口地址为10.214.20.2/24(配置过程略),配置RIP,将网段192.168.10.0和10.214.20.0发布。
<VR2> system-view
[VR2] rip 20
[VR2-rip-20] network 192.168.10.0
[VR2-rip-20] network 10.0.0.0
# VPN2内已经运行了RIP,可以在MCE上配置RIP路由协议,加入到站点内的路由运算中,自动更新路由信息。配置RIP进程为20,关闭路由自动聚合功能,引入OSPF(进程号20)的路由信息,并与VPN2实例进行绑定。
[MCE] rip 20 vpn-instance vpn2
# 将网段10.214.20.0发布。
[MCE-rip-20] network 10.0.0.0
[MCE-rip-20] undo summary
[MCE-rip-20] import-route ospf
# 在MCE上查看VPN2实例的路由信息。
[MCE-rip-20] display ip routing-table vpn-instance vpn2
Routing Tables: vpn2
Destinations : 5 Routes : 5
Destination/Mask Proto Pre Cost NextHop Interface
10.214.20.0/24 Direct 0 0 10.214.20.3 Vlan20
10.214.20.3/32 Direct 0 0 127.0.0.1 InLoop0
10.214.40.0/30 Direct 0 0 10.214.40.1 Vlan40
10.214.40.1/32 Direct 0 0 127.0.0.1 InLoop0
127.0.0.0/8 Direct 0 0 127.0.0.1 InLoop0
127.0.0.1/32 Direct 0 0 127.0.0.1 InLoop0
192.168.10.0/24 RIP 100 1 10.214.20.2 Vlan20
可以看到,MCE已经通过RIP学习到了VPN2内的私网路由,并与VPN1内的192.168.0.0路由信息分别维护在两个路由表内,有效进行了隔离。
l MCE与PE间路由配置
# MCE使用GigabitEthernet1/0/3端口连接到PE设备的GigabitEthernet1/0/18端口,需要配置这两个端口为Trunk端口,并允许VLAN30和VLAN40的报文携带Tag通过。
[MCE-rip-20] quit
[MCE] interface GigabitEthernet 1/0/3
[MCE-GigabitEthernet1/0/3] port link-type trunk
[MCE-GigabitEthernet1/0/3] port trunk permit vlan 30 40
# 配置PE的GigabitEthernet1/0/18端口。
<PE> system-view
[PE] interface GigabitEthernet 1/0/18
[PE-GigabitEthernet1/0/18] port link-type trunk
[PE-GigabitEthernet1/0/18] port trunk permit vlan 30 40
# 配置PE的Vlan-interface30和Vlan-interface40接口的IP地址分别为10.214.30.2和10.214.40.2,并将这两个接口分别与VPN1实例和VPN2实例进行绑定,配置步骤这里省略。
# 配置MCE和PE的Loopback0接口,用于指定MCE和PE的Router ID,地址分别为101.101.10.1和100.100.10.1。配置步骤这里省略。
# 配置MCE启动OSPF进程10,配置绑定到VPN1实例,域ID设置为10,并开启OSPF多实例功能。
[MCE] ospf 10 router-id 101.101.10.1 vpn-instance vpn1
[MCE-ospf-10] domain 10
[MCE-ospf-10] vpn-instance-capability simple
# 在Area0区域发布10.214.30.0网段,并引入VPN1的静态路由。
[MCE-ospf-10] area 0
[MCE-ospf-10-area-0.0.0.0] network 10.214.30.0 0.0.0.255
[MCE-ospf-10-area-0.0.0.0] quit
[MCE-ospf-10] import-route static
# 配置PE启动OSPF进程10,绑定到VPN1实例,域ID为10,开启OSPF多实例功能,并在Area0区域发布10.214.30.0网段。
[PE-GigabitEthernet1/0/18] quit
[PE] ospf 10 router-id 100.100.10.1 vpn-instance vpn1
[PE-ospf-10] domain-id 10
[PE-ospf-10] vpn-instance-capability simple
[PE-ospf-10] area 0
[PE-ospf-10-area-0.0.0.0] network 10.214.30.0 0.0.0.255
# 显示PE上的VPN1路由信息。
[PE-ospf-10-area-0.0.0.0] display ip routing-table vpn-instance vpn1
Routing Tables: vpn1
Destinations : 6 Routes : 6
Destination/Mask Proto Pre Cost NextHop Interface
127.0.0.0/8 Direct 0 0 127.0.0.1 InLoop0
127.0.0.1/32 Direct 0 0 127.0.0.1 InLoop0
10.214.30.0/24 Direct 0 0 10.214.30.1 Vlan30
10.214.30.2/32 Direct 0 0 127.0.0.1 InLoop0
100.100.10.1/32 Direct 0 0 127.0.0.1 InLoop0
192.168.0.0/16 O_ASE 150 1 10.214.30.1 Vlan30
可以看到,VPN1内的静态路由已经引入到MCE与PE间的OSPF路由表中。
MCE与PE间配置OSPF进程20,导入VPN2实例的路由信息的过程与上面介绍的配置基本一致,不同的是在MCE的OSPF中配置导入的是RIP路由,这里不再赘述,只以显示信息为例表示导入成功后的结果。
<PE> display ip routing-table vpn-instance vpn2
display ip routing-table vpn-instance vpn2
Routing Tables: vpn2
Destinations : 6 Routes : 6
Destination/Mask Proto Pre Cost NextHop Interface
127.0.0.0/8 Direct 0 0 127.0.0.1 InLoop0
127.0.0.1/32 Direct 0 0 127.0.0.1 InLoop0
10.214.40.0/24 Direct 0 0 10.214.40.1 Vlan40
10.214.40.2/32 Direct 0 0 127.0.0.1 InLoop0
200.200.20.1/32 Direct 0 0 127.0.0.1 InLoop0
192.168.10.0/24 O_ASE 150 1 10.214.40.1 Vlan40
至此,通过配置,已经将两个VPN实例内的路由信息完整地传播到PE中,配置完成。
l 使用本系列产品作为MCE设备,将站点1和站点2内的VPN路由发布到PE 1,使MPLS骨干网络两端的VPN能够正常通信。
l 站点1和站点2内部均使用OSPF协议,MCE与PE间使用EBGP协议。
图1-7 MCE和PE间使用BGP引入VPN路由组网示意图
l VPN实例配置
# 在MCE设备上配置VPN实例,名称分别为VPN1和VPN2,RD分别取值为10:1和20:1,VPN Target取值与RD取相同数值,Export和Import均取此值。
<MCE> system-view
[MCE] ip vpn-instance vpn1
[MCE-vpn-instance-vpn1] route-distinguisher 10:1
[MCE-vpn-instance-vpn1] vpn-target 10:1 both
[MCE-vpn-instance-vpn1] quit
[MCE] ip vpn-instance vpn2
[MCE-vpn-instance-vpn2] route-distinguisher 20:1
[MCE-vpn-instance-vpn2] vpn-target 20:1 both
# 创建VLAN2,将端口gigabitethernet 1/0/10加入VLAN2,并创建Vlan-interface2接口。
[MCE-vpn-instance-vpn2] quit
[MCE] vlan 2
[MCE-vlan2] port gigabitethernet 1/0/10
[MCE-vlan2] quit
[MCE] interface Vlan-interface 2
# 配置Vlan-interface2接口与VPN1实例进行绑定,并配置IP地址为10.214.10.3,掩码为24位。
[MCE-Vlan-interface2] ip binding vpn-instance vpn1
[MCE-Vlan-interface2] ip address 10.214.10.3 24
# 使用类似步骤配置VLAN3,将端口Gigabitethernet1/0/20加入VLAN3,配置Vlan-interface3接口与VPN2实例绑定并配置IP地址为10.214.20.3,掩码为24位。
[MCE-Vlan-interface2] quit
[MCE] vlan 3
[MCE-vlan3] port Gigabitethernet 1/0/20
[MCE-vlan3] quit
[MCE] interface Vlan-interface 3
[MCE-Vlan-interface3] ip binding vpn-instance vpn2
[MCE-Vlan-interface3] ip address 10.214.20.3 24
[MCE-Vlan-interface3] quit
# 创建VLAN30和VLAN40,并创建相应的VLAN接口,配置IP地址,将VLAN30与VPN1绑定,VLAN40与VPN2绑定。
[MCE] vlan 30
[MCE-vlan30] quit
[MCE] interface Vlan-interface 30
[MCE-Vlan-interface30] ip binding vpn-instance vpn1
[MCE-Vlan-interface30] ip address 10.214.30.1 30
[MCE-Vlan-interface30] quit
[MCE] vlan 40
[MCE-vlan40] quit
[MCE] interface Vlan-interface 40
[MCE-Vlan-interface40] ip binding vpn-instance vpn2
[MCE-Vlan-interface40] ip address 10.214.40.1 30
[MCE-Vlan-interface40] quit
l MCE与站点间路由配置
# 配置两个VPN实例内的设备启动OSPF进程,将各网段分别发布,操作与普通OSPF配置相同,这里不再赘述。
# 配置MCE的OSPF的进程10与VPN1实例绑定,Router ID为1.1.1.1,引入VPN1中的BGP路由信息,开启OSPF多实例功能,并发布10.100.10.0网段。
<MCE> system-view
[MCE] ospf 10 router-id 1.1.1.1 vpn-instance vpn1
[MCE-ospf-10] vpn-instance capability simple
[MCE-ospf-10] import-route bgp
[MCE-ospf-10] area 0
[MCE-ospf-10-area-0.0.0.0] network 10.100.10.0 0.0.0.255
# 显示VPN1的路由信息。
[MCE-ospf-10-area-0.0.0.0] display ip routing-table vpn-instance vpn1
Routing Tables: vpn1
Destinations : 5 Routes : 5
Destination/Mask Proto Pre Cost NextHop Interface
127.0.0.0/8 Direct 0 0 127.0.0.1 InLoop0
127.0.0.1/32 Direct 0 0 127.0.0.1 InLoop0
10.100.10.0/24 Direct 0 0 10.100.10.1 Vlan2
10.100.10.1/32 Direct 0 0 127.0.0.1 InLoop0
172.16.10.0/24 OSPF 10 1 10.100.10.2 Vlan2
可以看到,MCE已经通过OSPF进程10学习到了VPN1实例内的路由。
# 配置MCE的OSPF的进程20与VPN2实例绑定,Router ID为2.2.2.2,引入VPN2中的BGP路由信息,开启OSPF多实例功能,并发布10.100.20.0网段,配置与上面配置OSPF进程10类似。这里直接显示配置结果。
[MCE] display ip routing-table vpn-instance vpn2
Routing Tables: vpn2
Destinations : 5 Routes : 5
Destination/Mask Proto Pre Cost NextHop Interface
127.0.0.0/8 Direct 0 0 127.0.0.1 InLoop0
127.0.0.1/32 Direct 0 0 127.0.0.1 InLoop0
10.100.20.0/24 Direct 0 0 10.100.20.1 Vlan3
10.100.20.1/32 Direct 0 0 127.0.0.1 InLoop0
172.16.20.0/24 OSPF 10 1 10.100.20.2 Vlan3
l MCE与PE1间路由配置
# 配置MCE与PE1间通过Trunk端口进行连接,配置与1.5.1 MCE和PE间使用OSPF引入VPN路由中的配置类似,这里不再赘述。
# 配置MCE启动BGP进程100。
[MCE] bgp 100
[MCE-bgp]
# 进入VPN1实例的IPv4地址族视图。
[MCE-bgp] ipv4-family vpn-instance vpn1
[MCE-bgp-vpn1]
# 指定PE1(假设与VPN1绑定的接口地址为10.100.30.3,BGP进程为200)为EBGP对等体,并引入OSPF进程10的路由信息。
[MCE-bgp-vpn1] peer 10.100.30.3 as-number 200
[MCE-BGP-vpn1] import-route ospf 10
# 在PE1上配置BGP200,并指定MCE为EBGP对等体。
<PE1> system-view
[PE1] bgp 200
[PE1-bgp] ipv4-family vpn-instance vpn1
[PE1-bgp-vpn1] peer 10.100.30.1 as-number 100
# 显示PE1端VPN1实例的路由信息。
[PE1-bgp-vpn1] display ip routing-table vpn-instance vpn1
Routing Tables: vpn1
Destinations : 5 Routes : 5
Destination/Mask Proto Pre Cost NextHop Interface
127.0.0.0/8 Direct 0 0 127.0.0.1 InLoop0
127.0.0.1/32 Direct 0 0 127.0.0.1 InLoop0
10.100.30.0/24 Direct 0 0 10.100.10.3 Vlan2
10.100.30.3/32 Direct 0 0 127.0.0.1 InLoop0
172.16.10.0/24 BGP 255 2 10.100.10.2 Vlan2
# 对VPN2实例,在MCE和PE1上进行类似的配置,将VPN2实例的OSPF路由信息引入到EBGP路由中。这里不再叙述配置过程,直接显示配置结果。
<PE1> display ip routing-table vpn-instance vpn2
Routing Tables: vpn2
Destinations : 5 Routes : 5
Destination/Mask Proto Pre Cost NextHop Interface
127.0.0.0/8 Direct 0 0 127.0.0.1 InLoop0
127.0.0.1/32 Direct 0 0 127.0.0.1 InLoop0
10.100.40.0/24 Direct 0 0 10.100.20.3 Vlan3
10.100.40.3/32 Direct 0 0 127.0.0.1 InLoop0
172.16.20.0/24 BGP 255 2 10.100.20.2 Vlan3
至此,MCE设备已经将两个VPN实例内的OSPF路由全部引入PE1的EBGP路由表中,配置完成。
如图1-8所示,MCE1和MCE2设备通过GRE隧道进行通信,并分别连接到VPN1和VPN2的站点。其中VPN1的站点全部使用OSPF作为路由协议,且均只存在骨干区域,即区域0。而VPN2的站点分别使用RIP和OSPF,其中OSPF部分仅存在骨干区域。现要求MCE1和MCE2设备能够通过隧道将两个VPN网络中的路由信息进行准确发布。
图1-8 在隧道组网中使用MCE功能发布VPN路由组网示意图
由于已经为每个VPN网络单独配置了一条GRE隧道,用于传输该VPN网络中的数据和路由信息,因此可以通过创建VPN实例并将特定的接口与VPN实例进行绑定,使原有网络简化为两个独立的拓扑结构(如图1-9和图1-10所示),从而使MCE设备可以将每个VPN网络的路由通过独立路径进行发布。
图1-9 VPN1的站点与MCE设备的网络拓扑示意图
图1-10 VPN2的站点与MCE设备的网络拓扑示意图
根据以上描述,本例中需要在MCE设备上为每个VPN网络创建VPN实例,并将MCE与VPN站点相连的接口和隧道接口与VPN实例进行绑定。对于VPN1网络,可以将两个MCE设备上的接口全部加入到站点的OSPF计算中,将整个网络作为一个OSPF域进行维护;对于VPN2网络,则还需要在MCE1上进行OSPF和RIP的相互引用配置。
(1) 配置隧道
l 配置MCE1
# 创建VLAN100和VLAN101,并将端口GigabitEthernet1/0/15配置为Trunk类型,加入这两个VLAN。
<MCE1> system-view
[MCE1] vlan 100 to 101
[MCE1] interface Gigabitethernet 1/0/15
[MCE1-GigabitEthernet1/0/15] port link-type trunk
[MCE1-GigabitEthernet1/0/15] port trunk permit vlan 100 101
[MCE1-GigabitEthernet1/0/15] quit
# 创建VLAN接口,并配置相应的IP地址。
[MCE1] interface vlan-interface 100
[MCE1-Vlan-interface100] ip address 192.168.1.1 255.255.255.0
[MCE1-Vlan-interface100] quit
[MCE1] interface vlan-interface 101
[MCE1-Vlan-interface101] ip address 192.168.2.1 255.255.255.0
[MCE1-Vlan-interface101] quit
# 创建Tunnel0接口。
[MCE1] interface tunnel 0
# 配置Tunnel0接口的IP地址。
[MCE1-Tunnel0] ip address 10.1.1.1 255.255.255.0
# 配置Tunnel封装模式。
[MCE1-Tunnel0] tunnel-protocol gre
# 配置Tunnel0接口的源地址。
[MCE1-Tunnel0] source vlan-interface 100
# 配置Tunnel0接口的目的地址。
[MCE1-Tunnel0] destination 172.16.1.1
[MCE1-Tunnel0] quit
# 创建并配置业务环回组1,服务类型为tunnel。
[MCE1] service-loopback group 1 type tunnel
# 将任意未使用端口(此处以GigabitEthernet1/0/3为例)加入业务环回组1。
[MCE1] interface Gigabitethernet 1/0/3
[MCE1-GigabitEthernet1/0/3] undo stp enable
[MCE1-GigabitEthernet1/0/3] port service-loopback group 1
# 在Tunnel接口视图下指定隧道引用的业务环回组1。
[MCE1-GigabitEthernet1/0/3] quit
[MCE1] interface tunnel 0
[MCE1-Tunnel0] service-loopback-group 1
[MCE1-Tunnel0] quit
# 创建Tunnel1接口。
[MCE1] interface tunnel 1
# 配置Tunnel1接口的IP地址。
[MCE1-Tunnel1] ip address 10.1.2.1 255.255.255.0
# 配置Tunnel封装模式。
[MCE1-Tunnel1] tunnel-protocol gre
# 配置Tunnel1接口的源地址。
[MCE1-Tunnel1] source vlan-interface 101
# 配置Tunnel1接口的目的地址。
[MCE1-Tunnel1] destination 172.16.2.1
# 在Tunnel接口视图下指定隧道引用的业务环回组1。
[MCE1-Tunnel1] service-loopback-group 1
[MCE1-Tunnel1] quit
l 配置MCE2
# 创建VLAN100和VLAN101,并将端口GigabitEthernet1/0/25配置为Trunk类型,加入这两个VLAN。
<MCE2> system-view
[MCE2] vlan 100 to 101
[MCE2] interface gigabitethernet 1/0/25
[MCE2-GigabitEthernet1/0/25] port link-type trunk
[MCE2-GigabitEthernet1/0/25] port trunk permit vlan 100 101
[MCE2-GigabitEthernet1/0/25] quit
# 创建VLAN接口,并配置相应的IP地址。
[MCE2] interfacevlan-interface 100
[MCE2-Vlan-interface100] ip address 172.16.1.1 255.255.255.0
[MCE2-Vlan-interface100] quit
[MCE2] interface vlan-interface 101
[MCE2-Vlan-interface101] ip address 172.16.2.1 255.255.255.0
[MCE2-Vlan-interface101] quit
# 创建Tunnel0接口。
[MCE2] interface tunnel 0
# 配置Tunnel0接口的IP地址。
[MCE2-Tunnel0] ip address 10.1.1.2 255.255.255.0
# 配置Tunnel封装模式。
[MCE2-Tunnel0] tunnel-protocol gre
# 配置Tunnel0接口的源地址。
[MCE2-Tunnel0] source vlan-interface 100
# 配置Tunnel0接口的目的地址。
[MCE2-Tunnel0] destination 192.168.1.1
[MCE2-Tunnel0] quit
# 创建并配置业务环回组1,服务类型为tunnel。
[MCE2] service-loopback group 1 type tunnel
# 将任意未使用端口(此处以GigabitEthernet1/0/3为例)加入业务环回组1。
[MCE2] interface gigabitethernet 1/0/3
[MCE2-GigabitEthernet1/0/3] undo stp enable
[MCE2-GigabitEthernet1/0/3] port service-loopback group 1
# 在Tunnel接口视图下指定隧道引用的业务环回组1。
[MCE2-GigabitEthernet1/0/3] quit
[MCE2] interface tunnel 0
[MCE2-Tunnel0] service-loopback-group 1
[MCE2-Tunnel0] quit
# 创建Tunnel1接口。
[MCE2] interface tunnel 1
# 配置Tunnel1接口的IP地址。
[MCE2-Tunnel1] ip address 10.1.2.2 255.255.255.0
# 配置Tunnel封装模式。
[MCE2-Tunnel1] tunnel-protocol gre
# 配置Tunnel1接口的源地址。
[MCE2-Tunnel1] source vlan-interface 101
# 配置Tunnel1接口的目的地址。
[MCE2-Tunnel1] destination 192.168.2.1
# 在Tunnel接口视图下指定隧道引用的业务环回组1。
[MCE2-Tunnel1] service-loopback-group 1
(2) 配置VPN实例
l MCE1设备的配置
# 为VPN1网络创建VPN实例,命名为“vpn1”,并配置RD属性。
<MCE1> system-view
[MCE1] ip vpn-instance vpn1
[MCE1-vpn-instance-vpn1] route-distinguisher 1:2
[MCE1-vpn-instance-vpn1] vpn-target 1:2
[MCE1-vpn-instance-vpn1] quit
# 为VPN2网络创建VPN实例,命名为“vpn2”,并配置RD属性。
[MCE1] ip vpn-instance vpn2
[MCE1-vpn-instance-vpn2] route-distinguisher 1:3
[MCE1-vpn-instance-vpn2] vpn-target 1:3
[MCE1-vpn-instance-vpn2] quit
# 配置Vlan-interface 10接口和Tunnel 0接口与VPN实例“vpn1”进行绑定,并配置IP地址。
[MCE1] vlan 10
[MCE1-vlan10] port gigabitethernet 1/0/10
[MCE1-vlan10] quit
[MCE1] interface vlan-interface 10
[MCE1-Vlan-interface10] ip binding vpn-instance vpn1
[MCE1-Vlan-interface10] ip address 10.214.10.1 24
[MCE1-Vlan-interface10] quit
[MCE1] interface tunnel 0
[MCE1-Tunnel0] ip binding vpn-instance vpn1
[MCE1-Tunnel0] ip address 10.1.1.1 24
# 配置Vlan-interface 11接口和Tunnel 1接口与VPN实例“vpn2”进行绑定,并配置IP地址。
[MCE1] vlan 11
[MCE1-vlan11] port gigabitethernet 1/0/11
[MCE1-vlan11] quit
[MCE1] interface vlan-interface 11
[MCE1-Vlan-interface11] ip binding vpn-instance vpn2
[MCE1-Vlan-interface11] ip address 10.214.20.1 24
[MCE1-Vlan-interface11] quit
[MCE1] interface tunnel 1
[MCE1-Tunnel1] ip binding vpn-instance vpn2
[MCE1-Tunnel1] ip address 10.1.2.1 24
[MCE1-Tunnel1] quit
l MCE2设备的配置
# 为VPN1网络创建VPN实例,命名为“vpn1”,并配置RD属性(与MCE1设备保持一致)。
<MCE2> system-view
[MCE2] ip vpn-instance vpn1
[MCE2-vpn-instance-vpn1] route-distinguisher 1:2
[MCE2-vpn-instance-vpn1] vpn-target 1:2
[MCE2-vpn-instance-vpn1] quit
# 为VPN2网络创建VPN实例,命名为“vpn2”,并配置RD属性(与MCE1设备保持一致)。
[MCE2] ip vpn-instance vpn2
[MCE2-vpn-instance-vpn2] route-distinguisher 1:3
[MCE2-vpn-instance-vpn2] vpn-target 1:3
[MCE2-vpn-instance-vpn2] quit
# 配置Vlan-interface 20接口和Tunnel 0接口与VPN实例“vpn1”进行绑定,并配置IP地址。
[MCE2] vlan 20
[MCE2-vlan20] port gigabitethernet 1/0/20
[MCE2-vlan20] quit
[MCE2] interface vlan-interface 20
[MCE2-Vlan-interface20] ip binding vpn-instance vpn1
[MCE2-Vlan-interface20] ip address 10.214.30.1 24
[MCE2-Vlan-interface20] quit
[MCE2] interface tunnel 0
[MCE2-Tunnel0] ip binding vpn-instance vpn1
[MCE2-Tunnel0] ip address 10.1.1.2 24
# 配置Vlan-interface 21接口和Tunnel 1接口与VPN实例“vpn2”进行绑定,并配置IP地址。
[MCE2] vlan 21
[MCE2-vlan21] port gigabitethernet 1/0/21
[MCE2-vlan21] quit
[MCE2] interface vlan-interface 21
[MCE2-Vlan-interface21] ip binding vpn-instance vpn2
[MCE2-Vlan-interface21] ip address 10.214.40.1 24
[MCE2-Vlan-interface21] quit
[MCE2] interface tunnel 1
[MCE2-Tunnel1] ip binding vpn-instance vpn2
[MCE2-Tunnel1] ip address 10.1.2.2 24
[MCE2-Tunnel1] quit
(3) 配置路由协议
l 发布VPN1网络的路由
# 在MCE1设备上配置OSPF路由协议并与VPN实例“vpn1”进行绑定,开启OSPF支持MCE功能。需要注意的是,下面配置中的OSPF区域要与站点内的OSPF配置保持一致,此处以区域0为例进行配置。
[MCE1] ospf 1 vpn-instance vpn1 router-id 192.168.1.1
[MCE1-ospf-1] vpn-instance-capability simple
[MCE1-ospf-1] area 0
[MCE1-ospf-1-area-0.0.0.0]
# 将MCE1设备的Vlan-interface10和Tunnel 0接口的地址进行发布。
[MCE1-ospf-1-area-0.0.0.0] network 10.214.10.1 0.0.0.255
[MCE1-ospf-1-area-0.0.0.0] network 10.1.1.1 0.0.0.255
# 在MCE2设备上配置OSPF路由协议并与VPN实例“vpn1”进行绑定,开启OSPF支持MCE功能。
[MCE2] ospf 1 vpn-instance vpn1 router-id 172.16.1.1
[MCE2-ospf-1] vpn-instance-capability simple
[MCE2-ospf-1] area 0
[MCE2-ospf-1-area-0.0.0.0]
# 将MCE2设备的Vlan-interface20和Tunnel 0接口的地址进行发布。
[MCE2-ospf-1-area-0.0.0.0] network 10.214.30.1 0.0.0.255
[MCE2-ospf-1-area-0.0.0.0] network 10.1.1.2 0.0.0.255
l 发布VPN2网络的路由
# 在MCE1设备上配置OSPF路由协议并与VPN实例“vpn2”进行绑定,开启OSPF支持MCE功能。需要注意的是,下面配置中的OSPF区域要与站点2内的OSPF配置保持一致,此处以区域0为例进行配置。
[MCE1] ospf 2 vpn-instance vpn2 router-id 192.168.2.1
[MCE1-ospf-2] vpn-instance-capability simple
[MCE1-ospf-2] area 0
[MCE1-ospf-2-area-0.0.0.0]
# 将MCE1设备Tunnel 1接口的地址进行发布,使其参与OSPF域中的路由计算。
[MCE1-ospf-2-area-0.0.0.0] network 10.1.2.1 0.0.0.255
# 在MCE1设备上配置RIP路由协议并与VPN实例“vpn2”进行绑定,此处以RIP进程号1为例进行配置。
[MCE1] rip 1 vpn-instance vpn2
[MCE1-rip-1]
# 将MCE1设备Vlan-interface11接口的地址进行发布,使其参与站点1的RIP计算。
[MCE1-rip-1] network 10.214.20.1
# 在当前RIP进程中引入OSPF进程2学到的路由信息。
[MCE1-rip-1] import-route ospf 2
[MCE1-rip-1] quit
# 在OSPF进程2中引入RIP进程1学到的路由信息。
[MCE1] ospf 2
[MCE1-ospf-2] import-route rip 1
# 在MCE2设备上配置OSPF路由协议并与VPN实例“vpn2”进行绑定,开启OSPF支持MCE功能。需要注意的是,下面配置中的OSPF区域要与站点2内的OSPF配置保持一致,此处以区域0为例进行配置。
[MCE2] ospf 2 vpn-instance vpn2 router-id 172.16.2.1
[MCE2-ospf-2] vpn-instance-capability simple
[MCE2-ospf-2] area 0
[MCE2-ospf-2-area-0.0.0.0]
# 将MCE2设备的Vlan-interface21和Tunnel 1接口的地址进行发布。
[MCE2-ospf-2-area-0.0.0.0] network 10.214.40.1 0.0.0.255
[MCE2-ospf-2-area-0.0.0.0] network 10.1.2.2 0.0.0.255
在MPLS L3VPN组网环境中,MCE利用静态或动态路由协议在内网和PE之间发布IPv4路由,并交互IPv4报文。
在IPv6 MPLS L3VPN组网环境中,IPv6 MCE在内网和PE之间发布IPv6路由,并交互IPv6报文。IPv6 MCE的工作原理与MCE相同,详细内容请参见1.1.4 MCE工作原理。
VPN实例不仅可以隔离VPN私网路由与公网路由,还可以隔离不同VPN实例的路由,这一特点使得VPN实例的使用不限于MPLS L3VPN。
VPN实例在实现中与Site关联。VPN实例不是直接对应于VPN,一个VPN实例综合了和它所对应Site的VPN成员关系和路由规则。
一个VPN实例只有配置了RD后才生效。
描述信息用于描述VPN实例,可以用来记录VPN实例与某个VPN的关系等信息。
表2-1 创建VPN实例
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建VPN实例,并进入VPN实例视图 |
ip vpn-instance vpn-instance-name |
必选 |
配置VPN实例的RD |
route-distinguisher route-distinguisher |
必选 |
配置VPN实例的描述信息 |
description text |
可选 |
VPN实例配置完成后,还需要与连接CE的接口进行关联。支持MPLS LDP能力的接口类型都可以与VPN实例相关联。具体接口类型请参见“MPLS配置指导”中的“MPLS基本配置”。
表2-2 配置VPN实例与接口关联
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入要关联接口的接口视图 |
interface interface-type interface-number |
- |
将当前接口与VPN实例关联 |
ip binding vpn-instance vpn-instance-name |
必选 缺省情况下,接口不关联任何VPN实例 |
执行ip binding vpn-instance命令将删除接口上已经配置的IPv6地址,因此需要重新配置接口的IPv6地址。
VPN路由的发布控制过程如下:
l 当从CE学习到的一条VPN路由引入BGP时,BGP为它关联一个VPN Target扩展团体属性列表,通常这个列表是与CE相关联的VPN实例的输出路由属性列表。
l VPN实例根据VPN Target中import-extcommunity确定可被接受并引入此VPN实例的路由。
l VPN实例根据VPN Target中的export-extcommunity对向外发布的路由进行VPN Target属性的修改。
表2-3 配置VPN实例的路由相关属性
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入VPN实例视图 |
ip vpn-instance vpn-instance-name |
- |
进入IPv6 VPN视图 |
ipv6-family |
可选 |
配置VPN Target |
vpn-target vpn-target&<1-8> [ both | export-extcommunity | import-extcommunity ] |
必选 |
配置支持的最大路由数 |
routing-table limit number { warn-threshold | simply-alert } |
可选 |
应用入方向路由策略 |
import route-policy route-policy |
可选 缺省情况下,接收所有VPN Target属性匹配的路由 |
应用出方向路由策略 |
export route-policy route-policy |
可选 缺省情况下,不对发布的路由进行过滤 |
l VPN实例视图下配置的路由相关属性既可以用于IPv4 VPN,也可以用于IPv6 VPN。
l 既可以在VPN实例视图下,也可以在IPv6 VPN视图下,配置IPv6 VPN的路由相关属性。如果同时在两个视图下配置了路由相关属性,则IPv6 VPN采用IPv6 VPN视图下配置的路由相关属性。
l 命令vpn-target最多可以配置8个VPN Target;一个VPN实例最多可以配置64个VPN Target。
l 可以配置一个VPN实例支持的最大路由数,以防止PE路由器的入接口有过多的路由。一个PE路由器最多可以支持的路由条数与具体产品有关。
l 为VPN实例配置路由策略之前必须已经创建了路由策略,否则无法对接收和发布的路由进行过滤。
VPN实例配置完成后,只需要在MCE与PE之间将接口与IPv6 VPN实例进行绑定、进行简单的路由配置、并将MCE上维护的内网的IPv6 VPN路由引入到MCE-PE间的路由协议中,便可以实现私网VPN路由信息的传播。
本节中的配置均在MCE上进行,PE上的配置与基本IPv6 MPLS L3VPN组网中PE上的配置相同,详细介绍请参见“MPLS L3VPN”。
表2-4 配置MCE与PE之间使用静态路由
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
为指定VPN实例配置静态路由 |
ipv6 route-static ipv6-address prefix-length { interface-type interface-number [ next-hop-address ] | next-hop-address | vpn-instance d-vpn-instance-name nexthop-address } [ preference preference-value ] |
二者必选其一 |
ipv6 route-static vpn-instance s-vpn-instance-name&<1-6> ipv6-address prefix-length { interface-type interface-number [ next-hop-address ] | nexthop-address [ public ] | vpn-instance d-vpn-instance-name nexthop-address } [ preference preference-value ] |
||
配置静态路由的缺省优先级 |
ipv6 route-static default-preference default-preference-value |
可选 缺省情况下,静态路由的缺省优先级为60 |
表2-5 配置MCE与PE之间使用RIPng
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建MCE与PE间的RIPng实例,并进入RIPng视图 |
ripng [ process-id ] vpn-instance vpn-instance-name |
必选 |
引入站点内的VPN路由 |
import-route protocol [ process-id ] [ allow-ibgp ] [ cost cost | route-policy route-policy-name ] * |
必选 缺省情况下,RIPng未引入其它路由 |
配置引入路由的缺省度量值 |
default cost value |
可选 缺省情况下,引入路由的缺省度量值为0 |
退回系统视图 |
quit |
- |
进入接口视图 |
interface interface-type interface-number |
- |
在指定的网络接口上使能RIPng |
ripng process-id enable |
必选 缺省情况下,接口禁用RIPng |
有关RIPng的介绍和详细配置,请参见“三层技术-IP路由配置指导”中的“RIPng”。
表2-6 配置MCE与PE之间使用OSPFv3
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建MCE与PE间的OSPFv3实例,并进入OSPFv3视图 |
ospfv3 [ process-id ] vpn-instance vpn-instance-name |
必选 |
配置Router ID |
router-id router-id |
必选 |
引入站点内的VPN路由 |
import-route protocol [ process-id | allow-ibgp ] [ cost value | route-policy route-policy-name | type type ] * |
必选 缺省情况下,没有引入其他协议的路由信息 |
配置对引入的路由进行过滤 |
filter-policy { acl6-number | ipv6-prefix ipv6-prefix-name } export [ bgp4+ | direct | isisv6 process-id | ospfv3 process-id | ripng process-id | static ] |
可选 缺省情况下,没有对引入的路由信息进行过滤 |
退回系统视图 |
quit |
- |
进入接口视图 |
interface interface-type interface-number |
- |
在接口上使能OSPFv3 |
ospfv3 process-id area area-id [ instance instance-id ] |
必选 缺省情况下,接口上没有使能OSPFv3 |
有关OSPFv3的介绍和详细配置,请参见“三层技术-IP路由配置指导”中的“OSPFv3”。
表2-7 配置MCE与PE之间使用IPv6 IS-IS
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建MCE与PE间的IPv6 IS-IS实例,并进入IS-IS视图 |
isis [ process-id ] vpn-instance vpn-instance-name |
必选 |
配置网络实体名称 |
network-entity net |
必选 缺省情况下,没有配置网络实体名称 |
使能IS-IS进程的IPv6能力 |
ipv6 enable |
必选 缺省情况下,没有使能IS-IS路由进程的IPv6能力 |
引入站点内的VPN路由 |
ipv6 import-route protocol [ process-id ] [ allow-ibgp ] [ cost cost | [ level-1 | level-1-2 | level-2 ] | route-policy route-policy-name | tag tag ] * |
可选 缺省情况下,IPv6 IS-IS不引入其它协议的路由信息 如果ipv6 import-route命令中不指定引入的级别,则默认为引入路由到Level-2路由表中 |
对引入的路由进行过滤 |
ipv6 filter-policy { acl6-number | ipv6-prefix ipv6-prefix-name | route-policy route-policy-name } export [ protocol [ process-id ] ] |
可选 缺省情况下,IPv6 IS-IS不对引入的路由信息进行过滤 |
退回系统视图 |
quit |
- |
进入接口视图 |
interface interface-type interface-number |
- |
使能接口IS-IS路由进程的IPv6能力,并指定要关联的IS-IS进程号 |
isis ipv6 enable [ process-id ] |
必选 缺省情况下,接口上没有使能IS-IS路由进程的IPv6能力 |
有关IPv6 IS-IS的介绍和详细配置,请参见“三层技术-IP路由配置指导”中的“IPv6 IS-IS”。
表2-8 配置MCE与PE之间使用EBGP
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入BGP视图 |
bgp as-number |
- |
进入IPv6 BGP-VPN实例视图 |
ipv6-family vpn-instance vpn-instance-name |
必选 |
将PE配置为EBGP对等体 |
peer ipv6-address as-number as-number |
必选 |
引入站点内的VPN路由 |
import-route protocol [ process-id [ med med-value | route-policy route-policy-name ] * ] |
必选 缺省情况下,BGP不引入且不通告其它协议的路由 |
配置对发布的路由信息进行过滤 |
filter-policy { acl6-number | ipv6-prefix ip-prefix-name } export [ direct | isisv6 process-id | ripng process-id | static ] |
可选 缺省情况下,不对发布的路由信息进行过滤 |
配置对接收的路由信息进行过滤 |
filter-policy { acl6-number | ipv6-prefix ip-prefix-name } import |
可选 缺省情况下,不对接收的路由信息进行过滤 |
配置IPv6 BGP VPN实例后,IPv6 VPN实例中的IPv6 BGP路由交换与普通的IPv6 BGP相同。有关IPv6 BGP协议的配置,请参见“IP路由分册”中的“IPv6 BGP配置”。
当BGP配置变化后,可以通过软复位或复位BGP连接使新的配置生效。软复位需要BGP对等体具备路由刷新能力(支持ROUTE-REFRESH消息)。
请在用户视图下进行下列操作。
表2-9 复位BGP连接
操作 |
命令 |
软复位指定VPN实例的IPv6 BGP连接 |
refresh bgp ipv6 vpn-instance vpn-instance-name { ipv6-address | all | external } { export | import } |
复位指定VPN实例的IPv6 BGP连接 |
reset bgp ipv6 vpn-instance vpn-instance-name { as-number | ipv6-address | all | external } |
在完成上述配置后,在任意视图下执行display命令可以显示配置后MPLS L3VPN的运行情况,通过查看显示信息验证配置的效果。
在用户视图下执行reset命令可以清除路由振荡衰减信息。
表2-10 显示MCE的运行状态
操作 |
命令 |
显示指定VPN实例信息 |
display ip vpn-instance [ instance-name vpn-instance-name ] [ | { begin | exclude | include } regular-expression ] |
显示指定VPN实例的IPv6 FIB信息 |
display ipv6 fib vpn-instance vpn-instance-name [ acl6 acl6-number | ipv6-prefix ipv6-prefix-name ] [ | { begin | exclude | include } regular-expression ] |
显示指定VPN实例中与指定目的IPv6地址匹配的IPv6 FIB信息 |
display ipv6 fib vpn-instance vpn-instance-name ipv6-address [ prefix-length ] [ | { begin | exclude | include } regular-expression ] |
显示PE与PE之间建立的BGP VPNv6对等体的信息 |
display bgp vpnv6 all peer [ ipv4-address verbose | verbose ] [ | { begin | exclude | include } regular-expression ] |
显示指定VPN实例中PE与CE之间建立的IPv6 BGP对等体的信息 |
display bgp vpnv6 vpn-instance vpn-instance-name peer [ ipv6-address verbose | verbose ] [ | { begin | exclude | include } regular-expression ] |
显示所有BGP VPNv6路由信息 |
display bgp vpnv6 all routing-table [ network-address prefix-length [ longer-prefixes ] | peer ip-address { advertised-routes | received-routes } [ statistic ] | statistic ] [ | { begin | exclude | include } regular-expression ] |
显示指定路由标识符的BGP VPNv6路由信息 |
display bgp vpnv6 route-distinguisher route-distinguisher routing-table [ network-address prefix-length ] [ | { begin | exclude | include } regular-expression ] |
显示指定VPN实例的BGP VPNv6路由信息 |
display bgp vpnv6 vpn-instance vpn-instance-name routing-table [ network-address prefix-length [ longer-prefixes ] | peer ipv6-address { advertised-routes | received-routes } ] [ | { begin | exclude | include } regular-expression ] |
有关查看路由表的命令介绍请参见“三层技术-IP路由命令参考”中的“IP路由基础”。
l MCE设备通过Vlan-interface10接口(IPv6地址为2001:1::1/64)连接到VPN 1,地址范围为2012:1::/64;通过Vlan-interface20接口(IPv6地址为2002:1::1/64)连接到VPN 2,VPN 2内运行RIPng路由协议,地址范围为2012::/64。
l 要求MCE设备能够将VPN之间的路由隔离,并通过IPv6 ISIS将各VPN的路由发布到PE1设备。
图2-1 配置MCE典型配置举例一组网示意图
为区分设备,假设MCE系统名为“MCE”,VPN 1和VPN 2的边缘设备分别名为“VR1”和“VR2”,PE1设备系统名为“PE1”。
(1) VPN实例配置
# 在MCE设备上配置VPN实例,名称分别为VPN1和VPN2,RD分别取值为10:1和20:1,VPN Target取值与RD取相同数值,Export和Import均取此值。
<MCE> system-view
[MCE] ip vpn-instance vpn1
[MCE-vpn-instance-vpn1] route-distinguisher 10:1
[MCE-vpn-instance-vpn1] vpn-target 10:1
[MCE-vpn-instance-vpn1] quit
[MCE] ip vpn-instance vpn2
[MCE-vpn-instance-vpn2] route-distinguisher 20:1
[MCE-vpn-instance-vpn2] vpn-target 20:1
[MCE-vpn-instance-vpn2] quit
# 创建VLAN10,将端口gigabitethernet 1/0/1加入VLAN 10,并创建Vlan-interface10接口。
[MCE] vlan 10
[MCE-vlan10] port gigabitethernet 1/0/1
[MCE-vlan10] quit
[MCE] interface vlan-interface 10
# 配置Vlan-interface10接口与VPN 1实例进行绑定,并配置IPv6地址为2001:1::1,前缀长度为64位。
[MCE-Vlan-interface10] ip binding vpn-instance vpn1
[MCE-Vlan-interface10] ipv6 address 2001:1::1 64
[MCE-Vlan-interface10] quit
# 使用类似步骤配置VLAN20,将端口GigabitEthernet1/0/2加入VLAN 20,配置接口与VPN 2实例绑定,并配置IPv6地址。
[MCE] vlan 20
[MCE-vlan20] port gigabitethernet 1/0/2
[MCE-vlan20] quit
[MCE] interface Vlan-interface 20
[MCE-Vlan-interface20] ip binding vpn-instance vpn2
[MCE-Vlan-interface20] ipv6 address 2002:1::1 64
[MCE-Vlan-interface20] quit
# 创建VLAN30和VLAN40,并创建相应的VLAN接口,配置IP地址,将VLAN30与VPN1绑定,VLAN40与VPN2绑定。
[MCE] vlan 30
[MCE-vlan30] quit
[MCE] interface Vlan-interface 30
[MCE-Vlan-interface30] ip binding vpn-instance vpn1
[MCE-Vlan-interface30] ip address 2003:1::1 64
[MCE-Vlan-interface30] quit
[MCE] vlan 40
[MCE-vlan40] quit
[MCE] interface Vlan-interface 40
[MCE-Vlan-interface40] ip binding vpn-instance vpn2
[MCE-Vlan-interface40] ip address 2004:1::1 64
[MCE-Vlan-interface40] quit
(2) MCE与Site间路由配置
MCE与VPN 1直接相连,且VPN 1内未使用路由协议,因此可以使用静态路由进行配置。
# 配置VR1。配置与MCE连接的接口地址为2001:1::2/64,连接VPN 1接口的地址为2012:1::2/64。向VLAN中增加端口和接口IP地址的配置这里省略。
# 在VR1上配置缺省路由,指定出方向报文的下一跳地址为2001:1::1。
<VR1> system-view
[VR1] ipv6 route-static :: 0 2001:1::1
# 在MCE上指定IPv6静态路由,去往2012:1::/64网段的报文,下一跳地址为2001:1::2,并将此路由与VPN 1实例绑定。
[MCE] ipv6 route-static vpn-instance vpn1 2012:1:: 64 vpn-instance vpn1 2001:1::2
# VPN 2内运行RIPng,在MCE上配置RIPng进程20,并与VPN2实例绑定,以便将VPN 2内的路由学习到VPN2实例的路由表中。
[MCE] ripng 20 vpn-instance vpn2
# 配置RIPng发布2002:1::/64网段路由。
[MCE] interface vlan-interface 20
[MCE-Vlan-interface20] ripng 20 enable
[MCE-Vlan-interface20] quit
# 在VR 2上,配置与MCE连接的接口地址为2002:1::2/64(配置过程略)。
# 在VR 2上配置RIPng发布2012::/64和2002:1::/64网段路由。
<VR2> system-view
[VR2] ripng 20
[VR2-rip-20] quit
[VR2] interface vlan-interface 20
[VR2-Vlan-interface20] ripng 20 enable
[VR2-Vlan-interface20] quit
[VR2] interface vlan-interface 21
[VR2-Vlan-interface21] ripng 20 enable
[VR2-Vlan-interface21] quit
# 在MCE上查看VPN 1和VPN 2实例的路由信息。
[MCE] display ipv6 routing-table vpn-instance vpn1
Routing Table :
Destinations : 5 Routes : 5
Destination: ::1/128 Protocol : Direct
NextHop : ::1 Preference: 0
Interface : InLoop0 Cost : 0
Destination: 2001:1::/64 Protocol : Direct
NextHop : 2001:1::1 Preference: 0
Interface : Vlan10 Cost : 0
Destination: 2001:1::1/128 Protocol : Direct
NextHop : ::1 Preference: 0
Interface : InLoop0 Cost : 0
Destination: 2012:1::/64 Protocol : Static
NextHop : 2001:1::2 Preference: 60
Interface : Vlan10 Cost : 0
Destination: FE80::/10 Protocol : Direct
NextHop : :: Preference: 0
Interface : NULL0 Cost : 0
[MCE] display ipv6 routing-table vpn-instance vpn2
Routing Table :
Destinations : 5 Routes : 6
Destination: ::1/128 Protocol : Direct
NextHop : ::1 Preference: 0
Interface : InLoop0 Cost : 0
Destination: 2002:1::/64 Protocol : Direct
NextHop : 2002:1::1 Preference: 0
Interface : GE1/0/1 Cost : 0
Destination: 2002:1::1/128 Protocol : Direct
NextHop : ::1 Preference: 0
Interface : InLoop0 Cost : 0
Destination: 2012::/64 Protocol : RIPng
NextHop : FE80::200:5EFF:FE01:1C03 Preference: 100
Interface : Vlan20 Cost : 1
Destination: FE80::/10 Protocol : Direct
NextHop : :: Preference: 0
Interface : NULL0 Cost : 0
可以看到,MCE已经通过RIPng学习到了VPN 2内的私网路由,并与VPN 1内的路由信息分别维护在两个路由表内,有效进行了隔离。
(3) MCE与PE1间路由配置
# MCE使用GigabitEthernet1/0/3端口连接到PE设备的GigabitEthernet1/0/1端口,需要配置这两个端口为Trunk端口,并允许VLAN 30和VLAN 40的报文携带Tag通过。
[MCE] interface gigabitethernet 1/0/3
[MCE-GigabitEthernet1/0/3] port link-type trunk
[MCE-GigabitEthernet1/0/3] port trunk permit vlan 30 40
[MCE-GigabitEthernet1/0/3] quit
# 配置PE1的GigabitEthernet1/0/1端口。
<PE1> system-view
[PE1] interface gigabitethernet 1/0/1
[PE1-GigabitEthernet1/0/1] port link-type trunk
[PE1-GigabitEthernet1/0/1] port trunk permit vlan 30 40
[PE1-GigabitEthernet1/0/1] quit
# 配置PE1的Vlan-interface30和Vlan-interface40的接口IPv6地址分别为2003:1::2和2004:1::2,并将这两个接口分别与VPN1实例和VPN2实例进行绑定,配置步骤省略。
# 配置MCE启动IPv6 ISIS进程10,绑定到VPN1实例,并引入VPN 1的静态路由。
[MCE] isis 10 vpn-instance vpn1
[MCE-isis-10] ipv6 enable
[MCE-isis-10] network-entity 47.0001.0001.0002.00
[MCE-isis-10] import-route static
[MCE-isis-10] quit
# 在Vlan-interface30中使能IPv6 ISIS。
[MCE] interface vlan-interface 30
[MCE-Vlan-interface30] isis ipv6 enable 10
[MCE-Vlan-interface30] quit
# 配置PE1启动IPv6 ISIS进程10,绑定到VPN1实例。
[PE1] isis 10 vpn-instance vpn1
[PE1-isis-10] ipv6 enable
[PE1-isis-10] network-entity 47.0001.0001.0003.00
[PE1-isis-10] quit
# 在Vlan-interface30中使能IPv6 ISIS。
[PE1] interface vlan-interface 30
[PE1-Vlan-interface30] isis ipv6 enable 10
[PE1-Vlan-interface30] quit
# 显示PE1上的VPN 1路由信息。
[PE1] display ipv6 routing-table vpn-instance vpn1
Routing Table :
Destinations : 5 Routes : 5
Destination: ::1/128 Protocol : Direct
NextHop : ::1 Preference: 0
Interface : InLoop0 Cost : 0
Destination: 2003:1::/64 Protocol : Direct
NextHop : 2003:1::2 Preference: 0
Interface : Vlan10 Cost : 0
Destination: 2003:1::2/128 Protocol : Direct
NextHop : ::1 Preference: 0
Interface : InLoop0 Cost : 0
Destination: 2012:1::/64 Protocol : ISISv6
NextHop : FE80::200:5EFF:FE01:1C05 Preference: 15
Interface : Vlan10 Cost : 10
Destination: FE80::/10 Protocol : Direct
NextHop : :: Preference: 0
Interface : NULL0 Cost : 0
可以看到,PE1通过IPv6 ISIS学习到了VPN1内的私网路由。
MCE与PE1间配置IPv6 ISIS进程20,引入VPN2实例的路由信息的过程与上面介绍的配置基本一致,不同的是在MCE的IPv6 ISIS中配置引入的是RIPng路由,这里不再赘述。通过下面的显示信息可以看出,PE通过IPv6 ISIS学习到了VPN2内的私网路由。
[PE] display ipv6 routing-table vpn-instance vpn2
Routing Table :
Destinations : 6 Routes : 6
Destination: ::1/128 Protocol : Direct
NextHop : ::1 Preference: 0
Interface : InLoop0 Cost : 0
Destination: 2004:1::/64 Protocol : Direct
NextHop : 2004:1::2 Preference: 0
Interface : vlan20 Cost : 0
Destination: 2004:1::2/128 Protocol : Direct
NextHop : ::1 Preference: 0
Interface : InLoop0 Cost : 0
Destination: 2012::/64 Protocol : ISISv6
NextHop : FE80::200:5EFF:FE01:1C06 Preference: 15
Interface : Vlan20 Cost : 10
Destination: FE80::/10 Protocol : Direct
NextHop : :: Preference: 0
Interface : NULL0 Cost : 0
至此,通过配置,已经将两个VPN实例内的路由信息完整地传播到PE中,配置完成。
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!