摘要

  • RFC 5185 会为每个附加区域建立一个独立的点到点 OSPF 邻接,但这些邻接可以全部运行在同一接口、同一线卡和同一电路上。
  • 可靠的容量与韧性结论必须把逻辑邻接映射回物理资源:带宽只计一次,共享故障显式标记,并用 SPF 后的实际转发验证流量变化。

拓扑平台显示两个 ABR 之间有三条健康链路:区域 0、区域 1 和区域 2 各一条,状态全是 FULL。资产系统却只能找到一个端口、一块线卡和一张运营商专线订单。

两套数据都没有抄错。错误发生在它们被拼成“三级冗余”的那一刻。OSPF 图里的三条边是同一物理链路在三个区域中的投影;拔掉那根光纤,三条边会在同一秒消失。

这项扩展改变的是选路资格

RFC 5185 于 2008 年 5 月作为标准轨文档发布。它的示例中,两个区域边界路由器之间有一条属于骨干区的高速链路,另一个区域内部则有较慢的路径。OSPF 优先选择区域内路径,因此那个区域的流量可能继续走慢链路,而不使用物理上更快的骨干连接。

多区域邻接让同一接口在该区域再建立一个邻接,使高速链路也成为该区域的区域内路径。它没有把链路移出骨干区,也没有创建新介质。

虚链路若要解决该例,会改变链路的区域归属。辅助地址需要更多地址,不适用于无编号接口,还可能增加路由表。把同一有地址子网直接放进多个区域,又与 OSPF 以子网集合定义区域的方式冲突。因此,RFC 选择增加邻接上下文,而不是伪造第二个子网。

每个邻接都是真的,但真实范围有限

实现会为每个多区域邻接创建一份 OSPF 接口数据结构,并且无论底层网络类型为何,都把它当作点到点接口。接口状态机采用点到点模型,邻居结构与邻居状态机仍遵循普通 OSPF。主邻接继续按 RFC 2328 工作。

在物理点到点接口上,因为只存在一个邻居,无需另行配置邻居地址。在其他网络类型上,地址必须配置,或由 OSPF 之外的机制发现,控制报文则以单播发给远端。接收端根据 Area ID 把报文交给相应的邻接上下文。

邻接到达 FULL 后,路由器会在该区域 Router-LSA 中加入类型 1 的点到点链路。Link ID 是远端 Router ID;Link Data 是邻居地址,底层无编号时则为 IfIndex。与普通的有编号点到点链路不同,多区域邻接不发布类型 3 链路。

这些细节说明邻接不是虚构记录。它能独立认证、交换数据库、影响 SPF,也能单独失败。但 FULL 只证明该区域中的链路状态交换完成,不证明新增光模块、管道、电源或物理路由。

容量必须沿物理父对象去重

RFC 3630 的流量工程属性包括 TE 度量、最大带宽、最大可预留带宽、不同优先级的未预留带宽以及管理组。这些属性描述链路资源。管理系统若从三个区域边各复制一次 100 Gb/s,再把它们相加,就会得到并不存在的 300 Gb/s。

正确模型需要稳定的物理资源标识。端口、线卡、聚合成员、运营商电路、管道与共享风险组挂在这个标识上;主邻接和每个附加邻接都引用它。容量按物理标识只统计一次,逻辑消费者则分别列出。

LSDB 和 SPF 告诉运营者为什么某一批流量选择这条边;接口计数器、光功率、FIB 和路径测量告诉运营者链路实际承载了什么。按照 Heng Lu 的现实分层,前者是可执行的符号结构,后者是运行中的约束。两者需要连接,不能互相冒充。

更快的区域内路径也会放大共同故障

RFC 5185 的目的就是让区域流量改变选择。区域 1 获得新的区域内路径后,原本分散在较慢内部链路上的流量可能集中到高速骨干电路。性能可以改善,但这条电路故障时受影响的流量也可能增加。

因此变更记录不能只保留邻接是否 FULL。它还应保存变更前后的 LSDB、SPF、RIB、FIB、接口利用率、丢包、拥塞、备用路径余量以及回退阈值。RFC 6987 的 stub-router 机制和 RFC 9355 的反向度量可以影响选路,却不会改变线缆本身。只有实际转发证据能证明流量已经排空。

共享命运是基于“同一物理链路承载多个邻接”作出的运营推论,不是把 RFC 未写的强制规则塞回标准。这个推论必须由资产、遥测和相关故障时间来验证。

两端不对称仍能互通

远端只需把邻接建模为点到点,双方不必使用完全相同的多区域配置。RFC 5185 为了拓扑表示和故障排查而建议对称配置,但并未把对称性设为协议互通条件。

这种兼容性支持自愿采用,也制造了运营成本。一端把关系称为多区域邻接,另一端可能只看到普通点到点接口。协议交换正确,告警、资产与值班手册却使用不同名词。

证据对象要同时记录两端 Router ID、ABR 角色、软件版本、接口、邻居地址及其发现来源、Area ID、主邻接、附加邻接、双方配置视图和共同物理电路。否则两支团队都可能对各自设备作出正确描述,却无法同意同一故障的边界。

配置歧义应在运行前被拒绝

通常,报文中的 Area ID 决定使用哪个邻接。骨干报文则可能属于虚链路或多区域邻接。如果一个报文同时匹配两者,RFC 5185 把它定义为应在配置时处理的错误。

这是一条很强的控制原则:不要让运行顺序替系统决定两个合法解释谁优先。拓扑导入也应如此。如果系统无法证明两条边是否共享一条电路,就应该停止容量结论,而不是把“未知”默认为“独立”。

OSPFv3 把拓扑与地址拆得更清楚

OSPFv3 的 Router-LSA 链路不依赖地址语义,可以明确标识邻居。RFC 5185 同时规定,多区域邻接对应的前缀不写入 intra-area-prefix-LSA,并且不应为它发布 link-LSA。邻居的 IPv6 链路本地地址可以从收到的 Hello 报文头获得,并用于多访问网络上的下一跳计算。

这意味着拓扑边可以成立,而不需要制造第二套前缀。若资产平台坚持“每条 Router-LSA 边必有一个新增地址对象”,它只能误报缺失或编造数据。拓扑、地址和物理资源应当分开保存,通过有证据的键相连。

一份可核验的最小收据

重要部署至少保留:不可变的变更与拓扑快照标识;Router ID、ABR 角色和软件版本;本地接口与邻居发现来源;电路、管道、线卡、聚合成员和供应商标识;主邻接与所有多区域邻接的映射;Area ID;底层网络类型与强制点到点模型;接口和邻居状态机时间线;Router-LSA 的 Link ID、Link Data 与度量;类型 3 链路的预期缺失;OSPFv3 前缀与 link-LSA 行为;变更前后 LSDB、SPF、RIB、FIB 与流量;只计一次的容量;共享风险;两端是否对称;虚链路冲突检查;维护、排空和回退标准;最终对账结果与仍未验证的层。

这份收据没有否定多个邻接的价值。它只是把权力放回证据边界。RFC 5185 提供最小共同机制,让不同网络自行决定是否采用;运行系统则必须承认,符号可以有三份,而承载它们的现实仍可能只有一份。

信息源

  1. RFC 5185 HTML
  2. RFC 5185 文本
  3. RFC Editor 信息页
  4. IETF Datatracker 文档页
  5. IETF Datatracker 历史
  6. IETF Datatracker 参考资料
  7. RFC 5185 勘误
  8. RFC 2328:OSPFv2
  9. RFC 2328 信息页
  10. RFC 5340:IPv6 OSPF
  11. RFC 5340 信息页
  12. RFC 3630:OSPF 流量工程扩展
  13. RFC 6987:OSPF Stub Router
  14. RFC 7770:可选路由器能力
  15. RFC 8665:OSPF Segment Routing
  16. RFC 9355:OSPF 反向度量
  17. RFC 3137:OSPF Stub Router
  18. Heng Lu:现实的层次
  19. Heng Lu:最小规范与自愿采用
  20. Heng Lu:运行代码优先