OSPF的防环机制和OSPF环路

OSPF的防环机制和OSPF环路

一、OSPF的防环机制

1、OSPF区域内,采用SPF算法防环。

同一个区域内所有的路由器,拥有该区域的LSDB相同,基于LSDB采用dijkstra算法计算出一棵以自己为根的、无环的最短路径树,因此在区域内消除了环路。

2、OSPF区域间,设定规则防环

1.OSPF规定所有非骨干区域必须直接和骨干区域相连,非骨干区域之间需要通信必须经过骨干区域。
2. 水平分割。ABR只会将三类LSA转发到骨干区域,如果始发的是本区域的路由是不会被再次注入进来的。ABR不会向区域0传播它在非0区域学习到的类型为LSA三类的路由。

二、OSPF环路

OSPF环路实例

如图所示,分别在R1、R2、R3、R4、R5中运行OSPF协议,并且设置骨干区域和非骨干区域(具体区域设置如图)
OSPF的防环机制和OSPF环路_第1张图片
此时,我们OSPF配置完成之后,在R5上创建一个环回口0地址是5.5.5.5/32,并将环回口宣告进area 2。
然后由于area 2 没有直接和骨干区域相连,所以R5的环回口路由没有办法传到区域0。为了解决这个问题,我们在R2和R4的area 1 中配置虚链路。
分析:
当虚链路配置完成之后,R4就成为了ABR,所以R4会把R5的环回口路由(5.5.5.5/32)通过虚链路传到area 0,也会传给area 1 。
R3应该会收到两条关于5.5.5.5/32的路由 。一条是R4传给R3的3类LSA,另外一条是R4通过虚链路传给R2,R2传给R1,R1传给R3的。
查看R3的database
OSPF的防环机制和OSPF环路_第2张图片
OSPF的防环机制和OSPF环路_第3张图片
发现此时的R3不仅有两条关于5.5.5.5/32的路由 。(一条是R4传给R3的3类LSA,另外一条是R4通过虚链路传给R2,R2传给R1,R1传给R3的)而且是有三条3类LSA ,多出一条是R3自己作为ABR自己从area 0收到了之后产生的,并且这条多出来的3类LSA传到了R4。

分别查看查看R3、R1、R2的路由表

OSPF的防环机制和OSPF环路_第4张图片
OSPF的防环机制和OSPF环路_第5张图片
OSPF的防环机制和OSPF环路_第6张图片
发现去5.5.5.5的路由下一跳是R1,R3这条去5.5.5.5的路由本身是R2通过虚链路学到然后传给R3的,但是R2要去5.5.5.5必须经过R3,R3的路由下一跳却是R1,R1的下一跳是R2,R2的下一跳是R3。所以就产生了环路。OSPF的防环机制和OSPF环路_第7张图片

用R3区tracert 5.5.5.5

OSPF的防环机制和OSPF环路_第8张图片

总结:OSPF协议虽然有诸多的防环机制,但是还是存在环路。所以我们在用OSPF协议的时候要合理的规划区域,避免产生环路。

你可能感兴趣的:(华为——数通)