为什么区域0是OSPF中的骨干区域?为什么所有其他区域都必须连接到它?
我一直在寻找正确的理由,为什么所有区域都必须连接到OSPF中的区域0。我有一个小主意,但我对整个概念不清楚。
如果2个区域未通过区域0连接(不连续),则OSPF作为链路状态协议的行为如何增加路由循环的可能性?
#1 楼
OSPF骨干为什么区域0是OSPF中的骨干区域?为什么所有其他区域都必须连接?
在RFC 3509第1.21节中对此进行了很好的解释:
1.2动机
在OSPF域中,区域拓扑受到限制,因此必须有一个主干区域(区域0),而所有其他区域必须具有到主干的物理连接或虚拟连接。之所以采用这种星形拓扑结构,是因为OSPF区域间路由使用距离矢量
方法,严格的区域层次结构可以避免“无穷计数”问题。 OSPF通过实现水平分割机制来防止区域间路由循环,允许ABR仅将
从区域内路由派生的Summary-LSA注入主干,并限制ABR的数量。仅考虑SPF的计算
骨干区域的链接状态数据库中的Summary-LSA。
OSPF通常被认为是链接状态协议。某些人会错过的是OSPF同时使用了链路状态协议和距离矢量协议算法。
骨干网或非骨干区域中的路由被计算为链路状态协议确实执行(请参考Dijkstra的算法)。
当OSPF必须通过骨干网承载非骨干路由时,它使用一些距离矢量行为(即Bellman Ford算法的一部分)将Type3 LSA度量传播到非骨干区域。
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回送路由会发生什么。
R5发送包含/ 32环回的Type1 LSA。
R1(5区ABR),连接到0区;它将Type1 LSA转换为Type3 LSA,成本为3。
R2(4区ABR)接收R1的Type3 LSA(度量3),并根据R2的成本将其更改为R5的环回。现在,用于R5的R2的Type3 LSA的成本为8。这就是我上面提到的距离矢量行为。 br />
在ABR上连接非骨干OSPF区域
如果2个区域未通过区域0连接(不连续),则OSPF如何表现为链接状态协议增加了路由循环的可能性?
如上所述,OSPF使用距离矢量行为通过区域0骨干网发送路由。距离矢量协议具有众所周知的限制,例如无穷计数问题。如果我们在行为上没有界限,则OSPF可能会遇到同样的问题。
1RFC 3509描述了Cisco IOS的ABR行为
#2 楼
选择区域0作为骨干,数字0或0.0.0.0只是一个数字。由于OSPF是链接状态,因此LSDB在区域内必须相同。这是为了确保SPF计算的一致性并防止路由循环。如果运行单个区域OSPF,则可以使用任何区域,则不需要区域0。 />运行多区域OSPF时,必须使用ABR。 ABR是在区域0和至少一个其他区域中具有邻接关系的路由器。
ABR采用类型1和2的LSA,并在其他区域中将它们宣布为类型3的摘要LSA。这不是前缀的汇总,而是拓扑信息的汇总。实际上,这是距离矢量的行为。
因为其他区域彼此之间没有完整的信息,所以所有区域间通信都必须通过区域0。否则,可能会存在路由环路,因为没有完整的拓扑。
由于这种设计,当其他区域的链路上升/下降时,OSPF不必运行完整的SPF。这增加了可伸缩性。
评论
ospf区域0的目的是防止其ospf域中的路由环路,对吗?
–木马
2014年2月18日14:27在
区域0的主要目标是提供与其他区域的连接。通过使OSPF设计本质上看起来像集线器和辐条(区域0是集线器),可以防止路由环路。
–丹尼尔·迪布(Daniel Dib)
14年2月18日在15:18