14-MCE配置
本章节下载: 14-MCE配置 (640.02 KB)
目 录
MCE(Multi-VPN-Instance Customer Edge,多VPN实例用户网络边界设备)特性用于MPLS L3VPN网络。它通过路由隔离实现业务隔离的组网方案,在允许多个VPN共享CE的同时,提供用户数据的安全性。
MPLS L3VPN是一种三层VPN技术,它使用BGP在服务提供商骨干网上发布用户站点的私网路由,使用MPLS在服务提供商骨干网上转发用户站点之间的私网报文,从而实现通过服务提供商的骨干网连接属于同一个VPN、位于不同地理位置的用户站点。MPLS L3VPN组网方式灵活,可扩展性好,并能够方便地支持MPLS QoS和MPLS TE,因此得到了广泛的应用。
传统的MPLS L3VPN架构要求每个用户站点单独使用一个CE与PE相连。随着用户业务的不断细化和安全需求的提高,一个私有网络内的用户可能需要划分成多个VPN,不同VPN用户间的业务需要完全隔离。此时,为每个VPN单独配置一台CE将加大用户的设备开支和维护成本;而多个VPN共用一台CE,使用同一个路由表项,又无法保证数据的安全性。
MCE功能通过在CE设备上建立VPN实例,为不同的VPN提供逻辑独立的路由转发表和地址空间,使多个VPN可以共享一个CE。该CE设备称为MCE设备。MCE功能有效地解决了多VPN网络带来的用户数据安全与网络成本之间的矛盾。
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(站点)的含义可以从下述几个方面理解:
· 站点是指相互之间具备IP连通性的一组IP系统,并且这组IP系统的IP连通性不需通过服务提供商网络实现;
· 站点的划分是根据设备的拓扑关系,而不是地理位置,尽管在大多数情况下一个站点中的设备地理位置相邻;
· 一个站点中的设备可以属于多个VPN,换言之,一个站点可以属于多个VPN;
· 站点通过CE连接到服务提供商网络,一个站点可以包含多个CE,但一个CE只属于一个站点。
对于多个连接到同一服务提供商网络的站点,通过制定策略,可以将它们划分为不同的集合(set),只有属于相同集合的站点之间才能通过服务提供商网络互访,这种集合就是VPN。
在MPLS L3VPN中,不同VPN之间的路由隔离通过VPN实例(VPN-instance)实现,VPN实例又称为VRF(Virtual Routing and Forwarding,虚拟路由和转发)实例。PE上每个VPN实例都有相对独立的路由表和LFIB(Label Forwarding Information Base,标签转发信息库),确保VPN数据的独立性和安全性。
PE通过将与站点连接的接口与VPN实例关联,实现该站点与VPN实例的关联。一个站点只能与一个VPN实例关联;不同的站点可以关联同一个VPN实例。VPN实例中包含了与其关联的站点所属的所有VPN的成员关系和路由规则等信息。
VPN实例中的信息包括:LFIB、IP路由表、与VPN实例关联的接口以及VPN实例的管理信息。VPN实例的管理信息包括RD(Route Distinguisher,路由标识符)、VPN Target属性、路由过滤策略等。
VPN是一种私有网络,不同的VPN独立管理自己使用的地址范围,也称为地址空间(Address Space)。不同VPN的地址空间可能会在一定范围内重合,比如,VPN 1和VPN 2都使用了10.110.10.0/24网段的地址,这就发生了地址空间重叠(Overlapping Address Spaces)。
MPLS L3VPN使用VPN-IPv4地址(又称为VPNv4地址)来解决上述问题。
图1-2 VPN-IPv4地址结构
如图1-2所示,VPN-IPv4地址共有12个字节,包括8字节的RD和4字节的IPv4地址前缀。其中,RD的作用是将其添加到一个IPv4地址前缀前,使之成为全局唯一的VPN-IPv4地址前缀。
RD有三种格式,通过2字节的Type字段区分:
· Type为0时,Administrator子字段占2字节,Assigned number子字段占4字节,格式为:16位自治系统号:32位用户自定义数字,例如:100:1。
· Type为1时,Administrator子字段占4字节,Assigned number子字段占2字节,格式为:32位IPv4地址:16位用户自定义数字,例如:172.1.1.1:1。
· Type为2时,Administrator子字段占4字节,Assigned number子字段占2字节,格式为:32位自治系统号:16位用户自定义数字,其中的自治系统号最小值为65536,例如:65536:1。
为了保证VPN-IPv4地址全球唯一,建议不要将Administrator子字段的值设置为私有AS号或私有IP地址。
MPLS L3VPN使用BGP扩展团体属性——VPN Target(也称为Route Target)来控制VPN路由信息的发布。
VPN Target属性分为如下两类:
· Export Target属性:本地PE从与自己直接相连的站点学习到IPv4路由后,将其转换为VPN-IPv4路由,为VPN-IPv4路由设置Export Target属性并发布给其它PE。
· Import Target属性:PE在接收到其它PE发布的VPN-IPv4路由时,检查其Export Target属性。只有当此属性与PE上某个VPN实例的Import Target属性匹配时,才把路由加入到该VPN实例的路由表中。
VPN Target属性定义了一条VPN-IPv4路由可以为哪些站点所接收,PE可以接收哪些站点发送来的路由。
与RD类似,VPN Target也有三种格式:
· 16位自治系统号:32位用户自定义数字,例如:100:1。
· 32位IPv4地址:16位用户自定义数字,例如:172.1.1.1:1。
· 32位自治系统号:16位用户自定义数字,其中的自治系统号最小值为65536,例如:65536:1。
如图1-3所示,MCE组网的关键是在MCE与用户站点之间、MCE与PE之间交互私网路由,并将其正确学习到相应VPN实例的路由表中。其他处理与传统的MPLS L3VPN相同,此处不再赘述。
· MCE与用户站点之间的私网路由交互:在MCE设备上为VPN 1和VPN 2创建VPN实例,并使用接口Interface C与VPN 1进行绑定、接口Interface B与VPN 2进行绑定。在接收路由信息时,MCE设备根据路由的接收接口,即可判断该路由信息的来源,并将其维护到对应VPN实例的路由表中。
· MCE与PE之间的私网路由交互:MCE和PE 1之间通过以太网子接口连接。在MCE上将接口Interface A.1与VPN 1绑定;将Interface A.2与VPN 2绑定。在PE 1上为VPN 1和VPN 2创建VPN实例,并将连接MCE的接口Interface A.1和Interface A.2与VPN实例绑定,绑定的方式与MCE设备一致。从而,使得MCE与PE之间交互的私网路由可以准确地学习到对应VPN实例的路由表中。
MCE与VPN站点之间、MCE与PE之间可以使用静态路由、RIP、OSPF、IS-IS、EBGP或IBGP交换路由信息。
图1-3 MCE工作原理示意图
MCE设备上可以配置DHCP服务器或DHCP中继功能,实现为私网内的DHCP客户端动态分配IP地址。MCE作为DHCP服务器时,不同私网的IP地址空间不能重叠。
在MCE组网方案中,路由计算时需要关闭MCE上的路由环路检测功能,防止路由丢失;同时禁止各路由协议互操作功能,以节省系统资源。
MCE配置任务如下:
(1) 配置VPN实例
配置VPN实例的操作是在PE和MCE设备上进行的。
a. 创建VPN实例
c. (可选)配置VPN实例的路由相关属性
(2) 配置MCE与站点之间的路由交换
(3) 配置MCE与PE之间的路由交换
VPN实例在实现中与站点关联。VPN实例不是直接对应于VPN,一个VPN实例综合了和它所对应站点的VPN成员关系和路由规则。
(1) 进入系统视图。
system-view
(2) 创建VPN实例,并进入VPN实例视图。
ip vpn-instance vpn-instance-name
(3) 配置VPN实例的RD。
route-distinguisher route-distinguisher
缺省情况下,未配置VPN实例的RD。
(4) (可选)配置VPN实例的描述信息。
description text
缺省情况下,未配置VPN实例的描述信息。
(5) (可选)配置VPN实例的ID。
vpn-id vpn-id
缺省情况下,未配置VPN实例的ID。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
本接口为连接CE的接口。
(3) 配置接口与指定VPN实例关联。
ip binding vpn-instance vpn-instance-name
缺省情况下,接口未关联VPN实例,接口属于公网。
配置或取消接口与VPN实例关联后,该接口上的IP地址、路由协议等配置将被删除。
执行本命令将删除接口上已经配置的IP地址,因此需要重新配置接口的IP地址。
IPv4 VPN的路由相关属性既可以在VPN实例视图下,也可以在VPN实例IPv4地址族视图下配置。如果同时在两个视图下配置了路由相关属性,则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实例的VPN Target。
vpn-target vpn-target&<1-8> [ both | export-extcommunity | import-extcommunity ]
缺省情况下,未配置VPN实例的VPN Target。
(4) 配置VPN实例支持的最大激活路由前缀数。
routing-table limit number { warn-threshold | simply-alert }
缺省情况下,未限制VPN实例支持的最多激活路由前缀数。
配置一个VPN实例可以支持的最大激活路由前缀数,可以防止设备上保存过多的激活路由前缀信息。
(5) 对当前VPN实例应用入方向路由策略。
import route-policy route-policy
缺省情况下,允许所有VPN Target属性匹配的路由通过。
(6) 对当前VPN实例应用出方向路由策略。
export route-policy route-policy
缺省情况下,不对发布的路由进行过滤。
MCE可以通过静态路由与站点连接。传统CE配置的静态路由对全局生效,无法解决多VPN间的地址重叠问题。MCE功能可以将静态路由与VPN实例相绑定,将各VPN之间的静态路由进行隔离。
该配置在MCE上进行,站点上的配置方法与普通静态路由相同。
(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 }
(3) (可选)配置静态路由的缺省优先级。
ip route-static default-preference default-preference
缺省情况下,静态路由的缺省优先级为60。
通过在MCE上将RIP进程与VPN实例绑定,可以使不同VPN内的私网路由通过不同的RIP进程在站点和MCE间进行交互,保证了私网路由的隔离和安全。RIP的介绍和详细配置,请参见“三层技术-IP路由配置指导”中的“RIP”。
本配置在MCE上进行,站点上配置普通RIP即可。
(1) 进入系统视图。
system-view
(2) 创建MCE与站点间的RIP实例,并进入RIP视图。
rip [ process-id ] vpn-instance vpn-instance-name
一个RIP进程只能属于一个VPN实例。
(3) 在指定网段接口上使能RIP。
network network-address [ wildcard-mask ]
缺省情况下,接口上的RIP功能处于关闭状态。
(4) 引入由PE发布的远端站点的路由。
import-route protocol [ as-number ] [ process-id | all-processes | allow-ibgp ] [ allow-direct | cost cost-value | route-policy route-policy-name | tag tag ] *
缺省情况下,RIP未引入其它路由。
通过在MCE上将OSPF进程与VPN实例绑定,可以使不同VPN内的私网路由通过不同的OSPF进程在站点和MCE间进行交互,保证了私网路由的隔离和安全。OSPF的介绍和详细配置,请参见“三层技术-IP路由配置指导”中的“OSPF”。
本配置在MCE上进行,站点上配置普通OSPF即可。
(1) 进入系统视图。
system-view
(2) 创建MCE与站点间的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) 引入由PE发布的远端站点的路由。
import-route protocol [ as-number ] [ process-id | all-processes | allow-ibgp ] [ allow-direct | cost cost-value | nssa-only | route-policy route-policy-name | tag tag | type type ] *
缺省情况下,没有引入其他协议的路由信息。
(4) 配置OSPF区域,进入OSPF区域视图。
area area-id
(5) 配置区域所包含的网段并在指定网段的接口上使能OSPF。
network ip-address wildcard-mask
缺省情况下,接口不属于任何区域且OSPF功能处于关闭状态。
通过在MCE上将IS-IS进程与VPN实例绑定,可以使不同VPN内的私网路由通过不同的IS-IS进程在站点和MCE间进行交互,保证了私网路由的隔离和安全。IS-IS协议的介绍和详细配置,请参见“三层技术-IP路由配置指导”中的“IS-IS”。
该配置在MCE上进行,站点上配置普通IS-IS即可。
(1) 进入系统视图。
system-view
(2) 创建MCE与站点间的IS-IS实例,并进入IS-IS视图。
isis [ process-id ] vpn-instance vpn-instance-name
一个IS-IS进程只能属于一个VPN实例。
(3) 配置网络实体名称。
network-entity net
缺省情况下,未配置网络实体名称。
(4) 创建并进入IS-IS IPv4单播地址族视图。
address-family ipv4 [ unicast ]
(5) 引入由PE发布的远端站点的路由。
import-route protocol [ as-number ] [ process-id | all-processes | allow-ibgp ] [ allow-direct | cost cost-value | cost-type { external | internal } | [ level-1 | level-1-2 | level-2 ] | route-policy route-policy-name | tag tag ] *
缺省情况下,IS-IS不引入其它协议的路由信息。
如果import-route命令中不指定引入的级别,则默认为引入路由到Level-2路由表中。
(6) 退回系统视图。
quit
(7) 进入接口视图。
interface interface-type interface-number
(8) 使能接口IS-IS并指定要关联的IS-IS进程号。
isis enable [ process-id ]
缺省情况下,接口上没有使能IS-IS。
MCE与站点间使用EBGP交换路由信息时,需要在MCE上为每个VPN实例配置BGP对等体,并在站点上引入相应VPN内的IGP路由信息。
配置MCE的同时需要配置站点将自己所能到达的VPN网段地址发布给接入的MCE。
(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) 配置站点为EBGP对等体。
peer { group-name | ipv4-address [ mask-length ] } as-number as-number
(5) 进入BGP-VPN IPv4单播地址族视图。
address-family ipv4 [ unicast ]
(6) 使能本地路由器与指定对等体交换IPv4单播路由信息的能力。
peer { group-name | ipv4-address [ mask-length ] } enable
缺省情况下,本地路由器不能与对等体交换IPv4单播路由信息。
(7) (可选)配置对于从对等体接收的路由,允许本地AS号在接收路由的AS_PATH属性中出现,并配置允许出现的次数。
peer { group-name | ipv4-address [ mask-length ] } allow-as-loop [ number ]
缺省情况下,不允许本地AS号在接收路由的AS_PATH属性中出现。
(8) 引入由PE发布的远端站点的路由。
import-route protocol [ { process-id | all-processes } [ allow-direct | med med-value | route-policy route-policy-name ] * ]
缺省情况下,BGP不会引入IGP路由协议的路由信息。
(1) 进入系统视图。
system-view
(2) 启动BGP实例,并进入BGP实例视图。
bgp as-number [ instance instance-name ]
缺省情况下,系统没有运行BGP。
(3) 将MCE配置为EBGP对等体。
peer { group-name | ipv4-address [ mask-length ] } as-number as-number
(4) 进入BGP IPv4单播地址族视图。
address-family ipv4 [ unicast ]
(5) 使能本地路由器与指定对等体交换IPv4单播路由信息的能力。
peer { group-name | ipv4-address [ mask-length ] } enable
缺省情况下,本地路由器不能与对等体交换IPv4单播路由信息。
(6) 配置引入VPN内的IGP路由。
import-route protocol [ { process-id | all-processes } [ allow-direct | med med-value | route-policy route-policy-name ] * ]
缺省情况下,BGP不会引入IGP路由协议的路由信息。
MCE与站点间使用IBGP交换路由信息时,需要在MCE上为每个VPN实例配置BGP对等体,并在站点上引入相应VPN内的IGP路由信息。
配置MCE的同时需要配置站点将自己所能到达的VPN网段地址发布给接入的MCE。
(1) 进入系统视图。
system-view
(2) 启动BGP实例,并进入BGP实例视图。
bgp as-number [ instance instance-name ]
缺省情况下,系统没有运行BGP。
(3) 进入BGP-VPN实例视图。
ip vpn-instance vpn-instance-name
(4) 配置IBGP对等体。
peer { group-name | ipv4-address [ mask-length ] } as-number as-number
(5) 进入BGP-VPN IPv4单播地址族视图。
address-family ipv4 [ unicast ]
(6) 使能本地路由器与指定对等体交换IPv4单播路由信息的能力。
peer { group-name | ipv4-address [ mask-length ] } enable
缺省情况下,本地路由器不能与对等体交换IPv4单播路由信息。
(7) (可选)配置本地设备作为路由反射器,对端设备作为路由反射器的客户端。
peer { group-name | ipv4-address [ mask-length ] } reflect-client
缺省情况下,未配置路由反射器及其客户端。
站点为IBGP对等体,MCE不会向其它IBGP对等体(包括VPNv4对等体)发送从该站点学习的BGP路由。只有执行本配置后,MCE才能向其它IBGP对等体发送从该站点学习的路由。
(8) 引入由PE发布的远端站点的路由。
import-route protocol [ { process-id | all-processes } [ allow-direct | med med-value | route-policy route-policy-name ] * ]
缺省情况下,BGP不引入且不通告其它协议的路由。
(1) 进入系统视图。
system-view
(2) 启动BGP实例,并进入BGP实例视图。
bgp as-number [ instance instance-name ]
缺省情况下,系统没有运行BGP。
(3) 将MCE配置为IBGP对等体。
peer { group-name | ipv4-address [ mask-length ] } as-number as-number
(4) 进入BGP IPv4单播地址族视图。
address-family ipv4 [ unicast ]
(5) 使能本地路由器与指定对等体交换IPv4单播路由信息的能力。
peer { group-name | ipv4-address [ mask-length ] } enable
缺省情况下,本地路由器不能与对等体交换IPv4单播路由信息。
(6) 配置引入VPN内的IGP路由。
import-route protocol [ { process-id | all-processes } [ allow-direct | med med-value | route-policy route-policy-name ] * ]
缺省情况下,BGP不引入且不通告其它协议的路由。
由于在MCE设备上已经将站点内的私网路由信息与VPN实例进行了绑定,因此,只需要在MCE与PE之间将接口与VPN实例进行绑定、进行简单的路由配置、并将MCE上维护的站点内的VPN路由引入到MCE-PE间的路由协议中,便可以实现私网VPN路由信息的传播。
本节中的配置均在MCE上进行,PE上的配置与基本MPLS L3VPN组网中PE上的配置相同,详细介绍请参见“MPLS配置指导”中的“MPLS L3VPN”。
(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 }
(3) (可选)配置静态路由的缺省优先级。
ip route-static default-preference default-preference
缺省情况下,静态路由的缺省优先级为60。
(1) 进入系统视图。
system-view
(2) 创建MCE与PE间的RIP实例,并进入RIP视图。
rip [ process-id ] vpn-instance vpn-instance-name
(3) 在指定网段接口上使能RIP。
network network-address [ wildcard-mask ]
缺省情况下,接口上的RIP功能处于关闭状态。
(4) 引入站点内的VPN路由。
import-route protocol [ as-number ] [ process-id | all-processes | allow-ibgp ] [ allow-direct | cost cost-value | route-policy route-policy-name | tag tag ] *
缺省情况下,RIP未引入其它路由。
(1) 进入系统视图。
system-view
(2) 创建MCE与PE间的OSPF实例,并进入OSPF视图。
ospf [ process-id | router-id router-id | vpn-instance vpn-instance-name ] *
(3) 关闭OSPF实例的路由环路检测功能。
vpn-instance-capability simple
缺省情况下,OSPF实例的路由环路检测功能处于开启状态。此时MCE不会接收PE发送过来的OSPF路由,导致路由丢失。
(4) 引入站点内的VPN路由。
import-route protocol [ as-number ] [ process-id | all-processes | allow-ibgp ] [ allow-direct | cost cost-value | nssa-only | route-policy route-policy-name | tag tag | type type ] *
缺省情况下,没有引入其他协议的路由信息。
(5) 配置OSPF区域,进入OSPF区域视图。
area area-id
(6) 配置区域所包含的网段并在指定网段的接口上使能OSPF。
network ip-address wildcard-mask
缺省情况下,接口不属于任何区域且OSPF功能处于关闭状态。
(1) 进入系统视图。
system-view
(2) 创建MCE与PE间的IS-IS实例,并进入IS-IS视图。
isis [ process-id ] vpn-instance vpn-instance-name
(3) 配置网络实体名称。
network-entity net
缺省情况下,未配置网络实体名称。
(4) 创建并进入IS-IS IPv4单播地址族视图。
address-family ipv4 [ unicast ]
(5) 引入站点内的VPN路由。
import-route protocol [ as-number ] [ process-id | all-processes | allow-ibgp ] [ allow-direct | cost cost-value | cost-type { external | internal } | [ level-1 | level-1-2 | level-2 ] | route-policy route-policy-name | tag tag ] *
缺省情况下,IS-IS不引入其它协议的路由信息。
如果import-route命令中不指定引入的级别,则默认为引入路由到Level-2路由表中。
(6) 退回系统视图。
quit
(7) 进入接口视图。
interface interface-type interface-number
(8) 使能接口IS-IS并指定要关联的IS-IS进程号。
isis enable [ process-id ]
缺省情况下,接口上没有使能IS-IS。
(1) 进入系统视图。
system-view
(2) 启动BGP实例,并进入BGP实例视图。
bgp as-number [ instance instance-name ]
缺省情况下,系统没有运行BGP。
(3) 进入BGP-VPN实例视图。
ip vpn-instance vpn-instance-name
(4) 将PE配置为EBGP对等体。
peer { group-name | ipv4-address [ mask-length ] } as-number as-number
(5) 进入BGP-VPN IPv4单播地址族视图。
address-family ipv4 [ unicast ]
(6) 使能本地路由器与指定对等体交换IPv4单播路由信息的能力。
peer { group-name | ipv4-address [ mask-length ] } enable
缺省情况下,本地路由器不能与对等体交换IPv4单播路由信息。
(7) 引入站点内的VPN路由。
import-route protocol [ { process-id | all-processes } [ allow-direct | med med-value | route-policy route-policy-name ] * ]
缺省情况下,BGP不引入且不通告其它协议的路由。
(1) 进入系统视图。
system-view
(2) 启动BGP实例,并进入BGP实例视图。
bgp as-number [ instance instance-name ]
缺省情况下,系统没有运行BGP。
(3) 进入BGP-VPN实例视图。
ip vpn-instance vpn-instance-name
(4) 将PE配置为IBGP对等体。
peer { group-name | ipv4-address [ mask-length ] } as-number as-number
(5) 进入BGP-VPN IPv4单播地址族视图。
address-family ipv4 [ unicast ]
(6) 使能本地路由器与指定对等体交换IPv4单播路由信息的能力。
peer { group-name | ipv4-address [ mask-length ] } enable
缺省情况下,本地路由器不能与对等体交换IPv4单播路由信息。
(7) 引入站点内的VPN路由。
import-route protocol [ { process-id | all-processes } [ allow-direct | med med-value | route-policy route-policy-name ] * ]
缺省情况下,BGP不引入且不通告其它协议的路由。
在完成上述配置后,在任意视图下执行display命令可以显示配置后MCE的运行情况,通过查看显示信息验证配置的效果。
表1-1 MCE显示和维护
操作 |
命令 |
显示指定VPN实例信息 |
display ip vpn-instance [ instance-name vpn-instance-name ] |
VPN实例中路由表的命令请参见“三层技术-IP路由命令参考”中的“IP路由基础命令”。
MCE设备连接两个VPN:VPN 1和VPN 2。VPN 1和VPN 2的边缘设备分别为VR1和VR2。其中,VPN 2内运行RIP路由协议。MCE设备将两个VPN之间的路由隔离,并通过OSPF将各VPN的路由发布到PE 1。
图1-4 配置MCE组网图
(1) 在MCE和PE 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
# 配置接口GigabitEthernet1/0与VPN实例vpn1绑定,并配置该接口的地址。
[MCE] interface gigabitethernet 1/0
[MCE-GigabitEthernet1/0] ip binding vpn-instance vpn1
[MCE-GigabitEthernet1/0] ip address 10.214.10.3 24
[MCE-GigabitEthernet1/0] quit
# 配置接口GigabitEthernet2/0与VPN实例vpn2绑定,并配置该接口的地址。
[MCE] interface gigabitethernet 2/0
[MCE-GigabitEthernet2/0] ip binding vpn-instance vpn2
[MCE-GigabitEthernet2/0] ip address 10.214.20.3 24
[MCE-GigabitEthernet2/0] quit
# 在PE 1上配置VPN实例,名称分别为vpn1和vpn2,RD分别取值为10:1和20:1,VPN Target取值与RD相同,Export和Import均取此值。
<PE1> system-view
[PE1] ip vpn-instance vpn1
[PE1-vpn-instance-vpn1] route-distinguisher 10:1
[PE1-vpn-instance-vpn1] vpn-target 10:1
[PE1-vpn-instance-vpn1] quit
[PE1] ip vpn-instance vpn2
[PE1-vpn-instance-vpn2] route-distinguisher 20:1
[PE1-vpn-instance-vpn2] vpn-target 20:1
[PE1-vpn-instance-vpn2] quit
(2) MCE与站点间路由配置
MCE与VPN 1直接相连,且VPN 1内未使用路由协议,因此可以使用静态路由进行配置。
# 配置VR1与MCE连接的接口地址为10.214.10.2/24,连接VPN 1接口的地址为192.168.0.1/24。(具体配置过程略)
# 在VR1上配置缺省路由,指定出方向报文的下一跳地址为10.214.10.3。
<VR1> system-view
[VR1] ip route-static 0.0.0.0 0.0.0.0 10.214.10.3
# 在MCE上指定静态路由,去往192.168.0.0/24网段的报文,下一跳地址为10.214.10.2,并将此路由与VPN实例vpn1绑定。
[MCE] ip route-static vpn-instance vpn1 192.168.0.0 24 10.214.10.2
# VPN 2内运行RIP,在MCE上配置RIP进程20,并与VPN实例vpn2绑定,以便将VPN 2内的路由学习到VPN实例vpn2的路由表中。
[MCE] rip 20 vpn-instance vpn2
# 发布网段10.214.20.0的路由。
[MCE-rip-20] network 10.214.20.0
[MCE-rip-20] quit
# 在VR2上,配置与MCE连接的接口地址为10.214.20.2/24,连接VPN 2接口的地址为192.168.10.1/24。(配置过程略)
# 配置RIP,发布网段192.168.10.0和10.214.20.0的路由。
<VR2> system-view
[VR2] rip 20
[VR2-rip-20] network 192.168.10.0
[VR2-rip-20] network 10.214.20.0
# 在MCE上查看VPN实例vpn1和vpn2的路由信息。
[MCE] display ip routing-table vpn-instance vpn1
Destinations : 13 Routes : 13
Destination/Mask Proto Pre Cost NextHop Interface
0.0.0.0/32 Direct 0 0 127.0.0.1 InLoop0
10.214.10.0/24 Direct 0 0 10.214.10.3 GE1/0
10.214.10.0/32 Direct 0 0 10.214.10.3 GE1/0
10.214.10.3/32 Direct 0 0 127.0.0.1 InLoop0
10.214.10.255/32 Direct 0 0 10.214.10.3 GE1/0
127.0.0.0/8 Direct 0 0 127.0.0.1 InLoop0
127.0.0.0/32 Direct 0 0 127.0.0.1 InLoop0
127.0.0.1/32 Direct 0 0 127.0.0.1 InLoop0
127.255.255.255/32 Direct 0 0 127.0.0.1 InLoop0
192.168.0.0/24 Static 60 0 10.214.10.2 GE1/0
224.0.0.0/4 Direct 0 0 0.0.0.0 NULL0
224.0.0.0/24 Direct 0 0 0.0.0.0 NULL0
255.255.255.255/32 Direct 0 0 127.0.0.1 InLoop0
[MCE] display ip routing-table vpn-instance vpn2
Destinations : 13 Routes : 13
Destination/Mask Proto Pre Cost NextHop Interface
0.0.0.0/32 Direct 0 0 127.0.0.1 InLoop0
10.214.20.0/24 Direct 0 0 10.214.20.3 GE2/0
10.214.20.0/32 Direct 0 0 10.214.20.3 GE2/0
10.214.20.3/32 Direct 0 0 127.0.0.1 InLoop0
10.214.20.255/32 Direct 0 0 10.214.20.3 GE2/0
127.0.0.0/8 Direct 0 0 127.0.0.1 InLoop0
127.0.0.0/32 Direct 0 0 127.0.0.1 InLoop0
127.0.0.1/32 Direct 0 0 127.0.0.1 InLoop0
127.255.255.255/32 Direct 0 0 127.0.0.1 InLoop0
192.168.10.0/24 RIP 100 1 10.214.20.2 GE2/0
224.0.0.0/4 Direct 0 0 0.0.0.0 NULL0
224.0.0.0/24 Direct 0 0 0.0.0.0 NULL0
255.255.255.255/32 Direct 0 0 127.0.0.1 InLoop0
可以看到,MCE已经通过RIP学习到了VPN 2内的私网路由,并与VPN 1内的路由信息分别维护在两个路由表内,有效地进行了隔离。
(3) MCE与PE间路由配置
# MCE通过子接口与PE 1相连。在MCE上配置子接口GigabitEthernet3/0.1与VPN实例vpn1绑定,配置该子接口终结VLAN 10,并配置该接口的地址。
[MCE] interface gigabitethernet 3/0.1
[MCE-GigabitEthernet3/0.1] ip binding vpn-instance vpn1
[MCE-GigabitEthernet3/0.1] vlan-type dot1q vid 10
[MCE-GigabitEthernet3/0.1] ip address 20.1.1.1 24
[MCE-GigabitEthernet3/0.1] quit
# 在MCE上配置子接口GigabitEthernet3/0.2与VPN实例vpn2绑定,配置该子接口终结VLAN 20,并配置该接口的地址。
[MCE] interface gigabitethernet 3/0.2
[MCE-GigabitEthernet3/0.2] ip binding vpn-instance vpn2
[MCE-GigabitEthernet3/0.2] vlan-type dot1q vid 20
[MCE-GigabitEthernet3/0.2] ip address 30.1.1.1 24
[MCE-GigabitEthernet3/0.2] quit
# 在PE 1配置子接口GigabitEthernet1/0.1与VPN实例vpn1绑定,配置该子接口终结VLAN 10,并配置该接口的地址。
[PE1] interface gigabitethernet 1/0.1
[PE1-GigabitEthernet1/0.1] ip binding vpn-instance vpn1
[PE1-GigabitEthernet1/0.1] vlan-type dot1q vid 10
[PE1-GigabitEthernet1/0.1] ip address 20.1.1.2 24
[PE1-GigabitEthernet1/0.1] quit
# 在PE 1上配置子接口GigabitEthernet1/0.2与VPN实例vpn2绑定,配置该子接口终结VLAN 20,并配置该接口的地址。
[PE1] interface gigabitethernet 1/0.2
[PE1-GigabitEthernet1/0.2] ip binding vpn-instance vpn2
[PE1-GigabitEthernet1/0.2] vlan-type dot1q vid 20
[PE1-GigabitEthernet1/0.2] ip address 30.1.1.2 24
[PE1-GigabitEthernet1/0.2] quit
# 配置MCE和PE 1的Loopback0接口,用于指定MCE和PE 1的Router ID,地址分别为101.101.10.1和100.100.10.1。配置步骤这里省略。
# 配置MCE启动OSPF进程10,该进程绑定到VPN实例vpn1,关闭OSPF实例的路由环路检测功能,并配置域ID为10。
[MCE] ospf 10 router-id 101.101.10.1 vpn-instance vpn1
[MCE-ospf-10] vpn-instance-capability simple
[MCE-ospf-10] domain-id 10
# 在Area0区域发布20.1.1.0/24网段路由,并引入VPN 1的静态路由。
[MCE-ospf-10] area 0
[MCE-ospf-10-area-0.0.0.0] network 20.1.1.0 0.0.0.255
[MCE-ospf-10-area-0.0.0.0] quit
[MCE-ospf-10] import-route static
# 配置PE 1启动OSPF进程10,绑定到VPN实例vpn1,域ID为10,在Area0区域发布20.1.1.0/24网段路由。
[PE1] ospf 10 router-id 100.100.10.1 vpn-instance vpn1
[PE1-ospf-10] domain-id 10
[PE1-ospf-10] area 0
[PE1-ospf-10-area-0.0.0.0] network 20.1.1.0 0.0.0.255
[PE1-ospf-10-area-0.0.0.0] quit
[PE1-ospf-10] quit
# MCE与PE 1间配置OSPF进程20,导入VPN实例vpn2的路由信息的过程与上面介绍的配置基本一致,不同的是在MCE的OSPF中配置导入的是RIP进程20的路由,这里不再赘述。
# 显示PE 1上的VPN 1路由信息。可以看到,VPN 1内的静态路由已经引入到MCE与PE 1间的OSPF路由表中。
[PE1] display ip routing-table vpn-instance vpn1
Destinations : 13 Routes : 13
Destination/Mask Proto Pre Cost NextHop Interface
0.0.0.0/32 Direct 0 0 127.0.0.1 InLoop0
20.1.1.0/24 Direct 0 0 20.1.1.2 GE1/0.1
20.1.1.0/32 Direct 0 0 20.1.1.2 GE1/0.1
20.1.1.2/32 Direct 0 0 127.0.0.1 InLoop0
20.1.1.255/32 Direct 0 0 20.1.1.2 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
192.168.0.0/24 O_ASE2 150 1 20.1.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 1上的VPN 2路由信息。可以看到,VPN 2内的RIP路由已经引入到MCE与PE 1间的OSPF路由表中。
[PE1] display ip routing-table vpn-instance vpn2
Destinations : 13 Routes : 13
Destination/Mask Proto Pre Cost NextHop Interface
0.0.0.0/32 Direct 0 0 127.0.0.1 InLoop0
30.1.1.0/24 Direct 0 0 30.1.1.2 GE1/0.2
30.1.1.0/32 Direct 0 0 30.1.1.2 GE1/0.2
30.1.1.2/32 Direct 0 0 127.0.0.1 InLoop0
30.1.1.255/32 Direct 0 0 30.1.1.2 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
192.168.10.0/24 O_ASE2 150 1 30.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
至此,通过配置,已经将两个VPN实例内的路由信息完整地传播到PE 1中,配置完成。
IPv6 MCE应用于IPv6 MPLS L3VPN,它通过路由隔离实现业务隔离的组网方案,在允许多个VPN共享CE的同时,提供用户数据的安全性。
IPv6 MPLS L3VPN利用BGP在服务提供商骨干网上发布VPN的IPv6路由,利用MPLS在服务提供商骨干网上转发VPN的IPv6报文。
IPv6 MCE的原理与MCE相同,IPv6 MCE在内网和PE之间发布IPv6路由,并交互IPv6报文。
在IPv6 MCE组网方案中,路由计算时需要关闭MCE上的路由环路检测功能,防止路由丢失;同时禁止各路由协议互操作功能,以节省系统资源。
IPv6 MCE配置任务如下:
(1) 配置VPN实例
配置VPN实例的操作是在PE和MCE设备上进行的。
a. 创建VPN实例
c. (可选)配置VPN实例的路由相关属性
(2) 配置MCE与站点之间的路由交换
(3) 配置MCE与PE之间的路由交换
VPN实例在实现中与站点关联。VPN实例不是直接对应于VPN,一个VPN实例综合了和它所对应站点的VPN成员关系和路由规则。
(1) 进入系统视图。
system-view
(2) 创建VPN实例,并进入VPN实例视图。
ip vpn-instance vpn-instance-name
(3) 配置VPN实例的RD。
route-distinguisher route-distinguisher
缺省情况下,未配置VPN实例的RD。
(4) (可选)配置VPN实例的描述信息。
description text
缺省情况下,未配置VPN实例的描述信息。
描述信息用于描述VPN实例,可以用来记录VPN实例与某个VPN的关系等信息。
(5) (可选)配置VPN实例的ID。
vpn-id vpn-id
缺省情况下,未配置VPN实例的ID。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
本接口为连接CE的接口。
(3) 配置接口与指定VPN实例关联。
ip binding vpn-instance vpn-instance-name
缺省情况下,接口未关联VPN实例,接口属于公网。
配置或取消接口与VPN实例关联后,该接口上的IP地址、路由协议等配置将被删除。
执行本命令将删除接口上已经配置的IPv6地址,因此需要重新配置接口的IPv6地址。
IPv6 VPN的路由相关属性既可以在VPN实例视图下,也可以在VPN实例IPv6地址族视图下配置。如果同时在两个视图下配置了路由相关属性,则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) 配置VPN Target。
vpn-target vpn-target&<1-8> [ both | export-extcommunity | import-extcommunity ]
缺省情况下,未配置VPN实例的VPN Target。
(4) 配置支持的最大激活路由前缀数。
routing-table limit number { warn-threshold | simply-alert }
缺省情况下,未限制VPN实例支持的最多激活路由前缀数。
配置一个VPN实例可以支持的最大激活路由前缀数,可以防止设备上保存过多的激活路由前缀信息。
(5) 应用入方向路由策略。
import route-policy route-policy
缺省情况下,接收所有VPN Target属性匹配的路由。
(6) 应用出方向路由策略。
export route-policy route-policy
缺省情况下,不对发布的路由进行过滤。
MCE可以通过IPv6静态路由与站点连接。传统CE配置的IPv6静态路由对全局生效,无法解决多VPN间的地址重叠问题。以太网交换机提供的MCE功能可以将IPv6静态路由与VPN实例相绑定,将各IPv6 VPN之间的IPv6静态路由进行隔离。
该配置在MCE上进行,站点上的配置方法与普通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 }
(3) (可选)配置IPv6静态路由的缺省优先级。
ipv6 route-static default-preference default-preference
缺省情况下,IPv6静态路由的缺省优先级为60。
通过在MCE上将RIPng进程与IPv6 VPN实例绑定,可以使不同IPv6 VPN内的私网路由通过不同的RIPng进程在站点和MCE间进行交互,保证了私网路由的隔离和安全。有关RIPng的介绍和详细配置,请参见“三层技术-IP路由配置指导”中的“RIPng”。
该配置在MCE上进行,站点上配置普通RIPng即可。
(1) 进入系统视图。
system-view
(2) 创建MCE与站点间的RIPng实例,并进入RIPng视图。
ripng [ process-id ] vpn-instance vpn-instance-name
一个RIPng进程只能属于一个IPv6 VPN实例。
(3) 引入由PE发布的远端站点的路由。
import-route protocol [ as-number | process-id ] [ allow-ibgp ] [ allow-direct | cost cost-value | route-policy route-policy-name ] *
缺省情况下,RIPng未引入其它路由。
(4) 退回系统视图。
quit
(5) 进入接口视图。
interface interface-type interface-number
(6) 在接口上使能RIPng路由协议。
ripng process-id enable
缺省情况下,接口禁用RIPng路由协议。
通过在MCE上将OSPFv3进程与IPv6 VPN实例绑定,可以使不同IPv6 VPN内的私网路由通过不同的OSPFv3进程在站点和MCE间进行交互,保证了私网路由的隔离和安全。有关OSPFv3的介绍和详细配置,请参见“三层技术-IP路由配置指导”中的“OSPFv3”。
该配置在MCE上进行,站点上配置普通OSPFv3即可。
(1) 进入系统视图。
system-view
(2) 创建MCE与站点间的OSPFv3实例,并进入OSPFv3视图。
ospfv3 [ process-id | vpn-instance vpn-instance-name ] *
一个OSPFv3进程只能属于一个VPN实例。
删除VPN实例后,相关的所有OSPFv3进程也将全部被删除。
(3) 配置Router ID。
router-id router-id
(4) 引入由PE发布的远端站点的路由。
import-route protocol [ as-number ] [ process-id | all-processes | allow-ibgp ] [ allow-direct | cost cost-value | nssa-only | route-policy route-policy-name | tag tag | type type ] *
缺省情况下,没有引入其他协议的路由信息。
(5) 退回系统视图。
quit
(6) 进入接口视图。
interface interface-type interface-number
(7) 在接口上使能OSPFv3。
ospfv3 process-id area area-id [ instance instance-id ]
缺省情况下,接口上没有使能OSPFv3。
通过在MCE上将IPv6 IS-IS进程与IPv6 VPN实例绑定,可以使不同IPv6 VPN内的私网路由通过不同的IPv6 IS-IS进程在站点和MCE间进行交互,保证了私网路由的隔离和安全。有关IPv6 IS-IS的介绍和详细配置,请参见“三层技术-IP路由配置指导”中的“IPv6 IS-IS”。
该配置在MCE上进行,站点上配置普通IPv6 IS-IS即可。
(1) 进入系统视图。
system-view
(2) 创建MCE与站点间的IPv6 IS-IS实例,并进入IS-IS视图。
isis [ process-id ] vpn-instance vpn-instance-name
一个IPv6 IS-IS进程只能属于一个IPv6 VPN实例。
(3) 配置网络实体名称。
network-entity net
缺省情况下,未配置网络实体名称。
(4) 创建并进入IS-IS IPv6单播地址族视图。
address-family ipv6 [ unicast ]
(5) (可选)引入由PE发布的远端站点的路由。
import-route protocol [ as-number | process-id ] [ allow-ibgp ] [ allow-direct | cost cost-value | [ level-1 | level-1-2 | level-2 ] | route-policy route-policy-name | tag tag ] *
缺省情况下,IPv6 IS-IS不引入其它协议的路由信息。
如果import-route命令中不指定引入的级别,则默认为引入路由到Level-2路由表中。
(6) 退回系统视图。
quit
(7) 进入接口视图。
interface interface-type interface-number
(8) 使能接口IS-IS路由进程的IPv6能力,并指定要关联的IS-IS进程号。
isis ipv6 enable [ process-id ]
缺省情况下,接口上没有使能IS-IS路由进程的IPv6能力。
MCE与站点间使用EBGP交换路由信息时,需要在MCE上为每个IPv6 VPN实例配置IPv6 BGP对等体,并在站点上引入相应IPv6 VPN内的IGP路由信息。
有关IPv6 BGP协议的配置,请参见“三层技术-IP路由配置指导”中的“BGP”。
配置MCE的同时也需要配置站点将自己所能到达的IPv6 VPN网段地址发布给接入的MCE。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图。
bgp as-number [ instance instance-name ]
(3) 进入BGP-VPN实例视图。
ip vpn-instance vpn-instance-name
(4) 配置IPv6 BGP对等体的AS号。
peer { group-name | ipv6-address [ prefix-length ] } as-number as-number
(5) 进入BGP-VPN IPv6单播地址族视图。
address-family ipv6 [ unicast ]
(6) 使能本地路由器与指定对等体交换IPv6单播路由信息的能力。
peer { group-name | ipv6-address [ prefix-length ] } enable
缺省情况下,本地路由器不能与对等体交换IPv6单播路由信息。
(7) 引入由PE发布的远端站点的路由。
import-route protocol [ { process-id | all-processes } [ allow-direct | med med-value | route-policy route-policy-name ] * ]
缺省情况下,BGP不引入且不通告其它协议的路由。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图。
bgp as-number [ instance instance-name ]
(3) 将MCE配置为EBGP对等体。
peer { group-name | ipv6-address [ prefix-length ] } as-number as-number
(4) 进入BGP IPv6单播地址族视图。
address-family ipv6 [ unicast ]
(5) 使能本地路由器与指定对等体交换IPv6单播路由信息的能力。
peer { group-name | ipv6-address [ prefix-length ] } enable
缺省情况下,本地路由器不能与对等体交换IPv6单播路由信息。
(6) 引入VPN内的IGP路由。
import-route protocol [ { process-id | all-processes } [ allow-direct | med med-value | route-policy route-policy-name ] * ]
缺省情况下,BGP不引入且不通告其它协议的路由。
MCE与站点间使用IBGP交换路由信息时,需要在MCE上为每个VPN实例配置BGP对等体,并在站点上引入相应VPN内的IGP路由信息。
配置MCE的同时也需要配置站点将自己所能到达的VPN网段地址发布给接入的MCE。
(1) 进入系统视图。
system-view
(2) 启动BGP实例,并进入BGP实例视图。
bgp as-number [ instance instance-name ]
缺省情况下,系统没有运行BGP。
(3) 进入BGP-VPN实例视图。
ip vpn-instance vpn-instance-name
(4) 配置IBGP对等体。
peer { group-name | ipv6-address [ prefix-length ] } as-number as-number
(5) 进入BGP-VPN IPv6单播地址族视图。
address-family ipv6 [ unicast ]
(6) 使能本地路由器与指定对等体交换IPv6单播路由信息的能力。
peer { group-name | ipv6-address [ prefix-length ] } enable
缺省情况下,本地路由器不能与对等体交换IPv6单播路由信息。
(7) (可选)配置本地设备作为路由反射器,对端设备作为路由反射器的客户端。
peer { group-name | ipv6-address [ prefix-length ] } reflect-client
缺省情况下,未配置路由反射器及其客户端。
站点为IBGP对等体时,MCE不会向其它IBGP对等体(包括VPNv6对等体)发送从该站点学习的BGP路由。只有执行本配置后,才能向其它IBGP对等体发送从该站点学习的路由。
(8) 引入由PE发布的远端站点的路由。
import-route protocol [ { process-id | all-processes } [ allow-direct | med med-value | route-policy route-policy-name ] * ]
缺省情况下,BGP不引入且不通告其它协议的路由。
(1) 进入系统视图。
system-view
(2) 启动BGP实例,并进入BGP实例视图。
bgp as-number [ instance instance-name ]
缺省情况下,系统没有运行BGP。
(3) 将MCE配置为IBGP对等体。
peer { group-name | ipv6-address [ prefix-length ] } as-number as-number
(4) 进入BGP IPv6单播地址族视图。
address-family ipv6 [ unicast ]
(5) 使能本地路由器与指定对等体交换IPv6单播路由信息的能力。
peer { group-name | ipv6-address [ prefix-length ] } enable
缺省情况下,本地路由器不能与对等体交换IPv6单播路由信息。
(6) 配置引入VPN内的IGP路由。
import-route protocol [ { process-id | all-processes } [ allow-direct | med med-value | route-policy route-policy-name ] * ]
缺省情况下,BGP不引入且不通告其它协议的路由。
由于在MCE设备上已经将站点内的私网路由信息与IPv6 VPN实例进行了绑定,因此,只需要在MCE与PE之间将接口与IPv6 VPN实例进行绑定、进行简单的路由配置、并将MCE上维护的站点内的IPv6 VPN路由引入到MCE-PE间的路由协议中,便可以实现私网VPN路由信息的传播。
本节中的配置均在MCE上进行,PE上的配置与基本IPv6 MPLS L3VPN组网中PE上的配置相同,详细介绍请参见“MPLS配置指导”中的“MPLS L3VPN”。
(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 }
(3) (可选)配置IPv6静态路由的缺省优先级。
ipv6 route-static default-preference default-preference
缺省情况下,IPv6静态路由的缺省优先级为60。
(1) 进入系统视图。
system-view
(2) 创建MCE与PE间的RIPng实例,并进入RIPng视图。
ripng [ process-id ] vpn-instance vpn-instance-name
(3) 引入站点内的VPN路由。
import-route protocol [ as-number | process-id ] [ allow-ibgp ] [ allow-direct | cost cost-value | route-policy route-policy-name ] *
缺省情况下,RIPng未引入其它路由。
(4) 退回系统视图。
quit
(5) 进入接口视图。
interface interface-type interface-number
(6) 在指定的网络接口上使能RIPng。
ripng process-id enable
缺省情况下,接口禁用RIPng。
(1) 进入系统视图。
system-view
(2) 创建MCE与PE间的OSPFv3实例,并进入OSPFv3视图。
ospfv3 [ process-id | vpn-instance vpn-instance-name ] *
(3) 配置Router ID。
router-id router-id
(4) 关闭OSPFv3实例的路由环路检测功能。
vpn-instance-capability simple
缺省情况下,OSPFv3实例的路由环路检测功能处于开启状态。此时MCE不会接收PE发送过来的OSPFv3路由,会导致路由丢失。
(5) 引入站点内的VPN路由。
import-route protocol [ as-number ] [ process-id | all-processes | allow-ibgp ] [ allow-direct | cost cost-value | nssa-only | route-policy route-policy-name | tag tag | type type ] *
缺省情况下,没有引入其他协议的路由信息。
(6) 退回系统视图。
quit
(7) 进入接口视图。
interface interface-type interface-number
(8) 在接口上使能OSPFv3。
ospfv3 process-id area area-id [ instance instance-id ]
缺省情况下,接口上没有使能OSPFv3。
(1) 进入系统视图。
system-view
(2) 创建MCE与PE间的IPv6 IS-IS实例,并进入IS-IS视图。
isis [ process-id ] vpn-instance vpn-instance-name
(3) 配置网络实体名称。
network-entity net
缺省情况下,未配置网络实体名称。
(4) 创建并进入IS-IS IPv6单播地址族视图。
address-family ipv6 [ unicast ]
(5) 引入站点内的VPN路由。
import-route protocol [ as-number | process-id ] [ allow-ibgp ] [ allow-direct | cost cost-value | [ level-1 | level-1-2 | level-2 ] | route-policy route-policy-name | tag tag ] *
缺省情况下,IPv6 IS-IS不引入其它协议的路由信息。
如果import-route命令中不指定引入的级别,则默认为引入路由到Level-2路由表中。
(6) 退回系统视图。
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 as-number [ instance instance-name ]
(3) 进入BGP-VPN实例视图。
ip vpn-instance vpn-instance-name
(4) 将PE配置为EBGP对等体。
peer { group-name | ipv6-address [ prefix-length ] } as-number as-number
(5) 进入BGP-VPN IPv6单播地址族视图。
address-family ipv6 [ unicast ]
(6) 使能本地路由器与指定对等体交换IPv6单播路由信息的能力。
peer { group-name | ipv6-address [ prefix-length ] } enable
缺省情况下,本地路由器不能与对等体交换IPv6单播路由信息。
(7) 引入站点内的VPN路由。
import-route protocol [ { process-id | all-processes } [ allow-direct | med med-value | route-policy route-policy-name ] * ]
缺省情况下,BGP不引入且不通告其它协议的路由。
(1) 进入系统视图。
system-view
(2) 启动BGP实例,并进入BGP实例视图。
bgp as-number [ instance instance-name ]
缺省情况下,系统没有运行BGP。
(3) 进入BGP-VPN实例视图。
ip vpn-instance vpn-instance-name
(4) 将PE配置为IBGP对等体。
peer { group-name | ipv6-address [ prefix-length ] } as-number as-number
(5) 进入BGP-VPN IPv6单播地址族视图。
address-family ipv6 [ unicast ]
(6) 使能本地路由器与指定对等体交换IPv6单播路由信息的能力。
peer { group-name | ipv6-address [ prefix-length ] } enable
缺省情况下,本地路由器不能与对等体交换IPv6单播路由信息。
(7) 引入站点内的VPN路由。
import-route protocol [ { process-id | all-processes } [ allow-direct | med med-value | route-policy route-policy-name ] * ]
缺省情况下,BGP不引入且不通告其它协议的路由。
在完成上述配置后,在任意视图下执行display命令可以显示配置后IPv6 MCE的运行情况,通过查看显示信息验证配置的效果。
表2-1 IPv6 MCE显示和维护
操作 |
命令 |
显示指定VPN实例信息 |
display ip vpn-instance [ instance-name vpn-instance-name ] |
VPN实例中路由表的命令请参见“三层技术-IP路由命令参考”中的“IP路由基础命令”。
MCE设备连接两个VPN:VPN 1和VPN 2,VPN 1和VPN 2的边缘设备分别名为VR1和VR2。VPN 2内运行RIPng路由协议。MCE设备将两个VPN之间的路由隔离,并通过OSPFv3将各VPN的路由发布到PE 1。
图2-1 配置IPv6 MCE组网图
(1) 在MCE和PE 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
# 配置接口GigabitEthernet1/0与VPN实例vpn1绑定,并配置该接口的IPv6地址。
[MCE] interface gigabitethernet 1/0
[MCE-GigabitEthernet1/0] ip binding vpn-instance vpn1
[MCE-GigabitEthernet1/0] ipv6 address 2001:1::1 64
[MCE-GigabitEthernet1/0] quit
# 配置接口GigabitEthernet2/0与VPN实例vpn2绑定,并配置该接口的IPv6地址。
[MCE] interface gigabitethernet 2/0
[MCE-GigabitEthernet2/0] ip binding vpn-instance vpn2
[MCE-GigabitEthernet2/0] ipv6 address 2002:1::1 64
[MCE-GigabitEthernet2/0] quit
# 在PE 1上配置VPN实例,名称分别为vpn1和vpn2,RD分别取值为10:1和20:1,VPN Target取值与RD相同,Export和Import均取此值。
<PE1> system-view
[PE1] ip vpn-instance vpn1
[PE1-vpn-instance-vpn1] route-distinguisher 10:1
[PE1-vpn-instance-vpn1] vpn-target 10:1
[PE1-vpn-instance-vpn1] quit
[PE1] ip vpn-instance vpn2
[PE1-vpn-instance-vpn2] route-distinguisher 20:1
[PE1-vpn-instance-vpn2] vpn-target 20:1
[PE1-vpn-instance-vpn2] quit
(2) MCE与站点间路由配置
MCE与VPN 1直接相连,且VPN 1内未使用路由协议,因此可以使用IPv6静态路由进行配置。
# 配置VR1与MCE连接的接口地址为2001:1::2/64,连接VPN 1接口的地址为2012:1::2/64。(具体配置过程略)
# 在VR1上配置缺省路由,指定出方向报文的下一跳地址为2001:1::1。
<VR1> system-view
[VR1] ipv6 route-static :: 0 2001:1::1
# 在MCE上指定IPv6静态路由,去往2012:1::/64网段的报文,下一跳地址为2001:1::2,并将此路由与VPN实例vpn1绑定。
[MCE] ipv6 route-static vpn-instance vpn1 2012:1:: 64 2001:1::2
# VPN 2内运行RIPng,在MCE上配置RIPng进程20,并与VPN实例vpn2绑定,以便将VPN 2内的路由学习到vpn2实例的路由表中。
[MCE] ripng 20 vpn-instance vpn2
# 配置RIPng发布2002:1::/64网段路由。
[MCE] interface gigabitethernet 2/0
[MCE-GigabitEthernet2/0] ripng 20 enable
[MCE-GigabitEthernet2/0] quit
# 在VR 2上,配置与MCE连接的接口地址为2002:1::2/64。(具体配置过程略)
# 在VR 2上配置RIPng发布2012::/64和2002:1::/64网段路由。
<VR2> system-view
[VR2] ripng 20
[VR2-ripng-20] quit
[VR2] interface gigabitethernet 1/0
[VR2-GigabitEthernet1/0] ripng 20 enable
[VR2-GigabitEthernet1/0] quit
[VR2] interface gigabitethernet 2/0
[VR2-GigabitEthernet2/0] ripng 20 enable
[VR2-GigabitEthernet2/0] quit
# 在MCE上查看VPN实例vpn1和vpn2的路由信息。
[MCE] display ipv6 routing-table vpn-instance vpn1
Destinations : 6 Routes : 6
Destination: ::1/128 Protocol : Direct
NextHop : ::1 Preference: 0
Interface : InLoop0 Cost : 0
Destination: 2001:1::/64 Protocol : Direct
NextHop : :: Preference: 0
Interface : GE1/0 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 : GE1/0 Cost : 0
Destination: FE80::/10 Protocol : Direct
NextHop : :: Preference: 0
Interface : NULL0 Cost : 0
Destination: FF00::/8 Protocol : Direct
NextHop : :: Preference: 0
Interface : NULL0 Cost : 0
[MCE] display ipv6 routing-table vpn-instance vpn2
Destinations : 6 Routes : 6
Destination: ::1/128 Protocol : Direct
NextHop : ::1 Preference: 0
Interface : InLoop0 Cost : 0
Destination: 2002:1::/64 Protocol : Direct
NextHop : :: Preference: 0
Interface : GE2/0 Cost : 0
Destination: 2002:1::1/128 Protocol : Direct
NextHop : ::1 Preference: 0
Interface : InLoop0 Cost : 0
Destination: 2012::/64 Protocol : RIPng
NextHop : FE80::20C:29FF:FE40:701 Preference: 100
Interface : GE2/0 Cost : 1
Destination: FE80::/10 Protocol : Direct
NextHop : :: Preference: 0
Interface : NULL0 Cost : 0
Destination: FF00::/8 Protocol : Direct
NextHop : :: Preference: 0
Interface : NULL0 Cost : 0
可以看到,MCE已经通过RIPng学习到了VPN 2内的私网路由,并与VPN 1内的路由信息分别维护在两个路由表内,有效地进行了隔离。
(3) MCE与PE间路由配置
# MCE通过子接口与PE 1相连。在MCE上配置子接口GigabitEthernet3/0.1与VPN实例vpn1绑定,配置该子接口终结VLAN 10,并配置该接口的IPv6地址。
[MCE] interface gigabitethernet 3/0.1
[MCE-GigabitEthernet3/0.1] ip binding vpn-instance vpn1
[MCE-GigabitEthernet3/0.1] vlan-type dot1q vid 10
[MCE-GigabitEthernet3/0.1] ipv6 address 2001:2::3 64
[MCE-GigabitEthernet3/0.1] quit
# 在MCE上配置子接口GigabitEthernet3/0.2与VPN实例vpn2绑定,配置该子接口终结VLAN 20,并配置该接口的IPv6地址。
[MCE] interface gigabitethernet 3/0.2
[MCE-GigabitEthernet3/0.2] ip binding vpn-instance vpn2
[MCE-GigabitEthernet3/0.2] vlan-type dot1q vid 20
[MCE-GigabitEthernet3/0.2] ipv6 address 2002:2::3 64
[MCE-GigabitEthernet3/0.2] quit
# 在PE 1配置子接口GigabitEthernet1/0.1与VPN实例vpn1绑定,配置该子接口终结VLAN 10,并配置该接口的IPv6地址。
[PE1] interface gigabitethernet 1/0.1
[PE1-GigabitEthernet1/0.1] ip binding vpn-instance vpn1
[PE1-GigabitEthernet1/0.1] vlan-type dot1q vid 10
[PE1-GigabitEthernet1/0.1] ipv6 address 2001:2::4 64
[PE1-GigabitEthernet1/0.1] quit
# 在PE 1上配置子接口GigabitEthernet1/0.2与VPN实例vpn2绑定,配置该子接口终结VLAN 20,并配置该接口的IPv6地址。
[PE1] interface gigabitethernet 1/0.2
[PE1-GigabitEthernet1/0.2] ip binding vpn-instance vpn2
[PE1-GigabitEthernet1/0.2] vlan-type dot1q vid 20
[PE1-GigabitEthernet1/0.2] ipv6 address 2002:2::4 64
[PE1-GigabitEthernet1/0.2] quit
# 配置MCE和PE 1的Loopback0接口,用于指定MCE和PE 1的Router ID,地址分别为101.101.10.1和100.100.10.1。配置步骤这里省略。
# 配置MCE启动OSPFv3进程10,绑定到VPN实例vpn1,并引入VPN 1的IPv6静态路由。
[MCE] ospfv3 10 vpn-instance vpn1
[MCE-ospf-10] router-id 101.101.10.1
[MCE-ospf-10] import-route static
[MCE-ospf-10] quit
# 在子接口GigabitEthernet3/0.1上使能OSPFv3。
[MCE] interface gigabitethernet 3/0.1
[MCE-GigabitEthernet3/0.1] ospfv3 10 area 0.0.0.0
[MCE-GigabitEthernet3/0.1] quit
# 配置PE 1启动OSPFv3进程10,绑定到VPN实例vpn1。
[PE1] ospfv3 10 vpn-instance vpn1
[PE1-ospf-10] router-id 100.100.10.1
[PE1-ospf-10] quit
# 在子接口GigabitEthernet1/0.1上使能OSPFv3。
[PE1] interface gigabitethernet 1/0.1
[PE1-GigabitEthernet1/0.1] ospfv3 10 area 0.0.0.0
[PE1-GigabitEthernet1/0.1] quit
# MCE与PE 1间配置OSPFv3进程20,引入VPN实例vpn2的路由信息的过程与上面介绍的配置基本一致,不同的是在MCE的OSPFv3中配置引入的是RIPng进程20的路由,这里不再赘述。
# 显示PE 1上VPN实例vpn1的路由信息。可以看到,PE 1通过OSPFv3学习到了VPN 1内的私网路由。
[PE1] display ipv6 routing-table vpn-instance vpn1
Destinations : 6 Routes : 6
Destination: ::1/128 Protocol : Direct
NextHop : ::1 Preference: 0
Interface : InLoop0 Cost : 0
Destination: 2001:2::/64 Protocol : Direct
NextHop : :: Preference: 0
Interface : GE1/0.1 Cost : 0
Destination: 2001:2::4/128 Protocol : Direct
NextHop : ::1 Preference: 0
Interface : InLoop0 Cost : 0
Destination: 2012:1::/64 Protocol : O_ASE2
NextHop : FE80::200:5EFF:FE01:1C05 Preference: 15
Interface : GE1/0.1 Cost : 10
Destination: FE80::/10 Protocol : Direct
NextHop : :: Preference: 0
Interface : NULL0 Cost : 0
Destination: FF00::/8 Protocol : Direct
NextHop : :: Preference: 0
Interface : NULL0 Cost : 0
# 通过下面的显示信息可以看出,PE 1通过OSPFv3学习到了VPN 2内的私网路由。
[PE1] display ipv6 routing-table vpn-instance vpn2
Destinations : 6 Routes : 6
Destination: ::1/128 Protocol : Direct
NextHop : ::1 Preference: 0
Interface : InLoop0 Cost : 0
Destination: 2002:2::/64 Protocol : Direct
NextHop : :: Preference: 0
Interface : GE1/0.2 Cost : 0
Destination: 2002:2::4/128 Protocol : Direct
NextHop : ::1 Preference: 0
Interface : InLoop0 Cost : 0
Destination: 2012::/64 Protocol : O_ASE2
NextHop : FE80::200:5EFF:FE01:1C06 Preference: 15
Interface : GE1/0.2 Cost : 10
Destination: FE80::/10 Protocol : Direct
NextHop : :: Preference: 0
Interface : NULL0 Cost : 0
Destination: FF00::/8 Protocol : Direct
NextHop : :: Preference: 0
Interface : NULL0 Cost : 0
至此,通过配置,已经将两个VPN实例内的路由信息完整地传播到PE 1中,配置完成。
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!