在MPLS ×××中,CE-PE之间使用ospf协议的时候,如果在CE之间还有backdoor链路的时候,那么CE之间在选择路由的时候总是优先选择backdoor链路,而不会选择穿越MPLS ×××网络的链路,主要是因为:

(1)ospf的intra-area 路径总是优先于inter-area路径;
(2)ospf协议的管理距离(AD)小于BGP的管理距离;
为了让路径穿越mpls ***网络,我们就必须在CE-PE之间创立一个逻辑上的intra-area连接,这就是sham-link。
Router1(config)# router ospf 100 vrf ospf
Router1(config-if)# area 1 sham-link source-addr dest-addr cost 40
Router2(config)# router ospf 100 vrf ospf
Router2(config-if)# area 1 sham-link source-addr dest-addr cost 40


在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-×××网络中,当PECE使用OSPF时,PECE学到路由后,都放在相应VRF中,然后传递给对端PE,再由PE转发到远程CE。如果两端CE之间存在backdoor link×××流量总是通过backdoor link转发,而放弃从MPLS骨干传输。

如图,假设CE1通过OSPFCE2学到一条路由4.4.4.4/32CE1必定会优先选择从后门链路到达4.4.4.4。不仅如此,PE路由器也同样会选择从后门链路到达4.4.4.4而放弃从MPLS ×××骨干网络中传输。

 

下面通过实验来验证

实验拓扑如上图,PE1PE2之间运行MP-BGPPECE之间运行OSPF CE1CE2之间也建立OSPF邻接关系,且均属于area 0。在两个PE上一个×××实例。在CE2上创建一个loopback04.4.4.4/32,并将其宣告进OSPF

 OSPF <wbr>sham-link

实验配置

PE1OSPFBGP配置:

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

 

PE2OSPFBGP配置:

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

 

CE1OSPF配置:

router ospf 100

 router-id 3.3.3.3

 log-adjacency-changes

network 192.168.13.3 0.0.0.0 area 0

 

CE2OSPF配置:

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路由表

 OSPF <wbr>sham-link

PE1路由表和BGP路由表

 OSPF <wbr>sham-link

 OSPF <wbr>sham-link

 

 

 

CE1PE1路由可以看出,PE1CE1都优先选择backdoor link到达4.4.4.4/32

分析:

1CE1CE2学到的关于4.4.4.4/32的路由为o的路由,即intra-area路由,从MPLS ×××骨干网络到达远程网络是inter-area路由,而inter-area路由是不可能优先于intra-area路由的。

2PE1CE1学到的关于4.4.4.4/32OSPF路由AD110,而从PE2学到的关于4.4.4.4/32IBGP路由AD200,所以选择从CE1走。

结论:如果CE之间的后门链路仅仅是作为备份使用,那么将其作主用链路,是不理智的。

 为了避免这一问题,可以在PE 路由器之间建立OSPF 伪连接(sham link),使经过MPLS ××× 骨干网的路由也成为OSPF 区域内路由。

 sham link 作为区域内的一条点到点链路,包含在Type1 LSA 中发布。用户可以通过调整度量值在sham link backdoor 之间进行选路。

 

配置OSPF sham-link

PE1

(1)PE1路由器上创建/32loopback地址

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路由器上创建/32loopback地址

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

 

实验结果

PE1PE2通过sham-link建立了OSPF邻接关系

 OSPF <wbr>sham-link

 OSPF <wbr>sham-link

 

再看CE1PE1的路由表

 OSPF <wbr>sham-link

 OSPF <wbr>sham-link

 OSPF <wbr>sham-link

 

 

 

 

结论:

从路由表中可以看出,PE1CE1均通过sham-link学到了关于4.4.4.4/32OSPF intra-area路由,可以调整sham-linkbackdoorcost来进行路由选择

配置sham-link时需要满足的条件

1)在PE上单独创建32loopback地址,在PE之间使用这个地址来建立Sham-Link

2)这个32loopback地址的接口必须放入相应的VRF

3)这个32loopback地址必须在BGP里发布,而不能在OSPF里发布。

4)同一个OSPF 进程的多条sham link 可以共用端点地址,但不同OSPF 进程不能拥有两条端点地址完全相同的sham link

5sham link 的端点地址被BGP 作为×××-IPv4 地址发布。如果路由经过了sham link,它就不能再以×××-IPv4 路由的形式被引入到BGP