跨域的OptionC配置和标签分配分析
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
跨域的OptionC 配置和标签分配分析
华为技术
华为技术有限公司
2004年11月
修订记录
目录
1前言 (iii)
1.1 背景 (iii)
1.2 跨域解决方案简介 (iii)
2网络描述 (1)
2.1 网络结构 (1)
2.2 网络介绍 (1)
3路由器配置要点 (2)
3.1 配置的大体步骤 (2)
3.2 ASBR配置的步骤 (2)
3.3 RR配置的步骤 (3)
3.4 PE配置的步骤 (3)
4路由器的配置 (3)
4.1 A市 ASBR1配置 (3)
4.2 A市RR1 配置 (5)
4.3 A市 PE1 配置 (6)
5标签分配 (7)
5.1 从AS100内VPNA 发往AS200 VPNA 报文的标签分配图 (7)
5.2 从AS200内VPNA 发往AS100 VPNA 报文的标签分配图 (7)
5.3 说明 (8)
6简单的互通测试 (8)
7报文转发过程中标签的作用 (9)
7.1 域内 (9)
7.2 域间 (9)
8配置中涉及的特殊命令 (9)
8.1 peer label-route-capability (9)
8.2 peer next-hop-invariable (11)
8.3 if-match mpls label 和 apply mpls-label (12)
9MH-MP-BGP注意事项和故障诊断 (13)
10附件 (14)
1 前言
1.1 背景
在部署多跳的,跨域的MPLS VPN时,出于管理的需要和其它的考虑,可能需要在路由反射器间实现多跳的,跨域的MPLS VPN,本文从中抽象出一个网络模型,给大家讲解。
1.2 跨域解决方案简介
跨域解决方案有三种:VRF to VRF、EBGP携带VPN路由和EBGP-MULTIHOP。
第一种方式要求两个域的ASBR能够完成PE功能,两个AS域各自运行自己的VPN。
对于每个需要跨域的VPN,必须在本端跨域的PE设备上配置对应于该VPN的VRF,将对端的PE设备做为本域VPN的CE,PE-CE之间运行EBGP协议,携带对端的VPN路由信息。
这个方法的优点在于ASBR之间不需要运行MPLS,但缺点是每个跨域的VPN需要与一个子接口绑定,子接口的数量至少要和跨域的VPN的数量相当且跨域的PE路由器需要维护跨域VPN的路由,因而存在扩展问题。
第二种方式,EBGP携带VPN路由,又称单跳MP-EBGP方式。
这种方式通过直连的ASBR传播VPN路由,ASBR在收到域内的VPN路由信息,再向外发布时,必须给这些VPN路由信息重新分配标签,在ASBR本地,新旧标签形成一个标签的交换操作。
其优点是不需要在ASBR处为每个VPN的用户站点分配一个子接口,缺点是需要在ASBR处维护VPN路由, ASBR之间需要互相信任。
第三种方式,通过LDP或MP-BGP+LDP方式建立LSP,然后不同AS域之间的PE通过EBGP方式传播VPN路由信息。
这种方式的可扩展性较好,不需要在ASBR上维护具体的VPN路由信息。
本文介绍的是第三种方式实现的一种,多跳的MP-EBGP邻居不是在两个AS的PE-PE间建立,而是在两个AS的RR-RR间建立,也可以不选择在RR-RR间建立多跳MP-EBGP,而选择域内其它的路由器,只要该路由器与PE是MP-IBGP,且该路由器和对端域中MP-EBGP对等体不改变下一跳,能够将VPNv4信息告知PE。
2 网络描述
2.1 网络结构
网络结构如下图所示,
2.2 网络介绍
VPNA在不同的站点接入不同AS域。
如图,城市A的站点接入城市A的服务提供商的MPLS/VPN网络,自治域号为AS100;而城市B的站点接入城市B的服务提供商MPLS/VPN网络,自治域号为AS200。
服务商考虑到将来可能的跨域的VPN业务会增多,希望PE通过本自治域内的RR来做跨域的MPLS VPN,并且今后的跨域VPN都通过这种PE-RR方式来做。
VPNA在A市的网段为200.1.1.0/24,在B市的网段为201.1.1.0/24,RD和RT均为1:1。
为了实现这个目的,非邻接的PE1和PE2之间必须有一条跨域的LSP。
RR1和RR2之间通过多跳的,多协议的EBGP来交互VPNv4路由信息,RR1可以把从ASBR1学到的IPv4路由和MPLS标签反射给PE1,ASBR1上需要使能交换IPv4路由和MPLS标签,RR1负责VPNv4路由的存储和转发,使得网络具有扩展能力。
当BGP(EBGP或IBGP)发布路由的时候,它也可以发布映射到该条路由上的MPLS标签。
该映射信息随该条路由的BGP更新报文被携带。
如果下一跳不改变,标签被保留着。
当采用命令label-route-capability时,当BGP邻居间都具备该能力(指携带MPLS标签的能力),它们间的BGP更新就会包含MPLS标签了。
通过Route-policy来控制MPLS标签在路由器间的发布,可以做到如下:
1) 发布路由时指定通过那条路由来通过MPLS 标签发布
2) 接受带有MPLS标签的路由的时候,可以指定那条路由被接受,并安装到BGP路由表中
PE和RR相关联,RR和RR相关联跨域多跳的MPLS VPN在RR上建立MP-EBGP peer,ASBR负责公网标签和BGP标签的交换、或者负责在BGP标签的基础上加上本AS 的公网标签。
3 路由器配置要点
3.1 配置的大体步骤
配置ASBR 使能交换IPv4路由和MPLS标签
配置路由反射器使之能够交换 VPNv4路由
配置路由反射器能够反射路由到本AS内PE
配置路由策略(在ASBR上)
3.2 ASBR配置的步骤
配置MPLS LSR ID
配置MPLS,在相应接口启用MPLS LDP 或启用MPLS
配置IGP路由
配置ASBR1到RR1的IBGP对等体
配置ASBR1到ASBR2的EBGP对等体
配置路由策略,并引用路由策略到IBGP和EBGP对等体上
3.3 RR配置的步骤
配置MPLS LSR ID
配置MPLS,在相应接口启用MPLS LDP
配置IGP路由
配置RR1到PE1的IBGP对等体,并配置PE为RR的反射器客户端
配置RR1到ASBR1的IBGP对等体
配置RR1到RR2的EBGP对等体
配置RR1到PE1的MP-IBGP对等体
配置RR1到RR2的MP-EBGP对等体
3.4 PE配置的步骤
配置MPLS LSR ID
配置MPLS,在相应接口启用MPLS LDP
配置VPN实例,配置RD,RT
配置IGP路由
配置PE1到RR1的IBGP对等体
配置PE1到RR1的MP-IBGP对等体
4 路由器的配置
4.1 A市 ASBR1配置
# 配置Router ID为loopback接口 0的地址
router id 1.1.1.3 # 配置MPLS LSR ID为loopback接口 0的地址
mpls lsr-id 1.1.1.3
# 启用MPLS LDP
mpls ldp # 启用ISIS为IGP路由协议,network entity为47.0001
isis
network-entity 47.0001.0000.0000.0003.00
# 配置到ASBR2的接口,并在此接口启用MPLS
interface Ethernet2/0/4
undo shutdown
negotiation auto
ip address 10.0.0.26 255.255.255.252
mpls
# 配置到RR1的接口,并在此接口启用MPLS LDP
interface Ethernet2/0/6
undo shutdown
negotiation auto
ip address 10.0.0.21 255.255.255.252
isis enable
mpls
mpls ldp
# 创建loopback 接口0,在接口上运行ISIS
interface LoopBack0
ip address 1.1.1.3 255.255.255.255
isis enable
# 创建访问列表 2900,允许PE1的loopback接口 0的主机地址通过
acl number 2900
rule 0 permit source 1.1.1.10 0 # 在ASBR1上运行BGP,AS号 100,配置到RR1的IBGP对等体组,配置到ASBR2的
EBGP对等体组,引用路由策略rr和asbr在EBGP对等体组和IBGP对等体组上
bgp 100
network 1.1.1.8 255.255.255.255
network 1.1.1.10 255.255.255.255
undo synchronization
group EXT external
peer EXT as-number 200
peer EXT label-route-capability
peer EXT route-policy rr export
peer 10.0.0.25 group EXT
group RR1 internal
peer RR1 label-route-capability
peer RR1 next-hop-local
peer RR1 route-policy asbr export
peer RR1 connect-interface LoopBack0 peer 1.1.1.8 group RR1
# 配置路由策略rr和asbr
route-policy rr permit node 0
if-match acl 2900
if-match ip-prefix pe
apply mpls-label
route-policy rr permit node 1
route-policy asbr permit node 0
if-match mpls-label
apply mpls-label
route-policy asbr permit node 1 # 创建前缀列表 pe,允许PE1的loopback接口 0的主机地址通过
ip ip-prefix pe index 10 permit 1.1.1.10 32
4.2 A市RR1 配置
# 配置Router ID为loopback接口 0的地址
router id 1.1.1.8
# 配置MPLS LSR ID为loopback接口 0的地址
mpls lsr-id 1.1.1.8
# 启用MPLS LDP
mpls ldp
# 启用ISIS为IGP路由协议,network entity为47.0001
isis
network-entity 47.0001.0000.0000.0008.00
silent-interface LoopBack0
# 配置到PE1的接口,并在此接口启用MPLS LDP
interface Ethernet2/2/0
ip address 10.0.0.201 255.255.255.252
isis enable
mpls
mpls ldp
# 配置到ASBR1的接口,并在此接口启用MPLS LDP
interface Ethernet4/2/0
ip address 10.0.0.22 255.255.255.252
isis enable
mpls
mpls ldp # 创建loopback 接口0,在接口上运行ISIS
interface LoopBack0
ip address 1.1.1.8 255.255.255.255
isis enable # 在RR1上运行BGP,AS号 100,配置到PE1,ASBR1的IBGP对等体组,配置到RR2的
EBGP对等体组
bgp 100
undo synchronization
group PE1 internal
peer PE1 advertise-community
peer PE1 connect-interface LoopBack0
peer PE1 label-route-capability
peer 1.1.1.10 group PE1
group ASBR1 internal
peer ASBR1 connect-interface LoopBack0
peer ASBR1 label-route-capability
peer 1.1.1.3 group ASBR1
group RR external
peer RR ebgp-max-hop
peer RR connect-interface LoopBack0
peer 1.1.1.1 group RR as-number 200
# 配置到PE1的VPNv4对等体组,配置到RR2的VPNv4对等体组
ipv4-family vpnv4
peer RR enable
peer RR next-hop-invariable
peer 1.1.1.1 group RR
peer PE1 enable
peer PE1 reflect-client
peer 1.1.1.10 group PE1
4.3 A市 PE1 配置
# 配置Router ID为loopback接口 0的地址
router id 1.1.1.10
# 配置MPLS LSR ID为loopback接口 0的地址
mpls lsr-id 1.1.1.10
# 启用MPLS LDP
mpls ldp
# 启用ISIS为IGP路由协议,network entity为47.0001
isis
network-entity 47.0001.0000.0000.0010.00
silent-interface LoopBack0
# 配置VPN实例,配置RD,RT
ip vpn-instance vpna
route-distinguisher 1:1
vpn-target 1:1 export-extcommunity
vpn-target 1:1 import-extcommunity
# 配置到RR1的接口,并在此接口启用MPLS LDP
interface Ethernet2/2/0
ip address 10.0.0.202 255.255.255.252
isis enable
mpls
mpls ldp
# 创建loopback 接口0,在接口上运行ISIS
interface LoopBack0
ip address 1.1.1.10 255.255.255.255
isis enable # 创建loopback 接口200,将接口加入VPN实例vpna
interface LoopBack200
ip binding vpn-instance vpna
ip address 200.1.1.1 255.255.255.0
# 在PE1上运行BGP,AS号 100,配置到RR的IBGP对等体组RR1
bgp 100
network 100.1.1.1 255.255.255.255
undo synchronization
group RR internal
peer RR label-route-capability
peer RR connect-interface LoopBack0
peer 1.1.1.8 group RR # 将直连端口loopback 200引入vpna的路由表
ipv4-family vpn-instance vpna
import-route direct
undo synchronization
# 配置到RR1的VPNv4对等体组
ipv4-family vpnv4
peer RR enable
peer 1.1.1.8 group RR
PE2,RR2,ASBR2的配置和PE1,RR1,ASBR1的配置类同,略。
等待所有bgp邻居连接建立以后,在PE1、PE2上可以看到对方的IPV4路由200.1.1.1、
201.1.1.1,使用display bgp routing-table label、display mpls lsp,display bgp vpn all routing-
table label命令可以看到BGP+、私网VPNv4、公网MPLS的label,可以看到从对方学到
的VPNV4路由。
隧道建立成功后,属于一个VPN的CE之间可以ping通。
5 标签分配
5.1 从AS100内VPNA 发往AS200 VPNA 报文的标签分配图
5.2 从AS200内VPNA 发往AS100 VPNA 报文的标签分配图
5.3 说明
见图5.1,报文从PE1转出时,需要压上三层标签,从内到外分别的VPN路由的标签,BGP LSP的标签,公网LSP的标签。
到ASBR1时,就只剩下两层标签了,分别是VPN的路由标签和BGP LSP的标签,进入ASBR1后,BGP LSP就终结掉了,就剩下VPN路由的标签和公网LSP的标签了,以后就是普通的MPLS VPN的转发流程了。
在RR上公网LSP标签下一跳弹出,最后PE2收到了只有私网标签的报文。
图5.2是图5.1的反方向过程,标签的分配原理一样。
6 简单的互通测试
在PE1上的Ping测试:
[PE1]ping -vpn-instance vpna -a 200.1.1.1 201.1.1.1
PING 201.1.1.1: 56 data bytes, press CTRL_C to break
Reply from 201.1.1.1: bytes=56 Sequence=1 ttl=251 time=13 ms
Reply from 201.1.1.1: bytes=56 Sequence=2 ttl=251 time=7 ms
Reply from 201.1.1.1: bytes=56 Sequence=3 ttl=251 time=7 ms
Reply from 201.1.1.1: bytes=56 Sequence=4 ttl=251 time=6 ms
Reply from 201.1.1.1: bytes=56 Sequence=5 ttl=251 time=7 ms
--- 201.1.1.1 ping statistics ---
5 packet(s) transmitted
5 packet(s) received
0.00% packet loss
round-trip min/avg/max = 6/8/13 ms
在PE2上的Ping测试:
<PE2>ping -vpn-instance charles -a 201.1.1.1 200.1.1.1
PING 200.1.1.1: 56 data bytes, press CTRL_C to break
Reply from 200.1.1.1: bytes=56 Sequence=1 ttl=251 time=11 ms
Reply from 200.1.1.1: bytes=56 Sequence=2 ttl=251 time=6 ms
Reply from 200.1.1.1: bytes=56 Sequence=3 ttl=251 time=5 ms
Reply from 200.1.1.1: bytes=56 Sequence=4 ttl=251 time=6 ms
Reply from 200.1.1.1: bytes=56 Sequence=5 ttl=251 time=6 ms
--- 200.1.1.1 ping statistics ---
5 packet(s) transmitted
5 packet(s) received
0.00% packet loss
round-trip min/avg/max = 5/6/11 ms
7 报文转发过程中标签的作用
原则:转发过程中路由器只分析报文中的最外层标签,不区分该标签是公网标签还是私网标签。
7.1 域内
域内标签报文转发只用到公网LSP标签的交换,报文中的BGP标签、私网标签保持不变。
7.2 域间
域间标签报文转发时报文有2层标签,从内到外为BGP标签、私网标签,到达对端ASBR时,BGP标签交换为对端AS内的公网LSP标签。
8 配置中涉及的特殊命令
8.1 peer label-route-capability
peer label-route-capability命令用来使能处理带标签的IPV4路由的能力,在ASBR、RR 和PE上配置该命令,使PE能够通过RR的反射,获得BGP+路由(路由+标签),从而能够给去往对端PE的报文打上BGP标签。
该条命令的应用例:
bgp 100
undo synchronization
group PE1 internal
peer PE1 advertise-community
peer PE1 connect-interface LoopBack0
peer PE1 label-route-capability
peer 1.1.1.10 group PE1
group ASBR1 internal
peer ASBR1 connect-interface LoopBack0
peer ASBR1 label-route-capability
peer 1.1.1.3 group ASBR1
group RR external
peer RR ebgp-max-hop
peer RR connect-interface LoopBack0
peer 1.1.1.1 group RR as-number 200
通过display bgp routing-table label 命令,可以显示BGP+标签的分配情况
例:
[PE1]disp bgp r l
Flags: # - valid ^ - active I - internal
D - damped H - history S - aggregate suppressed
In/out
Dest/Mask Next-Hop Label
-------------------------------------------------------------------------------
#^I 1.1.1.1/32 1.1.1.3 -/-
# I 1.1.1.8/32 1.1.1.3 -/-
#^I 1.1.1.9/32 1.1.1.3 -/1025
# I 1.1.1.10/32 1.1.1.3 -/-
#^ 100.1.1.1/32 0.0.0.0 -/-
<ASBR1>disp bgp r l
Flags: # - valid ^ - active I - internal
D - damped H - history S - aggregate suppressed
In/out
Dest/Mask Next-Hop Label
-------------------------------------------------------------------------------
#^ 1.1.1.1/32 10.0.0.25 -/-
#^ 1.1.1.8/32 0.0.0.0 -/-
#^ 1.1.1.9/32 10.0.0.25 1025/1024
#^ 1.1.1.10/32 0.0.0.0 1024/-
#^I 100.1.1.1/32 1.1.1.10 -/-
8.2 peer next-hop-invariable
peer next-hop-invariable命令指明向EBGP邻居发送路由时,不改变路由的下一跳。
缺省
情况下,向ebgp邻居发送路由,会改变路由的下一跳为自己。
这项配置一般用于第三种跨域VPN方式使用反射器通告VPNV4路由的组网环境。
跨域的
反射器之间通告VPNV4路由时,配置不改变路由的下一跳。
应用例:
bgp 100
undo synchronization group RR external
peer RR ebgp-max-hop
peer RR connect-interface LoopBack0
peer 1.1.1.1 group RR as-number 200
ipv4-family vpnv4
peer RR enable
peer RR next-hop-invariable
peer 1.1.1.1 group RR
通过在PE上的display bgp vpn-instance all routing-tabel命令,可以看到在RR1、RR2上配
置的peer next-hop-invariable命令生效,如下例,分别为在AS100内的PE1和AS200内的
PE2上的显示,其中1.1.1.10,1.1.1.9分别为PE1,PE2的loopback接口 0的地址。
例:
[PE1]disp bgp v a r
Flags: # - valid ^ - active I - internal
D - damped H - history S - aggregate suppressed
Dest/Mask Next-Hop Med Local-pref Origin Path
--------------------------------------------------------------------------
Route Distinguisher:1:1 (VPN instance:vpna)
#^ 200.1.1.0 0.0.0.0 INC
#^I 201.1.1.0 1.1.1.9 100 INC 200
Flags: # - valid ^ - active I - internal
D - damped H - history S - aggregate suppressed
Dest/Mask Next-Hop Med Local-pref Origin Path
--------------------------------------------------------------------------
Route Distinguisher:1:1 (VPN instance:vpna)
#^I 200.1.1.0 1.1.1.10 100 INC 100
#^ 201.1.1.0 0.0.0.0 INC
需要说明的是,虽然本文档中的例子物理上的连接是PE-RR-ASBR,从PE-PE的报文也是按照PE-RR-ASBR的路径走的,但是实质上报文如何走,取决于ldp的选路,ldp 的选路取决于IGP路由,与RR无关。
如下图:
8.3 if-match mpls label 和 apply mpls-label
if-match mpls-label命令用来匹配带label的路由
apply mpls-label命令用来配置路由带label
除了在上述8.1中所说的 peer label-route-capability外,ASBR上还需要配置路由策略,路由策略使只有匹配访问列表或前缀列表的路由能够携带MPLS标签,通过路由策略还可以指定从带有MPLS标签的路由中接收指定的路由。
应用例:
network 1.1.1.8 255.255.255.255
network 1.1.1.10 255.255.255.255
undo synchronization
group EXT external
peer EXT as-number 200
peer EXT label-route-capability
peer EXT route-policy rr export
peer 10.0.0.25 group EXT
group RR1 internal
peer RR1 label-route-capability
peer RR1 next-hop-local
peer RR1 route-policy asbr export
peer RR1 connect-interface LoopBack0 peer 1.1.1.8 group RR1
# route-policy rr permit node 0
if-match acl 2900
if-match ip-prefix pe
apply mpls-label
route-policy rr permit node 1
route-policy asbr permit node 0
if-match mpls-label
apply mpls-label
route-policy asbr permit node 1 # 可以使用前缀列表,也可以使用acl
ip ip-prefix pe index 10 permit 1.1.1.10 32
9 M H-MP-BGP注意事项和故障诊断
配置中需要注意的地方:
ASBR之间的端口要启用MPLS,启用MPLS但不启用MPLS LDP,启用MPLS的目的是
为了数据流的传输
本地自治系统(Local AS)必须知道其它AS中的PE路由器的环回地址
路由反射器必须在每个自治域内是可达的
PE,RR,ASBR上的相应对等体的“peer label-route-capability”命令要启用。
故障诊断步骤:
故障的诊断,可以以标签为线索,在PE上,检查三层标签中的每一个是否分配
如果是MPLS LDP的标签没有分配,应该检查MPLS LDP的相关配置,接口上是否启用,MPLS LSR-ID的地址是否路由可达
如果是VPNv4的标签没有分配,应该检查PE-RR间的MP-IBGP的配置和RR1-RR2之间的MP-EBGP的配置,如,在PE上,首先检查自己发布的VPN路由在本路由器上是否可达,然后检查对端PE的路由是否可见,如不可见,在RR上是否可见
如果是BGP+的标签没有分配,先检查“peer label-route-capability”是否已经在ASBR,RR,PE上配置了,ASBR上的路由策略是否已经配置。
10 附件
跨域的OptionC中标签的分配.txt
跨域的OptionC的debug信息_PE1和PE2.txt
PE1上抓到的带有3层标签的ping包_Ethereal.dat
ASBR间的BGPPlus更新报文抓包_Ethereal.dat
RR间VPNv4更新报文抓包_Ethereal.dat。