此问题是在思科支持社区提出的相同问题的字面意思。答案是Stack Exchange特有的。
为什么区域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

#3 楼

出自John Moy的“ OSPF:路由协议的剖析”,他撰写了OSPF规范的大部分内容。使用距离矢量,冗余路径的数量越多,收敛性就越差。 OSPF要求所有区域都直接连接到主干,因此将拓扑限制为简单的中心和分支拓扑。这消除了多余的路径,并避免了“无穷数”问题。

#4 楼

在多区域方法中,所有其他区域都必须连接到区域0(主干区域),如果未直接连接到区域0,您甚至可以使用virtuallink连接到区域0;如果您没有将其他区域连接到区域,则可以忽略路由环路0在其他区域和ABR上生成的lsa 1和2信息不会作为LSA 3传递到其他区域。