什么是虚链路呢?
1、虚链路属于区域0的逻辑链路
2、虚链路只能穿越1个非骨干区域
3、虚链路不能穿越特殊区域
虚链路修整不规范的设计
如图,如果R1想要获取100.100的路由,因为R4不是ABR,区域2的路由信息,不会传到区域1的,更不会到区域0.所以这样就没办法获取。那怎么办?
我们可以在非骨干区域中创建一个逻辑链路,把R4变成ABR,这样就能进行路由传递了。这就是虚链路vlink。
vlink在配置的时候,需要指对方路由器的router-id,而非路由器接口IP地址
1、当穿越的区域存在多条冗余路径时,vlink会自己选择最优路径的接口ip地址作为收发报文的接口
他是如何来计算最优路径呢:
配置了vlink的路由器会计算2棵SPF树。1棵是以自己为根,在穿越区域内计算最短路径树
另一颗是以vlinkpeer端来计算到达自己的最短路径树。
综上,决定了最优路径的接口IP地址来收发报文
2、同时由于存在冗余路径,当线路断的时候,SPF树不会断,从而vlink也不会断
虚链路可以优化链路
上图中,假设Area 1中的R1上存在一个1.1.1.1,AR2是一台ABR,会将1.1.1.1传递到区域0(以3类LSA),那么对于AR5来说,
可以从区域0接收到AR2产生的1.1.1.1这条3类LSA,也可以从区域2接收到AR4产生的3类LSA,此时走AR2产生的。因为根据域间
路由放环原则,R5不会计算非骨干的3类。虽然1-2-3-5这条路径COST较大,依然会走。此时我们可以在R4-R5打通vlink。
这样R5就会计算R4发来的3类LSA,就会走cost较小的路径
虚链路的环路风险
如果我们在R2和R4之间做一个虚链路,这样的话R4就变成ABR,会转发3类的LSA给区域1,区域1中的R3会收到R4上传的3类LSA,还有R2-R1上传来的3类LSA,根据ospf的防环原则,R3收到的R4的3类LSA是从非骨干区域传来的,不会计算的。所以当R2访问5.5的时候会吧数据传给R3,但是R3的5.5指向的是R1,所以就在R2-R3-R1-R2之间成环。那么办?
R3和R4之间建立个虚链路即可。这样就解决了问题。
感兴趣的库自己配置下实验做做。