摘要

  • RFC 9666 让外部 Level 2 只看见一个 Proxy LSP,从而避免把整套 leaf-spine 拓扑复制进 LSDB;被隐藏的区域仍要兑现它宣告的转发连通性。
  • 可辩护的运行证据必须把成员就绪、Leader 选举、投影输入、边界过滤、内外 SPF、FIB 安装与跨区域探测串在一起。

控制面上没有红灯。每台 Inside Router 都在 Level 2 LSP 中宣告 Area Proxy TLV,Leader 因而发布共同的 Proxy System ID。外部路由器把整片区域看成一个节点。问题出在其中一台设备:它接受了新的计算结果,却没有把相应下一跳装进转发表。

这不是 RFC 9666 承诺可以消除的状态。该机制要解决的是规模问题。普通两级 IS-IS 在 Level 1 区域只挂接于 Level 2 时,可以用汇总保护上层 LSDB。但 leaf-spine 数据中心往往有多个叶节点接入 Level 2,它们之间的流量仍要穿越 spine。按普通规则,上层为了算通路可能不得不看见整片内部拓扑,层级抽象随之失效。

Area Proxy 选择把复杂性留在内部:外部只有一个代理系统和一个派生的 Proxy LSP;内部继续维护真实拓扑,并承担把代理所宣告的通路变成现实的责任。

“全员就绪”只是最小共同承诺

Inside Router 必须显式启用功能,并在 Level 2 中发布 Area Proxy TLV。Leader 观察到所有成员都就绪后,才分发 Proxy System ID。Inside Edge 在学到这个身份之前不得向外发送 Level 2 Hello;之后又必须用代理身份而非自身身份发出。

这个顺序防止半数设备仍按旧边界工作。但 TLV 只能说明软件宣称具备参与能力。它不能证明过滤规则已经落地、FIB 已被编程、ASIC 接受了状态,也不能证明端到端探测成功。因此“就绪”之后还必须有安装与数据面的回执。

成员清单本身也要版本化。若库存遗漏一台实际参与转发的设备,Leader 看到的“全部”只是错误集合上的全称判断。记录应包含预期成员、每台设备的最近广告、观察时间、Leader 代次以及触发共同身份启用的确切事件。

Proxy LSP 是决策产物,不是原始现实

Leader 从内部 LSP 生成对外对象,并排除来自不可达节点的输入。相同前缀可能取最低度量;能力可能取所有节点的交集、最小范围或最小 MSD;任一节点的 Overload 状态又需要向外保留。SR、SRv6、多拓扑和 TE 各有不同的投影规则。

因此只保存最终 LSP 的序列号和校验和不够。还要保存原始输入的哈希、成员范围、不可达判断、每个 TLV 的选择过程与选举代次。否则,外部对象的字节可以被验证,却无法回答它为什么代表这些节点而不是另一些节点。

Leader 故障时,候选者重新生成 Proxy LSP。外部只看见一次更新,这是稳定性的设计目标。内部却发生了权力和证据交接:谁赢得选举、候选配置是否一致、输入集合是否变化、旧版本何时失效、新版本何时进入 FIB,都需要单独记录。

两个拓扑视角不能被拼成一个假视角

外部 SPF 使用 Proxy LSP,并把被隐藏区域的内部通行成本视为零。内部路由器必须忽略该 LSP,使用真实链路计算;为避免环路,还要先比较区际度量,只有区际度量相等时才用区内成本裁决。

这两套图都是真的,但各自只在自己的认知边界内真实。把它们融合进一张监控拓扑,会生成没有任何路由器真正持有的第三张图。正确做法是分别留存外部 LSDB/SPF、内部 LSDB/SPF,再把两者与每个边界的 RIB/FIB 和跨入口出口的探测结果关联。

Area SID 也是同样的边界。对外发布 SID 表示流量可以被送入该区域;只有相关 Inside Edge 都正确消费 SID、内部路径安装并完成实际事务后,才有交付证据。

隐藏拓扑是一项必须持续验证的负面义务

Inside Edge 不仅要发布代理身份,还要阻止内部 LSP、CSNP 和 PSNP 内容越界。一次泄露会让外部同时看见代理与其一部分组成节点,抽象即使没有立即造成中断也已失真。测试必须证明“不该出现的身份没有出现”,而不能只证明 Proxy LSP 存在。

RFC 5304 与 RFC 5310 的认证可以保护消息来源与完整性,不能替代投影正确性、边界授权与转发结果。RFC 9666 本身还是 Experimental,只覆盖 IP 流量,把 MPLS 留给后续工作,也不支持多台 Inside Edge 共用的边界多接入 LAN。这些限制决定实验的权限,不应在生产叙事里消失。

来源