OSPF虚连接产生的环路问题分析

一、虚连接的使用

   OSPF网络中,通过划分区域能够减少区域中LSA数量,降低拓扑变化导致的路由震荡。在区域划分时,为了保证正常学习路由,需要注意遵守以下两个规则:1、骨干区域必须连续;2、所有非骨干区域都必须和骨干区域相连接。

  如果出现骨干区域被分割或是非骨干区域无法和骨干区域保持连通时,可以通过配置OSPF虚连接(virtual link)予以解决。虚连接有诸多好处,但是在实际应用中却存在环路的风险,本文通过设计一个vlink场景分析环路如何产生。

二、拓扑描述

 1.jpg

1 存在vlink的场景

1、拓扑说明

如图1所示,全网采用以太网技术进行互联,R1R2R1R3间的链路发布在骨干区域,R2R3R3R4间的链路发布在区域1R4R5间的链路发布在区域2。因区域2与骨干区域分离,在R2R4间作vlink

2IP地址规划

所有路由器的router id 使用loopback0地址,loopback0地址为采用简单方式进行编号,如R1router id 1.1.1.1Looback0地址发布进OSPF进程中,路由器间的互联地址均发布进OSPF进程相应区域内。R5上有个网段50.1.1.0/24发布进区域2内。

三、环路分析

1、场景说明

  以上场景中,区域2中的R5上有个网段50.1.1.0/24,将其发布进OSPF进程,这个网段会经区域2的ABR发布进骨干区域。此时在骨干区域的LSDB中50.1.1.0/24的通告路由器为4.4.4.4,

区域2的ABR为R4,区域1的ABR为R2、R3、R4。区域2的ABR会将50.1.1.0/24以三类LSA的形式通告进骨干区域,同时区域1的ABR又会将其以三类LSA的形式通告进区域1。

2、环路形成原因

假设R3上连接的用户想访问50.1.1.0/24。

 (1)R3的路由信息

对于R3,其LSDB在区域1和区域0中均有50.1.1.0/24的三类LSA,但是哪条LSA会写入路由表呢?根据OSPF原理,区域0中的LSA会写入路由表,而区域0中的这条LSA是从R4学到的,R3经由区域0到达R4,所以OSPF路由表中去往50.1.1.0/24的下一跳是R1与R3相连的接口。

(2)R1的路由信息

  对于R1,其是纯骨干区域的路由器,R1经由区域0去往R4,所以R1去往50.1.1.0/24的下一跳是R2的接口。

(3)R2的路由信息

  对于R2,其是R1的ABR,与R3类似,可以由区域0和区域1同时学到50.1.1.0/24的三类LSA,但是仅区域0的LSA会写入路由表,所以R2经由区域0去往R4的下一跳指向R3与R2相连的接口。

   如上分析,R3上面发出的数据包又回到了R3,环路形成。

四、总结

   虚连接在给我们带来方便的同时,也会存在环路的可能性,所以在工作中需要谨慎使用,且在设计网络时应尽量规避虚连接的应用。

 

 


2017年03月