摘要

  • PSID 是出口 SR Local Block 中的本地段标签,插在 SR 路径最后一个标签之后,由出口处理并弹出。
  • 这里使用 LSP Ping 而不是 traceroute,因为中间节点不处理 PSID;RFC 9884 不规定用 LSP Traceroute 验证 PSID。
  • 关键证据不是“包到了”,而是出口把观察到的标签关联到了哪个 SR 路径上下文。

RFC 9884 扩展 LSP Ping,用于验证 PSID 是否被正确处理,以及出口为它关联的 SR 路径上下文。SR 路径的 endpoint 是 responder。Target FEC Stack 的选择取决于 PSID 的范围:一项 policy 中的全部 segment list 使用 policy 形式;一条 candidate path 中的全部列表使用 candidate-path 形式;一条或部分列表使用 segment-list 形式。只标识部分列表时,必须发送多个 LSP Ping 消息,并且每条消息携带一个与列表相关的子 TLV。

六种子 TLV 是 IPv4 Policy(49)、IPv4 Candidate Path(50)、IPv4 Segment List(51)、IPv6 Policy(52)、IPv6 Candidate Path(53)和 IPv6 Segment List(54)。它们不应同时出现;若出现多个,只处理第一个。保留字段发送时置零,接收时忽略。不支持的 Protocol-Origin 会导致 responder 验证失败。

字段身份逐级增强。policy 形式匹配 headend、color 和 endpoint;candidate path 另外匹配 protocol origin、originator 和 discriminator;segment list 再增加 Segment-List-ID。Target FEC Stack 子 TLV 格式错误返回码 1。PSID 与上下文映射失败返回码 10;验证成功返回码 3,并且 FEC-Status 为 1。

对于反向路径或回复路径,endpoint 发送该子 TLV,headend 验证时不设置返回码。无效回复会被丢弃,headend 应记录或报告错误。这项验证不能被扩大解释为验证了每一个转发节点或每个中间段。

Theo March 的分析——不是 RFC 9884 的强制要求。 建议把结果与控制平面关联,在仪表板上分别呈现 policy、candidate path 和 segment list 探测,并用返回码和字段差异区分陈旧编程与丢包。分阶段上线、监测 PSID 生命周期变化也是运营判断,而不是 RFC 规定。安全边界继承 RFC 8029;RFC 9884 表示新增子 TLV 不带来额外安全挑战。

来源