在MPLS ×××中,CE-PE之间使用ospf协议的时候,若是在CE之间还有backdoor链路的时候,那么CE之间在选择路由的时候老是优先选择backdoor链路,而不会选择穿越MPLS ×××网络的链路,主要是由于:redis
在MPLS ×××配置的时候,OSPF常常用来做为PE-CE中间的路由协议,以经过MPLS骨干网络链接×××内的各站点。虽然OSPF PE-CE之间的链接保证了×××站点间的连通性,但×××站点间的backdoor后门链路也应该考虑。若是两个站点属于同一个site,那么通过后门链路的路径老是会被优先选择,由于按OSFP协议规定,intra-area的路径老是优于inter-area路径。所以,必须考虑存在后门链路时,能经过策略来控制路由。 ( K5 R% b0 G8 m8 w6 V
若是后门链路只是用来做为备份使用而不参与×××业务提供服务,缺省的处理流程将不可接受。为了从新经过MPLS ×××骨干区创建站点间的链接,必须在相关PE路由器的入口和出口VRF间创建逻辑的intra-area链路。本特性提供一种解决方案,在两个站点间创建一个假OSPF链路:sham-link,做为intra-area通道,以使得两个站点间的之间的通信经过MPLS骨干区域,然后门链路做为备份使用。若是两个站点间不存在后门链路,没有必要使用sham-link。网络
在MPLS-×××网络中,当PE和CE使用OSPF时,PE从CE学到路由后,都放在相应VRF中,而后传递给对端PE,再由PE转发到远程CE。若是两端CE之间存在backdoor link,×××流量老是经过backdoor link转发,而放弃从MPLS骨干传输。
如图,假设CE1经过OSPF从CE2学到一条路由4.4.4.4/32,CE1一定会优先选择从后门链路到达4.4.4.4。不只如此,PE路由器也一样会选择从后门链路到达4.4.4.4而放弃从MPLS ×××骨干网络中传输。
下面经过实验来验证
实验拓扑如上图,PE1、PE2之间运行MP-BGP。PE与CE之间运行OSPF, CE1和CE2之间也创建OSPF邻接关系,且均属于area 0。在两个PE上一个×××实例。在CE2上建立一个loopback0,4.4.4.4/32,并将其宣告进OSPF。
实验配置
PE1的OSPF和BGP配置:
router ospf 100 vrf ×××A
router-id 1.1.1.1
log-adjacency-changes
redistribute bgp 100 subnets
network 192.168.13.1 0.0.0.0 area 0
!!
router bgp 100
bgp router-id 1.1.1.1
no bgp default ipv4-unicast
bgp log-neighbor-changes
neighbor 2.2.2.2 remote-as 100
neighbor 2.2.2.2 update-source Loopback0!
address-family ***v4
neighbor 2.2.2.2 activate
neighbor 2.2.2.2 send-community extended
exit-address-family
address-family ipv4 vrf ×××A
redistribute ospf 100
PE2的OSPF和BGP配置:
router ospf 100 vrf ×××A
router-id 2.2.2.2
log-adjacency-changes
redistribute bgp 100 subnets
network 192.168.24.2 0.0.0.0 area 0
!!
router bgp 100
bgp router-id 2.2.2.2
no bgp default ipv4-unicast
bgp log-neighbor-changes
neighbor 1.1.1.1 remote-as 100
neighbor 1.1.1.1 update-source Loopback0!
address-family ***v4
neighbor 1.1.1.1 activate
neighbor 1.1.1.1 send-community extended
exit-address-family
address-family ipv4 vrf ×××A
redistribute ospf 100
CE1的OSPF配置:
router ospf 100
router-id 3.3.3.3
log-adjacency-changes
network 192.168.13.3 0.0.0.0 area 0
CE2的OSPF配置:
router ospf 100
router-id 4.4.4.4
log-adjacency-changes
network 192.168.24.4 0.0.0.0 area 0
network 4.4.4.4 0.0.0.0 area 0
实验结果
CE1路由表
PE1路由表和BGP路由表
从CE1和PE1路由能够看出,PE1和CE1都优先选择backdoor link到达4.4.4.4/32
分析:
(1)CE1从CE2学到的关于4.4.4.4/32的路由为o的路由,即intra-area路由,从MPLS ×××骨干网络到达远程网络是inter-area路由,而inter-area路由是不可能优先于intra-area路由的。
(2)PE1从CE1学到的关于4.4.4.4/32的OSPF路由AD为110,而从PE2学到的关于4.4.4.4/32的IBGP路由AD为200,因此选择从CE1走。
结论:若是CE之间的后门链路仅仅是做为备份使用,那么将其做主用链路,是不理智的。
为了不这一问题,能够在PE 路由器之间创建OSPF 伪链接(sham link),使通过MPLS ××× 骨干网的路由也成为OSPF 区域内路由。
sham link 做为区域内的一条点到点链路,包含在Type1 LSA 中发布。用户能够经过调整度量值在sham link 和backdoor 之间进行选路。
配置OSPF sham-link
PE1
(1)在PE1路由器上建立/32位loopback地址
PE1(config)#int loopback 100
PE2(config-if)#ip vrf forwarding ×××A
PE2(config-if)#ip add 100.1.1.1 255.255.255.255
(2)将/32位地址在MP-BGP里发布
PE1(config)#router bg 100
PE2(config-router)#address-family ipv4 vrf ×××A
PE3(config-router-af)#network 100.1.1.1 mask 255.255.255.255
(3) 建立Sham-Link
PE1(config)#router ospf 2 vrf ×××A
PE2(config-router)#area 0 sham-link 100.1.1.1 100.1.1.2 cost 1
PE2
(1)在PE2路由器上建立/32位loopback地址
PE1(config)#int loopback 100
PE2(config-if)#ip vrf forwarding ×××A
PE2(config-if)#ip add 100.1.1.2 255.255.255.255
(2)将/32位地址在MP-BGP里发布
PE1(config)#router bg 100
PE2(config-router)#address-family ipv4 vrf ×××A
PE3(config-router-af)#network 100.1.1.2 mask 255.255.255.255
(3) 建立Sham-Link
PE1(config)#router ospf 2 vrf ×××A
PE2(config-router)#area 0 sham-link 100.1.1.2 100.1.1.1 cost 1
实验结果
PE1和PE2经过sham-link创建了OSPF邻接关系
再看CE1和PE1的路由表
结论:
从路由表中能够看出,PE1和CE1均经过sham-link学到了关于4.4.4.4/32的OSPF intra-area路由,能够调整sham-link和backdoor的cost来进行路由选择
配置sham-link时须要知足的条件
(1)在PE上单首创建32位loopback地址,在PE之间使用这个地址来创建Sham-Link。
(2)这个32位loopback地址的接口必须放入相应的VRF。
(3)这个32位loopback地址必须在BGP里发布,而不能在OSPF里发布。
(4)同一个OSPF 进程的多条sham link 能够共用端点地址,但不一样OSPF 进程不能拥有两条端点地址彻底相同的sham link。
(5)sham link 的端点地址被BGP 做为×××-IPv4 地址发布。若是路由通过了sham link,它就不能再以×××-IPv4 路由的形式被引入到BGP。