ospf sham link作为一种mpls vpn/ospf多实例组网方式,在运营商、电力网络中有一定的应用,下面我们介绍下ospf sham link的用途、实现原理、相关注意事项
如图是ospf sham link一个典型的应用组网
Ø 设备 C、D作为MPLS VPN的PE建立bgp vpnv4邻居关系
Ø B做为CE设备,A B C D之间运行多实例OSPF 1,
Ø Back door link A与B之间存在back door link
此时组网需求是A与B之间的流量需要优先走PE之间MPLS网络,当PE之间的链路故障后,流量走back door link
大家都知道,对于PE设备来说 可通过ospf 和bgp vpnv4来学习到2个CE的路由,因ospf路由优先级高,则PE上都优选ospf路由,这样CE之间的流量不会优选MPLS网络进行转发,而ospf sham link正是用来满足这个组网需求。
ospf sham link类似于virtual link:2台PE之间通过各自指定的loopback地址建立了虚拟的类型为p2p的ospf邻居(MPLS网络中PE上的ospf技术)
对于CE设备来说
而MPLS网络对与CE来说是透明,这样CE设备上的ospf拓扑可简化为:
这样很容易通过调整链路的cost值来实现路由优选MPLS网络,如图A-C-D-B
Cost 为3 而A-B后门链路cost为30
对于PE设备来说(关键)
上面我们介绍过对于传统mpls vpn网络来说 PE设备可通过ospf多实例和bgp vpnv4来学习到对端CE的私网路由,而此时会优选ospf路由,从而导致流量不会走mpls vpn网络转发
在sham link通过下面实现方式来屏蔽ospf路由:在PE的ospf多实例路由计算完成后,过滤掉所有下一跳为sham link的ospf路由,这样PE上学到对端CE的私网路由就是通过BGP了(通过cost值小优选sham link链路,避免PE直接从本端CE到对端CE,然后又过滤掉下一跳为sham link的ospf路由,使得bgp vpnv4路由生效)。
下面我们来看个例子,如图在B的ospf中network了5.5.5.5/32路由:
C与D建立ospf sham link邻居:
<PE-1>DIS OSPF sham-link
OSPF Process 2 with Router ID 3.3.3.3
Sham Link:
Area NeighborId Source-IP Destination-IP State Cost
0.0.0.0 4.4.4.4 3.3.3.3 4.4.4.4 P-2-P 1
此时在A上我们查看5.5.5.5的路由,1类LSA中的subnet路由
Display ospf lsdb router
Type : Router
LS ID : 192.168.0.1
Adv Rtr : 192.168.0.1
…….
Link Count: 4
…….
Link ID: 5.5.5.5
Data : 255.255.255.255
Link Type: StubNet
Metric : 0
而此时C上也有整个ospf 1的LSDB,有到5.5.5.5的LSA,计算出下一跳为4.4.4.4(sham link链路)然后ospf会把下一跳为sham link的ospf路由过滤掉,又因在D上会把ospf引入到bgp中,则C通过bgp vpnv4学习到5.5.5.5的路由,此时路由属性为bgp路由:
<PE-1>DIS IP routing-table vpn-instance 1 5.5.5.5
Destination/Mask Proto Pre Cost NextHop Interface
5.5.5.5/32 BGP 255 2 2.2.2.2 NULL0
问题一:在上图sham-link中是否需要在PE上的ospf多实例中引入bgp?
如果就现网这个组网,显然是不需要的,sham-link组网中,CE设备通过ospf即可学习到所有的私网路由,不需要通过bgp vpnv4来传递ospf路由,如果网络中还存在其他的PE,则需要否则C D设备学不到别的PE下的私网路由
问题二:为什么在sham link的配置中一再强调不能将sham link的loopback地址只能通过bgp发布 而不能通过ospf来发布
以下图我们来作分析:
正常情况下,C、D先通过bgp vpnv4来学习到2端建立sham link的loopback地址 4.4.4.4,3.3.3.3,则sham-link建立,后通过sham-link来过滤ospf路由,让bgp路由生效来实现sham-link功能
如果在ospf中发布了3.3.3.3或4.4.4.4,则存在2种情况:
1、如果sham link已经建立,此时ospf 计算时会过滤下一跳为sham link的路由,此时PE上还是优选bgp路由:以C为例它通过ospf计算到4.4.4.4 显然是优选sham link的下一跳(cost为1),然后ospf过滤这个路由,依然优选bgp的路由,此时路由达到稳定状态
2、如果sham link还没UP起来,则C,D通过ospf学习到对端loopback路由,又ospf路由优先级高,则C D会优选ospf路由,bgp路由被抑制,则sham-link会一直UP不起来,A、B之间就优选后门链路
Sham-link理解起来相对复杂,最重要的是要理解它是如何抑制ospf路由而让bgpv4路由生效,建议先做一个相关实验,然后在结合相关资料进行学习理解