Answers:
为什么区域0是OSPF中的骨干区域?为什么所有其他区域都必须连接到它?
RFC 3509第1.2 1 节对此进行了很好的解释:
1.2动机
在OSPF域中,区域拓扑受到限制,因此必须有一个主干区域(区域0),而所有其他区域必须具有到主干的物理或虚拟连接。之所以采用这种星形拓扑结构,是因为OSPF区域间路由使用距离矢量方法,并且严格的区域层次结构可以避免“无穷大”问题。OSPF通过实施水平分割机制来防止区域间路由环路,允许ABR仅将源自区域内路由的Summary-LSA注入到骨干中,并限制ABR的SPF计算只考虑骨干区域中的Summary-LSA。链接状态数据库。
OSPF通常被认为是一种链路状态协议。有些人怀念的是OSPF使用两种 链路状态协议和距离向量协议算法。
OSPF 距离矢量行为的简单示例:
<-- Area 5 --><-- Area 0 --><-- Area 4 -->
R5-----------R1-----------R2------------R3---------------------R4
Cost 3 Cost 5 Cost 7 Cost 12
LSA--> LSA-->
Type3 LSA Type3 LSA
{From R1} {From R2}
R5 cost is 3 R5 cost is 8
考虑一下R5的/ 32环回路由发生了什么。
要求所有非骨干网路由通过骨干网是一种环路防止机制。
如果2个区域未通过区域0连接(不连续),则OSPF作为链路状态协议的行为如何增加路由循环的可能性?
如上所述,OSPF使用距离矢量行为通过区域0骨干网发送路由。距离矢量协议具有众所周知的限制,例如无穷计数问题。如果我们在行为上没有界限,OSPF将容易受到同样的问题的影响。
1 RFC 3509描述了Cisco IOS的ABR行为
选择区域0作为主干,数字0或0.0.0.0只是一个数字。
因为OSPF是链接状态,所以LSDB在一个区域内必须相同。这是为了确保SPF计算是一致的,并防止路由循环。
如果运行单个区域OSPF,则可以使用任何区域,则不需要区域0。
运行多区域OSPF时,必须使用ABR。ABR是在区域0和至少一个其他区域中具有邻接关系的路由器。
ABR采用类型1和2的LSA,并在其他区域中将它们宣布为类型3的摘要LSA。这不是前缀的汇总,而是拓扑信息的汇总。实际上,这是距离矢量的行为。
因为其他区域没有彼此的完整信息,所以所有区域间的流量都必须通过区域0。否则,可能会存在路由环路,因为没有完整的拓扑。
由于这种设计,当其他区域的链路上升/下降时,OSPF不必运行完整的SPF。这增加了可伸缩性。