场景一:一个普通区域脱离骨干区域0,只连接了另外普通区域
如下图:
AR5与AR3建立Vlink邻居之后,使AR3成为完全意义上的ABR,能够交互3类LSA报文
场景二:两个普通区域全部脱离骨干区域0
如下图。Area 0所在链路全部down掉,此时网络中只有Area 2 和Area 3区域。
AR3学习不到AR1的loopback路由,因为AR2不是真正意义上的ABR(虽然有AR1和AR3 loopback路由)
配置虚链路:
配置思路:AR 1与AR2建立虚链路,AR 3与AR2建立虚链路
配置后路由验证:AR 1有了AR3的OSPF路由
配置后AR2成为完全意义上的ABR能够交互3类LSA
场景三:口字形组网中,区域0被分割,以及次优路径
下图组网中:为防止上层网络区域0因链路中断而导致区域0分割,配置Vlink解决
场景四:用于连接不连续的骨干区域的场景
虚链路的作用:
某些情况下普通区域无法与骨干区域直连,这时便无法得到其它区域的路由,因此,设计了将骨干区域的范围通过虚拟的方法进行扩展到相邻常规区域的位置,因而让不能直接与骨干区域相连的区域,最终可以与骨干区域直连,这种对骨干虚拟的扩展和拉伸就是OSPF虚链路(Virtual Link)能实现。
建立OSPF虚连接之后,该虚连接两端实现了区域0链路的效果。LSDB中增加区域0的LSDB。
例如:当机房升级,需要进行割接操作,造成骨干区域被分割,但是不能影响现有业务的运作,就可能用到虚链路。
虚链路注意事项:
- 特殊区域不能配置虚链路。
- 骨干区域不能配置虚连。
- 虚链路不能跨区域。
- 虚链路配置不当可能会导致环路。
虚链路报文格式
虚链路LSA格式:
Flag字段:v位为0表示了这是虚链路的LSU报文,1表示不是虚链路的数据。
一类LSA:type为virtual
- 查看LSDB中的信息:
具体携带的内容,Link ID含义为Vlink对端ABR的RID,data为自己与之相连的接口ip地址。其实和P2P的是一样的,不过这里是不是直连的而已,所以还需要通过对端RID,通过区域内LSA计算得到对端的地址,以本地LSA中data的地址发送单播信息与对端建立邻接关系。
OSPF在虚链路中建立邻居的OSPF 所有报文是单播报文
(例如下面的hello报文),源目地址是虚链路两个ABR的地址:因为两台路由器可能不是直连的,并且对应的所有报文的ttl值为255,普通的OSPF报文为1。
- 虚链路通过单播进行发送,但是虚链路的邻居使用邻居的Router ID来标识,不能作为协议报文的目的IP地址(配置虚链路时后跟的是RID),怎么确定协议报文的目的IP地址?
每个虚链路的端点都要计算两个最短路径树,一个是本地最短路径树,而另一个是邻居的最短路径树,当然前提是每个区域内的LSDB都是同步的。
计算虚链路邻居的最短路径树后,在最短路径树上查找如何到达本地路由器(通过Router ID标识),虚链路邻居到达本地路由器的出端口的IP地址为本地路由器发送给虚链路邻居的协议报文的目的IP地址。
虚链路邻居建立及维护:
1. 虚链路上邻居建立不要求在同一个网段,不要求掩码相同。
2. 周期性发送单播Hello报文,维护邻居关系,邻居失效时间为40s
3. 如果建立虚链路的最短路径树中断,虚链路会自动断开
4. 本端虚链路的出接口出现故障,虚链路会立即失效
虚链路产生ABR的特点:
1.建立虚链路后产生的ABR,不会向虚链路穿越的区域泛洪骨干区域的三类LSA。
2. 建立虚链路后产生的ABR,在使用骨干区域的三类LSA时,必须在该虚链路穿越的区域也学到这条三类LSA。
3. 无法在虚链路穿越的区域对Area 0的路由做汇总。
4. 如果做了区域0的认证,由于虚链路也属于Area 0,所以建立虚链路的设备也需要启用认证。
5. 增加了Area 0的设备,即增加了区域LSDB的复杂度。