09-IPv6 MPLS L3VPN配置
本章节下载: 09-IPv6 MPLS L3VPN配置 (1.25 MB)
目 录
1.1.4 IPv6 MPLS L3VPN支持的组网方案及功能
1.8.9 配置向对等体/对等体组发送BGP RPKI验证结果
1.14 配置BGP VPNv6路由和BGP-VPN实例路由分离功能
1.15 配置VPN实例的BGP路由添加到IP路由表以及发布时的规则
1.18 配置BGP路由根据路由策略来过滤迭代到的下一跳路由
1.20.1 显示IPv6 MPLS L3VPN的配置及运行状态
1.21.3 配置IPv6跨域VPN-OptionA方式示例
1.21.4 配置IPv6跨域VPN-OptionB方式示例
MPLS L3VPN应用于IPv4组网环境,利用BGP在服务提供商骨干网上发布VPN的IPv4路由,利用MPLS在服务提供商骨干网上转发VPN的IPv4报文。IPv6 MPLS L3VPN的原理与MPLS L3VPN相同,所不同的是IPv6 MPLS L3VPN利用BGP在服务提供商骨干网上发布VPN的IPv6路由,利用MPLS在服务提供商骨干网上转发VPN的IPv6报文。
IPv6 MPLS L3VPN的典型组网环境如图1-1所示。目前,IPv6 MPLS L3VPN组网中服务提供商骨干网应为IPv4网络。VPN内部及CE和PE之间运行IPv6协议,骨干网中PE和P设备之间运行IPv4协议。PE需要同时支持IPv4和IPv6协议,连接CE的接口上使用IPv6协议,连接骨干网的接口上使用IPv4协议。
图1-1 IPv6 MPLS L3VPN应用组网图
图1-2 IPv6 MPLS L3VPN报文转发示意图
如图1-2所示,IPv6 MPLS L3VPN的报文转发过程为:
(2) Site 1发出一个目的地址为2001:2::1的IPv6报文,由CE 1将报文发送至PE 1。
(3) PE 1根据报文到达的接口及目的地址查找VPN实例的路由表项,匹配后将报文转发出去,同时打上公网和私网两层标签。
(4) MPLS网络利用报文的外层标签,将报文传送到PE 2。(报文在到达PE 2前一跳时已经被剥离外层标签,到达PE 2时仅含内层标签)
(5) PE 2根据内层标签和目的地址查找VPN实例的路由表项,确定报文的出接口,将报文转发至CE 2。
(6) CE 2根据正常的IPv6转发过程将报文传送到目的地。
VPN路由信息的发布过程包括三部分:本地CE到入口PE、入口PE到出口PE、出口PE到远端CE。完成这三部分后,本地CE与远端CE之间将建立可达路由,VPN私网路由信息能够在骨干网上发布。
CE使用IPv6静态路由、RIPng、OSPFv3、IPv6 IS-IS、EBGP或IBGP路由协议,将本站点的VPN路由发布给PE。CE发布给PE的是标准的IPv6路由。
PE从CE学到VPN的IPv6路由信息后,为这些标准IPv6路由增加RD和Route Target属性,形成VPN-IPv6路由,存放到为CE创建的VPN实例的路由表中,并为其分配私网标签。
入口PE通过MP-BGP把VPN-IPv6路由发布给出口PE。出口PE根据VPN-IPv6路由的Export Target属性与自己维护的VPN实例的Import Target属性,决定是否将该路由加入到VPN实例的路由表。
PE之间通过IGP来保证内部的连通性。
与本地CE到入口PE的路由信息交换相同,远端CE有多种方式可以从出口PE学习VPN路由,包括IPv6静态路由、RIPng、OSPFv3、IPv6 IS-IS、EBGP或IBGP路由协议。
目前,IPv6 MPLS L3VPN支持如下组网方案及功能:
· 基本的VPN组网方案
· 跨域VPN-OptionA
· 跨域VPN-OptionB
· 跨域VPN-OptionC
· 运营商的运营商
· OSPFv3 VPN扩展:与OSPF VPN扩展的不同之处为OSPFv3的Type-3、Type-5和Type-7 LSA均支持DN位,缺省情况下,均使用DN位避免路由环路
· BGP的AS号替换和SoO组网
· IPv6 MPLS L3VPN快速重路由
与IPv6 MPLS L3VPN相关的协议规范有:
· RFC 4659:BGP-MPLS IP Virtual Private Network (VPN) Extension for IPv6 VPN
· RFC 6565:OSPFv3 as a Provider Edge to Customer Edge (PE-CE) Routing Protocol
IPv6 MPLS L3VPN的公网隧道可以是LSP隧道和MPLS TE隧道。
除特殊说明外,IPv6 MPLS L3VPN的配置均在PE设备上执行。IPv6 MPLS L3VPN配置任务如下:
(1) 配置IPv6 MPLS L3VPN基本功能
a. 配置VPN实例
d. (可选)配置BGP VPNv6路由
(2) 配置IPv6 MPLS L3VPN高级组网
请根据实际情况选择以下任务进行配置:
如果承载IPv6 VPN路由的MPLS骨干网跨越多个AS,则需要执行本配置。
(3) (可选)配置IPv6 MPLS L3VPN快速重路由
(4) (可选)控制MPLS L3VPN网络中路由的发布与接收
¡ 配置BGP VPNv6路由和BGP-VPN实例路由分离功能
¡ 1.15 配置VPN实例的BGP路由添加到IP路由表以及发布时的规则
本功能可以实现公网和VPN实例间的路由信息互相引入,从而使指定VPN用户可以获取访问公网或其他VPN的路由。本功能包括配置VPN实例路由信息引入功能、配置公网和VPN实例的BGP路由互相引入功能及配置BGP路由重生成功能。
(5) (可选)使能BGP的路由抖动日志记录功能
在配置IPv6 MPLS L3VPN之前,需完成以下任务:
· 对MPLS骨干网(PE、P)配置IGP,实现骨干网的IP连通性
· 对MPLS骨干网(PE、P)配置MPLS基本能力
· 对MPLS骨干网(PE、P)配置MPLS LDP,建立LDP LSP
VPN实例在实现中与Site关联。VPN实例不是直接对应于VPN,一个VPN实例综合了和它所对应Site的VPN成员关系和路由规则。
(1) 进入系统视图。
system-view
(2) 配置VPN实例的MPLS标签范围。
mpls per-vrf-label range minimum maximum
缺省情况下,未配置VPN实例的MPLS标签范围。
(3) 创建VPN实例,并进入VPN实例视图。
ip vpn-instance vpn-instance-name
(4) 配置VPN实例的RD。
route-distinguisher route-distinguisher
缺省情况下,未配置VPN实例的RD。
(5) (可选)配置VPN实例的描述信息。
description text
缺省情况下,未配置VPN实例的描述信息。
(6) (可选)配置VPN实例的ID。
vpn-id vpn-id
缺省情况下,未配置VPN实例的ID。
(7) (可选)配置VPN实例的SNMP上下文。
snmp context-name context-name
缺省情况下,未配置VPN实例的SNMP上下文。
(8) 配置MPLS标签分配方式。
apply-label { per-instance [ static static-label-value ] | per-route }
缺省情况下,采用每下一跳每标签的标签分配方式,即BGP为VPN路由中的每个下一跳分配一个标签。
执行本命令将改变标签的分配方式,导致VPN实例下的所有路由重分发。因此已经有业务在VPN实例中运行时,执行本命令会导致业务短暂中断,请慎重操作。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 配置接口与指定VPN实例关联。
ip binding vpn-instance vpn-instance-name
缺省情况下,接口未关联VPN实例,接口属于公网。
配置或取消接口与VPN实例关联后,该接口上的IP地址、路由协议等配置将被删除。
执行本命令将删除接口上已经配置的IPv6地址,因此需要重新配置接口的IPv6地址。
VPN实例视图下配置的路由相关属性既可以用于IPv4 VPN,也可以用于IPv6 VPN。
VPN实例视图和VPN实例IPv6地址族视图下配置的路由相关属性均能用于IPv6 VPN。如果同时配置二者,则IPv6 VPN采用VPN实例IPv6地址族视图下的配置。
在对VPN实例应用入方向或出方向路由策略时,还需要创建并配置路由策略,配置方法请参见“三层技术-IP路由配置指导”中的“路由策略”。
(1) 进入系统视图。
system-view
(2) 进入VPN实例视图或VPN实例IPv6地址族视图。
¡ 进入VPN实例视图。
ip vpn-instance vpn-instance-name
¡ 请依次执行以下命令进入VPN实例IPv6地址族视图。
ip vpn-instance vpn-instance-name
address-family ipv6
(3) 配置Route Target。
vpn-target vpn-target&<1-8> [ both | export-extcommunity | import-extcommunity ]
缺省情况下,未配置VPN实例的Route Target。
(4) 配置支持的最大激活路由前缀数。
routing-table limit number { warn-threshold | simply-alert }
缺省情况下,未限制VPN实例支持的最多激活路由前缀数。
通过本配置可以防止PE路由器上保存过多的激活路由前缀信息。
(5) 应用入方向路由策略。
import route-policy route-policy
缺省情况下,接收所有Route Target属性匹配的路由。
(6) 应用出方向路由策略。
export route-policy route-policy
缺省情况下,不对发布的路由进行过滤。
(7) 配置VPN实例的隧道策略。
tnl-policy tunnel-policy-name
缺省情况下,隧道策略为按照LSP隧道->CRLSP隧道->SRLSP隧道->SR-TE Policy隧道的优先级顺序选择隧道,负载分担条数为1。
如果本配置中指定的隧道策略尚未创建,则采用缺省策略。隧道策略的创建及配置方法,请参见“MPLS配置指导”中的“隧道策略”。
本配置在PE上进行,CE上的配置方法与普通IPv6静态路由相同。
有关IPv6静态路由的配置请参见“三层技术-IP路由配置指导”中的“IPv6静态路由”。
(1) 进入系统视图。
system-view
(2) 为指定VPN实例配置IPv6静态路由。
ipv6 route-static vpn-instance s-vpn-instance-name ipv6-address prefix-length { interface-type interface-number [ next-hop-address ] | nexthop-address [ public ] | vpn-instance d-vpn-instance-name nexthop-address } [ permanent ] [ preference preference ] [ tag tag-value ] [ description text ]
本配置在PE上进行,CE上配置普通RIPng即可。
有关RIPng的介绍和详细配置,请参见“三层技术-IP路由配置指导”中的“RIPng”。
(1) 进入系统视图。
system-view
(2) 创建PE-CE间的RIPng实例,并进入RIPng视图。
ripng [ process-id ] vpn-instance vpn-instance-name
一个RIPng进程只能属于一个VPN实例。
(3) 配置引入BGP路由。
import-route bgp4+ [ as-number ] [ allow-ibgp ] [ cost cost-value | route-policy route-policy-name ] *
缺省情况下,没有引入其他协议的路由信息。
(4) 退回系统视图。
quit
(5) 进入接口视图。
interface interface-type interface-number
(6) 在接口上使能RIPng路由协议。
ripng process-id enable
缺省情况下,接口禁用RIPng路由协议。
本配置在PE上进行,CE上配置普通OSPFv3即可。
有关OSPFv3的介绍和详细配置,请参见“三层技术-IP路由配置指导”中的“OSPFv3”。
(1) 进入系统视图。
system-view
(2) 创建PE-CE间的OSPFv3实例,并进入OSPFv3视图。
ospfv3 [ process-id | vpn-instance vpn-instance-name ] *
一个OSPFv3进程只能属于一个VPN实例。
删除VPN实例后,相关的所有OSPFv3进程也将全部被删除。
(3) 配置Router ID。
router-id router-id
(4) 配置引入BGP路由。
import-route bgp4+ [ as-number ] [ allow-ibgp ] [ cost cost-value | nssa-only | route-policy route-policy-name | tag tag | type type ] *
缺省情况下,没有引入其他协议的路由信息。
若在设备上配置OSPFv3实例引入BGP路由,则该OSPFv3实例下未配置vpn-instance-capability simple命令时,设备会将从MP-IBGP对等体学习到的VPNv6路由引入到OSPFv3实例,无需指定allow-ibgp参数;否则,只有指定allow-ibgp参数,设备才会将从MP-IBGP对等体学习到的VPNv6路由引入到OSPFv3实例。
(5) (可选)配置OSPFv3路由属性。
a. 配置OSPFv3域标识符。
domain-id { domain-id [ secondary ] | null }
缺省情况下,OSPFv3域标识符为0。
域标识符的作用 |
域标识符配置注意事项 |
OSPFv3进程的域标识符包含在此进程生成的路由中,在将OSPFv3路由引入BGP时,域标识符被附加到BGP路由上,作为BGP的扩展团体属性传递 |
· 不同OSPFv3进程的域标识符可以相同 · 同一VPN的所有OSPFv3进程应配置相同的域标识符,以保证路由发布的正确性 |
b. 配置OSPFv3扩展团体属性的类型编码。
ext-community-type { domain-id type-code1 | route-type type-code2 | router-id type-code3 }
缺省情况下,OSPFv3扩展团体属性Domain ID的类型编码是0x0005,Route Type的类型编码是0x0306,Router ID的类型编码是0x0107。
c. 在PE上配置VPN引入路由的外部路由标记值。
route-tag tag-value
缺省情况下,若本端配置了BGP路由协议,并且BGP的AS号不大于65535,则外部路由标记值的前面两个字节固定为0xD000,后面的两个字节为本端BGP的AS号;否则,外部路由标记值为0。
d. 配置PE上不设置OSPFv3 LSA的DN位。
disable-dn-bit-set
缺省情况下,将BGP路由引入OSPFv3,并生成OSPFv3 LSA时,设备为生成的LSA设置DN位。
配置该命令后,可能会导致路由环路,需谨慎使用。
e. 配置PE上忽略OSPFv3 LSA的DN位检查。
disable-dn-bit-check
缺省情况下,PE上检查OSPFv3 LSA的DN位。
配置该命令后,可能会导致路由环路,需谨慎使用。
f. 在PE上使能OSPFv3 LSA的外部路由标记检查。
route-tag-check enable
缺省情况下,PE上不检查OSPFv3 LSA的外部路由标记,通过DN位检查避免路由环路。
该命令是为了兼容旧的协议(RFC 4577),现在不建议使用。
g. 退回系统视图。
quit
(6) 进入接口视图。
interface interface-type interface-number
(7) 在接口上使能OSPFv3。
ospfv3 process-id area area-id [ instance instance-id ]
缺省情况下,接口上没有使能OSPFv3。
配置本命令时,需要确保OSPFv3进程所属的VPN实例与接口绑定的VPN实例相同,否则,命令会执行失败。
该配置在PE上进行,CE上配置普通IPv6 IS-IS即可。
有关IPv6 IS-IS的介绍和详细配置,请参见“三层技术-IP路由配置指导”中的“IPv6 IS-IS”。
(1) 进入系统视图。
system-view
(2) 创建PE-CE间的IPv6 IS-IS实例,并进入IS-IS视图。
isis [ process-id ] vpn-instance vpn-instance-name
一个IPv6 IS-IS进程只能属于一个VPN实例。
(3) 配置网络实体名称。
network-entity net
缺省情况下,未配置网络实体名称。
(4) 创建并进入IS-IS IPv6单播地址族视图。
address-family ipv6 [ unicast ]
(5) 配置引入BGP路由。
import-route bgp4+ [ as-number ] [ allow-ibgp ] [ cost cost-value ] | [ level-1 | level-1-2 | level-2 ] | route-policy route-policy-name | tag tag ] *
缺省情况下,没有引入其他协议的路由信息。
(6) 退回系统视图。
quit
quit
(7) 进入接口视图。
interface interface-type interface-number
(8) 使能接口IS-IS路由进程的IPv6能力,并指定要关联的IS-IS进程号。
isis ipv6 enable [ process-id ]
缺省情况下,接口上没有使能IS-IS路由进程的IPv6能力。
(1) 进入系统视图。
system-view
(2) 启动BGP实例,进入BGP实例视图。
bgp as-number [ instance instance-name ]
缺省情况下,没有运行BGP。
(3) 进入BGP-VPN实例视图。
ip vpn-instance vpn-instance-name
(4) 将CE配置为VPN私网EBGP对等体。
peer { group-name | ipv6-address [ prefix-length ] } as-number as-number
(5) 创建BGP-VPN IPv6单播地址族,并进入BGP-VPN IPv6单播地址族视图。
address-family ipv6 [ unicast ]
BGP-VPN IPv6单播地址族视图下的配置命令与BGP IPv6单播地址族视图下的配置命令相同。本文只列举了部分命令,更多的命令请参见“三层技术-IP路由配置指导”中的“BGP基础”。
(6) 使能本地路由器与指定对等体交换IPv6单播路由信息的能力。
peer { group-name | ipv6-address [ prefix-length ] } enable
缺省情况下,本地路由器不能与对等体交换IPv6单播路由信息。
(7) 引入本端CE路由。
import-route protocol [ { process-id | all-processes } [ allow-direct | med med-value | route-policy route-policy-name ] * ]
PE需要将到本端CE的路由引入VPN路由表中,以发布给对端PE。
(8) (可选)配置允许本地AS号在所接收的路由的AS_PATH属性中出现,并可同时配置允许重复的次数。
peer { group-name | ipv6-address [ prefix-length ] } allow-as-loop [ number ]
缺省情况下,不允许本地AS号在接收路由的AS_PATH属性中出现。
Hub&Spoke组网中,如果在Hub-PE和Hub-CE之间运行EBGP,则需要在Hub-PE上执行本配置,否则Hub-PE不能接受Hub-CE返回的路由更新信息。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图。
bgp as-number [ instance instance-name ]
(3) 将PE配置为EBGP对等体。
peer { group-name | ipv6-address [ prefix-length ] } as-number as-number
(4) 创建BGP IPv6单播地址族,并进入BGP IPv6单播地址族视图。
address-family ipv6 [ unicast ]
(5) 使能本地路由器与指定对等体交换IPv6单播路由信息的能力。
peer { group-name | ipv6-address [ prefix-length ] } enable
缺省情况下,本地路由器不能与对等体交换IPv6单播路由信息。
(6) 配置路由引入。
import-route protocol [ { process-id | all-processes } [ allow-direct | med med-value | route-policy route-policy-name ] * ]
CE需要将自己所能到达的VPN网段地址发布给接入的PE,通过PE发布给对端CE。
PE和CE之间使用IBGP路由协议只适用于基本的IPv6 MPLS L3VPN组网环境,跨域VPN和运营商的运营商组网中,PE和CE之间不能配置IBGP。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图。
bgp as-number [ instance instance-name ]
(3) 进入BGP-VPN实例视图。
ip vpn-instance vpn-instance-name
BGP-VPN实例视图下的配置任务与BGP实例视图下的相同,有关介绍和详细配置,请参见“三层技术-IP路由配置指导”中的“BGP基础”。
(4) 将CE配置为VPN私网IBGP对等体。
peer { group-name | ipv6-address [ prefix-length ] } as-number as-number
(5) 创建BGP-VPN IPv6单播地址族,并进入BGP-VPN IPv6单播地址族视图。
address-family ipv6 [ unicast ]
(6) 使能本地路由器与指定对等体/对等体组交换IPv6单播路由信息的能力。
peer { group-name | ipv6-address [ prefix-length ] } enable
缺省情况下,本地路由器不能与对等体交换IPv6单播路由信息。
(7) 将CE配置为路由反射器的客户端,以便PE将从CE学习的路由发送给其他IBGP对等体。
peer { group-name | ipv6-address [ prefix-length ] } reflect-client
缺省情况下,未配置路由发射器及其客户端。
配置路由反射器后不会修改路由的下一跳。如果需要修改下一跳,则需在路由的接收端通过入策略进行修改。
(8) (可选)允许路由反射器在客户机之间反射路由。
reflect between-clients
缺省情况下,允许路由反射器在客户机之间反射路由。
(9) (可选)配置路由反射器的集群ID。
reflector cluster-id { cluster-id | ip-address }
缺省情况下,每个路由反射器都使用自己的Router ID作为集群ID。
如果一个集群中配置了多个路由反射器,请使用本命令为所有的路由反射器配置相同的集群ID,以避免产生路由环路。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图。
bgp as-number [ instance instance-name ]
(3) 将PE配置为IBGP对等体。
peer { group-name | ipv6-address [ prefix-length ] } as-number as-number
(4) 创建BGP IPv6单播地址族,并进入BGP IPv6单播地址族视图。
address-family ipv6 [ unicast ]
(5) 使能本地路由器与指定对等体/对等体组交换IPv6单播路由信息的能力。
peer { group-name | ipv6-address [ prefix-length ] } enable
缺省情况下,本地路由器不能与对等体交换IPv6单播路由信息。
(6) 配置路由引入。
import-route protocol [ { process-id | all-processes } [ allow-direct | med med-value | route-policy route-policy-name ] * ]
CE需要将自己所能到达的VPN网段地址发布给接入的PE,通过PE发布给对端CE。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图。
bgp as-number [ instance instance-name ]
(3) 将对端PE配置为对等体。
peer { group-name | ipv4-address [ mask-length ] } as-number as-number
(4) 指定与对等体/对等体组创建BGP会话时建立TCP连接使用的源接口。
peer { group-name | ipv4-address [ mask-length ] } connect-interface interface-type interface-number
缺省情况下,BGP使用到达BGP对等体的最佳路由的出接口作为与对等体/对等体组创建BGP会话时建立TCP连接的源接口。
(5) 创建BGP VPNv6地址族,并进入BGP VPNv6地址族视图。
address-family vpnv6
(6) 使能本地路由器与指定对等体交换VPNv6路由信息的能力。
peer { group-name | ipv4-address [ mask-length ] } enable
缺省情况下,本地路由器不能与对等体交换VPNv6路由信息。
BGP VPNv6路由的属性需要在BGP VPNv6地址族视图下配置。BGP VPNv6路由的很多配置都与BGP IPv6单播路由相同,详细配置请参见“三层技术-IP路由配置指导”中的“BGP基础”和“BGP高级配置”。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图。
bgp as-number [ instance instance-name ]
(3) 进入BGP VPNv6地址族视图。
address-family vpnv6
(4) 为从对等体/对等体组接收的路由分配首选值。
peer { group-name | ipv4-address [ mask-length ] } preferred-value value
缺省情况下,从对等体/对等体组接收的路由的首选值为0。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图。
bgp as-number [ instance instance-name ]
(3) 进入BGP VPNv6地址族视图。
address-family vpnv6
(4) 设置允许从指定对等体/对等体组收到的路由数量。
peer { group-name | ipv4-address [ mask-length ] } route-limit prefix-number [ { alert-only | discard | reconnect reconnect-time } | percentage-value ] *
缺省情况下,不限制从对等体/对等体组接收的路由数量。
为保证IBGP对等体之间的连通性,需要在IBGP对等体之间建立全连接关系。当IBGP对等体数目很多时,网络资源和CPU资源的消耗都很大。
利用路由反射可以解决这一问题。在一个AS内,其中一台路由器作为RR(Route Reflector,路由反射器),作为客户机(Client)的路由器与路由反射器之间建立IBGP连接。路由反射器从客户机接收到路由后,将其传递(反射)给所有其他的客户机,从而保证客户机之间不需要建立IBGP连接,就可以学习到彼此的路由。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图。
bgp as-number [ instance instance-name ]
(3) 进入BGP VPNv6地址族视图。
address-family vpnv6
(4) 配置将本机作为路由反射器,并将对等体作为路由反射器的客户。
peer { group-name | ipv4-address [ mask-length ] } reflect-client
缺省情况下,未配置路由反射器及其客户。
(5) (可选)允许路由反射器在客户机之间反射路由。
reflect between-clients
缺省情况下,允许路由反射器在客户机之间反射路由。
(6) (可选)配置路由反射器的集群ID。
reflector cluster-id { cluster-id | ip-address }
缺省情况下,每个路由反射器都使用自己的Router ID作为集群ID。
如果一个集群中配置了多个路由反射器,请使用本命令为所有的路由反射器配置相同的集群ID,以避免产生路由环路。
(7) (可选)创建路由反射器的反射策略。
rr-filter { ext-comm-list-number | ext-comm-list-name }
缺省情况下,路由反射器不会对反射的路由进行过滤。
执行本命令后,只有与本命令配置的扩展团体属性号匹配的IBGP路由才会被反射。
通过在不同的路由反射器上配置不同的反射策略,可以实现路由反射器之间的负载分担。
(8) (可选)允许路由反射器反射路由时修改路由属性。
reflect change-path-attribute
缺省情况下,不允许路由反射器反射路由时修改路由属性。
(9) (可选)配置将指定对等体/对等体组加入就近反射组。
peer { group-name | ipv4-address [ mask-length ] } reflect-nearby-group
缺省情况下,就近反射组中不存在任何对等体或对等体组。
路由反射器在就近反射组内的对等体/对等体组之间反射路由时,不修改下一跳属性。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图。
bgp as-number [ instance instance-name ]
(3) 进入BGP VPNv6地址族视图。
address-family vpnv6
(4) 配置NEXT_HOP属性。
¡ 配置向对等体/对等体组发布路由时,将下一跳属性修改为自身的地址。
peer { group-name | ipv4-address [ mask-length ] } next-hop-local
¡ 配置向对等体/对等体组发布路由时,不修改路由的下一跳属性。
peer { group-name | ipv4-address [ mask-length ] } next-hop-invariable
缺省情况下,设备向对等体/对等体组发布路由时,会将下一跳属性修改为自身的地址。
peer next-hop-local命令与peer next-hop-invariable命令互斥。
如果在跨域VPN OptionC组网中使用RR通告VPNv6路由,则需要在RR上配置向BGP邻居和客户机通告VPNv6路由时,不改变路由的下一跳,以保证私网路由下一跳不会被修改。
(5) 配置AS_PATH属性。
¡ 配置对于从对等体/对等体组接收的路由,允许本地AS号在接收路由的AS_PATH属性中出现,并配置允许出现的次数。
peer { group-name | ipv4-address [ mask-length ] } allow-as-loop [ number ]
缺省情况下,不允许本地AS号在接收路由的AS_PATH属性中出现。
¡ 向指定EBGP对等体/对等体组发送BGP更新消息时只携带公有AS号,不携带私有AS号。
peer { group-name | ipv4-address [ mask-length ] } public-as-only [ { force | limited } [ replace ] [ include-peer-as ] ]
缺省情况下,向EBGP对等体/对等体组发送BGP更新消息时,既可以携带公有AS号,又可以携带私有AS号。
(6) 配置向对等体/对等体组发布团体属性。
peer { group-name | ipv4-address [ mask-length ] } advertise-community
缺省情况下,不向对等体/对等体组发布团体属性。
(7) 配置链路带宽属性。
¡ 为对等体/对等体组配置链路带宽属性。
peer { group-name | ipv4-address [ mask-length ] } bandwidth [ bandwidth-value ]
缺省情况下,没有为对等体/对等体组配置链路带宽属性。
¡ (可选)配置将链路带宽属性发布给EBGP对等体。
peer { group-name | ipv4-address [ mask-length ] } advertise ebgp bandwidth
缺省情况下,设备不会将链路带宽属性发布给EBGP对等体。
¡ (可选)配置将发布给指定对等体的BGP路由中携带的链路带宽属性转换为可选过渡属性。
peer { group-name | ipv4-address [ mask-length ] } advertise bandwidth transitive
缺省情况下,BGP路由中携带的链路带宽属性为可选非过渡属性。
(8) 为BGP对等体/对等体组配置SoO属性。
peer { group-name | ipv4-address [ mask-length ] } soo site-of-origin
缺省情况下,没有为BGP对等体/对等体组配置SoO属性。
(9) 配置将发送给邻居的BGP路由调整为最低优先级。请选择其中一项进行配置。
¡ 配置邻居状态由Down变为Up后,在指定的持续时间内将发送给邻居的BGP路由调整为最低优先级。
advertise lowest-priority on-peer-up duration seconds
¡ 配置设备重启且BGP进程恢复后,在持续时间内调整发送给邻居的BGP路由优先级为最低。
advertise lowest-priority on-startup duration seconds
缺省情况下,设备不修改发送给邻居的BGP路由的优先级。
调整BGP路由优先级的方式是,将BGP路由的本地优先级值调整为最小值0,并将BGP路由的MED值调整为最大值4294967295。如需在设备发送最低优先级BGP路由的持续时间内,恢复发送正常优先级的路由,可以在用户视图下执行reset bgp advertise lowest-priority命令。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图。
bgp as-number [ instance instance-name ]
(3) 进入BGP VPNv6地址族视图。
address-family vpnv6
(4) 配置对发布的路由信息进行过滤。
filter-policy { ipv6-acl-number | prefix-list ipv6-prefix-name } export [ direct | { isisv6 | ospfv3 | ripng } process-id | static ]
缺省情况下,不对发布的路由信息进行过滤。
(5) 配置对接收的路由信息进行过滤。
filter-policy { ipv6-acl-number | prefix-list ipv6-prefix-name } import
缺省情况下,不对接收的路由信息进行过滤。
(6) 为对等体/对等体组设置基于AS路径过滤列表的BGP路由过滤策略。
peer { group-name | ipv4-address [ mask-length ] } as-path-acl as-path-acl-number { export | import }
缺省情况下,未配置基于AS路径过滤列表的BGP路由过滤策略。
(7) 为对等体/对等体组设置基于ACL的BGP路由过滤策略。
peer { group-name | ipv4-address [ mask-length ] } filter-policy ipv6-acl-number { export | import }
缺省情况下,未配置基于ACL的BGP路由过滤策略。
(8) 为对等体/对等体组设置基于IPv6地址前缀列表的BGP路由过滤策略。
peer { group-name | ipv4-address [ mask-length ] } prefix-list ipv6-prefix-name { export | import }
缺省情况下,未配置基于IPv6地址前缀列表的BGP路由过滤策略。
(9) 对来自对等体/对等体组的路由或发布给对等体/对等体组的路由应用路由策略。
peer { group-name | ipv4-address [ mask-length ] } route-policy route-policy-name { export | import }
缺省情况下,没有为对等体/对等体组指定路由策略。
(10) 配置根据EBGP路由的第一个AS号来过滤发布对象。
peer-as-check enable
缺省情况下,设备接收到EBGP路由后,会将其发布给除发送该路由的对等体之外的所有BGP对等体,不会根据EBGP路由的第一个AS号来过滤发布对象。
配置本命令后,BGP向EBGP对等体发布EBGP路由时,会检查AS_Path属性中的第一个AS号,不会向EBGP对等体发布第一个AS号与该EBGP对等体所在的AS相同的路由。
缺省情况下,设备接收到VPNv6路由时不修改路由的下一跳属性,即VPNv6路由的下一跳为公网地址。配置本命令后,设备接收到VPNv6路由时,将VPNv6路由的下一跳指向私网,并将出标签修改为无效值。例如,设备收到VPNv6路由的下一跳为公网地址10.1.1.1,配置本命令后,将VPNv6路由的下一跳指向私网10.1.1.1。
执行本配置后:
· 设备将删除并重新建立与指定对等体的BGP会话,会造成BGP会话短暂中断。
· 设备只接收RD与本地已存在的RD相同的VPNv6路由。
· 设备将从指定对等体/对等体组接收到的VPNv6路由发送给其对等体时,路由RT属性将保持原有属性,不使用所在VPN的RT属性进行替换。
· 本地删除VPN实例或VPN实例的RD时,从指定对等体/对等体组收到的属于该VPN实例的VPNv6路由将被删除。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图。
bgp as-number [ instance instance-name ]
(3) 进入BGP VPNv6地址族视图。
address-family vpnv6
(4) 配置VPNv6路由的下一跳指向私网。
peer { group-name | ipv4-address [ mask-length ] } next-hop-vpn
缺省情况下,设备接收到VPNv6路由时不修改路由的下一跳属性。
VPNv4地址族支持IPv4和IPv6邻居共存,设备上可能存在从IPv4邻居和IPv6邻居学习到相同前缀的路由,通过配置本功能可以控制路由优先级顺序。
对于L3VPN支持IPv4和IPv6双栈场景,VPNv6地址族存在从IPv4邻居和IPv6邻居学习的相同前缀的路由,可能存在从IPv4邻居学习的路由被优选,导致从IPv6学习的路由不能发布的问题。因此在业务演进过程中需要在VPNv6地址族IPv6邻居上配置本功能,保证IPv6邻居学习的路由被优选。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图。
bgp as-number [ instance instance-name ]
(3) 进入BGP VPNv6地址族视图。
address-family vpnv6
(4) 为指定对等体/对等体组设置高优先级,路由选路时优选从该对等体/对等体组学习到的路由。
peer { group-name | ipv4-address [ mask-length ] } high-priority
缺省情况下,BGP不为指定对等体/对等体组设置高优先级,选路规则不发生变化。
BGP RPKI验证结果以扩展团体属性的方式传递。有关BGP RPKI的详细介绍,请参见“三层技术-IP路由配置指导”中的“BGP”。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图。
bgp as-number [ instance instance-name ]
(3) 进入BGP VPNv6地址族视图。
address-family vpnv6
(4) 配置向对等体/对等体组发送BGP RPKI验证结果。
peer { group-name | ipv4-address [ mask-length ] } advertise origin-as-validation
缺省情况下,不会向对等体/对等体组发送BGP RPKI验证结果。
IPv6跨域VPN-OptionA的实现比较简单,当PE上的VPN数量及VPN路由数量都比较少时可以采用这种方案。
IPv6跨域VPN-OptionA的配置可以描述为:
· 对各AS分别进行基本IPv6 MPLS L3VPN配置。
· 对于ASBR-PE,将对端ASBR-PE看作自己的CE配置即可。即:IPv6跨域VPN-OptionA方式需要在PE和ASBR-PE上分别配置IPv6 VPN实例,前者用于接入CE,后者用于接入对端ASBR-PE。
在IPv6跨域VPN-OptionA方式中,对于同一个IPv6 VPN,同一AS内的ASBR-PE和PE上配置的Route Target应能匹配,即Route Target的配置应能保证PE(或ASBR-PE)发送的VPN路由能够被ASBR-PE(或PE)接受;不同AS的PE上配置的Route Target则不需要匹配。
配置跨域VPN-OptionB时,需要注意:ASBR在将VPNv6路由发布给MP-IBGP对等体时,始终会将下一跳修改为自身的地址,不受peer next-hop-local命令的控制。
配置基本IPv6 MPLS L3VPN,并指定同一AS内的ASBR为MP-IBGP对等体。对于同一个IPv6 VPN,不同AS的PE上为该VPN实例配置的Route Target需要匹配。
(1) 进入系统视图。
system-view
(2) 在连接AS内部路由器的接口上使能MPLS和LDP能力。
a. 配置本节点的LSR ID。
mpls lsr-id lsr-id
缺省情况下,未配置LSR ID。
b. 使能本节点的LDP能力,并进入LDP视图。
mpls ldp
缺省情况下,LDP能力处于关闭状态。
c. 退回系统视图。
quit
d. 进入连接AS内部路由器接口的接口视图。
interface interface-type interface-number
e. 使能接口的MPLS能力。
mpls enable
缺省情况下,接口的MPLS能力处于关闭状态。
f. 使能接口的LDP能力。
mpls ldp enable
缺省情况下,接口的LDP能力处于关闭状态。
g. 退回系统视图。
quit
(3) 在连接对端ASBR的接口上使能MPLS能力。
a. 进入连接对端ASBR接口的接口视图。
interface interface-type interface-number
b. 使能接口的MPLS能力。
mpls enable
缺省情况下,接口的MPLS能力处于关闭状态。
c. 退回系统视图。
quit
(4) 进入BGP实例视图。
bgp as-number [ instance instance-name ]
(5) 创建BGP对等体,将同一AS的PE配置为IBGP对等体,将不同AS的ASBR配置为EBGP对等体。
peer { group-name | ipv4-address [ mask-length ] } as-number as-number
(6) 进入BGP VPNv6地址族视图。
address-family vpnv6
(7) 使能本地路由器与同一AS的PE、不同AS的ASBR交换VPNv6路由信息的能力。
peer { group-name | ipv4-address [ mask-length ] } enable
缺省情况下,本地路由器不能与对等体交换VPNv6路由信息。
(8) 配置对接收到的VPNv6路由不进行Route Target过滤。
undo policy vpn-target
缺省情况下,对接收到的VPNv6路由进行Route Target过滤。
执行本配置前,需要在PE或ASBR上配置通过BGP发布PE地址对应的路由,配置方法请参见“三层技术-IP路由配置指导”中的“BGP基础”。
PE上还需完成以下操作:
· 配置VPN实例
· 配置PE-CE之间的路由交换
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图。
bgp as-number [ instance instance-name ]
(3) 创建BGP对等体,将本AS的ASBR-PE配置为IBGP对等体,将另一AS的PE配置为EBGP对等体。
peer { group-name | ipv4-address [ mask-length ] } as-number as-number
(4) 进入BGP IPv4单播地址族视图。
address-family ipv4 [ unicast ]
(5) 使能与本AS的ASBR-PE交换BGP IPv4单播路由的能力。
peer { group-name | ipv4-address [ mask-length ] } enable
缺省情况下,不能与本AS的ASBR-PE交换BGP IPv4单播路由。
(6) 配置与本AS的ASBR-PE之间能够交换带标签的路由。
peer { group-name | ipv4-address [ mask-length ] } label-route-capability
缺省情况下,不向IPv4对等体/对等体组发送标签路由。
(7) 退回BGP实例视图。
quit
(8) 进入BGP VPNv6地址族视图。
address-family vpnv6
(9) 使能本地路由器与另一AS的PE交换VPNv6路由信息的能力。
peer ipv4-address [ mask-length ] enable
缺省情况下,本地路由器不能与对等体交换VPNv6路由信息。
(10) (可选)配置向对等体发送路由时不改变下一跳。
peer { group-name | ipv4-address [ mask-length ] } next-hop-invariable
缺省情况下,向对等体/对等体组发布路由时会将下一跳改为自己的地址。
本配置用于使用RR通告VPNv6路由的情况:在RR上执行本配置,使得RR之间通告VPNv6路由时,路由的下一跳不会被改变。
(1) 进入系统视图。
system-view
(2) 配置路由策略。
a. 创建路由策略,并进入路由策略视图。
route-policy route-policy-name { deny | permit } node node-number
b. 匹配带标签的IPv4路由。
if-match mpls-label
缺省情况下,不匹配路由信息的MPLS标签。
在路由策略中,还可以配置其他的if-match子句,以实现只对满足某些条件的路由分配标签,其它路由仍作为普通IPv4路由发布。
c. 为IPv4路由分配标签。
apply mpls-label
缺省情况下,没有为IPv4路由分配标签。
d. 退回系统视图。
quit
(3) 在连接AS内部路由器的接口上使能MPLS和LDP能力。
a. 配置本节点的LSR ID。
mpls lsr-id lsr-id
缺省情况下,未配置LSR ID。
b. 使能本节点的LDP能力,并进入LDP视图。
mpls ldp
缺省情况下,LDP能力处于关闭状态。
c. 退回系统视图。
quit
d. 进入连接AS内部路由器接口的接口视图。
interface interface-type interface-number
e. 使能接口的MPLS能力。
mpls enable
缺省情况下,接口的MPLS能力处于关闭状态。
f. 使能接口的LDP能力。
mpls ldp enable
缺省情况下,接口的LDP能力处于关闭状态。
g. 退回系统视图。
quit
(4) 在连接对端ASBR的接口上使能MPLS能力。
a. 进入连接对端ASBR接口的接口视图。
interface interface-type interface-number
b. 使能接口的MPLS能力。
mpls enable
缺省情况下,接口的MPLS能力处于关闭状态。
c. 退回系统视图。
quit
(5) 进入BGP实例视图。
bgp as-number [ instance instance-name ]
(6) 创建BGP对等体,将本AS的PE配置为IBGP对等体,将另一AS的ASBR配置为EBGP对等体。
peer { group-name | ipv4-address [ mask-length ] } as-number as-number
(7) 创建BGP IPv4单播地址族,并进入BGP IPv4单播地址族视图。
address-family ipv4 [ unicast ]
(8) 使能本地路由器与本AS的PE、另一AS的ASBR交换IPv4单播路由信息的能力。
peer { group-name | ipv4-address [ mask-length ] } enable
缺省情况下,本地路由器不能与对等体交换IPv4单播路由信息。
(9) 配置与本AS的PE及另一AS的ASBR之间能够交换带标签的IPv4路由。
peer { group-name | ipv4-address [ mask-length ] } label-route-capability
缺省情况下,不具有与对等体/对等体组交换带标签IPv4路由的能力。
(10) 配置向本AS的PE发布路由时将下一跳改为自己的地址。
peer { group-name | ipv4-address [ mask-length ] } next-hop-local
缺省情况下,在向IBGP对等体/对等体组发布路由时不会将下一跳改为自己的地址。
(11) 对来自对等体/对等体组的路由或发布给对等体/对等体组的路由应用路由策略。
peer { group-name | ipv4-address [ mask-length ] } route-policy route-policy-name { export | import }
缺省情况下,没有为对等体/对等体组指定路由策略。
开启IPv6 MPLS L3VPN快速重路由功能的方法有如下两种:
· 在路由策略中指定快速重路由的备份下一跳,并在BGP-VPN IPv6单播地址族视图下配置快速重路由引用该路由策略。采用这种方式时,只有为主路由计算出的备份下一跳地址与指定的地址相同时,才会为其生成备份下一跳;否则,不会为主路由生成备份下一跳。在引用的路由策略中,还可以配置if-match子句,用来决定哪些路由可以进行快速重路由保护,设备只会为通过if-match子句过滤的路由生成备份下一跳。
· 在BGP-VPN IPv6单播地址族视图/BGP VPNv6地址族视图下开启该地址族的快速重路由功能。采用这种方式时,设备会为当前VPN实例的所有BGP路由自动计算备份下一跳,即只要从不同BGP对等体学习到了到达同一目的网络的路由,且这些路由不等价,就会生成主备两条路由。
路由策略方式的优先级高于开启地址族快速重路由功能方式。
在某些组网情况下,在BGP-VPN IPv6单播地址族视图/BGP VPNv6地址族视图下执行pic命令开启该地址族的快速重路由功能,为所有BGP路由生成备份下一跳后,可能会导致路由环路,请谨慎使用本命令。
(1) 进入系统视图。
system-view
(2) 配置BFD检测。
¡ 使能MPLS BFD功能。
mpls bfd enable
缺省情况下,MPLS与BFD联动功能处于关闭状态。
在VPNv6路由备份VPNv6路由、IPv6路由备份VPNv6路由组网中,需要执行本命令。本命令的详细介绍,请参见“MPLS命令参考”中的“MPLS OAM”。
¡ 配置echo报文的源IP地址。
bfd echo-source-ip ip-address
缺省情况下,未配置echo报文的源IP地址。
VPNv6路由备份IPv6路由组网中,若通过Echo方式的BFD会话检测主路由的下一跳是否可达,则需要执行本命令。本命令的详细介绍,请参见“可靠性命令参考”中的“BFD”。
(3) 配置使用BFD检测公网LSP或MPLS TE隧道的连通性。
¡ 配置使用BFD检测指定FEC对应LSP的连通性。
mpls bfd dest-addr mask-length [ nexthop nexthop-address [ discriminator local local-id remote remote-id ] ] [ template template-name ]
¡ 依次执行以下命令配置使用BFD检测当前隧道接口对应MPLS TE隧道的连通性。
interface tunnel number mode mpls-te
mpls bfd [ discriminator local local-id remote remote-id ] [ template template-name ]
quit
缺省情况下,未使用BFD检测公网LSP和MPLS TE隧道的连通性。
在VPNv6路由备份VPNv6路由、IPv6路由备份VPNv6路由组网中,需要执行本配置;VPNv6路由备份IPv6路由组网中,不需要执行本配置。
本配置中各命令的详细介绍,请参见“MPLS命令参考”中的“MPLS OAM”。
(4) 配置路由策略。
a. 创建路由策略,并进入路由策略视图。
route-policy route-policy-name permit node node-number
b. 配置快速重路由的备份下一跳地址。
apply ipv6 fast-reroute backup-nexthop ipv6-address
缺省情况下,未配置快速重路由的备份下一跳地址。
c. 退回系统视图。
quit
本配置中各命令的详细介绍,请参见“三层技术-IP路由命令参考”中的“路由策略”。
(5) 进入BGP实例视图。
bgp as-number [ instance instance-name ]
(6) (可选)配置通过Echo方式的BFD会话检测主路由的下一跳是否可达。
primary-path-detect bfd echo
缺省情况下,通过ARP检测主路由的下一跳是否可达。
VPNv6路由备份IPv6路由组网中,可以根据实际情况选择是否执行本配置;其他组网中,无需执行本配置。
本命令的详细介绍,请参见“三层技术-IP路由命令参考”中的“BGP”。
(7) 进入BGP-VPN实例视图。
ip vpn-instance vpn-instance-name
(8) 进入BGP-VPN IPv6单播地址族视图。
address-family ipv6 [ unicast ]
(9) 在当前地址族视图下指定快速重路由引用的路由策略。
fast-reroute route-policy route-policy-name
缺省情况下,快速重路由未引用任何路由策略。
引用的路由策略中,只有apply ipv6 fast-reroute backup-nexthop命令生效,其他apply子句不会生效。
本命令的详细介绍,请参见“三层技术-IP路由命令参考”中的“BGP”。
(1) 进入系统视图。
system-view
(2) 配置BFD检测。
¡ 使能MPLS BFD功能。
mpls bfd enable
缺省情况下,MPLS与BFD联动功能处于关闭状态。
在VPNv6路由备份VPNv6路由、IPv6路由备份VPNv6路由组网中,需要执行本命令。本命令的详细介绍,请参见“MPLS命令参考”中的“MPLS OAM”。
¡ 配置echo报文的源IP地址。
bfd echo-source-ip ip-address
缺省情况下,未配置echo报文的源IP地址。
VPNv6路由备份IPv6路由组网中,若通过Echo方式的BFD会话检测主路由的下一跳是否可达,则需要执行本命令。本命令的详细介绍,请参见“可靠性命令参考”中的“BFD”。
(3) 配置使用BFD检测公网LSP或MPLS TE隧道的连通性。
¡ 配置使用BFD检测指定FEC对应LSP的连通性。
mpls bfd dest-addr mask-length [ nexthop nexthop-address [ discriminator local local-id remote remote-id ] ] [ template template-name ]
¡ 依次执行本命令配置使用BFD检测当前隧道接口对应MPLS TE隧道的连通性。
interface tunnel number mode mpls-te
mpls bfd [ discriminator local local-id remote remote-id ] [ template template-name ]
quit
缺省情况下,未使用BFD检测公网LSP和MPLS TE隧道的连通性。
在VPNv6路由备份VPNv6路由、IPv6路由备份VPNv6路由组网中,需要执行本配置;VPNv6路由备份IPv6路由组网中,不需要执行本配置。
本配置中各命令的详细介绍,请参见“MPLS命令参考”中的“MPLS OAM”。
(4) 进入BGP实例视图。
bgp as-number [ instance instance-name ]
(5) (可选)配置通过Echo方式的BFD会话检测主路由的下一跳是否可达。
primary-path-detect bfd echo
缺省情况下,通过ARP检测主路由的下一跳是否可达。
VPNv6路由备份IPv6路由组网中,可以根据实际情况选择是否执行本配置;其他组网中,无需执行本配置。
本命令的详细介绍,请参见“三层技术-IP路由命令参考”中的“BGP”。
(6) 进入BGP-VPN IPv6单播地址族视图或BGP VPNv6地址族视图。
¡ 依次执行以下命令进入BGP-VPN IPv6单播地址族视图。
ip vpn-instance vpn-instance-name
address-family ipv6 [ unicast ]
¡ 进入BGP VPNv6地址族视图。
address-family vpnv6
(7) 开启当前地址族的快速重路由功能。
pic
缺省情况下,快速重路由功能处于关闭状态。
本命令的详细介绍,请参见“三层技术-IP路由命令参考”中的“BGP”。
在配置OSPF伪连接之前,需完成以下任务:
· 配置基本IPv6 MPLS L3VPN(PE-CE间使用OSPFv3)
· 在用户CE所在局域网内配置OSPFv3
(1) 进入系统视图。
system-view
(2) 创建Loopback接口,并进入Loopback接口视图。
interface loopback interface-number
(3) 将Loopback接口与VPN实例关联。
ip binding vpn-instance vpn-instance-name
缺省情况下,接口不关联任何VPN实例,属于公网接口。
(4) 配置Loopback接口的IPv6地址。
配置方法,请参见“三层技术-IP业务配置指导”中的“IPv6基础”。
缺省情况下,未配置Loopback接口的IPv6地址。
(5) 进入BGP实例视图。
bgp as-number [ instance instance-name ]
(6) 进入BGP-VPN实例视图。
ip vpn-instance vpn-instance-name
(7) 进入BGP-VPN IPv6单播地址族视图。
address-family ipv6 [ unicast ]
(8) 引入直连路由(将Loopback主机路由引入BGP)。
import-route direct
缺省情况下,不会引入直连路由。
(1) 进入系统视图。
system-view
(2) 进入OSPFv3视图。
ospfv3 [ process-id | vpn-instance vpn-instance-name ] *
(3) 进入OSPFv3区域视图。
area area-id
(4) 创建一条OSPFv3伪连接。
sham-link source-ipv6-address destination-ipv6-address [ cost cost-value | dead dead-interval | hello hello-interval | instance instance-id | [ hmac-sha-256 key-id { cipher | plain } string | keychain keychain-name ] | retransmit retrans-interval | trans-delay delay ] *
不同Site的CE具有相同的AS号时,PE上需要开启BGP的AS号替换功能,从而避免路由被丢弃。
使能了BGP的AS号替换功能后,当PE向指定CE发布路由时,如果路由的AS_PATH中有与CE相同的AS号,将被替换成PE的AS号后再发布。
PE使用不同接口连接同一站点的多个CE时,如果配置了BGP的AS号替换功能,则会导致路由环路。这种情况下,需要在PE上通过peer soo命令为从同一站点不同CE学习到的路由添加相同的SoO属性,且PE向CE发布路由时检查SoO属性,如果路由的SoO属性与为CE配置的SoO属性相同,则不将该路由发布给CE,从而避免路由环路。
本配置中各命令的详细介绍,请参见“三层技术-IP路由命令参考”中的“BGP高级配置”。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图。
bgp as-number [ instance instance-name ]
(3) 进入BGP-VPN实例视图。
ip vpn-instance vpn-instance-name
(4) 使能BGP的AS号替换功能。
peer { group-name | ipv6-address [ prefix-length ] } substitute-as
缺省情况下,BGP的AS号替换功能处于关闭状态。
(5) 进入BGP-VPN IPv6单播地址族视图。
address-family ipv6 [ unicast ]
(6) (可选)为BGP对等体/对等体组配置SoO属性。
peer { group-name | ipv6-address [ prefix-length ] } soo site-of-origin
缺省情况下,没有为BGP对等体/对等体组配置SoO属性。
缺省情况下,BGP只发布一条最优路由。如果最优路由所在路径出现网络故障,数据流量将会被中断,直到BGP根据新的网络拓扑路由收敛后,被中断的流量才能恢复正常的传输。
配置了Add-Path(Additional Paths)功能后,BGP可以向邻居发送本地前缀相同下一跳不同的多条路由。网络出现故障后,次优路由可以成为新的最优路由,这样就缩短了流量中断时间。
Add-Path能力包括接收和发送两种。为了让对等体间的Add-Path能力协商成功,必须一端使能接收能力,另一端使能发送能力。
本配置中各命令的详细介绍,请参见“三层技术-IP路由命令参考”中的“BGP高级配置”。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图。
bgp as-number [ instance instance-name ]
(3) 进入BGP VPNv6地址族视图。
address-family vpnv6
(4) 配置Add-Path功能。
peer { group-name | ipv4-address [ mask-length ] } additional-paths { receive | send } *
缺省情况下,未配置Add-Path功能。
(5) 配置向指定对等体/对等体组发送的Add-Path优选路由的最大条数。
peer { group-name | ipv4-address [ mask-length ] } advertise additional-paths best number
缺省情况下,向指定对等体/对等体组发送的Add-Path优选路由的最大条数为1。
(6) 配置Add-Path优选路由的最大条数。
additional-paths select-best best-number
缺省情况下,Add-Path优选路由的最大条数为1。
配置了undo policy vpn-target命令后,与本地VPN实例Route Target不匹配的VPNv6路由能够被设备接收,并且当路由携带的RD与本地的VPN实例相同时,这些路由能够在BGP VPNv6路由表中被优选,也能够在BGP-VPN实例路由表中被优选。但是Route Target不匹配的路由在BGP-VPN实例路由表中不可见、不可用,且不能被添加到VPN实例路由表中,而BGP-VPN实例路由表的优选结果与BGP VPNv6路由表相同,Route Target不匹配的路由在BGP VPNv6路由表中被唯一优选时,将导致BGP-VPN实例路由表中没有优选路由。只有BGP-VPN实例路由表中的优选路由才会被添加到VPN实例IP路由表中,所以Route Targe属性不匹配的路由对应的目的网络地址将没有任何BGP路由能添加到VPN实例IP路由表中,可能导致去往该目的网络地址的VPN实例报文无法转发。
可以通过配置本功能解决上述问题。配置本功能后,只有与VPN实例Route Target属性匹配的BGP VPNv6优选路由才能被添加到对应的BGP-VPN实例路由表中,并且这些路由会在BGP-VPN实例路由表中与其他的BGP-VPN实例路由一起按照BGP的选路规则重新进行优选,优选结果与BGP VPNv6路由表的优选结果无关。该机制使得BGP-VPN实例路由表中仅存在Route Target属性与BGP-VPN实例对应的VPN实例匹配的BGP路由,进而使得BGP-VPN实例路由表中优选的路由一定可以被添加到VPN实例IP路由表中。
例如,某PE设备通过BGP VPNv6会话学习到两条相同前缀2001::1/64、不同下一跳的VPNv6路由:
<Sysname> display bgp routing-table vpnv6
BGP local router ID is 2.2.2.2
Status codes: * - valid, > - best, d - dampened, h - history,
s - suppressed, S - stale, i - internal, e - external,
a - additional-path
Origin: i - IGP, e - EGP, ? - incomplete
Total number of routes from all PEs: 2
Route distinguisher: 10:1(vpn1)
Total number of routes: 2
* >i Network : 2001:: PrefixLen : 64
NextHop : 1::1 LocPrf : 100
PrefVal : 0 OutLabel : 24127
MED : 0
Path/Ogn: i
* i Network : 2001:: PrefixLen : 64
NextHop : 3::3 LocPrf : 100
PrefVal : 0 OutLabel : 24255
MED : 0
Path/Ogn: i
Route distinguisher: 20:1
Total number of routes: 1
* >i Network : 2001:: PrefixLen : 64
NextHop : 3::3 LocPrf : 100
PrefVal : 0 OutLabel : 24255
MED : 0
Path/Ogn: i
在BGP VPNv6路由表中,不同RD下的路由分属不同的路由表项。例如,在上述显示信息中,存在两张BGP VPNv6路由表项,分别是RD为10:1的BGP VPNv6路由表项以及RD为20:1的BGP VPNv6路由表项。
在两条路由中,下一跳地址为1.1.1.1的路由的Route Target值与vpn1不匹配,下一跳地址为3.3.3.3的路由的Route Target值与vpn1匹配。下一跳地址为3.3.3.3的路由被添加到vpn1的BGP-VPN实例路由中,因为RD为10:1的BGP VPNv6与BGP-VPN实例共用路由表项,所以在RD为10:1的BGP VPNv6路由表中也存在了一条下一跳为3.3.3.3的路由。在RD为10:1的BGP VPNv6路由表中,下一跳为3.3.3.3的路由与下一跳地址为1.1.1.1的路由进行优选,下一跳地址为1.1.1.1的路由被优选,但是该路由的Route Target值与vpn1不匹配,所以在vpn1的BGP-VPN实例路由表中不可用,导致vpn1的BGP-VPN实例路由表中没有到达10.10.10.10/32网络的优选路由。
<Sysname> display bgp routing-table ipv6 vpn-instance vpn1
Total number of routes: 2
BGP local router ID is 2.2.2.2
Status codes: * - valid, > - best, d - dampened, h - history,
s - suppressed, S - stale, i - internal, e - external,
a - additional-path
Origin: i - IGP, e - EGP, ? - incomplete
* i Network : 2001:: PrefixLen : 64
NextHop : 3::3 LocPrf : 100
PrefVal : 0 OutLabel : 24255
MED : 0
Path/Ogn: i
配置了本功能后,VPNv6路由表和BGP-VPN实例路由表不再共用表项,VPNv6的路由表为:
<Sysname> display bgp routing-table vpnv6
BGP local router ID is 2.2.2.2
Status codes: * - valid, > - best, d - dampened, h - history,
s - suppressed, S - stale, i - internal, e - external,
a - additional-path
Origin: i - IGP, e - EGP, ? - incomplete
Total number of routes from all PEs: 2
Route distinguisher: 10:1(vpn1)
Total number of routes: 2
* >i Network : 2001:: PrefixLen : 64
NextHop : 1::1 LocPrf : 100
PrefVal : 0 OutLabel : 24127
MED : 0
Path/Ogn: i
Route distinguisher: 20:1
Total number of routes: 1
* >i Network : 2001:: PrefixLen : 64
NextHop : 3::3 LocPrf : 100
PrefVal : 0 OutLabel : 24255
MED : 0
Path/Ogn: i
其中,下一跳地址为1.1.1.1的路由虽然被优选,但是由于Route Target属性与vpn1不匹配,无法被添加到vpn1的BGP-VPN实例路由表中。下一跳地址为3.3.3.3的路由在RD为20:1的路由表中被优选,且Route Target属性与vpn1匹配,所以可以被添加到vpn1的BGP-VPN实例路由表中,并且可以正常被优选以及下发到vpn1的IP路由表中。
<Sysname> display bgp routing-table ipv6 vpn-instance vpn1
Total number of routes: 2
BGP local router ID is 2.2.2.2
Status codes: * - valid, > - best, d - dampened, h - history,
s - suppressed, S - stale, i - internal, e - external,
a - additional-path
Origin: i - IGP, e - EGP, ? - incomplete
* >i Network : 2001:: PrefixLen : 64
NextHop : 3::3 LocPrf : 100
PrefVal : 0 OutLabel : 24255
MED : 0
Path/Ogn: i
由于IP前缀路由也可以添加到BGP-VPN实例路由表中,本功能的工作机制还使得VPNv6地址族中的优选路由不与本地VPN实例Route Target匹配时,BGP可以将从BGP EVPN地址族学习到的相同前缀路由添加到BGP-VPN实例路由表中,添加到BGP-VPN实例路由表的IP前缀路由可以被优选以及添加到VPN实例IP路由表中。
借助本命令提供的BGP路由表项分离机制,还可以实现另一功能:未配置本命令时,peer re-originated命令不能为接收到的与本地VPN实例RD相同的BGP VPNv6路由修改路由信息;配置本命令后,peer re-originated命令可以为所有接收到的BGP VPNv6路由修改路由信息。
bestroute same-rd命令可以实现与本功能类似的功能,两者不同之处在于:
· bestroute same-rd命令的机制是直接跳过Route Target属性不匹配的路由,在BGP VPNv6路由表中有其他相同前缀、RT匹配的BGP路由时,使得这些路由被添加到VPN实例IP路由表中。
· 本功能配置后,必须要借助其他BGP路由表学习到的路由,才能实现将BGP路由添加到VPN实例IP路由表中。BGP VPNv6路由表中与RT不匹配的路由属于同一RD路由表的路由仍不能添加到VPN实例IP路由表中。本功能的具体适用场景为:
¡ 多个RD的BGP VPNv6表项中存在相同前缀的优选路由场景。
¡ BGP EVPN路由表与BGP VPNv6路由表中存在相同前缀的VPNv6路由以及IP前缀路由的场景。
¡ 需要通过peer re-originated命令为接收到的与本地VPN实例RD相同BGP VPNv6路由修改路由信息的场景。
配置了routing-table independent enable命令后,bestroute same-rd命令将不再生效。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图。
bgp as-number [ instance instance-name ]
(3) 配置BGP VPNv6路由和BGP-VPN实例路由分离功能。
routing-table independent enable
缺省情况下,BGP VPNv6路由与BGP-VPN路由共用表项,设备从各种方式添加到BGP-VPN实例路由表中的BGP路由也会保存在BGP VPNv6路由表中,并且对于一个VPN实例,其在BGP VPNv6路由表中的优选结果与在BGP-VPN实例路由表中的优选结果相同。
本配置可以实现以下功能:
· BGP向VPN实例的IP路由表添加路由时,优选与当前VPN实例Route Target属性匹配的路由。
配置了undo policy vpn-target命令后,与本地VPN实例Route Target属性不匹配的VPNv6路由可以被接收,并能够在BGP VPNv6路由表中被优选。由于BGP VPNv6路由表中的优选结果与在BGP-VPN实例路由表中的优选结果相同,BGP-VPN实例路由表中即使存在Route Target属性匹配的路由也无法被优选。但是Route Target属性不匹配路由无法添加到BGP-VPN实例路由表及其对应的VPN实例IP路由表中,并且BGP-VPN实例路由表只能添加优选路由到VPN实例IP路由表中,Route Targe属性不匹配的路由对应的目的网络地址将没有任何BGP路由能添加到VPN实例IP路由表中,可能导致去往该目的网络地址的VPN实例报文无法转发。
通过配置本功能,可以解决上述问题。配置本功能后,对于到达同一目的地址的不同BGP路由,如果其中存在与当前VPN实例Route Target属性匹配的路由,则将其中最优的路由添加到当前VPN实例的IP路由表中。
例如,VPN实例vpna的Import Target值为10:1,vpna的BGP路由表中存在两条目的地址为3::3的路由,分别是3::3 <RT: 10:1>和3::3 <RT: 20:1>,其中3::3 <RT: 20:1>为最优路由。配置本功能后,BGP会将与vpna的Import Target值匹配的路由3::3 <RT: 10:1>添加到vpna的IP路由表中。
· 向对等体发布BGP路由时,如果最优路由无法发布,则发布次优路由;只有到达同一目的地址的所有路由均无法发布时,才不发布该目的地址对应的路由。
由于VPN实例下的BGP路由表中包含当前VPN实例IP路由表的路由,所以某些BGP地址族的路由表中可能包含非当前地址族学习到的路由。例如,通过BGP EVPN地址族学习到IP前缀路由后,该路由会被添加到对应VPN实例的IP路由表中,同时在该VPN实例的BGP-VPN IPv6单播地址族以及BGP VPNv6地址族的BGP路由表中也存在该路由。在发布路由时,如果BGP最优路由不是来自当前的地址族,则该路由无法发送给当前地址族的对等体,导致路由发送失败。
配置本功能后,设备在发布BGP路由时,如果最优路由无法发送给对等体,则选择次优路由进行发布;如果次优路由也不能发布,则根据优先级选择更次优的路由发布;直至选择出能发布的路由进行发布,或到达同一目的地址的所有路由均发布失败后,不发布该目的地址对应的路由。
例如,设备同时通过BGP VPNv6地址族以及BGP EVPN地址族学习到了IP前缀为3::3/128的路由,则在BGP VPNv6地址族的BGP路由表中,存在两条目的地址为3::3/128的路由,从BGP EVPN地址族学习到的路由为最优路由。由于这条路由来自BGP EVPN地址族,该路由不能发布给BGP VPNv6对等体,导致网络中仅部署了BGP VPNv6的节点无法获得IP前缀为3::3/128的路由信息。配置了本功能后,设备会向BGP VPNv6对等体发布通过BGP VPNv6地址族学习到的IP前缀为3::3/128的次优路由,以保障路由信息的正常发布。
本命令对所有VPN实例的BGP路由均生效,请谨慎使用。
配置了routing-table independent enable命令后,bestroute same-rd命令将不再生效。两条命令的区别请参见“1.14 配置BGP VPNv6路由和BGP-VPN实例路由分离功能”。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图。
bgp as-number [ instance instance-name ]
(3) 配置BGP向VPN实例IP路由表添加路由时优选RT匹配的路由,以及BGP VPN实例下的路由发布时可以发布非最优路由。
bestroute same-rd
缺省情况下,BGP向VPN实例路由表添加路由时,优选当前BGP路由表中的最优路由;向对等体发布BGP路由时,只发布最优路由。
公网实例可以看作是特殊的VPN实例,通过公网实例可以实现公网用户和私网用户互相访问。
在IPv6 MPLS L3VPN组网中,若使用Route Target属性匹配方式实现公私网互通,则不仅需要为公网实例和VPN实例配置匹配的Route Target属性,还需要在BGP实例视图下配置route-replicate enable命令开启公网和VPN实例BGP路由互相引入功能。
(1) 进入系统视图。
system-view
(2) 进入公网实例视图。
ip public-instance
(3) 配置公网实例的RD。
route-distinguisher route-distinguisher
缺省情况下,未配置公网实例的RD。
(4) 配置VPN实例的Route Target。
vpn-target vpn-target&<1-8> [ both | export-extcommunity | import-extcommunity ]
缺省情况下,未配置VPN实例的Route Target。
(5) 对公网实例应用入方向路由策略。
import route-policy route-policy
缺省情况下,允许所有Route Target属性匹配的路由通过。
(6) 对公网实例应用出方向路由策略。
export route-policy route-policy
缺省情况下,不对发布的路由进行过滤。
(7) 进入公网实例IPv6地址族视图。
address-family ipv6
(8) 配置VPN实例的Route Target。
vpn-target vpn-target&<1-8> [ both | export-extcommunity | import-extcommunity ]
缺省情况下,未配置VPN实例的Route Target。
(9) 对公网实例应用入方向路由策略。
import route-policy route-policy
缺省情况下,允许所有Route Target属性匹配的路由通过。
(10) 对公网实例应用出方向路由策略。
export route-policy route-policy
缺省情况下,不对发布的路由进行过滤。
在IPv6 BGP/IPv6 MPLS L3VPN组网中,只有Route Target属性匹配的VPN实例之间才可以通信。通过配置本功能可以实现:
· 将公网或其他VPN实例的路由信息引入到指定VPN实例中,从而使指定VPN用户可以获取访问公网或其他VPN的路由。
· 将指定VPN实例的路由信息引入到公网中,从而使公网获取指定VPN的路由,以便转发用户流量。
在流量智能调控场景中,不同租户的流量被划分到不同的VPN中。为了使租户流量可以流向公网,则需要将公网的路由信息引入到指定VPN实例中。
(1) 进入系统视图。
system-view
(2) 进入VPN实例视图。
ip vpn-instance vpn-instance-name
(3) 进入VPN实例IPv6地址族视图。
address-family ipv6
(4) 将公网或其他VPN实例的路由信息引入到指定VPN实例中。
route-replicate from { public | vpn-instance vpn-instance-name } protocol { bgp4+ as-number | direct | static | vlink-direct | { isisv6 | ospfv3 | ripng } process-id } [ advertise ] [ route-policy route-policy-name ]
缺省情况下,公网或其他VPN实例的路由信息不能引入到指定VPN实例中。
(1) 进入系统视图。
system-view
(2) 进入公网实例视图。
ip public-instance
(3) 进入公网实例IPv6地址族视图。
address-family ipv6
(4) 将指定VPN实例的路由信息引入到公网中。
route-replicate from vpn-instance vpn-instance-name protocol { bgp4+ as-number | direct | static | vlink-direct | { isisv6 | ospfv3 | ripng } process-id } [ advertise ] [ route-policy route-policy-name ]
缺省情况下,VPN实例的路由信息不能引入到公网中。
在流量清洗的场景中,公私网之间通过防火墙对流量进行过滤,不同用户的流量被划分到不同的VPN中。为了使VPN用户和公网用户互访,在防火墙提供流量安全保障的前提下,需要公网和VPN实例的BGP路由互相引入。
配置本功能后,Route Target属性相匹配的VPN实例及公网实例之间会互相引入对方实例下的BGP路由,以实现公网和所有VPN实例内的用户都可以互相访问。本功能引入BGP路由时,还可以同时引入BGP路由属性,以便设备通过BGP路由属性选择合适的转发路径。
开启本功能后,公网和所有VPN实例内的用户都可以互相访问,无法实现不同VPN用户之间的隔离,请仅在特定场景下使用本功能。
配置本功能时,只有VPN实例和BGP IPv4(或IPv6)单播地址族均已创建,才能实现公网和该VPN实例的IPv4(或IPv6路由)互相引入。
有关route-replicate enable命令的详细介绍,请参见“MPLS命令参考”中的“MPLS L3VPN”。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图。
bgp as-number [ instance instance-name ]
(3) 开启公网和VPN实例的BGP路由互相引入功能。
route-replicate enable
缺省情况下,公网和VPN实例的BGP路由互相引入功能处于关闭状态。
缺省情况下,各VPN实例之间的BGP路由均相互隔离。但在某些组网场景下,设备需要实现跨VPN发布路由,并且为了隐藏站点内部特定VPN实例的路由信息,用户需要将该VPN实例的BGP路由通过其他的VPN实例对外发布。
配置本功能后,如果其他VPN实例的Route Target属性与当前地址族视图所属的VPN实例匹配,则会在该VPN实例的BGP路由表中重生成其他VPN实例的所有BGP路由(不包括从本地引入的路由,如配置import-route命令后引入的IGP路由)。这些重生成的路由均可以在新的VPN实例内,通过BGP会话发布给对等体。
有关路由重生成的详细过程,请参见“MPLS配置指导”中的“MPLS L3VPN”。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图。
bgp as-number [ instance instance-name ]
(3) 进入BGP-VPN实例视图。
ip vpn-instance vpn-instance-name
(4) 进入BGP-VPN IPv6单播地址族视图。
address-family ipv6 [ unicast ]
(5) 配置在指定VPN实例的BGP单播路由表中重生成其他VPN实例下的BGP单播路由。
advertise route-reoriginate [ route-policy route-policy-name ] [ replace-rt ]
缺省情况下,在VPN实例下无法重生成其他VPN实例下的BGP单播路由。
本命令仅能重生成与当前视图所属的VPN实例Route Target属性匹配的VPN实例下的路由,且不能重生成BGP路由表中从本地引入的路由。
(6) (可选)配置向指定IBGP对等体/对等体组发布VPN实例下重生成的BGP路由。
a. 退回BGP实例视图。
quit
quit
b. 进入BGP VPNv6地址族视图。
address-family vpnv6
c. 配置以VPNv6路由的形式向指定IBGP对等体/对等体组发布VPN实例下重生成的BGP路由。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } advertise vpn-reoriginate ibgp
缺省情况下,不会向IBGP对等体/对等体组发布VPN实例下重生成的BGP路由。
当BGP路由器需要撤销大量路由时,撤销所有的路由会耗费一定时间,导致有些流量不能快速切换到有效路径。对于某些重要的、不希望长时间中断的流量,可以通过本配置,确保BGP路由器优先发送这些路由的撤销消息,以便将指定流量快速地切换到有效路径上,最大限度地减少流量中断时间。
本配置中命令的详细介绍,请参见“三层技术-IP路由命令参考”中的“BGP基础”。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图。
bgp as-number [ instance instance-name ]
(3) 创建BGP VPNv6地址族,并进入BGP VPNv6地址族视图。
address-family vpnv6
(4) 配置优先发送指定路由的撤销消息。
update-first route-policy route-policy-name
缺省情况下,不支持优先发送指定路由的撤销消息。
BGP如果在路由迭代的过程中不对迭代的结果路由进行任何限制,则可能会将路由迭代到一个错误的转发路径上。可以通过配置本功能,使得用户通过路由策略灵活的匹配条件,有选择性地影响BGP路由的迭代结果,从而保证BGP路由的下一跳能够迭代到用户期望的路径上。
配置本功能后,BGP路由的下一跳只能迭代到通过路由策略过滤的路由上。如果BGP路由迭代到的下一跳路由均无法通过路由策略的过滤,则该路由将被标识为不可达,无法生效。路由通过路由策略过滤的判断条件是:路由能够通过本命令指定的路由策略中允许模式节点的过滤。
如果不希望来自特定对等体的路由受迭代策略控制,可以配置peer nexthop-recursive-policy disable命令,使得本功能对于从指定对等体/对等体组学习到的BGP路由不生效。
nexthop recursive-lookup route-policy命令对从直连EBGP对等体学习到的路由不生效。
如果在BGP VPNv6地址族视图下配置了nexthop recursive-lookup route-policy命令,并同时在RIB IPv4地址族视图下配置了protocol nexthop recursive-lookup命令,则对于BGP VPNv6地址族中的BGP路由,采用该地址族视图下配置的nexthop recursive-lookup route-policy命令。如果BGP VPNv6地址族视图下未配置nexthop recursive-lookup route-policy命令,仅在RIB IPv4地址族视图下配置了protocol nexthop recursive-lookup命令,则BGP VPNv6路由使用RIB IPv4地址族视图下protocol nexthop recursive-lookup命令的配置来进行下一跳迭代查找。
有关nexthop recursive-lookup route-policy和peer nexthop-recursive-policy disable命令的详细参考,请参见“三层技术-IP路由命令参考”中的“BGP”。
有关protocol nexthop recursive-lookup命令的详细参考,请参见“三层技术-IP路由命令参考”中的“IP路由基础”。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图。
bgp as-number [ instance instance-name ]
(3) 进入BGP VPNv6地址族视图。
address-family vpnv6
(4) 配置BGP路由根据路由策略来过滤迭代到的下一跳路由。
nexthop recursive-lookup route-policy route-policy-name
缺省情况下,BGP不根据路由策略来过滤迭代到的下一跳路由。
配置本命令后,如果BGP VPNv6地址族中的所有BGP路由迭代到的下一跳路由均无法通过路由策略的过滤,该地址族下的所有BGP路由将全部成为不可达路由。请用户在配置本命令前,规划好期望迭代到的下一跳路由,使其能够通过指定路由策略中允许模式节点的过滤。
(5) (可选)配置从对等体/对等体组学到的路由不受迭代策略控制。
a. 退回BGP实例视图。
quit
b. 配置从对等体/对等体组学到的路由不受迭代策略控制。
peer { group-name | ipv4-address [ mask-length ] } nexthop-recursive-policy disable
缺省情况下,从对等体/对等体组学到的路由受迭代策略控制。
本命令的详细介绍,请参见“三层技术-IP路由命令参考”中的“BGP”。
配置本命令后,对于从指定对等体/对等体组学习到的BGP路由,nexthop recursive-lookup route-policy命令和protocol nexthop recursive-lookup命令均不生效。
使能BGP的路由抖动日志记录功能后,当路由发生抖动并满足日志输出条件时会生成路由抖动日志信息。生成的日志信息还将被发送到设备的信息中心,通过设置信息中心的参数,决定日志信息的输出规则(即是否允许输出以及输出方向)。
有关信息中心参数的配置请参见“网络管理和监控配置指导”中的“信息中心”。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图。
bgp as-number [ instance instance-name ]
(3) 进入BGP VPNv6地址族视图。
address-family vpnv6
(4) 使能BGP的路由抖动日志记录功能。
log-route-flap monitor-time monitor-count [ log-count-limit | route-policy route-policy-name ] *
缺省情况下,BGP的路由抖动日志记录功能处于关闭状态。
可在任意视图下执行以下命令:
· 显示BGP对等体和BGP路由的汇总信息。
display bgp [ instance instance-name ] vpnv6 summary
本命令的详细介绍,请参见“三层技术-IP路由命令参考”中的“BGP基础”。
· 显示BGP VPNv6路由信息。
display bgp [ instance instance-name ] routing-table vpnv6 [ [ route-distinguisher route-distinguisher ] [ ipv6-address prefix-length [ advertise-info ] | ipv6-address prefix-length { as-path | cluster-list | community | ext-community } | peer ipv4-address { advertised-routes | received-routes } [ ipv6-address prefix-length | statistics ] | statistics ]
display bgp [ instance instance-name ] routing-table vpnv6 [ route-distinguisher route-distinguisher ] as-path-acl { as-path-acl-number | as-path-acl-name }
display bgp [ instance instance-name ] routing-table vpnv6 [ route-distinguisher route-distinguisher ] [ statistics ] community [ community-number&<1-32> | aa:nn&<1-32> ] [ internet | no-advertise | no-export | no-export-subconfed ] [ whole-match ]
display bgp [ instance instance-name ] routing-table vpnv6 [ route-distinguisher route-distinguisher ] [ statistics ] community-list { basic-community-list-number | comm-list-name | adv-community-list-number } [ whole-match ]
display bgp [ instance instance-name ] routing-table vpnv6 [ route-distinguisher route-distinguisher ] [ statistics ] ext-community [ bandwidth link-bandwidth-value | color color | rt route-target | soo site-of-origin ]&<1-32> [ whole-match ]
display bgp [ instance instance-name ] routing-table vpnv6 [ same-rd-selected ]
本节所有命令的详细介绍,请参见“三层技术-IP路由命令参考”中的“BGP基础”。
可在任意视图下执行以下命令:
· 显示BGP VPNv6对等体的信息。
display bgp [ instance instance-name ] peer vpnv6 [ ipv4-address mask-length | { ipv4-address | group-name group-name } log-info | [ ipv4-address ] verbose ]
· 显示BGP VPNv6对等体组的信息。
display bgp [ instance instance-name ] group vpnv6 [ group-name group-name ]
本节所有命令的详细介绍,请参见“三层技术-IP路由命令参考”中的“BGP基础”。
可在任意视图下执行以下命令,显示BGP VPNv6地址族下打包组的相关信息。
display bgp [ instance instance-name ] update-group vpnv6 [ ipv4-address ]
可在任意视图下执行以下命令:
· 显示所有BGP VPNv6路由的入标签信息。
display bgp [ instance instance-name ] routing-table vpnv6 inlabel
· 显示所有BGP VPNv6路由的出标签信息。
display bgp [ instance instance-name ] routing-table vpnv6 outlabel
可在任意视图下执行以下命令:
· 显示指定VPN实例信息。
display ip vpn-instance [ instance-name vpn-instance-name ]
· 显示与VPN实例相关联的IPv6路由表。
display ipv6 routing-table vpn-instance vpn-instance-name [ verbose ]
本命令的详细介绍请参见“三层技术-IP路由命令参考”中的“IP路由基础命令”。
· 显示指定VPN实例的IPv6 FIB信息。
display ipv6 fib vpn-instance vpn-instance-name [ ipv6-address [ prefix-length ] ]
本命令的详细介绍,请参见“三层技术-IP业务命令参考”中的“IP转发基础”。
可在任意视图下执行以下命令,显示OSPFv3伪连接信息。
display ospfv3 [ process-id ] [ area area-id ] sham-link [ verbose ]
当BGP配置变化后,可以通过软复位或复位BGP会话使新的配置生效。软复位BGP会话是指在不断开BGP邻居关系的情况下,更新BGP路由信息;复位BGP会话是指断开并重新建立BGP邻居关系的情况下,更新BGP路由信息。软复位需要BGP对等体具备路由刷新能力(支持ROUTE-REFRESH消息)。
本节所有命令的详细介绍,请参见“三层技术-IP路由命令参考”中的“BGP基础”。
请在用户视图下执行以下命令:
· 手工对VPNv6地址族下的BGP会话进行软复位。
refresh bgp [ instance instance-name ] { ipv4-address [ mask-length ] | all | external | group group-name | internal } { export | import } vpnv6
· 复位VPNv6地址族下的BGP会话。
reset bgp [ instance instance-name ] { as-number | ipv4-address [ mask-length ] | all | external | internal | group group-name } vpnv6
· CE 1、CE 3属于VPN 1,CE 2、CE 4属于VPN 2;
· VPN 1使用的Route Target属性为111:1,VPN 2使用的Route Target属性为222:2。不同VPN用户之间不能互相访问;
· CE与PE之间配置EBGP交换VPN路由信息;
· PE与PE之间配置OSPF实现PE内部的互通、配置MP-IBGP交换VPN路由信息。
设备 |
接口 |
IP地址 |
设备 |
接口 |
IP地址 |
CE 1 |
HGE1/0/1 |
2001:1::1/96 |
P |
Loop0 |
2.2.2.9/32 |
PE 1 |
Loop0 |
1.1.1.9/32 |
|
HGE1/0/4 |
172.1.1.2/24 |
|
HGE1/0/1 |
2001:1::2/96 |
|
HGE1/0/5 |
172.2.1.1/24 |
|
HGE1/0/2 |
2001:2::2/96 |
PE 2 |
Loop0 |
3.3.3.9/32 |
|
HGE1/0/4 |
172.1.1.1/24 |
|
HGE1/0/1 |
2001:3::2/96 |
CE 2 |
HGE1/0/1 |
2001:2::1/96 |
|
HGE1/0/2 |
2001:4::2/96 |
CE 3 |
HGE1/0/1 |
2001:3::1/96 |
|
HGE1/0/4 |
172.2.1.2/24 |
CE 4 |
HGE1/0/1 |
2001:4::1/96 |
|
|
|
(1) 在MPLS骨干网上配置IGP协议,实现骨干网PE和P的互通
# 配置PE 1。
<PE1> system-view
[PE1] interface loopback 0
[PE1-LoopBack0] ip address 1.1.1.9 32
[PE1-LoopBack0] quit
[PE1] interface hundredgige 1/0/4
[PE1-HundredGigE1/0/4] ip address 172.1.1.1 24
[PE1-HundredGigE1/0/4] quit
[PE1] ospf
[PE1-ospf-1] area 0
[PE1-ospf-1-area-0.0.0.0] network 172.1.1.0 0.0.0.255
[PE1-ospf-1-area-0.0.0.0] network 1.1.1.9 0.0.0.0
[PE1-ospf-1-area-0.0.0.0] quit
[PE1-ospf-1] quit
# 配置P。
<P> system-view
[P] interface loopback 0
[P-LoopBack0] ip address 2.2.2.9 32
[P-LoopBack0] quit
[P] interface hundredgige 1/0/4
[P-HundredGigE1/0/4] ip address 172.1.1.2 24
[P-HundredGigE1/0/4] quit
[P] interface hundredgige 1/0/5
[P-HundredGigE1/0/5] ip address 172.2.1.1 24
[P-HundredGigE1/0/5] quit
[P] ospf
[P-ospf-1] area 0
[P-ospf-1-area-0.0.0.0] network 172.1.1.0 0.0.0.255
[P-ospf-1-area-0.0.0.0] network 172.2.1.0 0.0.0.255
[P-ospf-1-area-0.0.0.0] network 2.2.2.9 0.0.0.0
[P-ospf-1-area-0.0.0.0] quit
[P-ospf-1] quit
# 配置PE 2。
<PE2> system-view
[PE2] interface loopback 0
[PE2-LoopBack0] ip address 3.3.3.9 32
[PE2-LoopBack0] quit
[PE2] interface hundredgige 1/0/4
[PE2-HundredGigE1/0/4] ip address 172.2.1.2 24
[PE2-HundredGigE1/0/4] quit
[PE2] ospf
[PE2-ospf-1] area 0
[PE2-ospf-1-area-0.0.0.0] network 172.2.1.0 0.0.0.255
[PE2-ospf-1-area-0.0.0.0] network 3.3.3.9 0.0.0.0
[PE2-ospf-1-area-0.0.0.0] quit
[PE2-ospf-1] quit
配置完成后,PE 1、P、PE 2之间应能建立OSPF邻居,执行display ospf peer命令可以看到邻居达到FULL状态。执行display ip routing-table命令可以看到PE之间学习到对方的Loopback路由。
(2) 在MPLS骨干网上配置MPLS基本能力和MPLS LDP,建立LDP LSP
# 配置PE 1。
[PE1] mpls lsr-id 1.1.1.9
[PE1] mpls ldp
[PE1-ldp] quit
[PE1] interface hundredgige 1/0/4
[PE1-HundredGigE1/0/4] mpls enable
[PE1-HundredGigE1/0/4] mpls ldp enable
[PE1-HundredGigE1/0/4] quit
# 配置P。
[P] mpls lsr-id 2.2.2.9
[P] mpls ldp
[P-ldp] quit
[P] interface hundredgige 1/0/4
[P-HundredGigE1/0/4] mpls enable
[P-HundredGigE1/0/4] mpls ldp enable
[P-HundredGigE1/0/4] quit
[P] interface hundredgige 1/0/5
[P-HundredGigE1/0/5] mpls enable
[P-HundredGigE1/0/5] mpls ldp enable
[P-HundredGigE1/0/5] quit
# 配置PE 2。
[PE2] mpls lsr-id 3.3.3.9
[PE2] mpls ldp
[PE2-ldp] quit
[PE2] interface hundredgige 1/0/4
[PE2-HundredGigE1/0/4] mpls enable
[PE2-HundredGigE1/0/4] mpls ldp enable
[PE2-HundredGigE1/0/4] quit
上述配置完成后,PE 1、P、PE 2之间应能建立LDP会话,执行display mpls ldp peer命令可以看到LDP会话状态为Operational。执行display mpls ldp lsp命令,可以看到LDP LSP的建立情况。
(3) 在PE设备上配置IPv6 VPN实例,将CE接入PE
# 配置PE 1。
[PE1] ip vpn-instance vpn1
[PE1-vpn-instance-vpn1] route-distinguisher 100:1
[PE1-vpn-instance-vpn1] vpn-target 111:1
[PE1-vpn-instance-vpn1] quit
[PE1] ip vpn-instance vpn2
[PE1-vpn-instance-vpn2] route-distinguisher 100:2
[PE1-vpn-instance-vpn2] vpn-target 222:2
[PE1-vpn-instance-vpn2] quit
[PE1] interface hundredgige 1/0/1
[PE1-HundredGigE1/0/1] ip binding vpn-instance vpn1
[PE1-HundredGigE1/0/1] ipv6 address 2001:1::2 96
[PE1-HundredGigE1/0/1] quit
[PE1] interface hundredgige 1/0/2
[PE1-HundredGigE1/0/2] ip binding vpn-instance vpn2
[PE1-HundredGigE1/0/2] ipv6 address 2001:2::2 96
[PE1-HundredGigE1/0/2] quit
# 配置PE 2。
[PE2] ip vpn-instance vpn1
[PE2-vpn-instance-vpn1] route-distinguisher 200:1
[PE2-vpn-instance-vpn1] vpn-target 111:1
[PE2-vpn-instance-vpn1] quit
[PE2] ip vpn-instance vpn2
[PE2-vpn-instance-vpn2] route-distinguisher 200:2
[PE2-vpn-instance-vpn2] vpn-target 222:2
[PE2-vpn-instance-vpn2] quit
[PE2] interface hundredgige 1/0/1
[PE2-HundredGigE1/0/1] ip binding vpn-instance vpn1
[PE2-HundredGigE1/0/1] ipv6 address 2001:3::2 96
[PE2-HundredGigE1/0/1] quit
[PE2] interface hundredgige 1/0/2
[PE2-HundredGigE1/0/2] ip binding vpn-instance vpn2
[PE2-HundredGigE1/0/2] ipv6 address 2001:4::2 96
[PE2-HundredGigE1/0/2] quit
# 按图1-3配置各CE的接口IP地址,配置过程略。
配置完成后,在PE设备上执行display ip vpn-instance命令可以看到VPN实例的配置情况。各PE能ping通自己接入的CE。
(4) 在PE与CE之间建立EBGP对等体,引入VPN路由
# 配置CE 1。
<CE1> system-view
[CE1] bgp 65410
[CE1-bgp-default] peer 2001:1::2 as-number 100
[CE1-bgp-default] address-family ipv6 unicast
[CE1-bgp-default-ipv6] peer 2001:1::2 enable
[CE1-bgp-default-ipv6] import-route direct
[CE1-bgp-default-ipv6] quit
[CE1-bgp-default] quit
# 另外3个CE设备(CE 2~CE 4)配置与CE 1设备配置类似,配置过程省略。
# 配置PE 1。
[PE1] bgp 100
[PE1-bgp-default] ip vpn-instance vpn1
[PE1-bgp-default-vpn1] peer 2001:1::1 as-number 65410
[PE1-bgp-default-vpn1] address-family ipv6 unicast
[PE1-bgp-default-ipv6-vpn1] peer 2001:1::1 enable
[PE1-bgp-default-ipv6-vpn1] quit
[PE1-bgp-default-vpn1] quit
[PE1-bgp-default] ip vpn-instance vpn2
[PE1-bgp-default-vpn2] peer 2001:2::1 as-number 65420
[PE1-bgp-default-vpn2] address-family ipv6 unicast
[PE1-bgp-default-ipv6-vpn2] peer 2001:2::1 enable
[PE1-bgp-default-ipv6-vpn2] quit
[PE1-bgp-default-vpn2] quit
[PE1-bgp-default] quit
# PE 2的配置与PE 1类似,配置过程省略。
配置完成后,在PE设备上执行display bgp peer ipv6 vpn-instance命令,可以看到PE与CE之间的BGP对等体关系已建立,并达到Established状态。
(5) 在PE之间建立MP-IBGP对等体
# 配置PE 1。
[PE1] bgp 100
[PE1-bgp-default] peer 3.3.3.9 as-number 100
[PE1-bgp-default] peer 3.3.3.9 connect-interface loopback 0
[PE1-bgp-default] address-family vpnv6
[PE1-bgp-default-vpnv6] peer 3.3.3.9 enable
[PE1-bgp-default-vpnv6] quit
[PE1-bgp-default] quit
# 配置PE 2。
[PE2] bgp 100
[PE2-bgp-default] peer 1.1.1.9 as-number 100
[PE2-bgp-default] peer 1.1.1.9 connect-interface loopback 0
[PE2-bgp-default] address-family vpnv6
[PE2-bgp-default-vpnv6] peer 1.1.1.9 enable
[PE2-bgp-default-vpnv6] quit
[PE2-bgp-default] quit
配置完成后,在PE设备上执行display bgp peer vpnv6命令,可以看到PE之间的BGP对等体关系已建立,并达到Established状态。
# 在PE设备上执行display ipv6 routing-table vpn-instance命令,可以看到去往对端CE的路由。
以PE 1为例:
[PE1] display ipv6 routing-table vpn-instance vpn1
Destinations : 6 Routes : 6
Destination: ::1/128 Protocol : Direct
NextHop : ::1 Preference: 0
Interface : InLoop0 Cost : 0
Destination: 2001:1::/96 Protocol : Direct
NextHop : :: Preference: 0
Interface : HGE1/0/1 Cost : 0
Destination: 2001:1::2/128 Protocol : Direct
NextHop : ::1 Preference: 0
Interface : InLoop0 Cost : 0
Destination: 2001:3::/96 Protocol : BGP4+
NextHop : ::FFFF:3.3.3.9 Preference: 255
Interface : HGE1/0/4 Cost : 0
Destination: FE80::/10 Protocol : Direct
NextHop : :: Preference: 0
Interface : NULL0 Cost : 0
Destination: FF00::/8 Protocol : Direct
NextHop : :: Preference: 0
Interface : NULL0 Cost : 0
[PE1] display ipv6 routing-table vpn-instance vpn2
Destinations : 6 Routes : 6
Destination: ::1/128 Protocol : Direct
NextHop : ::1 Preference: 0
Interface : InLoop0 Cost : 0
Destination: 2001:2::/96 Protocol : Direct
NextHop : :: Preference: 0
Interface : HGE1/0/2 Cost : 0
Destination: 2001:2::2/128 Protocol : Direct
NextHop : ::1 Preference: 0
Interface : InLoop0 Cost : 0
Destination: 2001:4::/96 Protocol : BGP4+
NextHop : ::FFFF:3.3.3.9 Preference: 255
Interface : HGE1/0/4 Cost : 0
Destination: FE80::/10 Protocol : Direct
NextHop : :: Preference: 0
Interface : NULL0 Cost : 0
Destination: FF00::/8 Protocol : Direct
NextHop : :: Preference: 0
Interface : NULL0 Cost : 0
# 同一VPN的CE能够相互Ping通,不同VPN的CE不能相互Ping通。例如:CE 1能够Ping通CE 3(2001:3::1),但不能Ping通CE 4(2001:4::1)。
· Spoke-CE之间不能直接通信,只能通过Hub-CE转发Spoke-CE之间的流量。
· Spoke-CE与Spoke-PE之间、Hub-CE与Hub-PE之间配置EBGP交换VPN路由信息。
· Spoke-PE与Hub-PE之间配置OSPF实现PE内部的互通、配置MP-IBGP交换VPN路由信息。
图1-4 Hub&Spoke组网图
设备 |
接口 |
IP地址 |
设备 |
接口 |
IP地址 |
Spoke-CE 1 |
HGE1/0/1 |
11::1/64 |
Hub-CE |
HGE1/0/1 |
13::1/64 |
Spoke-PE 1 |
Loop0 |
1.1.1.9/32 |
|
HGE1/0/2 |
14::1/64 |
|
HGE1/0/1 |
11::2/64 |
Hub-PE |
Loop0 |
2.2.2.9/32 |
|
HGE1/0/4 |
172.1.1.1/24 |
|
HGE1/0/4 |
172.1.1.2/24 |
Spoke-CE 2 |
HGE1/0/1 |
12::1/64 |
|
HGE1/0/5 |
172.2.1.2/24 |
Spoke-PE 2 |
Loop0 |
3.3.3.9/32 |
|
HGE1/0/1 |
13::2/64 |
|
HGE1/0/1 |
12::2/64 |
|
HGE1/0/2 |
14::2/64 |
|
HGE1/0/4 |
172.2.1.1/24 |
|
|
|
(1) 在MPLS骨干网上配置IGP协议,实现骨干网Spoke-PE、Hub-PE之间的互通
# 配置Spoke-PE 1。
<Spoke-PE1> system-view
[Spoke-PE1] interface loopback 0
[Spoke-PE1-LoopBack0] ip address 1.1.1.9 32
[Spoke-PE1-LoopBack0] quit
[Spoke-PE1] interface hundredgige 1/0/4
[Spoke-PE1-HundredGigE1/0/4] ip address 172.1.1.1 24
[Spoke-PE1-HundredGigE1/0/4] quit
[Spoke-PE1] ospf
[Spoke-PE1-ospf-1] area 0
[Spoke-PE1-ospf-1-area-0.0.0.0] network 172.1.1.0 0.0.0.255
[Spoke-PE1-ospf-1-area-0.0.0.0] network 1.1.1.9 0.0.0.0
[Spoke-PE1-ospf-1-area-0.0.0.0] quit
[Spoke-PE1-ospf-1] quit
# 配置Spoke-PE 2。
<Spoke-PE2> system-view
[Spoke-PE2] interface loopback 0
[Spoke-PE2-LoopBack0] ip address 3.3.3.9 32
[Spoke-PE2-LoopBack0] quit
[Spoke-PE2] interface hundredgige 1/0/4
[Spoke-PE2-HundredGigE1/0/4] ip address 172.1.1.1 24
[Spoke-PE2-HundredGigE1/0/4] quit
[Spoke-PE2] ospf
[Spoke-PE2-ospf-1] area 0
[Spoke-PE2-ospf-1-area-0.0.0.0] network 172.2.1.0 0.0.0.255
[Spoke-PE2-ospf-1-area-0.0.0.0] network 3.3.3.9 0.0.0.0
[Spoke-PE2-ospf-1-area-0.0.0.0] quit
[Spoke-PE2-ospf-1] quit
# 配置Hub-PE。
<Hub-PE> system-view
[Hub-PE] interface loopback 0
[Hub-PE-LoopBack0] ip address 2.2.2.9 32
[Hub-PE-LoopBack0] quit
[Hub-PE] interface hundredgige 1/0/4
[Hub-PE-HundredGigE1/0/4] ip address 172.1.1.2 24
[Hub-PE-HundredGigE1/0/4] quit
[Hub-PE] interface hundredgige 1/0/5
[Hub-PE-HundredGigE1/0/5] ip address 172.2.1.2 24
[Hub-PE-HundredGigE1/0/5] quit
[Hub-PE] ospf
[Hub-PE-ospf-1] area 0
[Hub-PE-ospf-1-area-0.0.0.0] network 172.1.1.0 0.0.0.255
[Hub-PE-ospf-1-area-0.0.0.0] network 172.2.1.0 0.0.0.255
[Hub-PE-ospf-1-area-0.0.0.0] network 2.2.2.9 0.0.0.0
[Hub-PE-ospf-1-area-0.0.0.0] quit
[Hub-PE-ospf-1] quit
配置完成后,Spoke-PE 1、Spoke-PE 2、Hub-PE之间应能建立OSPF邻居,执行display ospf peer命令可以看到邻居达到Full状态。执行display ip routing-table命令可以看到PE之间学习到对方的Loopback路由。
(2) 在MPLS骨干网上配置MPLS基本能力和MPLS LDP,建立LDP LSP
# 配置Spoke-PE 1。
[Spoke-PE1] mpls lsr-id 1.1.1.9
[Spoke-PE1] mpls ldp
[Spoke-PE1-ldp] quit
[Spoke-PE1] interface hundredgige 1/0/4
[Spoke-PE1-HundredGigE1/0/4] mpls enable
[Spoke-PE1-HundredGigE1/0/4] mpls ldp enable
[Spoke-PE1-HundredGigE1/0/4] quit
# 配置Spoke-PE 2。
[Spoke-PE2] mpls lsr-id 3.3.3.9
[Spoke-PE2] mpls ldp
[Spoke-PE2-ldp] quit
[Spoke-PE2] interface hundredgige 1/0/4
[Spoke-PE2-HundredGigE1/0/4] mpls enable
[Spoke-PE2-HundredGigE1/0/4] mpls ldp enable
[Spoke-PE2-HundredGigE1/0/4] quit
# 配置Hub-PE。
[Hub-PE] mpls lsr-id 2.2.2.9
[Hub-PE] mpls ldp
[Hub-PE-ldp] quit
[Hub-PE] interface hundredgige 1/0/4
[Hub-PE-HundredGigE1/0/4] mpls enable
[Hub-PE-HundredGigE1/0/4] mpls ldp enable
[Hub-PE-HundredGigE1/0/4] quit
[Hub-PE] interface hundredgige 1/0/5
[Hub-PE-HundredGigE1/0/5] mpls enable
[Hub-PE-HundredGigE1/0/5] mpls ldp enable
[Hub-PE-HundredGigE1/0/5] quit
上述配置完成后,Spoke-PE 1、Spoke-PE 2、Hub-PE之间应能建立LDP会话,执行display mpls ldp peer命令可以看到LDP会话的状态为Operational。执行display mpls ldp lsp命令,可以看到LDP LSP的建立情况。
(3) 在Spoke-PE和Hub-PE设备上配置VPN实例,将CE接入PE
# 配置Spoke-PE 1。
[Spoke-PE1] ip vpn-instance vpn1
[Spoke-PE1-vpn-instance-vpn1] route-distinguisher 100:1
[Spoke-PE1-vpn-instance-vpn1] vpn-target 111:1 import-extcommunity
[Spoke-PE1-vpn-instance-vpn1] vpn-target 222:2 export-extcommunity
[Spoke-PE1-vpn-instance-vpn1] quit
[Spoke-PE1] interface hundredgige 1/0/1
[Spoke-PE1-HundredGigE1/0/1] ip binding vpn-instance vpn1
[Spoke-PE1-HundredGigE1/0/1] ip address 11::2 24
[Spoke-PE1-HundredGigE1/0/1] quit
# 配置Spoke-PE 2。
[Spoke-PE2] ip vpn-instance vpn1
[Spoke-PE2-vpn-instance-vpn1] route-distinguisher 100:2
[Spoke-PE2-vpn-instance-vpn1] vpn-target 111:1 import-extcommunity
[Spoke-PE2-vpn-instance-vpn1] vpn-target 222:2 export-extcommunity
[Spoke-PE2-vpn-instance-vpn1] quit
[Spoke-PE2] interface hundredgige 1/0/1
[Spoke-PE2-HundredGigE1/0/1] ip binding vpn-instance vpn1
[Spoke-PE2-HundredGigE1/0/1] ip address 12::2 24
[Spoke-PE2-HundredGigE1/0/1] quit
# 配置Hub-PE。
[Hub-PE] ip vpn-instance vpn1-in
[Hub-PE-vpn-instance-vpn1-in] route-distinguisher 100:3
[Hub-PE-vpn-instance-vpn1-in] vpn-target 222:2 import-extcommunity
[Hub-PE-vpn-instance-vpn1-in] quit
[Hub-PE] ip vpn-instance vpn1-out
[Hub-PE-vpn-instance-vpn1-out] route-distinguisher 100:4
[Hub-PE-vpn-instance-vpn1-out] vpn-target 111:1 export-extcommunity
[Hub-PE-vpn-instance-vpn1-out] quit
[Hub-PE] interface hundredgige 1/0/1
[Hub-PE-HundredGigE1/0/1] ip binding vpn-instance vpn1-in
[Hub-PE-HundredGigE1/0/1] ip address 13::2 24
[Hub-PE-HundredGigE1/0/1] quit
[Hub-PE] interface hundredgige 1/0/2
[Hub-PE-HundredGigE1/0/2] ip binding vpn-instance vpn1-out
[Hub-PE-HundredGigE1/0/2] ip address 14::2 24
[Hub-PE-HundredGigE1/0/2] quit
# 配置各CE的接口IP地址,配置过程略。
配置完成后,在PE设备上执行display ip vpn-instance命令可以看到VPN实例的配置情况。各PE能ping通自己接入的CE。
(4) 在PE与CE之间建立EBGP对等体,引入VPN路由
# 配置Spoke-CE 1。
<Spoke-CE1> system-view
[Spoke-CE1] bgp 65410
[Spoke-CE1-bgp-default] peer 11::2 as-number 100
[Spoke-CE1-bgp-default] address-family ipv6
[Spoke-CE1-bgp-default-ipv6] peer 11::2 enable
[Spoke-CE1-bgp-default-ipv6] import-route direct
[Spoke-CE1-bgp-default-ipv6] quit
[Spoke-CE1-bgp-default] quit
# 配置Spoke-CE 2。
<Spoke-CE2> system-view
[Spoke-CE2] bgp 65420
[Spoke-CE2-bgp-default] peer 12::2 as-number 100
[Spoke-CE2-bgp-default] address-family ipv6
[Spoke-CE2-bgp-default-ipv6] peer 12::2 enable
[Spoke-CE2-bgp-default-ipv6] import-route direct
[Spoke-CE2-bgp-default-ipv6] quit
[Spoke-CE2-bgp-default] quit
# 配置Hub-CE。
<Hub-CE> system-view
[Hub-CE] bgp 65430
[Hub-CE-bgp-default] peer 13::2 as-number 100
[Hub-CE-bgp-default] peer 14::2 as-number 100
[Hub-CE-bgp-default] address-family ipv6
[Hub-CE-bgp-default-ipv6] peer 13::2 enable
[Hub-CE-bgp-default-ipv6] peer 14::2 enable
[Hub-CE-bgp-default-ipv6] import-route direct
[Hub-CE-bgp-default-ipv6] quit
[Hub-CE-bgp-default] quit
# 配置Spoke-PE 1。
[Spoke-PE1] bgp 100
[Spoke-PE1-bgp-default] ip vpn-instance vpn1
[Spoke-PE1-bgp-default-vpn1] peer 11::1 as-number 65410
[Spoke-PE1-bgp-default-vpn1] address-family ipv6
[Spoke-PE1-bgp-default-ipv6-vpn1] peer 11::1 enable
[Spoke-PE1-bgp-default-ipv6-vpn1] quit
[Spoke-PE1-bgp-default-vpn1] quit
[Spoke-PE1-bgp-default] quit
# 配置Spoke-PE 2。
[Spoke-PE2] bgp 100
[Spoke-PE2-bgp-default] ip vpn-instance vpn1
[Spoke-PE2-bgp-default-vpn1] peer 12::1 as-number 65420
[Spoke-PE2-bgp-default-vpn1] address-family ipv6
[Spoke-PE2-bgp-default-ipv6-vpn1] peer 12::1 enable
[Spoke-PE2-bgp-default-ipv6-vpn1] quit
[Spoke-PE2-bgp-default-vpn1] quit
[Spoke-PE2-bgp-default] quit
# 配置Hub-PE。
[Hub-PE] bgp 100
[Hub-PE-bgp-default] ip vpn-instance vpn1-in
[Hub-PE-bgp-default-vpn1-in] peer 13::1 as-number 65430
[Hub-PE-bgp-default-vpn1-in] address-family ipv6
[Hub-PE-bgp-default-ipv6-vpn1-in] peer 13::1 enable
[Hub-PE-bgp-default-ipv6-vpn1-in] quit
[Hub-PE-bgp-default-vpn1-in] quit
[Hub-PE-bgp-default] ip vpn-instance vpn1-out
[Hub-PE-bgp-default-vpn1-out] peer 14::1 as-number 65430
[Hub-PE-bgp-default-vpn1-out] address-family ipv6
[Hub-PE-bgp-default-ipv6-vpn1-out] peer 14::1 enable
[Hub-PE-bgp-default-ipv6-vpn1-out] peer 14::1 allow-as-loop 2
[Hub-PE-bgp-default-ipv6-vpn1-out] quit
[Hub-PE-bgp-default-vpn1-out] quit
[Hub-PE-bgp-default] quit
配置完成后,在PE设备上执行display bgp peer ipv6 vpn-instance命令,可以看到PE与CE之间的BGP对等体关系已建立,并达到Established状态。
(5) 在Spoke-PE和Hub-PE之间建立MP-IBGP对等体
# 配置Spoke-PE 1。
[Spoke-PE1] bgp 100
[Spoke-PE1-bgp-default] peer 2.2.2.9 as-number 100
[Spoke-PE1-bgp-default] peer 2.2.2.9 connect-interface loopback 0
[Spoke-PE1-bgp-default] address-family vpnv6
[Spoke-PE1-bgp-default-vpnv6] peer 2.2.2.9 enable
[Spoke-PE1-bgp-default-vpnv6] quit
[Spoke-PE1-bgp-default] quit
# 配置Spoke-PE 2。
[Spoke-PE2] bgp 100
[Spoke-PE2-bgp-default] peer 2.2.2.9 as-number 100
[Spoke-PE2-bgp-default] peer 2.2.2.9 connect-interface loopback 0
[Spoke-PE2-bgp-default] address-family vpnv6
[Spoke-PE2-bgp-default-vpnv6] peer 2.2.2.9 enable
[Spoke-PE2-bgp-default-vpnv6] quit
[Spoke-PE2-bgp-default] quit
# 配置Hub-PE。
[Hub-PE] bgp 100
[Hub-PE-bgp-default] peer 1.1.1.9 as-number 100
[Hub-PE-bgp-default] peer 1.1.1.9 connect-interface loopback 0
[Hub-PE-bgp-default] peer 3.3.3.9 as-number 100
[Hub-PE-bgp-default] peer 3.3.3.9 connect-interface loopback 0
[Hub-PE-bgp-default] address-family vpnv6
[Hub-PE-bgp-default-vpnv6] peer 1.1.1.9 enable
[Hub-PE-bgp-default-vpnv6] peer 3.3.3.9 enable
[Hub-PE-bgp-default-vpnv6] quit
[Hub-PE-bgp-default] quit
配置完成后,在PE设备上执行display bgp peer vpnv6命令,可以看到PE之间的BGP对等体关系已建立,并达到Established状态。
# Spoke-CE 1和Spoke-CE 2之间可以ping通。从TTL值可以推算出Spoke-CE 1到Spoke-CE 2经过6跳(64-59+1),即Spoke-CE 1和Spoke-CE 2之间的流量需要通过Hub-CE转发。以Spoke-CE 1为例:
[Spoke-CE1] ping ipv6 12::1
Ping6(56 bytes) 11::1 --> 12::1, press CTRL_C to break
56 bytes from 12::1, icmp_seq=0 hlim=59 time=0.000 ms
56 bytes from 12::1, icmp_seq=1 hlim=59 time=1.000 ms
56 bytes from 12::1, icmp_seq=2 hlim=59 time=0.000 ms
56 bytes from 12::1, icmp_seq=3 hlim=59 time=1.000 ms
56 bytes from 12::1, icmp_seq=4 hlim=59 time=0.000 ms
--- Ping6 statistics for 12::1 ---
5 packet(s) transmitted, 5 packet(s) received, 0.0% packet loss
round-trip min/avg/max/std-dev = 0.000/0.400/1.000/0.490 ms
· CE 1和CE 2属于同一个VPN。
· CE 1通过AS100的PE 1接入,CE2通过AS200的PE 2接入。
· 采用OptionA方式实现跨域的IPv6 MPLS L3VPN,即采用VRF-to-VRF方式管理VPN路由。
· 同一个AS内部的MPLS骨干网使用OSPF作为IGP。
图1-5 配置跨域VPN-OptionA方式组网图
设备 |
接口 |
IP地址 |
设备 |
接口 |
IP地址 |
CE 1 |
HGE1/0/1 |
2001:1::1/96 |
CE 2 |
HGE1/0/1 |
2001:2::1/96 |
PE 1 |
Loop0 |
1.1.1.9/32 |
PE 2 |
Loop0 |
4.4.4.9/32 |
|
HGE1/0/1 |
2001:1::2/96 |
|
HGE1/0/1 |
2001:2::2/96 |
|
HGE1/0/4 |
172.1.1.2/24 |
|
HGE1/0/4 |
162.1.1.2/24 |
ASBR-PE1 |
Loop0 |
2.2.2.9/32 |
ASBR-PE2 |
Loop0 |
3.3.3.9/32 |
|
HGE1/0/4 |
172.1.1.1/24 |
|
HGE1/0/4 |
162.1.1.1/24 |
|
HGE1/0/5 |
2002:1::1/96 |
|
HGE1/0/5 |
2002:1::2/96 |
同一AS内的ASBR-PE与PE的VPN实例的Route Target应能匹配,不同AS的PE的VPN实例的Route Target则不需要匹配。
(1) 在MPLS骨干网上配置IGP协议,实现骨干网内互通
本例中采用OSPF发布接口(包括Loopback接口)所在网段的路由,具体配置步骤略。
配置完成后,ASBR-PE与本AS的PE之间应能建立OSPF邻居,执行display ospf peer命令可以看到邻居达到FULL状态,ASBR-PE与本AS的PE之间能学习到对方的Loopback地址。
ASBR-PE与本AS的PE之间能够互相ping通。
(2) 在MPLS骨干网上配置MPLS基本能力和MPLS LDP,建立LDP LSP
# 配置PE 1的MPLS基本能力,并在与ASBR-PE 1相连的接口上使能LDP。
<PE1> system-view
[PE1] mpls lsr-id 1.1.1.9
[PE1] mpls ldp
[PE1-ldp] quit
[PE1] interface hundredgige 1/0/4
[PE1-HundredGigE1/0/4] mpls enable
[PE1-HundredGigE1/0/4] mpls ldp enable
[PE1-HundredGigE1/0/4] quit
# 配置ASBR-PE 1的MPLS基本能力,并在与PE 1相连的接口上使能LDP。
<ASBR-PE1> system-view
[ASBR-PE1] mpls lsr-id 2.2.2.9
[ASBR-PE1] mpls ldp
[ASBR-PE1-ldp] quit
[ASBR-PE1] interface hundredgige 1/0/4
[ASBR-PE1-HundredGigE1/0/4] mpls enable
[ASBR-PE1-HundredGigE1/0/4] mpls ldp enable
[ASBR-PE1-HundredGigE1/0/4] quit
# 配置ASBR-PE 2的MPLS基本能力,并在与PE 2相连的接口上使能LDP。
<ASBR-PE2> system-view
[ASBR-PE2] mpls lsr-id 3.3.3.9
[ASBR-PE2] mpls ldp
[ASBR-PE2-ldp] quit
[ASBR-PE2] interface hundredgige 1/0/4
[ASBR-PE2-HundredGigE1/0/4] mpls enable
[ASBR-PE2-HundredGigE1/0/4] mpls ldp enable
[ASBR-PE2-HundredGigE1/0/4] quit
# 配置PE 2的MPLS基本能力,并在与ASBR-PE 2相连的接口上使能LDP。
<PE2> system-view
[PE2] mpls lsr-id 4.4.4.9
[PE2] mpls ldp
[PE2-ldp] quit
[PE2] interface hundredgige 1/0/4
[PE2-HundredGigE1/0/4] mpls enable
[PE2-HundredGigE1/0/4] mpls ldp enable
[PE2-HundredGigE1/0/4] quit
上述配置完成后,同一AS的PE和ASBR-PE之间应该建立起LDP邻居,在各设备上执行display mpls ldp peer命令可以看到LDP会话状态为“Operational”。
(3) 在PE设备上配置VPN实例,将CE接入PE
# 配置CE 1。
<CE1> system-view
[CE1] interface hundredgige 1/0/1
[CE1-HundredGigE1/0/1] ipv6 address 2001:1::1 96
[CE1-HundredGigE1/0/1] quit
# 配置PE 1。
[PE1] ip vpn-instance vpn1
[PE1-vpn-instance-vpn1] route-distinguisher 100:2
[PE1-vpn-instance-vpn1] vpn-target 100:1 both
[PE1-vpn-instance-vpn1] quit
[PE1] interface hundredgige 1/0/1
[PE1-HundredGigE1/0/1] ip binding vpn-instance vpn1
[PE1-HundredGigE1/0/1] ipv6 address 2001:1::2 96
[PE1-HundredGigE1/0/1] quit
# 配置CE 2。
<CE2> system-view
[CE2] interface hundredgige 1/0/1
[CE2-HundredGigE1/0/1] ipv6 address 2001:2::1 96
[CE2-HundredGigE1/0/1] quit
# 配置PE 2。
[PE2] ip vpn-instance vpn1
[PE2-vpn-instance-vpn1] route-distinguisher 200:2
[PE2-vpn-instance-vpn1] vpn-target 200:1 both
[PE2-vpn-instance-vpn1] quit
[PE2] interface hundredgige 1/0/1
[PE2-HundredGigE1/0/1] ip binding vpn-instance vpn1
[PE2-HundredGigE1/0/1] ipv6 address 2001:2::2 96
[PE2-HundredGigE1/0/1] quit
# 配置ASBR-PE 1:创建VPN实例,并将此实例绑定到连接ASBR-PE 2的接口(ASBR-PE 1认为ASBR-PE 2是自己的CE)。
[ASBR-PE1] ip vpn-instance vpn1
[ASBR-PE1-vpn-instance-vpn1] route-distinguisher 100:1
[ASBR-PE1-vpn-instance-vpn1] vpn-target 100:1 both
[ASBR-PE1-vpn-instance-vpn1] quit
[ASBR-PE1] interface hundredgige 1/0/5
[ASBR-PE1-HundredGigE1/0/5] ip binding vpn-instance vpn1
[ASBR-PE1-HundredGigE1/0/5] ipv6 address 2002:1::1 96
[ASBR-PE1-HundredGigE1/0/5] quit
# 配置ASBR-PE 2:创建VPN实例,并将此实例绑定到连接ASBR-PE 1的接口(ASBR-PE 2认为ASBR-PE 1是自己的CE)。
[ASBR-PE2] ip vpn-instance vpn1
[ASBR-PE2-vpn-instance-vpn1] route-distinguisher 200:1
[ASBR-PE2-vpn-instance-vpn1] vpn-target 200:1 both
[ASBR-PE2-vpn-instance-vpn1] quit
[ASBR-PE2] interface hundredgige 1/0/5
[ASBR-PE2-HundredGigE1/0/5] ip binding vpn-instance vpn1
[ASBR-PE2-HundredGigE1/0/5] ipv6 address 2002:1::2 96
[ASBR-PE2-HundredGigE1/0/5] quit
上述配置完成后,在各PE设备上执行display ip vpn-instance命令能正确显示VPN实例配置。
各PE能ping通各自的CE。ASBR-PE之间也能互相ping通。
(4) 在PE与CE之间建立EBGP对等体,引入VPN路由
# 配置CE 1。
[CE1] bgp 65001
[CE1-bgp-default] peer 2001:1::2 as-number 100
[CE1-bgp-default] address-family ipv6 unicast
[CE1-bgp-default-ipv6] peer 2001:1::2 enable
[CE1-bgp-default-ipv6] import-route direct
[CE1-bgp-default-ipv6] quit
[CE1-bgp-default] quit
# 配置PE 1。
[PE1] bgp 100
[PE1-bgp-default] ip vpn-instance vpn1
[PE1-bgp-default-vpn1] peer 2001:1::1 as-number 65001
[PE1-bgp-default-vpn1] address-family ipv6 unicast
[PE1-bgp-default-ipv6-vpn1] peer 2001:1::1 enable
[PE1-bgp-default-ipv6-vpn1] quit
[PE1-bgp-default-vpn1] quit
[PE1-bgp-default] quit
# 配置CE 2。
[CE2] bgp 65002
[CE2-bgp-default] peer 2001:2::2 as-number 200
[CE2-bgp-default] address-family ipv6
[CE2-bgp-default-ipv6] peer 2001:2::2 enable
[CE2-bgp-default-ipv6] import-route direct
[CE2-bgp-default-ipv6] quit
[CE2-bgp-default] quit
# 配置PE 2。
[PE2] bgp 200
[PE2-bgp-default] ip vpn-instance vpn1
[PE2-bgp-default-vpn1] peer 2001:2::1 as-number 65002
[PE2-bgp-default-vpn1] address-family ipv6 unicast
[PE2-bgp-default-ipv6-vpn1] peer 2001:2::1 enable
[PE2-bgp-default-ipv6-vpn1] quit
[PE2-bgp-default-vpn1] quit
[PE2-bgp-default] quit
(5) PE与本AS的ASBR-PE之间建立IBGP对等体,ASBR-PE之间建立EBGP对等体
# 配置PE 1。
[PE1] bgp 100
[PE1-bgp-default] peer 2.2.2.9 as-number 100
[PE1-bgp-default] peer 2.2.2.9 connect-interface loopback 0
[PE1-bgp-default] address-family vpnv6
[PE1-bgp-default-vpnv6] peer 2.2.2.9 enable
[PE1-bgp-default-vpnv6] quit
[PE1-bgp-default] quit
# 配置ASBR-PE 1。
[ASBR-PE1] bgp 100
[ASBR-PE1-bgp-default] ip vpn-instance vpn1
[ASBR-PE1-bgp-default-vpn1] peer 2002:1::2 as-number 200
[ASBR-PE1-bgp-default-vpn1] address-family ipv6 unicast
[ASBR-PE1-bgp-default-ipv6-vpn1] peer 2002:1::2 enable
[ASBR-PE1-bgp-default-ipv6-vpn1] quit
[ASBR-PE1-bgp-default-vpn1] quit
[ASBR-PE1-bgp-default] peer 1.1.1.9 as-number 100
[ASBR-PE1-bgp-default] peer 1.1.1.9 connect-interface loopback 0
[ASBR-PE1-bgp-default] address-family vpnv6
[ASBR-PE1-bgp-default-vpnv6] peer 1.1.1.9 enable
[ASBR-PE1-bgp-default-vpnv6] quit
[ASBR-PE1-bgp-default] quit
# 配置ASBR-PE 2。
[ASBR-PE2] bgp 200
[ASBR-PE2-bgp-default] ip vpn-instance vpn1
[ASBR-PE2-bgp-default-vpn1] peer 2002:1::1 as-number 100
[ASBR-PE2-bgp-default-vpn1] address-family ipv6 unicast
[ASBR-PE2-bgp-default-ipv6-vpn1] peer 2002:1::1 enable
[ASBR-PE2-bgp-default-ipv6-vpn1] quit
[ASBR-PE2-bgp-default-vpn1] quit
[ASBR-PE2-bgp-default] peer 4.4.4.9 as-number 200
[ASBR-PE2-bgp-default] peer 4.4.4.9 connect-interface loopback 0
[ASBR-PE2-bgp-default] address-family vpnv6
[ASBR-PE2-bgp-default-vpnv6] peer 4.4.4.9 enable
[ASBR-PE2-bgp-default-vpnv6] quit
[ASBR-PE2-bgp-default] quit
# 配置PE 2。
[PE2] bgp 200
[PE2-bgp-default] peer 3.3.3.9 as-number 200
[PE2-bgp-default] peer 3.3.3.9 connect-interface loopback 0
[PE2-bgp-default] address-family vpnv6
[PE2-bgp-default-vpnv6] peer 3.3.3.9 enable
[PE2-bgp-default-vpnv6] quit
[PE2-bgp-default] quit
上述配置完成后,CE之间能学习到对方的接口路由,CE 1和CE 2能够相互ping通。
· Site 1和Site 2属于同一个VPN,Site 1的CE 1通过AS 100的PE 1接入,Site 2的CE 2通过AS 600的PE 2接入;
· 同一自治系统内的PE设备之间运行IS-IS作为IGP;
· PE 1与ASBR-PE 1间通过MP-IBGP交换VPNv6路由;
· PE 2与ASBR-PE 2间通过MP-IBGP交换VPNv6路由;
· ASBR-PE 1与ASBR-PE 2间通过MP-EBGP交换VPNv6路由;
· ASBR上不对接收的VPNv6路由进行Route Target过滤。
图1-6 配置IPv6跨域VPN-OptionB方式组网图
设备 |
接口 |
IP地址 |
设备 |
接口 |
IP地址 |
PE 1 |
Loop0 |
2.2.2.9/32 |
PE 2 |
Loop0 |
5.5.5.9/32 |
|
HGE1/0/1 |
30::1/64 |
|
HGE1/0/1 |
20::1/64 |
|
HGE1/0/5 |
1.1.1.2/8 |
|
HGE1/0/5 |
9.1.1.2/8 |
ASBR-PE 1 |
Loop0 |
3.3.3.9/32 |
ASBR-PE 2 |
Loop0 |
4.4.4.9/32 |
|
HGE1/0/5 |
1.1.1.1/8 |
|
HGE1/0/5 |
9.1.1.1/8 |
|
HGE1/0/4 |
11.0.0.2/8 |
|
HGE1/0/4 |
11.0.0.1/8 |
(1) 配置PE 1
# 在PE 1上运行IS-IS。
<PE1> system-view
[PE1] isis 1
[PE1-isis-1] network-entity 10.0000.0000.0000.0001.00
[PE1-isis-1] quit
# 配置LSR ID,使能MPLS和LDP。
[PE1] mpls lsr-id 2.2.2.9
[PE1] mpls ldp
[PE1-ldp] quit
# 配置接口HundredGigE1/0/5,在接口上运行IS-IS,并使能MPLS和LDP。
[PE1] interface hundredgige 1/0/5
[PE1-HundredGigE1/0/5] ip address 1.1.1.2 255.0.0.0
[PE1-HundredGigE1/0/5] isis enable 1
[PE1-HundredGigE1/0/5] mpls enable
[PE1-HundredGigE1/0/5] mpls ldp enable
[PE1-HundredGigE1/0/5] quit
# 创建Loopback0接口,在接口上运行IS-IS。
[PE1] interface loopback 0
[PE1-LoopBack0] ip address 2.2.2.9 32
[PE1-LoopBack0] isis enable 1
[PE1-LoopBack0] quit
# 创建一个VPN实例,名为vpn1,配置RD和Route Target属性。
[PE1] ip vpn-instance vpn1
[PE1-vpn-instance-vpn1] route-distinguisher 11:11
[PE1-vpn-instance-vpn1] vpn-target 1:1 2:2 import-extcommunity
[PE1-vpn-instance-vpn1] vpn-target 1:1 export-extcommunity
[PE1-vpn-instance-vpn1] quit
# 将连接CE 1的接口绑定到创建的VPN实例。
[PE1] interface hundredgige 1/0/1
[PE1-HundredGigE1/0/1] ip binding vpn-instance vpn1
[PE1-HundredGigE1/0/1] ip address 30::1 64
[PE1-HundredGigE1/0/1] quit
# 在PE 1上运行BGP。
[PE1] bgp 100
# 配置IBGP对等体3.3.3.9为VPNv6对等体。
[PE1-bgp-default] peer 3.3.3.9 as-number 100
[PE1-bgp-default] peer 3.3.3.9 connect-interface loopback 0
[PE1-bgp-default] address-family vpnv6
[PE1-bgp-default-vpnv6] peer 3.3.3.9 enable
[PE1-bgp-default-vpnv6] quit
# 将直连路由引入vpn1的VPN路由表。
[PE1-bgp-default] ip vpn-instance vpn1
[PE1-bgp-default-vpn1] address-family ipv6 unicast
[PE1-bgp-default-ipv6-vpn1] import-route direct
[PE1-bgp-default-ipv6-vpn1] quit
[PE1-bgp-default-vpn1] quit
[PE1-bgp-default] quit
(2) 配置ASBR-PE 1
# 在ASBR-PE 1上运行IS-IS。
<ASBR-PE1> system-view
[ASBR-PE1] isis 1
[ASBR-PE1-isis-1] network-entity 10.0000.0000.0000.0002.00
[ASBR-PE1-isis-1] quit
# 配置LSR ID,使能MPLS和LDP。
[ASBR-PE1] mpls lsr-id 3.3.3.9
[ASBR-PE1] mpls ldp
[ASBR-PE1-ldp] quit
# 配置接口HundredGigE1/0/5,在接口上运行IS-IS,并使能MPLS和LDP。
[ASBR-PE1] interface hundredgige 1/0/5
[ASBR-PE1-HundredGigE1/0/5] ip address 1.1.1.1 255.0.0.0
[ASBR-PE1-HundredGigE1/0/5] isis enable 1
[ASBR-PE1-HundredGigE1/0/5] mpls enable
[ASBR-PE1-HundredGigE1/0/5] mpls ldp enable
[ASBR-PE1-HundredGigE1/0/5] quit
# 配置接口HundredGigE1/0/4,使能MPLS。
[ASBR-PE1] interface hundredgige 1/0/4
[ASBR-PE1-HundredGigE1/0/4] ip address 11.0.0.2 255.0.0.0
[ASBR-PE1-HundredGigE1/0/4] mpls enable
[ASBR-PE1-HundredGigE1/0/4] quit
# 创建Loopback0接口,并运行IS-IS。
[ASBR-PE1] interface loopback 0
[ASBR-PE1-LoopBack0] ip address 3.3.3.9 32
[ASBR-PE1-LoopBack0] isis enable 1
[ASBR-PE1-LoopBack0] quit
# 在ASBR-PE 1上运行BGP。
[ASBR-PE1] bgp 100
[ASBR-PE1-bgp-default] peer 2.2.2.9 as-number 100
[ASBR-PE1-bgp-default] peer 2.2.2.9 connect-interface loopback 0
[ASBR-PE1-bgp-default] peer 11.0.0.1 as-number 600
[ASBR-PE1-bgp-default] peer 11.0.0.1 connect-interface hundredgige 1/0/4
# 不对接收的VPNv6路由进行Route target过滤。
[ASBR-PE1-bgp-default] address-family vpnv6
[ASBR-PE1-bgp-default-vpnv6] undo policy vpn-target
# 将IBGP对等体2.2.2.9和EBGP对等体11.0.0.1都配置为VPNv6对等体。
[ASBR-PE1-bgp-default-vpnv6] peer 11.0.0.1 enable
[ASBR-PE1-bgp-default-vpnv6] peer 2.2.2.9 enable
[ASBR-PE1-bgp-default-vpnv6] quit
(3) 配置ASBR-PE 2
# 在ASBR-PE 2上运行IS-IS。
<ASBR-PE2> system-view
[ASBR-PE2] isis 1
[ASBR-PE2-isis-1] network-entity 10.0000.0000.0000.0003.00
[ASBR-PE2-isis-1] quit
# 配置LSR ID,使能MPLS和LDP。
[ASBR-PE2] mpls lsr-id 4.4.4.9
[ASBR-PE2] mpls ldp
[ASBR-PE2-ldp] quit
# 配置接口HundredGigE1/0/5,在接口上运行IS-IS,并使能MPLS和LDP。
[ASBR-PE2] interface hundredgige 1/0/5
[ASBR-PE2-HundredGigE1/0/5] ip address 9.1.1.1 255.0.0.0
[ASBR-PE2-HundredGigE1/0/5] isis enable 1
[ASBR-PE2-HundredGigE1/0/5] mpls enable
[ASBR-PE2-HundredGigE1/0/5] mpls ldp enable
[ASBR-PE2-HundredGigE1/0/5] quit
# 配置接口HundredGigE1/0/4,使能MPLS。
[ASBR-PE2] interface hundredgige 1/0/4
[ASBR-PE2-HundredGigE1/0/4] ip address 11.0.0.1 255.0.0.0
[ASBR-PE2-HundredGigE1/0/4] mpls enable
[ASBR-PE2-HundredGigE1/0/4] quit
# 创建Loopback0接口,并运行IS-IS。
[ASBR-PE2] interface loopback 0
[ASBR-PE2-LoopBack0] ip address 4.4.4.9 32
[ASBR-PE2-LoopBack0] isis enable 1
[ASBR-PE2-LoopBack0] quit
# 在ASBR-PE 2上运行BGP。
[ASBR-PE2] bgp 600
[ASBR-PE2-bgp-default] peer 11.0.0.2 as-number 100
[ASBR-PE2-bgp-default] peer 11.0.0.2 connect-interface hundredgige 1/0/4
[ASBR-PE2-bgp-default] peer 5.5.5.9 as-number 600
[ASBR-PE2-bgp-default] peer 5.5.5.9 connect-interface loopback 0
# 不对接收的VPNv6路由进行Route target过滤。
[ASBR-PE2-bgp-default] address-family vpnv6
[ASBR-PE2-bgp-default-vpnv6] undo policy vpn-target
# 将IBGP对等体5.5.5.9和EBGP对等体11.0.0.2都配置为VPNv6对等体。
[ASBR-PE2-bgp-default-vpnv6] peer 11.0.0.2 enable
[ASBR-PE2-bgp-default-vpnv6] peer 5.5.5.9 enable
[ASBR-PE2-bgp-default-vpnv6] quit
[ASBR-PE2-bgp-default] quit
(4) 配置PE 2
# 在PE 2上运行IS-IS。
<PE2> system-view
[PE2] isis 1
[PE2-isis-1] network-entity 10.0000.0000.0000.0004.00
[PE2-isis-1] quit
# 配置LSR ID,使能MPLS和LDP。
[PE2] mpls lsr-id 5.5.5.9
[PE2] mpls ldp
[PE2-ldp] quit
# 配置接口HundredGigE1/0/5,在接口上运行IS-IS,并使能MPLS和LDP。
[PE2] interface hundredgige 1/0/5
[PE2-HundredGigE1/0/5] ip address 9.1.1.2 255.0.0.0
[PE2-HundredGigE1/0/5] isis enable 1
[PE2-HundredGigE1/0/5] mpls enable
[PE2-HundredGigE1/0/5] mpls ldp enable
[PE2-HundredGigE1/0/5] quit
# 创建Loopback0接口,在接口上运行IS-IS。
[PE2] interface loopback 0
[PE2-LoopBack0] ip address 5.5.5.9 32
[PE2-LoopBack0] isis enable 1
[PE2-LoopBack0] quit
# 创建一个VPN实例,名为vpn1,配置RD和Route Target属性。
[PE2] ip vpn-instance vpn1
[PE2-vpn-instance-vpn1] route-distinguisher 12:12
[PE2-vpn-instance-vpn1] vpn-target 1:1 2:2 import-extcommunity
[PE2-vpn-instance-vpn1] vpn-target 2:2 export-extcommunity
[PE2-vpn-instance-vpn1] quit
# 将连接CE 1的接口绑定到创建的VPN实例。
[PE2] interface hundredgige 1/0/1
[PE2-HundredGigE1/0/1] ip binding vpn-instance vpn1
[PE2-HundredGigE1/0/1] ip address 20::1 64
[PE2-HundredGigE1/0/1] quit
# 在PE 2上运行BGP。
[PE2] bgp 600
# 配置IBGP对等体4.4.4.9为VPNv6对等体。
[PE2-bgp-default] peer 4.4.4.9 as-number 600
[PE2-bgp-default] peer 4.4.4.9 connect-interface loopback 0
[PE2-bgp-default] address-family vpnv6
[PE2-bgp-default-vpnv6] peer 4.4.4.9 enable
[PE2-bgp-default-vpnv6] quit
# 将直连路由引入vpn1的VPN路由表。
[PE2-bgp-default] ip vpn-instance vpn1
[PE2-bgp-default-vpn1] address-family ipv6 unicast
[PE2-bgp-default-ipv6-vpn1] import-route direct
[PE2-bgp-default-ipv6-vpn1] quit
[PE2-bgp-default-vpn1] quit
[PE2-bgp-default] quit
# 配置完成后,PE 1和PE 2上连接CE的接口HundredGigE1/0/1之间可以互相Ping通。以PE 1为例:
[PE1] ping ipv6 -a 30::1 -vpn-instance vpn1 20::1
Ping6(56 data bytes) 30::1 --> 20::1, press CTRL_C to break
56 bytes from 20::1: icmp_seq=0 hlim=64 time=1.208 ms
56 bytes from 20::1: icmp_seq=1 hlim=64 time=0.867 ms
56 bytes from 20::1: icmp_seq=2 hlim=64 time=0.551 ms
56 bytes from 20::1: icmp_seq=3 hlim=64 time=0.566 ms
56 bytes from 20::1: icmp_seq=4 hlim=64 time=0.570 ms
--- Ping6 statistics for 20::1 in VPN instance vpn1---
5 packet(s) transmitted, 5 packet(s) received, 0.0% packet loss
round-trip min/avg/max/std-dev = 0.551/0.752/1.208/0.257 ms
· Site 1和Site 2属于同一个VPN,Site 1通过AS 100的PE 1接入,Site 2通过AS 600的PE 2接入;
· 同一自治系统内的PE设备之间运行IS-IS作为IGP;
· PE 1与ASBR-PE 1间通过IBGP交换带标签的IPv4路由;
· PE 2与ASBR-PE 2间通过IBGP交换带标签的IPv4路由;
· PE 1与PE 2建立MP-EBGP对等体交换VPNv6路由;
· ASBR-PE 1和ASBR-PE 2上分别配置路由策略,对从对方接收的路由压入标签;
· ASBR-PE 1与ASBR-PE 2间通过EBGP交换带标签的IPv4路由。
图1-7 配置IPv6跨域VPN-OptionC方式组网图
设备 |
接口 |
IP地址 |
设备 |
接口 |
IP地址 |
PE 1 |
Loop0 |
2.2.2.9/32 |
PE 2 |
Loop0 |
5.5.5.9/32 |
|
HGE1/0/1 |
2001::1/64 |
|
HGE1/0/1 |
2002::1/64 |
|
HGE1/0/5 |
1.1.1.2/8 |
|
HGE1/0/5 |
9.1.1.2/8 |
ASBR-PE 1 |
Loop0 |
3.3.3.9/32 |
ASBR-PE 2 |
Loop0 |
4.4.4.9/32 |
|
HGE1/0/5 |
1.1.1.1/8 |
|
HGE1/0/5 |
9.1.1.1/8 |
|
HGE1/0/4 |
11.0.0.2/8 |
|
HGE1/0/4 |
11.0.0.1/8 |
CE 1 |
HGE1/0/1 |
2001::2/64 |
CE 1 |
HGE1/0/1 |
2002::2/64 |
(1) 配置CE 1
# 配置接口HundredGigE1/0/1的IPv6地址。
<CE1> system-view
[CE1] interface hundredgige 1/0/1
[CE1-HundredGigE1/0/1] ipv6 address 2001::2 64
[CE1-HundredGigE1/0/1] quit
# 配置CE 1与PE 1建立EBGP对等体,并引入VPN路由。
[CE1] bgp 65001
[CE1-bgp-default] peer 2001::1 as-number 100
[CE1-bgp-default] address-family ipv6 unicast
[CE1-bgp-default-ipv6] peer 2001::1 enable
[CE1-bgp-default-ipv6] import-route direct
[CE1-bgp-default-ipv6] quit
[CE1-bgp-default] quit
(2) 配置PE 1
# 在PE 1上运行IS-IS。
<PE1> system-view
[PE1] isis 1
[PE1-isis-1] network-entity 10.0000.0000.0000.0001.00
[PE1-isis-1] quit
# 配置LSR ID,使能MPLS和LDP。
[PE1] mpls lsr-id 2.2.2.9
[PE1] mpls ldp
[PE1-ldp] quit
# 配置接口HundredGigE1/0/5,在接口上运行IS-IS,并使能MPLS和LDP。
[PE1] interface hundredgige 1/0/5
[PE1-HundredGigE1/0/5] ip address 1.1.1.2 255.0.0.0
[PE1-HundredGigE1/0/5] isis enable 1
[PE1-HundredGigE1/0/5] mpls enable
[PE1-HundredGigE1/0/5] mpls ldp enable
[PE1-HundredGigE1/0/5] quit
# 创建Loopback0接口,在接口上运行IS-IS。
[PE1] interface loopback 0
[PE1-LoopBack0] ip address 2.2.2.9 32
[PE1-LoopBack0] isis enable 1
[PE1-LoopBack0] quit
# 创建VPN实例,名称为vpn1,为其配置RD和Route Target属性。
[PE1] ip vpn-instance vpn1
[PE1-vpn-instance-vpn1] route-distinguisher 11:11
[PE1-vpn-instance-vpn1] vpn-target 3:3 import-extcommunity
[PE1-vpn-instance-vpn1] vpn-target 3:3 export-extcommunity
[PE1-vpn-instance-vpn1] quit
# 配置接口HundredGigE1/0/1与VPN实例vpn1绑定,并配置该接口的IPv6地址。
[PE1] interface hundredgige 1/0/1
[PE1-HundredGigE1/0/1] ip binding vpn-instance vpn1
[PE1-HundredGigE1/0/1] ipv6 address 2001::1 64
[PE1-HundredGigE1/0/1] quit
# 在PE 1上运行BGP。
[PE1] bgp 100
# 配置PE 1向IBGP对等体3.3.3.9发布标签路由及从3.3.3.9接收标签路由的能力。
[PE1-bgp-default] peer 3.3.3.9 as-number 100
[PE1-bgp-default] peer 3.3.3.9 connect-interface loopback 0
[PE1-bgp-default] address-family ipv4 unicast
[PE1-bgp-default-ipv4] peer 3.3.3.9 enable
[PE1-bgp-default-ipv4] peer 3.3.3.9 label-route-capability
[PE1-bgp-default-ipv4] quit
# 配置PE 1到EBGP对等体5.5.5.9的最大跳数为10。
[PE1-bgp-default] peer 5.5.5.9 as-number 600
[PE1-bgp-default] peer 5.5.5.9 connect-interface loopback 0
[PE1-bgp-default] peer 5.5.5.9 ebgp-max-hop 10
# 配置对等体5.5.5.9作为VPNv6对等体。
[PE1-bgp-default] address-family vpnv6
[PE1-bgp-default-vpnv6] peer 5.5.5.9 enable
[PE1-bgp-default-vpnv6] quit
# 配置PE 1与CE 1建立EBGP对等体,将学习到的BGP路由添加到VPN实例的路由表中。
[PE1-bgp-default] ip vpn-instance vpn1
[PE1-bgp-default-vpn1] peer 2001::2 as-number 65001
[PE1-bgp-default-vpn1] address-family ipv6 unicast
[PE1-bgp-default-ipv6-vpn1] peer 2001::2 enable
[PE1-bgp-default-ipv6-vpn1] quit
[PE1-bgp-default-vpn1] quit
[PE1-bgp-default] quit
(3) 配置ASBR-PE1
# 在ASBR-PE1上运行IS-IS。
<ASBR-PE1> system-view
[ASBR-PE1] isis 1
[ASBR-PE1-isis-1] network-entity 10.0000.0000.0000.0002.00
[ASBR-PE1-isis-1] quit
# 配置LSR ID,使能MPLS和LDP。
[ASBR-PE1] mpls lsr-id 3.3.3.9
[ASBR-PE1] mpls ldp
[ASBR-PE1-ldp] quit
# 配置接口HundredGigE1/0/5,在接口上运行IS-IS,并使能MPLS和LDP。
[ASBR-PE1] interface hundredgige 1/0/5
[ASBR-PE1-HundredGigE1/0/5] ip address 1.1.1.1 255.0.0.0
[ASBR-PE1-HundredGigE1/0/5] isis enable 1
[ASBR-PE1-HundredGigE1/0/5] mpls enable
[ASBR-PE1-HundredGigE1/0/5] mpls ldp enable
[ASBR-PE1-HundredGigE1/0/5] quit
# 配置接口HundredGigE1/0/4,并在接口上使能MPLS。
[ASBR-PE1] interface hundredgige 1/0/4
[ASBR-PE1-HundredGigE1/0/4] ip address 11.0.0.2 255.0.0.0
[ASBR-PE1-HundredGigE1/0/4] mpls enable
[ASBR-PE1-HundredGigE1/0/4] quit
# 创建Loopback0接口,在接口上运行IS-IS。
[ASBR-PE1] interface loopback 0
[ASBR-PE1-LoopBack0] ip address 3.3.3.9 32
[ASBR-PE1-LoopBack0] isis enable 1
[ASBR-PE1-LoopBack0] quit
# 创建路由策略。
[ASBR-PE1] route-policy policy1 permit node 1
[ASBR-PE1-route-policy-policy1-1] apply mpls-label
[ASBR-PE1-route-policy-policy1-1] quit
[ASBR-PE1] route-policy policy2 permit node 1
[ASBR-PE1-route-policy-policy2-1] if-match mpls-label
[ASBR-PE1-route-policy-policy2-1] apply mpls-label
[ASBR-PE1-route-policy-policy2-1] quit
# 在ASBR-PE 1上运行BGP,对向IBGP对等体2.2.2.9发布的路由应用已配置的路由策略policy2。
[ASBR-PE1] bgp 100
[ASBR-PE1-bgp-default] peer 2.2.2.9 as-number 100
[ASBR-PE1-bgp-default] peer 2.2.2.9 connect-interface loopback 0
[ASBR-PE1-bgp-default] address-family ipv4 unicast
[ASBR-PE1-bgp-default-ipv4] peer 2.2.2.9 enable
[ASBR-PE1-bgp-default-ipv4] peer 2.2.2.9 route-policy policy2 export
# 向IBGP对等体2.2.2.9发布标签路由及从2.2.2.9接收标签路由的能力。
[ASBR-PE1-bgp-default-ipv4] peer 2.2.2.9 label-route-capability
# 引入IS-IS进程1的路由。
[ASBR-PE1-bgp-default-ipv4] import-route isis 1
[ASBR-PE1-bgp-default-ipv4] quit
# 对向EBGP对等体11.0.0.1发布的路由应用已配置的路由策略policy1。
[ASBR-PE1-bgp-default] peer 11.0.0.1 as-number 600
[ASBR-PE1-bgp-default] address-family ipv4 unicast
[ASBR-PE1-bgp-default-ipv4] peer 11.0.0.1 enable
[ASBR-PE1-bgp-default-ipv4] peer 11.0.0.1 route-policy policy1 export
# 向EBGP对等体11.0.0.1发布标签路由及从11.0.0.1接收标签路由的能力。
[ASBR-PE1-bgp-default-ipv4] peer 11.0.0.1 label-route-capability
[ASBR-PE1-bgp-default-ipv4] quit
[ASBR-PE1-bgp-default] quit
(4) 配置ASBR-PE 2
# 在ASBR-PE 2上运行IS-IS。
<ASBR-PE2> system-view
[ASBR-PE2] isis 1
[ASBR-PE2-isis-1] network-entity 10.0000.0000.0000.0003.00
[ASBR-PE2-isis-1] quit
# 配置LSR ID,使能MPLS和LDP。
[ASBR-PE2] mpls lsr-id 4.4.4.9
[ASBR-PE2] mpls ldp
[ASBR-PE2-ldp] quit
# 配置接口HundredGigE1/0/5,在接口上运行IS-IS,并在接口上使能MPLS和LDP。
[ASBR-PE2] interface hundredgige 1/0/5
[ASBR-PE2-HundredGigE1/0/5] ip address 9.1.1.1 255.0.0.0
[ASBR-PE2-HundredGigE1/0/5] isis enable 1
[ASBR-PE2-HundredGigE1/0/5] mpls enable
[ASBR-PE2-HundredGigE1/0/5] mpls ldp enable
[ASBR-PE2-HundredGigE1/0/5] quit
# 创建Loopback0接口,在接口上运行IS-IS。
[ASBR-PE2] interface loopback 0
[ASBR-PE2-LoopBack0] ip address 4.4.4.9 32
[ASBR-PE2-LoopBack0] isis enable 1
[ASBR-PE2-LoopBack0] quit
# 配置接口HundredGigE1/0/4,在接口上使能MPLS。
[ASBR-PE2] interface hundredgige 1/0/4
[ASBR-PE2-HundredGigE1/0/4] ip address 11.0.0.1 255.0.0.0
[ASBR-PE2-HundredGigE1/0/4] mpls enable
[ASBR-PE2-HundredGigE1/0/4] quit
# 创建路由策略。
[ASBR-PE2] route-policy policy1 permit node 1
[ASBR-PE2-route-policy-policy1-1] apply mpls-label
[ASBR-PE2-route-policy-policy1-1] quit
[ASBR-PE2] route-policy policy2 permit node 1
[ASBR-PE2-route-policy-policy2-1] if-match mpls-label
[ASBR-PE2-route-policy-policy2-1] apply mpls-label
[ASBR-PE2-route-policy-policy2-1] quit
# 在ASBR-PE 2上运行BGP,向IBGP对等体5.5.5.9发布标签路由及从5.5.5.9接收标签路由的能力。
[ASBR-PE2] bgp 600
[ASBR-PE2-bgp-default] peer 5.5.5.9 as-number 600
[ASBR-PE2-bgp-default] peer 5.5.5.9 connect-interface loopback 0
[ASBR-PE2-bgp-default] address-family ipv4 unicast
[ASBR-PE2-bgp-default-ipv4] peer 5.5.5.9 enable
[ASBR-PE2-bgp-default-ipv4] peer 5.5.5.9 label-route-capability
# 对向IBGP对等体5.5.5.9发布的路由应用已配置的路由策略policy2。
[ASBR-PE2-bgp-default-ipv4] peer 5.5.5.9 route-policy policy2 export
# 引入IS-IS进程1的路由。
[ASBR-PE2-bgp-default-ipv4] import-route isis 1
[ASBR-PE2-bgp-default-ipv4] quit
# 对向EBGP对等体11.0.0.2发布的路由应用已配置的路由策略policy1。
[ASBR-PE2-bgp-default] peer 11.0.0.2 as-number 100
[ASBR-PE2-bgp-default] address-family ipv4 unicast
[ASBR-PE2-bgp-default-ipv4] peer 11.0.0.2 enable
[ASBR-PE2-bgp-default-ipv4] peer 11.0.0.2 route-policy policy1 export
# 向EBGP对等体11.0.0.2发布标签路由及从11.0.0.2接收标签路由的能力。
[ASBR-PE2-bgp-default-ipv4] peer 11.0.0.2 label-route-capability
[ASBR-PE2-bgp-default-ipv4] quit
[ASBR-PE2-bgp-default] quit
(5) 配置PE 2
# 在PE 2上运行IS-IS。
<PE2> system-view
[PE2] isis 1
[PE2-isis-1] network-entity 10.0000.0000.0000.0004.00
[PE2-isis-1] quit
# 配置LSR ID,使能MPLS和LDP。
[PE2] mpls lsr-id 5.5.5.9
[PE2] mpls ldp
[PE2-ldp] quit
# 配置接口HundredGigE1/0/5,在接口上运行IS-IS,并使能MPLS和LDP。
[PE2] interface hundredgige 1/0/5
[PE2-HundredGigE1/0/5] ip address 9.1.1.2 255.0.0.0
[PE2-HundredGigE1/0/5] isis enable 1
[PE2-HundredGigE1/0/5] mpls enable
[PE2-HundredGigE1/0/5] mpls ldp enable
[PE2-HundredGigE1/0/5] quit
# 创建Loopback0接口,在接口上运行IS-IS。
[PE2] interface loopback 0
[PE2-LoopBack0] ip address 5.5.5.9 32
[PE2-LoopBack0] isis enable 1
[PE2-LoopBack0] quit
# 创建VPN实例,名称为vpn1,为其配置RD和Route Target属性。
[PE2] ip vpn-instance vpn1
[PE2-vpn-instance-vpn1] route-distinguisher 11:11
[PE2-vpn-instance-vpn1] vpn-target 3:3 import-extcommunity
[PE2-vpn-instance-vpn1] vpn-target 3:3 export-extcommunity
[PE2-vpn-instance-vpn1] quit
# 配置接口HundredGigE1/0/1与VPN实例vpn1绑定,并配置该接口的IPv6地址。
[PE2] interface hundredgige 1/0/1
[PE2-HundredGigE1/0/1] ip binding vpn-instance vpn1
[PE2-HundredGigE1/0/1] ipv6 address 2002::1 64
[PE2-HundredGigE1/0/1] quit
# 在PE 2上运行BGP。
[PE2] bgp 600
# 配置PE 2向IBGP对等体4.4.4.9发布标签路由及从4.4.4.9接收标签路由的能力。
[PE2-bgp-default] peer 4.4.4.9 as-number 600
[PE2-bgp-default] peer 4.4.4.9 connect-interface loopback 0
[PE2-bgp-default] address-family ipv4 unicast
[PE2-bgp-default-ipv4] peer 4.4.4.9 enable
[PE2-bgp-default-ipv4] peer 4.4.4.9 label-route-capability
[PE2-bgp-default-ipv4] quit
# 配置PE 2到EBGP对等体2.2.2.9的最大跳数为10。
[PE2-bgp-default] peer 2.2.2.9 as-number 100
[PE2-bgp-default] peer 2.2.2.9 connect-interface loopback 0
[PE2-bgp-default] peer 2.2.2.9 ebgp-max-hop 10
# 配置对等体2.2.2.9作为VPNv6对等体。
[PE2-bgp-default] address-family vpnv6
[PE2-bgp-default-vpnv6] peer 2.2.2.9 enable
[PE2-bgp-default-vpnv6] quit
# 配置PE 2与CE 2建立EBGP对等体,将学习到的BGP路由添加到VPN实例的路由表中。
[PE2-bgp-default] ip vpn-instance vpn1
[PE2-bgp-default-vpn1] peer 2002::2 as-number 65002
[PE2-bgp-default-vpn1] address-family ipv6 unicast
[PE2-bgp-default-ipv6-vpn1] peer 2002::2 enable
[PE2-bgp-default-ipv6-vpn1] quit
[PE2-bgp-default-vpn1] quit
[PE2-bgp-default] quit
(6) 配置CE 2
# 配置接口HundredGigE1/0/1的IPv6地址。
<CE2> system-view
[CE2] interface hundredgige 1/0/1
[CE2-HundredGigE1/0/1] ipv6 address 2002::2 64
[CE2-HundredGigE1/0/1] quit
# 配置CE 2与PE 2建立EBGP对等体,并引入VPN路由。
[CE2] bgp 65002
[CE2-bgp-default] peer 2002::1 as-number 600
[CE2-bgp-default] address-family ipv6 unicast
[CE2-bgp-default-ipv6] peer 2002::1 enable
[CE2-bgp-default-ipv6] import-route direct
[CE2-bgp-default-ipv6] quit
[CE2-bgp-default] quit
# 配置完成后,在CE 1和CE 2上执行display ipv6 routing-table命令可以查看到到达对方的路由,且CE 1和CE 2互相可以ping通。
在图1-8中:
· PE 1和PE 2是一级运营商骨干网的PE设备,为二级运营商提供VPN服务;
· CE 1和CE 2是同一个二级运营商的设备,作为CE接入一级运营商的骨干网;
· PE 3和PE 4是二级运营商的PE设备,为二级运营商的客户提供IPv6 MPLS L3VPN服务;
· CE 3和CE 4是二级运营商的客户;
· 一级运营商和二级运营商位于同一个AS域。
配置运营商的运营商关键在于配置两类路由的交换:
· 二级运营商VPN内部路由在一级运营商骨干网上的交换:一级运营商将二级运营商作为自己的CE接入;
· 二级运营商本身客户的VPN路由在二级运营商PE设备间的交换:需要在二级运营商PE设备(PE 3和PE 4)间建立MP-IBGP对等体关系。
图1-8 配置Carriers’ carriers(相同AS)组网图
设备 |
接口 |
IP地址 |
设备 |
接口 |
IP地址 |
CE 3 |
HGE1/0/1 |
2001:1::1/96 |
CE 4 |
HGE1/0/1 |
2001:2::1/96 |
PE 3 |
Loop0 |
1.1.1.9/32 |
PE 4 |
Loop0 |
6.6.6.9/32 |
|
HGE1/0/1 |
2001:1::2/96 |
|
HGE1/0/1 |
2001:2::2/96 |
|
HGE1/0/5 |
10.1.1.1/24 |
|
HGE1/0/5 |
20.1.1.2/24 |
CE 1 |
Loop0 |
2.2.2.9/32 |
CE 2 |
Loop0 |
5.5.5.9/32 |
|
HGE1/0/4 |
10.1.1.2/24 |
|
HGE1/0/4 |
21.1.1.2/24 |
|
HGE1/0/5 |
11.1.1.1/24 |
|
HGE1/0/5 |
20.1.1.1/24 |
PE 1 |
Loop0 |
3.3.3.9/32 |
PE 2 |
Loop0 |
4.4.4.9/32 |
|
HGE1/0/4 |
11.1.1.2/24 |
|
HGE1/0/4 |
30.1.1.2/24 |
|
HGE1/0/5 |
30.1.1.1/24 |
|
HGE1/0/5 |
21.1.1.1/24 |
(1) 配置一级运营商骨干网的MPLS L3VPN,使用IS-IS作为骨干网的IGP协议,PE 1和PE 2之间使能LDP,并建立MP-IBGP对等体关系
# 配置PE 1。
<PE1> system-view
[PE1] interface loopback 0
[PE1-LoopBack0] ip address 3.3.3.9 32
[PE1-LoopBack0] quit
[PE1] mpls lsr-id 3.3.3.9
[PE1] mpls ldp
[PE1-ldp] quit
[PE1] isis 1
[PE1-isis-1] network-entity 10.0000.0000.0000.0004.00
[PE1-isis-1] quit
[PE1] interface loopback 0
[PE1-LoopBack0] isis enable 1
[PE1-LoopBack0] quit
[PE1] interface hundredgige 1/0/5
[PE1-HundredGigE1/0/5] ip address 30.1.1.1 24
[PE1-HundredGigE1/0/5] isis enable 1
[PE1-HundredGigE1/0/5] mpls enable
[PE1-HundredGigE1/0/5] mpls ldp enable
[PE1-HundredGigE1/0/5] mpls ldp transport-address interface
[PE1-HundredGigE1/0/5] quit
[PE1] bgp 100
[PE1-bgp-default] peer 4.4.4.9 as-number 100
[PE1-bgp-default] peer 4.4.4.9 connect-interface loopback 0
[PE1-bgp-default] address-family vpnv4
[PE1-bgp-default-vpnv4] peer 4.4.4.9 enable
[PE1-bgp-default-vpnv4] quit
[PE1-bgp-default] quit
# PE 2的配置与PE 1类似,配置过程省略。
配置完成后,在PE 1或PE 2上执行display mpls ldp peer命令可以看到LDP会话建立成功;执行display bgp peer vpnv4命令可以看到BGP对等体关系已建立,并达到Established状态;执行display isis peer命令可以看到IS-IS邻居关系已建立,状态为up。
(2) 配置二级运营商网络:使用IS-IS作为IGP协议,PE 3和CE 1、PE 4和CE 2之间分别使能LDP
# 配置PE 3。
<PE3> system-view
[PE3] interface loopback 0
[PE3-LoopBack0] ip address 1.1.1.9 32
[PE3-LoopBack0] quit
[PE3] mpls lsr-id 1.1.1.9
[PE3] mpls ldp
[PE3-ldp] quit
[PE3] isis 2
[PE3-isis-2] network-entity 10.0000.0000.0000.0001.00
[PE3-isis-2] quit
[PE3] interface loopback 0
[PE3-LoopBack0] isis enable 2
[PE3-LoopBack0] quit
[PE3] interface hundredgige 1/0/5
[PE3-HundredGigE1/0/5] ip address 10.1.1.1 24
[PE3-HundredGigE1/0/5] isis enable 2
[PE3-HundredGigE1/0/5] mpls enable
[PE3-HundredGigE1/0/5] mpls ldp enable
[PE3-HundredGigE1/0/5] mpls ldp transport-address interface
[PE3-HundredGigE1/0/5] quit
# 配置CE 1。
<CE1> system-view
[CE1] interface loopback 0
[CE1-LoopBack0] ip address 2.2.2.9 32
[CE1-LoopBack0] quit
[CE1] mpls lsr-id 2.2.2.9
[CE1] mpls ldp
[CE1-ldp] quit
[CE1] isis 2
[CE1-isis-2] network-entity 10.0000.0000.0000.0002.00
[CE1-isis-2] quit
[CE1] interface loopback 0
[CE1-LoopBack0] isis enable 2
[CE1-LoopBack0] quit
[CE1] interface hundredgige 1/0/4
[CE1-HundredGigE1/0/4] ip address 10.1.1.2 24
[CE1-HundredGigE1/0/4] isis enable 2
[CE1-HundredGigE1/0/4] mpls enable
[CE1-HundredGigE1/0/4] mpls ldp enable
[CE1-HundredGigE1/0/4] mpls ldp transport-address interface
[CE1-HundredGigE1/0/4] quit
配置完成后,PE 3和CE 1之间应能建立LDP和IS-IS邻居关系。
# PE 4和CE 2之间的配置与PE 3和CE 1之间的配置类似,配置过程省略。
(3) 配置二级运营商CE接入到一级运营商的PE
# 配置PE 1。
[PE1] ip vpn-instance vpn1
[PE1-vpn-instance-vpn1] route-distinguisher 200:1
[PE1-vpn-instance-vpn1] vpn-target 1:1
[PE1-vpn-instance-vpn1] quit
[PE1] mpls ldp
[PE1-ldp] vpn-instance vpn1
[PE1-ldp-vpn-instance-vpn1] quit
[PE1-ldp] quit
[PE1] isis 2 vpn-instance vpn1
[PE1-isis-2] network-entity 10.0000.0000.0000.0003.00
[PE1-isis-2] address-family ipv4
[PE1-isis-2-ipv4] import-route bgp allow-ibgp
[PE1-isis-2-ipv4] quit
[PE1-isis-2] quit
[PE1] interface hundredgige 1/0/4
[PE1-HundredGigE1/0/4] ip binding vpn-instance vpn1
[PE1-HundredGigE1/0/4] ip address 11.1.1.2 24
[PE1-HundredGigE1/0/4] isis enable 2
[PE1-HundredGigE1/0/4] mpls enable
[PE1-HundredGigE1/0/4] mpls ldp enable
[PE1-HundredGigE1/0/4] mpls ldp transport-address interface
[PE1-HundredGigE1/0/4] quit
[PE1] bgp 100
[PE1-bgp-default] ip vpn-instance vpn1
[PE1-bgp-default-vpn1] address-family ipv4 unicast
[PE1-bgp-default-ipv4-vpn1] import isis 2
[PE1-bgp-default-ipv4-vpn1] quit
[PE1-bgp-default-vpn1] quit
[PE1-bgp-default] quit
# 配置CE1。
[CE1] interface hundredgige 1/0/5
[CE1-HundredGigE1/0/5] ip address 11.1.1.1 24
[CE1-HundredGigE1/0/5] isis enable 2
[CE1-HundredGigE1/0/5] mpls enable
[CE1-HundredGigE1/0/5] mpls ldp enable
[CE1-HundredGigE1/0/5] mpls ldp transport-address interface
[CE1-HundredGigE1/0/5] quit
配置完成后,PE 1和CE 1之间应能建立LDP和IS-IS邻居关系。
# PE 2和CE 2之间的配置与PE 1和CE 1之间的配置类似,配置过程省略。
(4) 配置二级运营商的客户接入PE
# 配置CE 3。
<CE3> system-view
[CE3] interface hundredgige 1/0/1
[CE3-HundredGigE1/0/1] ipv6 address 2001:1::1 96
[CE3-HundredGigE1/0/1] quit
[CE3] bgp 65410
[CE3-bgp-default] peer 2001:1::2 as-number 100
[CE3-bgp-default] address-family ipv6
[CE3-bgp-default-ipv6] peer 2001:1::2 enable
[CE3-bgp-default-ipv6] import-route direct
[CE3-bgp-default-ipv6] quit
[CE3-bgp-default] quit
# 配置PE 3。
[PE3] ip vpn-instance vpn1
[PE3-vpn-instance-vpn1] route-distinguisher 100:1
[PE3-vpn-instance-vpn1] vpn-target 1:1
[PE3-vpn-instance-vpn1] quit
[PE3] interface hundredgige 1/0/1
[PE3-HundredGigE1/0/1] ip binding vpn-instance vpn1
[PE3-HundredGigE1/0/1] ipv6 address 2001:1::2 96
[PE3-HundredGigE1/0/1] quit
[PE3] bgp 100
[PE3-bgp-default] ip vpn-instance vpn1
[PE3-bgp-default-vpn1] peer 2001:1::1 as-number 65410
[PE3-bgp-default-vpn1] address-family ipv6 unicast
[PE3-bgp-default-ipv6-vpn1] peer 2001:1::1 enable
[PE3-bgp-default-ipv6-vpn1] quit
[PE3-bgp-default-vpn1] quit
[PE3-bgp-default] quit
# PE 4和CE 4之间的配置与PE 3和CE 3之间的配置类似,配置过程省略。
(5) 在二级运营商的PE之间建立MP-IBGP对等体关系,交换二级运营商的客户的VPN路由
# 配置PE 3。
[PE3] bgp 100
[PE3-bgp-default] peer 6.6.6.9 as-number 100
[PE3-bgp-default] peer 6.6.6.9 connect-interface loopback 0
[PE3-bgp-default] address-family vpnv6
[PE3-bgp-default-vpnv6] peer 6.6.6.9 enable
[PE3-bgp-default-vpnv6] quit
[PE3-bgp-default] quit
# PE 4的配置与PE 3类似,配置过程省略。
# 在PE 1和PE 2上执行display ip routing-table命令,可以看到PE 1和PE 2的公网路由表中只有一级运营商网络的路由。以PE 1为例:
[PE1] display ip routing-table
Destinations : 14 Routes : 14
Destination/Mask Proto Pre Cost NextHop Interface
0.0.0.0/32 Direct 0 0 127.0.0.1 InLoop0
3.3.3.9/32 Direct 0 0 127.0.0.1 InLoop0
4.4.4.9/32 IS_L1 15 10 30.1.1.2 HGE1/0/5
30.1.1.0/24 Direct 0 0 30.1.1.1 HGE1/0/5
30.1.1.0/32 Direct 0 0 30.1.1.1 HGE1/0/5
30.1.1.1/32 Direct 0 0 127.0.0.1 InLoop0
30.1.1.255/32 Direct 0 0 30.1.1.1 HGE1/0/5
127.0.0.0/8 Direct 0 0 127.0.0.1 InLoop0
127.0.0.0/32 Direct 0 0 127.0.0.1 InLoop0
127.0.0.1/32 Direct 0 0 127.0.0.1 InLoop0
127.255.255.255/32 Direct 0 0 127.0.0.1 InLoop0
224.0.0.0/4 Direct 0 0 0.0.0.0 NULL0
224.0.0.0/24 Direct 0 0 0.0.0.0 NULL0
255.255.255.255/32 Direct 0 0 127.0.0.1 InLoop0
# 在PE 1和PE 2上执行display ip routing-table vpn-instance命令,可以看到VPN路由表中有二级运营商网络的内部路由。以PE 1为例:
[PE1] display ip routing-table vpn-instance vpn1
Destinations : 18 Routes : 18
Destination/Mask Proto Pre Cost NextHop Interface
0.0.0.0/32 Direct 0 0 127.0.0.1 InLoop0
1.1.1.9/32 IS_L1 15 20 11.1.1.1 HGE1/0/4
2.2.2.9/32 IS_L1 15 10 11.1.1.1 HGE1/0/4
5.5.5.9/32 BGP 255 10 4.4.4.9 HGE1/0/5
6.6.6.9/32 BGP 255 20 4.4.4.9 HGE1/0/5
10.1.1.0/24 IS_L1 15 20 11.1.1.1 HGE1/0/4
11.1.1.0/24 Direct 0 0 11.1.1.2 HGE1/0/4
11.1.1.0/32 Direct 0 0 11.1.1.2 HGE1/0/4
11.1.1.2/32 Direct 0 0 127.0.0.1 InLoop0
11.1.1.255/32 Direct 0 0 11.1.1.2 HGE1/0/4
20.1.1.0/24 BGP 255 20 4.4.4.9 HGE1/0/5
127.0.0.0/8 Direct 0 0 127.0.0.1 InLoop0
127.0.0.0/32 Direct 0 0 127.0.0.1 InLoop0
127.0.0.1/32 Direct 0 0 127.0.0.1 InLoop0
127.255.255.255/32 Direct 0 0 127.0.0.1 InLoop0
224.0.0.0/4 Direct 0 0 0.0.0.0 NULL0
224.0.0.0/24 Direct 0 0 0.0.0.0 NULL0
255.255.255.255/32 Direct 0 0 127.0.0.1 InLoop0
# 在CE 1和CE 2上执行display ip routing-table命令,可以看到公网路由表中有二级运营商网络的内部路由。以CE 1为例:
[CE1] display ip routing-table
Destinations : 21 Routes : 21
Destination/Mask Proto Pre Cost NextHop Interface
0.0.0.0/32 Direct 0 0 127.0.0.1 InLoop0
1.1.1.9/32 IS_L1 15 10 10.1.1.1 HGE1/0/4
2.2.2.9/32 Direct 0 0 127.0.0.1 InLoop0
5.5.5.9/32 IS_L2 15 74 11.1.1.2 HGE1/0/5
6.6.6.9/32 IS_L2 15 74 11.1.1.2 HGE1/0/5
10.1.1.0/24 Direct 0 0 10.1.1.2 HGE1/0/4
10.1.1.0/32 Direct 0 0 10.1.1.2 HGE1/0/4
10.1.1.2/32 Direct 0 0 127.0.0.1 InLoop0
10.1.1.255/32 Direct 0 0 10.1.1.2 HGE1/0/4
11.1.1.0/24 Direct 0 0 11.1.1.1 HGE1/0/5
11.1.1.0/32 Direct 0 0 11.1.1.1 HGE1/0/5
11.1.1.1/32 Direct 0 0 127.0.0.1 InLoop0
11.1.1.255/32 Direct 0 0 11.1.1.1 HGE1/0/5
20.1.1.0/24 IS_L2 15 74 11.1.1.2 HGE1/0/5
127.0.0.0/8 Direct 0 0 127.0.0.1 InLoop0
127.0.0.0/32 Direct 0 0 127.0.0.1 InLoop0
127.0.0.1/32 Direct 0 0 127.0.0.1 InLoop0
127.255.255.255/32 Direct 0 0 127.0.0.1 InLoop0
224.0.0.0/4 Direct 0 0 0.0.0.0 NULL0
224.0.0.0/24 Direct 0 0 0.0.0.0 NULL0
255.255.255.255/32 Direct 0 0 127.0.0.1 InLoop0
# 在PE 3和PE 4上执行display ip routing-table命令,可以看到公网路由表中有二级运营商网络的内部路由。以PE 3为例:
[PE3] display ip routing-table
Destinations : 18 Routes : 18
Destination/Mask Proto Pre Cost NextHop Interface
0.0.0.0/32 Direct 0 0 127.0.0.1 InLoop0
1.1.1.9/32 Direct 0 0 127.0.0.1 InLoop0
2.2.2.9/32 IS_L1 15 10 10.1.1.2 HGE1/0/5
5.5.5.9/32 IS_L2 15 84 10.1.1.2 HGE1/0/5
6.6.6.9/32 IS_L2 15 84 10.1.1.2 HGE1/0/5
10.1.1.0/24 Direct 0 0 10.1.1.1 HGE1/0/5
10.1.1.0/32 Direct 0 0 10.1.1.1 HGE1/0/5
10.1.1.1/32 Direct 0 0 127.0.0.1 InLoop0
10.1.1.255/32 Direct 0 0 10.1.1.1 HGE1/0/5
11.1.1.0/24 IS_L1 15 20 10.1.1.2 HGE1/0/5
20.1.1.0/24 IS_L2 15 84 10.1.1.2 HGE1/0/5
127.0.0.0/8 Direct 0 0 127.0.0.1 InLoop0
127.0.0.0/32 Direct 0 0 127.0.0.1 InLoop0
127.0.0.1/32 Direct 0 0 127.0.0.1 InLoop0
127.255.255.255/32 Direct 0 0 127.0.0.1 InLoop0
224.0.0.0/4 Direct 0 0 0.0.0.0 NULL0
224.0.0.0/24 Direct 0 0 0.0.0.0 NULL0
255.255.255.255/32 Direct 0 0 127.0.0.1 InLoop0
# 在PE 3和PE 4上执行display ipv6 routing-table vpn-instance命令,可以看到VPN路由表中有对端VPN客户的路由。以PE 3为例:
[PE3] display ipv6 routing-table vpn-instance vpn1
Destinations : 6 Routes : 6
Destination: ::1/128 Protocol : Direct
NextHop : ::1 Preference: 0
Interface : InLoop0 Cost : 0
Destination: 2001:1::/96 Protocol : Direct
NextHop : :: Preference: 0
Interface : HGE1/0/1 Cost : 0
Destination: 2001:1::2/128 Protocol : Direct
NextHop : ::1 Preference: 0
Interface : InLoop0 Cost : 0
Destination: 2001:2::/96 Protocol : BGP4+
NextHop : ::FFFF:6.6.6.9 Preference: 255
Interface : HGE1/0/5 Cost : 0
Destination: FE80::/10 Protocol : Direct
NextHop : :: Preference: 0
Interface : InLoop0 Cost : 0
Destination: FF00::/8 Protocol : Direct
NextHop : :: Preference: 0
Interface : NULL0 Cost : 0
# PE 3和PE 4可以相互Ping通。
# CE 3和CE 4可以互相Ping通。
· CE 1和CE 2都属于VPN 1,它们分别接入PE 1和PE 2;
· CE 1和CE 2在同一个OSPFv3区域中;
· CE 1与CE 2之间的VPN流量通过MPLS骨干网转发,不使用OSPFv3的区域内路由。
图1-9 OSPFv3伪连接配置组网图
设备 |
接口 |
接口地址 |
设备 |
接口 |
接口地址 |
CE 1 |
HGE1/0/1 |
100::1/64 |
CE 2 |
HGE1/0/1 |
120::1/64 |
|
HGE1/0/4 |
20::1/64 |
|
HGE1/0/4 |
30::2/64 |
PE 1 |
Loop0 |
1.1.1.9/32 |
PE 2 |
Loop0 |
2.2.2.9/32 |
|
Loop1 |
3::3/128 |
|
Loop1 |
5::5/128 |
|
HGE1/0/1 |
100::2/64 |
|
HGE1/0/1 |
120::2/64 |
|
HGE1/0/4 |
10.1.1.1/24 |
|
HGE1/0/5 |
10.1.1.2/24 |
Router A |
HGE1/0/5 |
30::1/64 |
|
|
|
|
HGE1/0/4 |
20::2/64 |
|
|
|
(1) 配置用户网络上的OSPFv3
在CE 1、Router A、CE 2上配置普通OSPFv3,发布图1-9中所示各接口的网段地址,并配置CE 1和Router A、CE 2和Router A之间的链路开销值为2。具体配置过程略。
配置完成后,执行display ipv6 routing-table命令,可以看到CE 1和CE 2学到了到达对端的路由。
(2) 在骨干网上配置IPv6 MPLS L3VPN
# 配置PE 1的MPLS基本能力和MPLS LDP能力,建立LDP LSP。
<PE1> system-view
[PE1] interface loopback 0
[PE1-LoopBack0] ip address 1.1.1.9 32
[PE1-LoopBack0] quit
[PE1] mpls lsr-id 1.1.1.9
[PE1] mpls ldp
[PE1-ldp] quit
[PE1] interface hundredgige 1/0/4
[PE1-HundredGigE1/0/4] ip address 10.1.1.1 24
[PE1-HundredGigE1/0/4] mpls enable
[PE1-HundredGigE1/0/4] mpls ldp enable
[PE1-HundredGigE1/0/4] quit
# 配置PE 1的MP-IBGP对等体为PE2。
[PE1] bgp 100
[PE1-bgp-default] peer 2.2.2.9 as-number 100
[PE1-bgp-default] peer 2.2.2.9 connect-interface loopback 0
[PE1-bgp-default] address-family vpnv6
[PE1-bgp-default-vpnv6] peer 2.2.2.9 enable
[PE1-bgp-default-vpnv6] quit
[PE1-bgp-default] quit
# 配置PE 1的OSPF。
[PE1] ospf 1
[PE1-ospf-1] area 0
[PE1-ospf-1-area-0.0.0.0] network 1.1.1.9 0.0.0.0
[PE1-ospf-1-area-0.0.0.0] network 10.1.1.0 0.0.0.255
[PE1-ospf-1-area-0.0.0.0] quit
[PE1-ospf-1] quit
# 配置PE 2的MPLS基本能力和MPLS LDP能力,建立LDP LSP。
<PE2> system-view
[PE2] interface loopback 0
[PE2-LoopBack0] ip address 2.2.2.9 32
[PE2-LoopBack0] quit
[PE2] mpls lsr-id 2.2.2.9
[PE2] mpls ldp
[PE2-ldp] quit
[PE2] interface hundredgige 1/0/5
[PE2-HundredGigE1/0/5] ip address 10.1.1.2 24
[PE2-HundredGigE1/0/5] mpls enable
[PE2-HundredGigE1/0/5] mpls ldp enable
[PE2-HundredGigE1/0/5] quit
# 配置PE 2的MP-IBGP对等体为PE1。
[PE2] bgp 100
[PE2-bgp-default] peer 1.1.1.9 as-number 100
[PE2-bgp-default] peer 1.1.1.9 connect-interface loopback 0
[PE2-bgp-default] address-family vpnv6
[PE2-bgp-default-vpnv6] peer 1.1.1.9 enable
[PE2-bgp-default-vpnv6] quit
[PE2-bgp-default] quit
# 配置PE 2的OSPF。
[PE2] ospf 1
[PE2-ospf-1] area 0
[PE2-ospf-1-area-0.0.0.0] network 2.2.2.9 0.0.0.0
[PE2-ospf-1-area-0.0.0.0] network 10.1.1.0 0.0.0.255
[PE2-ospf-1-area-0.0.0.0] quit
[PE2-ospf-1] quit
(3) 配置PE接入CE
# 配置PE 1接入CE 1。
[PE1] ip vpn-instance vpn1
[PE1-vpn-instance-vpn1] route-distinguisher 100:1
[PE1-vpn-instance-vpn1] vpn-target 1:1
[PE1-vpn-instance-vpn1] quit
[PE1] interface hundredgige 1/0/1
[PE1-HundredGigE1/0/1] ip binding vpn-instance vpn1
[PE1-HundredGigE1/0/1] ipv6 address 100::2 64
[PE1-HundredGigE1/0/1] ospfv3 100 area 1
[PE1-HundredGigE1/0/1] quit
[PE1] ospfv3 100
[PE1-ospfv3-100] router-id 100.1.1.1
[PE1-ospfv3-100] domain-id 10
[PE1-ospfv3-100] quit
[PE1] bgp 100
[PE1-bgp-default] ip vpn-instance vpn1
[PE1-bgp-default-vpn1] address-family ipv6 unicast
[PE1-bgp-default-ipv6-vpn1] import-route ospfv3 100
[PE1-bgp-default-ipv6-vpn1] import-route direct
[PE1-bgp-default-ipv6-vpn1] quit
[PE1-bgp-default-vpn1] quit
[PE1-bgp-default] quit
# 配置PE 2接入CE 2。
[PE2] ip vpn-instance vpn1
[PE2-vpn-instance-vpn1] route-distinguisher 100:2
[PE2-vpn-instance-vpn1] vpn-target 1:1
[PE2-vpn-instance-vpn1] quit
[PE2] interface hundredgige 1/0/1
[PE2-HundredGigE1/0/1] ip binding vpn-instance vpn1
[PE2-HundredGigE1/0/1] ipv6 address 120::2 64
[PE2-HundredGigE1/0/1] ospfv3 100 area 1
[PE2-HundredGigE1/0/1] quit
[PE2] ospfv3 100
[PE2-ospfv3-100] router-id 120.1.1.1
[PE2-ospfv3-100] domain-id 10
[PE2-ospfv3-100] quit
[PE2] bgp 100
[PE2-bgp-default] ip vpn-instance vpn1
[PE2-bgp-default-vpn1] address-family ipv6 unicast
[PE2-bgp-default-ipv6-vpn1] import-route ospfv3 100
[PE2-bgp-default-ipv6-vpn1] import-route direct
[PE2-bgp-default-ipv6-vpn1] quit
[PE2-bgp-default-vpn1] quit
[PE2-bgp-default] quit
完成上述配置后,在PE设备上执行display ipv6 routing-table vpn-instance命令,可以看到去往对端CE的路由是通过用户网络的OSPFv3路由,不是通过骨干网的IPv6 BGP路由。
(4) 配置Sham-link
# 配置PE 1。
[PE1] interface loopback 1
[PE1-LoopBack1] ip binding vpn-instance vpn1
[PE1-LoopBack1] ipv6 address 3::3 128
[PE1-LoopBack1] quit
[PE1] ospfv3 100
[PE1-ospfv3-100] area 1
[PE1-ospfv3-100-area-0.0.0.1] sham-link 3::3 5::5
[PE1-ospfv3-100-area-0.0.0.1] quit
[PE1-ospfv3-100] quit
# 配置PE 2。
[PE2] interface loopback 1
[PE2-LoopBack1] ip binding vpn-instance vpn1
[PE2-LoopBack1] ipv6 address 5::5 128
[PE2-LoopBack1] quit
[PE2] ospfv3 100
[PE2-ospfv3-100] area 1
[PE2-ospfv3-100-area-0.0.0.1] sham-link 5::5 3::3
[PE2-ospfv3-100-area-0.0.0.1] quit
[PE2-ospfv3-100] quit
完成上述配置后,在PE设备上再次执行display ipv6 routing-table vpn-instance命令,可以看到去往对端CE的路由变成了通过骨干网的IPv6 BGP路由,并且存在去往Sham-link目的地址的路由。
在CE设备上执行display ipv6 routing-table命令,可以看到去往对端CE的OSPFv3路由下一跳变为接入PE的接口HundredGigE1/0/1,即去往对端的VPN流量将通过骨干网转发。
在PE上执行display ospfv3 sham-link命令可以看到Sham-link的建立情况。
以PE 1为例:
[PE1] display ospfv3 sham-link
OSPFv3 Process 100 with Router ID 100.1.1.1
Sham-link (Area: 0.0.0.1)
Neighbor ID State Instance ID Destination address
120.1.1.1 P-2-P 0 5::5
执行display ospfv3 sham-link verbose命令可以看到对端状态为Full。
[PE1] display ospfv3 sham-link verbose
OSPFv3 Process 100 with Router ID 100.1.1.1
Sham-link (Area: 0.0.0.1)
Source : 3::3
Destination : 5::5
Interface ID: 2147483649
Neighbor ID : 120.1.1.1, Neighbor state: Full
Cost: 1 State: P-2-P Type: Sham Instance ID: 0
Timers: Hello 10, Dead 40, Retransmit 5, Transmit delay 1
Request list: 0 Retransmit list: 0
CE 1和CE 2同属于VPN 1,分别接入PE 1和PE 2,并且CE 1和CE 2复用AS号600。
图1-10 BGP的AS号替换组网图
设备 |
接口 |
IP地址 |
设备 |
接口 |
IP地址 |
CE 1 |
HGE1/0/1 |
10:1::2/96 |
P |
Loop0 |
2.2.2.9/32 |
|
HGE1/0/2 |
100::1/96 |
|
HGE1/0/1 |
20.1.1.2/24 |
PE 1 |
Loop0 |
10.1.1.1/32 |
|
HGE1/0/2 |
30.1.1.1/24 |
|
HGE1/0/1 |
10:1::1/96 |
PE 2 |
Loop0 |
10.1.1.2/32 |
|
HGE1/0/2 |
20.1.1.1/24 |
|
HGE1/0/1 |
10:2::1/96 |
CE 2 |
HGE1/0/1 |
10:2::2/96 |
|
HGE1/0/2 |
30.1.1.2/24 |
|
HGE1/0/2 |
200::1/96 |
|
|
|
(1) 配置基本IPv6 MPLS L3VPN
¡ 在MPLS骨干网上配置OSPF,PE和P之间能够学到对方Loopback接口的路由;
¡ 在MPLS骨干网上配置MPLS基本能力和MPLS LDP,建立LDP LSP;
¡ PE之间建立MP-IBGP对等体关系,交换VPNv6路由;
¡ 在PE 1上配置VPN 1的VPN实例,接入CE 1;
¡ 在PE 2上配置VPN 1的VPN实例,接入CE 2;
¡ PE 1和CE 1、PE 2和CE 2之间配置BGP,将CE的路由引入PE。
上述配置可参考“1.21.1 配置IPv6 MPLS L3VPN示例”,具体配置过程略。
# 完成上述配置后,在CE 2上执行display ipv6 routing-table命令,可以看到没有到达CE 1内部VPN(100::/96)的路由。CE 1上也存在同样的现象。
<CE2> display ipv6 routing-table
Destinations : 6 Routes : 6
Destination: ::1/128 Protocol : Direct
NextHop : ::1 Preference: 0
Interface : InLoop0 Cost : 0
Destination: 10:2::/96 Protocol : Direct
NextHop : :: Preference: 0
Interface : HGE1/0/1 Cost : 0
Destination: 10:2::2/128 Protocol : Direct
NextHop : ::1 Preference: 0
Interface : InLoop0 Cost : 0
Destination: 200::/96 Protocol : Static
NextHop : :: Preference: 60
Interface : NULL0 Cost : 0
Destination: FE80::/10 Protocol : Direct
NextHop : :: Preference: 0
Interface : NULL0 Cost : 0
Destination: FF00::/8 Protocol : Direct
NextHop : :: Preference: 0
Interface : NULL0 Cost : 0
# 在PE上执行display ipv6 routing-table vpn-instance命令,可以看到PE的VPN实例中有到达对端CE内部VPN的路由。以PE 2为例:
<PE2> display ipv6 routing-table vpn-instance vpn1
Destinations : 7 Routes : 7
Destination: ::1/128 Protocol : Direct
NextHop : ::1 Preference: 0
Interface : InLoop0 Cost : 0
Destination: 10:2::/96 Protocol : Direct
NextHop : :: Preference: 0
Interface : HGE1/0/1 Cost : 0
Destination: 10:2::1/128 Protocol : Direct
NextHop : ::1 Preference: 0
Interface : InLoop0 Cost : 0
Destination: 100::/96 Protocol : BGP4+
NextHop : ::FFFF:10.1.1.1 Preference: 255
Interface : HGE1/0/2 Cost : 0
Destination: 200::/96 Protocol : BGP4+
NextHop : 10:2::2 Preference: 255
Interface : HGE1/0/1 Cost : 0
Destination: FE80::/10 Protocol : Direct
NextHop : :: Preference: 0
Interface : NULL0 Cost : 0
Destination: FF00::/8 Protocol : Direct
NextHop : :: Preference: 0
Interface : NULL0 Cost : 0
# 在PE 2上打开BGP的Update报文调试信息开关,可以看到PE 2发布了去往100::/96的路由,AS路径信息为“100 600”。
<PE2> terminal monitor
<PE2> terminal logging level 7
<PE2> debugging bgp update vpn-instance vpn1 10:2::2 ipv6
<PE2> refresh bgp all export ipv6 vpn-instance vpn1
*Jun 13 16:12:52:096 2012 PE2 BGP/7/DEBUG:
BGP_IPV6.vpn1: Send UPDATE to update-group 0 for following destinations:
Origin : Incomplete
AS path : 100 600
Next hop : ::FFFF:10.1.1.1
100::/96,
*Jun 13 16:12:53:024 2012 PE2 BGP/7/DEBUG:
BGP.vpn1: Send UPDATE MSG to peer 10:2::2(IPv6-UNC) NextHop: 10:2::1.
# 在CE 2上执行display bgp routing-table ipv6 peer received-routes命令,可以看到CE 2没有接收100::/96的路由。
<CE2> display bgp routing-table ipv6 peer 10:2::1 received-routes
Total number of routes: 0
(2) 配置BGP的AS号替换功能
# 在PE 1上配置BGP的AS号替换功能。
<PE1> system-view
[PE1] bgp 100
[PE1-bgp-default] ip vpn-instance vpn1
[PE1-bgp-default-vpn1] peer 10:1::2 substitute-as
[PE1-bgp-default-vpn1] quit
[PE1-bgp-default] quit
# 在PE 2上配置BGP的AS号替换功能。
<PE2> system-view
[PE2] bgp 100
[PE2-bgp-default] ip vpn-instance vpn1
[PE2-bgp-default-vpn1] peer 10:2::2 substitute-as
[PE2-bgp-default-vpn1] quit
[PE2-bgp-default] quit
# 可以看到PE 2向CE 2发布的路由中,100::/96的AS路径信息由“100 600”变为“100 100”。
*Jun 27 18:07:34:420 2013 PE2 BGP/7/DEBUG:
BGP_IPV6.vpn1: Send UPDATE to peer 10:2::2 for following destinations:
Origin : Incomplete
AS path : 100 100
Next hop : 10:2::1
100::/96,
# 再次查看CE 2接收的路由信息和路由表,可以看到CE 2学习到了路由100::/96。
<CE2> display bgp routing-table ipv6 peer 10:2::1 received-routes
Total number of routes: 1
BGP local router ID is 12.1.1.3
Status codes: * - valid, > - best, d - dampened, h - history,
s - suppressed, S - stale, i - internal, e - external
Origin: i - IGP, e - EGP, ? - incomplete
* >e Network : 100:: PrefixLen : 96
NextHop : 10:2::1 LocPrf :
PrefVal : 0 OutLabel : NULL
MED :
Path/Ogn: 100 100?
<CE2> display ipv6 routing-table
Destinations : 7 Routes : 7
Destination: ::1/128 Protocol : Direct
NextHop : ::1 Preference: 0
Interface : InLoop0 Cost : 0
Destination: 10:2::/96 Protocol : Direct
NextHop : :: Preference: 0
Interface : HGE1/0/1 Cost : 0
Destination: 10:2::2/128 Protocol : Direct
NextHop : ::1 Preference: 0
Interface : InLoop0 Cost : 0
Destination: 100::/96 Protocol : BGP4+
NextHop : 10:2::1 Preference: 255
Interface : HGE1/0/1 Cost : 0
Destination: 200::/96 Protocol : Static
NextHop : :: Preference: 60
Interface : NULL0 Cost : 0
Destination: FE80::/10 Protocol : Direct
NextHop : :: Preference: 0
Interface : NULL0 Cost : 0
Destination: FF00::/8 Protocol : Direct
NextHop : :: Preference: 0
Interface : NULL0 Cost : 0
# CE 1和CE 2的HundredGigE1/0/2接口地址之间能够相互Ping通。
· CE 1、CE 2和CE 3同属于VPN 1,分别接入PE 1、PE 2和PE 3。
· CE 1和CE 2位于同一个站点。
· CE 1、CE 2和CE 3复用AS号600。
· 为了避免路由丢失,在PE上配置AS号替换;为了避免路由在CE 1和CE 2之间产生环路,在PE 1和PE 2上分别为CE 1和CE 2配置相同的SoO属性。
图1-11 BGP的AS号替换和SoO属性组网图
设备 |
接口 |
IP地址 |
设备 |
接口 |
IP地址 |
CE 1 |
Loop0 |
100::1/96 |
CE 3 |
Loop0 |
200::1/96 |
|
HGE1/0/1 |
10:1::1/96 |
|
HGE1/0/1 |
10:3::1/96 |
CE 2 |
HGE1/0/1 |
10:2::1/96 |
PE 2 |
Loop0 |
2.2.2.9/32 |
PE 1 |
Loop0 |
1.1.1.9/32 |
|
HGE1/0/1 |
10:2::2/96 |
|
HGE1/0/1 |
10:1::2/96 |
|
HGE1/0/2 |
40.1.1.1/24 |
|
HGE1/0/2 |
20.1.1.1/24 |
|
HGE1/0/3 |
20.1.1.2/24 |
|
HGE1/0/3 |
30.1.1.1/24 |
P |
Loop0 |
3.3.3.9/32 |
PE 3 |
Loop0 |
4.4.4.9/32 |
|
HGE1/0/1 |
30.1.1.2/24 |
|
HGE1/0/1 |
10:3::2/96 |
|
HGE1/0/2 |
40.1.1.2/24 |
|
HGE1/0/2 |
50.1.1.2/24 |
|
HGE1/0/3 |
50.1.1.1/24 |
(1) 配置基本IPv6 MPLS L3VPN
¡ 在MPLS骨干网上配置OSPF,PE和P之间能够学到对方Loopback接口的路由;
¡ 在MPLS骨干网上配置MPLS基本能力和MPLS LDP,建立LDP LSP;
¡ PE之间建立MP-IBGP对等体关系,发布VPNv6路由;
¡ 在 PE 1上配置VPN 1的VPN实例,接入CE 1;
¡ 在PE 2上配置VPN 1的VPN实例,接入CE 2;
¡ 在PE 3上配置VPN 1的VPN实例,接入CE 3;
¡ PE 1和CE 1、PE 2和CE 2、PE 3和CE 3之间配置BGP,将CE的路由引入PE。
¡ 上述配置可参考“1.21.1 配置IPv6 MPLS L3VPN示例”,具体配置过程略。
(2) 配置BGP的AS号替换功能
# 在PE 1、PE 2和PE 3上配置BGP的AS号替换功能,具体配置参见“1.21.8 配置BGP的AS号替换”。
# 查看CE 2接收的路由信息,可以看到CE 1发来的路由100::/96。可见,由于CE 1和CE 2位于同一站点,造成了路由环路。
<CE2> display bgp routing-table ipv6 peer 10:2::2 received-routes
Total number of routes: 2
BGP local router ID is 12.1.1.3
Status codes: * - valid, > - best, d - dampened, h - history,
s - suppressed, S - stale, i - internal, e - external
Origin: i - IGP, e - EGP, ? - incomplete
* >e Network : 100:: PrefixLen : 96
NextHop : 10:2::2 LocPrf :
PrefVal : 0 OutLabel : NULL
MED :
Path/Ogn: 100 100?
* >e Network : 200:: PrefixLen : 96
NextHop : 10:2::2 LocPrf :
PrefVal : 0 OutLabel : NULL
MED :
Path/Ogn: 100 100?
(3) 配置BGP的SoO属性
# 在PE 1上为对等体CE 1配置SoO属性为1:100。
<PE1> system-view
[PE1] bgp 100
[PE1-bgp-default] ip vpn-instance vpn1
[PE1-bgp-default-vpn1] address-family ipv6
[PE1-bgp-default-ipv6-vpn1] peer 10:1::1 soo 1:100
# 在PE 2上为对等体CE 2配置SoO属性为1:100。
[PE2] bgp 100
[PE2-bgp-default] ip vpn-instance vpn1
[PE2-bgp-default-vpn1] address-family ipv6
[PE2-bgp-default-ipv6-vpn1] peer 10:2::1 soo 1:100
# 由于配置的SoO属性相同,PE 2不会将CE 1发过来的路由发布给CE 2。查看CE 2路由表,不会再看到100::/96路由。
<CE2> display ipv6 routing-table
Destinations : 4 Routes : 4
Destination: ::1/128 Protocol : Direct
NextHop : ::1 Preference: 0
Interface : InLoop0 Cost : 0
Destination: 10:2::/96 Protocol : Direct
NextHop : :: Preference: 0
Interface : HGE1/0/1 Cost : 0
Destination: 10:2::1/128 Protocol : Direct
NextHop : ::1 Preference: 0
Interface : InLoop0 Cost : 0
Destination: 200::/96 Protocol : Static
NextHop : :: Preference: 60
Interface : NULL0 Cost : 0
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!