拆分 OSPF 区域 0 行为 - 会发生什么?

网络工程 ospf 协议理论 射频卡
2021-07-28 01:39:29

为了让我的问题尽可能简单,我整理了一个快速场景:

  1. 区域 0 跨越两个数据中心,每个数据中心都有多个路由器/网络。

  2. 区域 0 有两个连接到区域 1 的 ABR,它们连接到区域 1 中的同一路由器。每个数据中心都有一个区域 0,1 ABR。这些 ABR 也恰好是 WAN 路由器,因此它们也用于互连区域 0 中的数据中心。区域 1 是标准区域。

  3. 由于数据中心之间的 WAN/MAN 链路出现故障,区域 0 变得分区(分裂)。

见图表:

区域 0 分裂

基于阅读 OSPFv2 RFC 和互联网上的许多其他信息,我假设如下:

A. 分区主干充当两个独立的区域 0,它们不再相互了解。

B. 每个区域 0 在其自己的分区内都具有完整的区域内路由功能。

C. 每个区域 0 和区域 1 之间的功能都是完整的。区域 1 从每个分区获取区域 0 摘要,ABR 将区域 1 摘要发送到每个区域 0 分区。来自每个区域 0 分区的外部路由也涌入区域 1,以及用于 ASBR 的类型 4 LSA。

D. 区域 0 A 的路由器无法到达区域 0 B 的网络,反之亦然,因为没有通过区域 1 的虚链路。 由于没有虚链路,区域 0 A 的路由信息​​将不会与区域共享ABR 在区域 1 中学习到的 0 B(反之亦然)。

我是正确的,还是我误解了什么?我的假设基于区域之间的距离向量/水平分割行为。在我做的快速绘图中,这意味着 R1 会将区域 0 摘要泛洪到区域 1,R4 将在区域 1 中学习,但 R4 会假设它直接连接到的区域 0 是唯一的区域 0,因此它不会甚至不要考虑将这些摘要中的任何路由信息“返回到区域 0”。

显然,这不是工作设计所期望的行为,但如果我理解正确,那么如果我的两个数据中心失去彼此之间的连接,这就是我希望我的网络出现故障的方式。我继承了一个单一区域的 OSPF 域,我想将所有分支站点路由器分成一个单独的区域,这样如果区域 0 分裂,数据中心之间的流量将不会通过连接到两个数据的路由器穿越分支站点 WAN 链接中心。

我还对 BGP 重新分配进行了一些 OSPF,并且我不希望一个数据中心的 ASBR 重新分配来自另一个数据中心的网络的路由,如果它的唯一路径需要它在慢速链路上传输双宿主分支机构。

感谢您的任何见解。

3个回答

在更彻底地梳理 RFC 之后,我确信我在帖子中提到的预期行为是准确的。

每个区域(区域 1、区域 0(a) 和区域 0(b))内的区域内路由将按预期工作。

区域 0 摘要仍然会从每个区域 0 分区泛洪到区域 1,为区域 1 提供两个区域 0 分区的所有必要路由信息。

区域 1 摘要仍然会从区域 1 向两个区域 0 分区泛洪,允许两个区域 0 分区都知道区域 1 的路由。

区域 1 不会将区域 0 摘要发送回区域 0,因此拆分区域 0 的分区将不再相互了解并且不会尝试通过区域 1 来到达彼此(除非创建了通过区域 1 的虚拟链接)。

根据我的情况,这是我对失败场景所期望的行为。如果我的数据中心之间的所有冗余链接都出现故障,或者我需要执行某些类型的维护,我不希望数据中心到数据中心的流量(主要是备份/异地复制)使我的分支站点 WAN 链接饱和。我可以对数据中心之间的传输流量的 WAN 链接应用监管,但是我可以为流量提供的一点带宽无论如何都是无用的 - 这将需要我的团队维护更多配置。

如果有人对此有任何疑问,请随时发表评论,我会尽力找到答案。

我认为你是对的。关键点是ABR(R1和R4),因为它们决定了区域之间的泛洪,并在骨干区域交换区域信息。但是,这个想法可以更容易理解。在 RFC2328 中:

3.1. 自治系统的支柱

OSPF 主干是特殊的 OSPF 区域 0(通常写为区域 0.0.0.0,因为 OSPF 区域 ID 通常被格式化为 IP 地址)。OSPF 骨干网始终包含所有区域边界路由器。骨干网负责在非骨干网区域之间分发路由信息。主干必须是连续的。然而,它不必是物理上连续的;可以通过配置虚拟链路来建立/维护主干连接。

3.7. 区域划分

但是,为了在分区后保持完整的路由,地址范围不得跨越区域分区的多个组件。此外,主干本身不得分区。如果是这样,自治系统的某些部分将变得无法访问。可以通过配置虚拟链接来修复主干分区(参见第 15 节)。

所以我们知道一个OSPF自治系统只能有一个骨干区域。根据您介绍的场景,骨干区域分裂后,不再是一个单独的OSPF自治系统,而是两个OSPF自治系统[Area 0(a), Area 1]和[Area 0(b), Area 1]。所以两个自治系统都有区域 1 的路由信息​​,这是你想要的行为。

简而言之,ABR 不会将类型 3 LSA 传递到任何其他区域,除非它是通过区域 0 接收的。所以在这种情况下,R1 或 R4 正在接收分割区域 0 的类型 3 LSA,并且它们不会将其传递回area0s 或任何其他区域。这是 OSPF 的原始环路避免。

谢谢,马杜