跨域的OptionC配置和标签分配分析.docx
《跨域的OptionC配置和标签分配分析.docx》由会员分享,可在线阅读,更多相关《跨域的OptionC配置和标签分配分析.docx(20页珍藏版)》请在冰点文库上搜索。
跨域的OptionC配置和标签分配分析
跨域的OptionC
配置和标签分配分析
华为技术有限公司
2004年11月
修订记录
日期
版本
说明
作者
2004-11-10
张延新吴高宇
1前言
1.1背景
在部署多跳的,跨域的MPLSVPN时,出于管理的需要和其它的考虑,可能需要在路由反射器间实现多跳的,跨域的MPLSVPN,本文从中抽象出一个网络模型,给大家讲解。
1.2跨域解决方案简介
跨域解决方案有三种:
VRFtoVRF、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来做跨域的MPLSVPN,并且今后的跨域VPN都通过这种PE-RR方式来做。
VPNA在A市的网段为在B市的网段为和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相关联跨域多跳的MPLSVPN在RR上建立MP-EBGPpeer,ASBR负责公网标签和BGP标签的交换、或者负责在BGP标签的基础上加上本AS的公网标签。
3路由器配置要点
3.1配置的大体步骤
配置ASBR使能交换IPv4路由和MPLS标签
配置路由反射器使之能够交换VPNv4路由
配置路由反射器能够反射路由到本AS内PE
配置路由策略(在ASBR上)
3.2ASBR配置的步骤
配置MPLSLSRID
配置MPLS,在相应接口启用MPLSLDP或启用MPLS
配置IGP路由
配置ASBR1到RR1的IBGP对等体
配置ASBR1到ASBR2的EBGP对等体
配置路由策略,并引用路由策略到IBGP和EBGP对等体上
3.3RR配置的步骤
配置MPLSLSRID
配置MPLS,在相应接口启用MPLSLDP
配置IGP路由
配置RR1到PE1的IBGP对等体,并配置PE为RR的反射器客户端
配置RR1到ASBR1的IBGP对等体
配置RR1到RR2的EBGP对等体
配置RR1到PE1的MP-IBGP对等体
配置RR1到RR2的MP-EBGP对等体
3.4PE配置的步骤
配置MPLSLSRID
配置MPLS,在相应接口启用MPLSLDP
配置VPN实例,配置RD,RT
配置IGP路由
配置PE1到RR1的IBGP对等体
配置PE1到RR1的MP-IBGP对等体
4路由器的配置
4.1A市ASBR1配置
#配置RouterID为loopback接口0的地址
routerid
#配置MPLSLSRID为loopback接口0的地址
mplslsr-id
#启用MPLSLDP
mplsldp
#启用ISIS为IGP路由协议,networkentity为
isis
network-entity
#配置到ASBR2的接口,并在此接口启用MPLS
interfaceEthernet2/0/4
undoshutdown
negotiationauto
ipaddressmpls
#配置到RR1的接口,并在此接口启用MPLSLDP
interfaceEthernet2/0/6
undoshutdown
negotiationauto
ipaddress
isisenable
mpls
mplsldp
#创建loopback接口0,在接口上运行ISIS
interfaceLoopBack0
ipaddress
isisenable
#创建访问列表2900,允许PE1的loopback接口0的主机地址通过
aclnumber2900
rule0permitsource0
#在ASBR1上运行BGP,AS号100,配置到RR1的IBGP对等体组,配置到ASBR2的EBGP对等体组,引用路由策略rr和asbr在EBGP对等体组和IBGP对等体组上
bgp100
network
network
undosynchronization
groupEXTexternal
peerEXTas-number200
peerEXTlabel-route-capability
peerEXTroute-policyrrexport
peergroupEXT
groupRR1internal
peerRR1label-route-capability
peerRR1next-hop-local
peerRR1route-policyasbrexport
peerRR1connect-interfaceLoopBack0
peergroupRR1
#配置路由策略rr和asbr
route-policyrrpermitnode0
if-matchacl2900
if-matchip-prefixpe
applympls-label
route-policyrrpermitnode1
route-policyasbrpermitnode0
if-matchmpls-label
applympls-label
route-policyasbrpermitnode1
#创建前缀列表pe,允许PE1的loopback接口0的主机地址通过
ipip-prefixpeindex10permit32
4.2A市RR1配置
#配置RouterID为loopback接口0的地址
routerid
#配置MPLSLSRID为loopback接口0的地址
mplslsr-id
#启用MPLSLDP
mplsldp
#启用ISIS为IGP路由协议,networkentity为
isis
network-entity
silent-interfaceLoopBack0
#配置到PE1的接口,并在此接口启用MPLSLDP
interfaceEthernet2/2/0
ipaddress
isisenable
mpls
mplsldp
#配置到ASBR1的接口,并在此接口启用MPLSLDP
interfaceEthernet4/2/0
ipaddress
isisenable
mpls
mplsldp
#创建loopback接口0,在接口上运行ISIS
interfaceLoopBack0
ipaddress
isisenable
#在RR1上运行BGP,AS号100,配置到PE1,ASBR1的IBGP对等体组,配置到RR2的EBGP对等体组
bgp100
undosynchronization
groupPE1internal
peerPE1advertise-community
peerPE1connect-interfaceLoopBack0
peerPE1label-route-capability
peergroupPE1
groupASBR1internal
peerASBR1connect-interfaceLoopBack0
peerASBR1label-route-capability
peergroupASBR1
groupRRexternal
peerRRebgp-max-hop
peerRRconnect-interfaceLoopBack0
peergroupRRas-number200
#配置到PE1的VPNv4对等体组,配置到RR2的VPNv4对等体组
ipv4-familyvpnv4
peerRRenable
peerRRnext-hop-invariable
peergroupRR
peerPE1enable
peerPE1reflect-client
peergroupPE1
4.3A市PE1配置
#配置RouterID为loopback接口0的地址
routerid
#配置MPLSLSRID为loopback接口0的地址
mplslsr-id
#启用MPLSLDP
mplsldp
#启用ISIS为IGP路由协议,networkentity为
isis
network-entity
silent-interfaceLoopBack0
#配置VPN实例,配置RD,RT
ipvpn-instancevpna
route-distinguisher1:
1
vpn-target1:
1export-extcommunity
vpn-target1:
1import-extcommunity
#配置到RR1的接口,并在此接口启用MPLSLDP
interfaceEthernet2/2/0
ipaddress
isisenable
mpls
mplsldp
#创建loopback接口0,在接口上运行ISIS
interfaceLoopBack0
ipaddress
isisenable
#创建loopback接口200,将接口加入VPN实例vpna
interfaceLoopBack200
ipbindingvpn-instancevpna
ipaddress
#在PE1上运行BGP,AS号100,配置到RR的IBGP对等体组RR1
bgp100
network
undosynchronization
groupRRinternal
peerRRlabel-route-capability
peerRRconnect-interfaceLoopBack0
peergroupRR
#将直连端口loopback200引入vpna的路由表
ipv4-familyvpn-instancevpna
import-routedirect
undosynchronization
#配置到RR1的VPNv4对等体组
ipv4-familyvpnv4
peerRRenable
peergroupRR
PE2,RR2,ASBR2的配置和PE1,RR1,ASBR1的配置类同,略。
等待所有bgp邻居连接建立以后,在PE1、PE2上可以看到对方的IPV4路由、,使用displaybgprouting-tablelabel、displaymplslsp,displaybgpvpnallrouting-tablelabel命令可以看到BGP+、私网VPNv4、公网MPLS的label,可以看到从对方学到的VPNV4路由。
隧道建立成功后,属于一个VPN的CE之间可以ping通。
5标签分配
5.1从AS100内VPNA发往AS200VPNA报文的标签分配图
5.2从AS200内VPNA发往AS100VPNA报文的标签分配图
5.3说明
见图,报文从PE1转出时,需要压上三层标签,从内到外分别的VPN路由的标签,BGPLSP的标签,公网LSP的标签。
到ASBR1时,就只剩下两层标签了,分别是VPN的路由标签和BGPLSP的标签,进入ASBR1后,BGPLSP就终结掉了,就剩下VPN路由的标签和公网LSP的标签了,以后就是普通的MPLSVPN的转发流程了。
在RR上公网LSP标签下一跳弹出,最后PE2收到了只有私网标签的报文。
图是图的反方向过程,标签的分配原理一样。
6简单的互通测试
在PE1上的Ping测试:
[PE1]ping-vpn-instancevpna-a
PING56databytes,pressCTRL_Ctobreak
Replyfrombytes=56Sequence=1ttl=251time=13ms
Replyfrombytes=56Sequence=2ttl=251time=7ms
Replyfrombytes=56Sequence=3ttl=251time=7ms
Replyfrombytes=56Sequence=4ttl=251time=6ms
Replyfrombytes=56Sequence=5ttl=251time=7ms
---pingstatistics---
5packet(s)transmitted
5packet(s)received
%packetloss
round-tripmin/avg/max=6/8/13ms
在PE2上的Ping测试:
ping-vpn-instancecharles-a
PING56databytes,pressCTRL_Ctobreak
Replyfrombytes=56Sequence=1ttl=251time=11ms
Replyfrombytes=56Sequence=2ttl=251time=6ms
Replyfrombytes=56Sequence=3ttl=251time=5ms
Replyfrombytes=56Sequence=4ttl=251time=6ms
Replyfrombytes=56Sequence=5ttl=251time=6ms
---pingstatistics---
5packet(s)transmitted
5packet(s)received
%packetloss
round-tripmin/avg/max=5/6/11ms
7报文转发过程中标签的作用
原则:
转发过程中路由器只分析报文中的最外层标签,不区分该标签是公网标签还是私网标签。
7.1域内
域内标签报文转发只用到公网LSP标签的交换,报文中的BGP标签、私网标签保持不变。
7.2域间
域间标签报文转发时报文有2层标签,从内到外为BGP标签、私网标签,到达对端ASBR时,BGP标签交换为对端AS内的公网LSP标签。
8配置中涉及的特殊命令
8.1peerlabel-route-capability
peerlabel-route-capability命令用来使能处理带标签的IPV4路由的能力,在ASBR、RR和PE上配置该命令,使PE能够通过RR的反射,获得BGP+路由(路由+标签),从而能够给去往对端PE的报文打上BGP标签。
该条命令的应用例:
bgp100
undosynchronization
groupPE1internal
peerPE1advertise-community
peerPE1connect-interfaceLoopBack0
peerPE1label-route-capability
peergroupPE1
groupASBR1internal
peerASBR1connect-interfaceLoopBack0
peerASBR1label-route-capability
peergroupASBR1
groupRRexternal
peerRRebgp-max-hop
peerRRconnect-interfaceLoopBack0
peergroupRRas-number200
通过displaybgprouting-tablelabel命令,可以显示BGP+标签的分配情况
例:
[PE1]dispbgprl
Flags:
#-valid^-activeI-internal
D-dampedH-historyS-aggregatesuppressed
In/out
Dest/MaskNext-HopLabel
-------------------------------------------------------------------------------
#^I-/-
#I-/-
#^I-/1025
#I-/-
#^-/-
dispbgprl
Flags:
#-valid^-activeI-internal
D-dampedH-historyS-aggregatesuppressed
In/out
Dest/MaskNext-HopLabel
-------------------------------------------------------------------------------
#^-/-
#^-/-
#^1025/1024
#^1024/-
#^I-/-
8.2peernext-hop-invariable
peernext-hop-invariable命令指明向EBGP邻居发送路由时,不改变路由的下一跳。
缺省情况下,向ebgp邻居发送路由,会改变路由的下一跳为自己。
这项配置一般用于第三种跨域VPN方式使用反射器通告VPNV4路由的组网环境。
跨域的反射器之间通告VPNV4路由时,配置不改变路由的下一跳。
应用例:
bgp100
undosynchronization
groupRRexternal
peerRRebgp-max-hop
peerRRconnect-interfaceLoopBack0
peergroupRRas-number200
ipv4-familyvpnv4
peerRRenable
peerRRnext-hop-invariable
peergroupRR
通过在PE上的displaybgpvpn-instanceallrouting-tabel命令,可以看到在RR1、RR2上配置的peernext-hop-invariable命令生效,如下例,分别为在AS100内的PE1和AS200内的PE2上的显示,其中,分别为PE1,PE2的loopback接口0的地址。
例:
[PE1]dispbgpvar
Flags:
#-valid^-activeI-internal
D-dampedH-historyS-aggregatesuppressed
Dest/MaskNext-HopMedLocal-prefOriginPath
--------------------------------------------------------------------------
RouteDistinguisher:
1:
1(VPNinstance:
vpna)
#^INC
#^I100INC200
dispbgpva