如果我的拓扑涉及 3 个子网和两个 OSPF 区域,其中一个子网在区域 0 中,而另外两个子网都在区域 1 中,是否会出现任何问题?
例如:
[area 1, subnet 1]---[ABR #1]---[area 0, subnet 2]---[ABR #2]---[area 1, subnet 3]
如果我的拓扑涉及 3 个子网和两个 OSPF 区域,其中一个子网在区域 0 中,而另外两个子网都在区域 1 中,是否会出现任何问题?
例如:
[area 1, subnet 1]---[ABR #1]---[area 0, subnet 2]---[ABR #2]---[area 1, subnet 3]
这会起作用,但除非您有特定的原因,否则这将是一个糟糕的设计选择(恕我直言)。
请参阅此讨论: 重复的 OSPF 区域 ID
更新#1:
为了完整起见,我使用 dyanmips 模拟了这种情况。该平台是运行 IOS 版本 12.4(15)T13 的 Cisco 3725s。
R1 (lo0 1.1.1.1, f0/0 10.12.0.1) <-> R2 (lo0 2.2.2.2, f0/0 10.12.0.2, f0/1 10.23.0.2) <-> R3 (lo0 3.3.3.3, f0/ 0 10.23.0.3)。
R1&R3的Loopback接口在1区,其他接口在0区。
然后在确认连接的 R1 和 R3 框之间完成 Ping(例如 R3#ping ip 1.1.1.1 source 3.3.3.3)。
在我看来,我仍然会回避这种架构。Mike 提出了完全有效的观点(并且测试证实)这是有效的。OSPF 区域是控制路由传播和减少路由器链路状态数据库大小的有用工具 - 但它们也可以(至少对我而言)记录我打算将网络的“这个”部分与“那个”在架构上分开出于某种原因,网络的一部分。
如果将来您决定将 R1 连接到 R3 并使用相同的区域#,那么您很幸运,并且可以通过更改区域编号或必须使用虚拟链接为自己节省很多问题。因此,也许这是支持在任何地方使用两个区域 ID(0 和 1)的论据——但话说回来,您最初并不打算让 R1 和 R3 能够直接通信。耸耸肩
这是一个风格和个人喜好的问题——似乎没有技术上的原因为什么这不应该起作用,我从来没有打算以其他方式表示。
更新 #2
添加连接的非 ascii 艺术图 - 线性绘制并绘制为三角形。R1和R3之间的意图是什么?area1 应该是连续的还是分开的?
关于跨骨干网(区域0)分割区域1的问题:
[区域 1,子网 1]---[ABR #1]---[区域 0,子网 2]---[ABR #2]---[区域 1,子网 3]
[区域1,子网1]---[路由器#1]---[区域0,子网2,终端设备#1]---[路由器#2]---[区域0,子网2,终端设备#2]---[路由器#3]---[区域1,子网3]
简答:你的提议没有问题......
长答案:
即使是 Peter 的回答,即认为重用区域编号是糟糕的设计,也无法证明这是一个糟糕的设计;如果您检查他使用的超链接,则无法解释这种设计的不良后果。此外,您可能在连接 R1 和 R3 时遇到问题的论点并不充分,因为 R1 到 R3 的链路可以合法地配置在区域 0 或区域 1 中,具体取决于您要传输的流量。他提到的困难是一个错误的困境。
在RFC 2328 中, OSPF第 3.7 节明确允许您使用不连续的非骨干区域(以下称为“区域分区”):
OSPF does not actively attempt to repair area partitions. When
an area becomes partitioned, each component simply becomes a
separate area. The backbone then performs routing between the
new areas. Some destinations reachable via intra-area routing
before the partition will now require inter-area routing.
... Also, the backbone itself must not partition.
因此,您是否使用建议的不连续区域 1 只是一个品味问题……有些人认为在您的图中使用配置是不合逻辑的;这些人可能会建议您将 OSPF 区域编号保留在一起...因此您必须将路由器 #3 上的 [区域 1,子网 3] 更改为 [区域 3,子网 3]。其他人认为重用区域 1 没有问题,因为 OSPF 区域编号仅在本地对发起 OSPF hello 的路由器有意义。
无论哪种方式,我们都应该承认 OSPF 是一种非常灵活的协议;无论在这场辩论中选择一方还是另一方。
那么您通常需要使用虚拟链接通过不同的非区域 0 区域与区域 0 对话,或者您通过非零区域连接区域 0 的 2 个部分。所以虚拟链接不适用。如果它不是区域 0,你可以有一个非连续区域,但正如上面所暗示的,这不是一个好主意。话虽如此,您提出的拓扑将在没有虚拟链接的情况下工作。