摘要
- RFC 9655 在 Target FEC Stack 之前加入可选的 32771 号 Egress TLV,使全 Nil-FEC 的 MPLS ping/traceroute 能明确写入最终出口 IPv4 或 IPv6 地址。
- 标签深度归零后,返回码 36 只证明该地址精确匹配响应路由器的本地接口或 loopback;10 表示不匹配,旧设备返回 3 时可能根本没有做新验证。
- 控制器意图、出口推导、请求字节、节点能力、实际转发、离线路径重建与真实业务结果必须分别留存身份和时间。
隐去知识,也隐去了判断依据
RFC 8029 的 Nil FEC 没有关联的 FEC 信息。当最外层是 Nil FEC 时,接收者必须跳过 Target FEC 验证。对于只知道控制器下发标签栈、却不知道跨域标签语义的头端,这是务实设计:无需先升级每台中间路由器,探针仍能前进。
但如果一个 Nil FEC 代表整条标签栈,收到包的设备无法仅凭它判断自己是否为预期终点。包被错误送到另一台设备,旧流程仍可能给出看似成功的回答。
RFC 9655 因此定义 Egress TLV。它必须位于 Target FEC Stack TLV 之前,地址字段为 4 字节 IPv4 或 16 字节 IPv6。标签栈深度大于零时,返回码 8 表示仍在转发;深度为零时,设备把 TLV 地址与本地接口和 loopback 地址做精确查找。匹配返回 36,不匹配返回 10。
这是一张终点收据:这台响应设备在这一刻拥有地址 X。它不是每个标签操作的账本。
出口地址本身也有来源链
按照 RFC 9256,常规值来自 SR Policy 的 Endpoint。Endpoint 未指定或为零时,头端改用最后一个 segment 的终点。最后是 Adj-SID,就取邻接远端;最后是 Binding SID,就解析其所代表路径的最后节点。
所以地址并非客观常量,而是头端根据某一版策略与拓扑做出的推导。控制器若刚刚重算 Binding SID,头端仍可能用旧 epoch 构造探针。接收者随后可以准确回答一个已经过期的问题。
证据必须保存 policy ID、candidate path、segment list、Endpoint 来源、binding 解析结果、控制器 epoch、头端配置版本、请求字节与发送时间。RFC 8402 定义 segment 指令体系;RFC 9655 只核对从这些指令推导出来的终端身份。
“兼容”不能抹平证据降级
不认识 Egress TLV 的中间节点可以忽略、跨过或报告错误,头端仍可增加 TTL 继续探测。如果不支持扩展的是出口,它不会做地址核验,而可能按旧流程返回码 3。
业务连续性得以保留,证明强度却下降。若看板把 3 和 36 都显示成“出口成功”,运维就无法知道验证是否发生。最小记录应包括:TLV 是否发送、节点能力是否已知、是否执行 lookup、比较了哪个地址、返回码与子码是什么。
RFC 9041 说明相关码点处理,IANA MPLS LSP Ping 注册表 记录 32771 与 36。注册表证明符号被分配,不证明某个生产镜像实现、启用或正确执行了它。
离线重建不是回包自带的事实
Traceroute 模式下,每一跳都可能成为接收者。结合 RFC 8287 的 SR 扩展,离线程序可以用 TTL、响应者、深度、返回码和预期策略重建路径。
这个程序必须对缺失保持诚实。旧节点、沉默节点、ECMP 分支和策略切换都产生不确定性。不能拿控制器计划路径填补观测空白,再把填补后的图称为“已验证”。输入集、缺失处理规则、期望 epoch 与最终判断都需要版本化。
业务层还在更远处。探针与用户流量可能有不同哈希输入、不同发送时间和不同 steering。出口地址匹配不证明客户报文到达,更不证明应用成功。
Heng Lu 的现实层次要求把意图、符号、转发、观测和结果拆开。最小初始规范让各方共享终点身份,却把部署责任留在本地。运行代码优先则要求从标准回到真实二进制、配置和回包。
来源
会员简报
档案背景详情
使用相应会员等级登录,即可解锁完整简报与来源注释。
仅限 Strategic Circle
Strategic Circle
所有读者均可浏览。加入并登录后可解锁档案简报。
加入 Strategic Circle仅限 Leadership Alliance
Leadership Alliance
符合条件的 IP 资产所有者和管理层可登录查看 Leadership Alliance 简报。
加入 Leadership Alliance

