摘要

  • RFC 9716 扩展 Reply Path TLV,使 LSP ping 与 traceroute 的回应无需依赖端到端 IP 可达性,也能穿越多个 SR-MPLS 域。
  • 完整回程栈可以由 head-end 提供,也可由 ABR/ASBR 按本地策略逐域增加并翻译;最终标签栈因此带着多方决定,而不是一条自然存在的反向道路。
  • 运营记录应分别保存请求路径、每次回程修改、FEC 校验、返回码、实际收件与后续客户结果。

一个带着多方决定回来的包

一次 LSP traceroute 从源端出发,跨过 IGP 边界,抵达远端 AS 中的路由器。回应最终回到发起者,监控屏上亮起成功状态。但它并非沿着唯一、必然的路线折返。一个边界路由器选择了节点段;另一个使用自己的 SRGB,把节点地址换成了标签;ASBR 又加入本地 Node-SID 与反向 EPE-SID。任何一个域也都可能按政策拒绝参与。

RFC 9716 于 2025 年 2 月作为 IETF 标准轨文档发布,处理的正是这一现实缺口。传统 LSP ping/traceroute 通常借助 IP 路径送回结果;在多 IGP 域或多 AS 的 SR-MPLS 网络中,远端路由器未必拥有到探测源地址的 IP 路由。为每台路由器建 GRE 隧道或静态路由又可能过于沉重。RFC 9716 选择把 SR 回程编码进既有 Reply Path TLV,让中转节点只需正常 MPLS 转发。

适用边界很明确:这些域属于同一管理方,或由高度协作的管理方运营;SRv6 不在范围内,IPv4-only 与 IPv6-only 域混合时的端到端 OAM 也不在范围内。标准地位证明协议契约经过 IETF 流程,并不证明任何厂商已经实现、任何网络已经部署或任何客户结果已经达成。

标签栈一定有作者

RFC 7110 定义了 Reply Mode 5 与 Reply Path TLV。RFC 9716 为 SR-MPLS 增加三种段编码:Type-A 直接携带标签,Type-C 携带 IPv4 节点地址及可选 SID,Type-D 对应 IPv6。使用该流程时,Echo Request 必须选择 Mode 5,并携带按顺序排列的反向路径;Responder 按此构造回应的 MPLS 标签栈,不得擅自加入其他标签。

可执行并不等于没有治理来源。段类型由本地政策决定,接收端还可能按政策覆盖部分字段。若完整栈由 controller 或操作员预先给出,审计需要保留其身份、拓扑与 LSDB 版本、算法、人工输入、段序列和构造时间。“存在 TLV”无法说明这条回程为何被选中。

前向校验是另一件事。RFC 9716 不改变 RFC 8029 与 RFC 8287 的 FEC 校验。FEC 结果检查数据面对象与控制面理解的关系;Reply Path 决定结果如何回来。有效的 FEC 不能证明回程未被修改,收到回应也不能倒推前向 FEC 正确。

Traceroute 一边走,一边铺回程

当 head-end 看不到远端域的完整拓扑时,RFC 9716 的独特机制出现了:域边界可为下一跳 traceroute 增量构造回程。ABR 可以把自己的节点标签放在已有段之前;ASBR 可以加入 Node-SID 与指向来路 AS 的反向 EPE-SID。参与者返回 0x0006,要求发起端在 TTL 增加后的下一次请求中使用这份新 TLV。

非统一 SRGB 使“翻译”成为必须保存的证据。Type-C/Type-D 节点地址可能需要在边界用该路由器自己的 SRGB 转成 Type-A 标签,因为下游不能假设自己理解外域 SRGB。最终栈是多次本地解释的结果,而不是源端一次写下的全球通用名称。

政策拒绝同样是正式结果。边界节点若不允许动态构造,可返回 0x0007;运营者随后可以显式指定路径,或采用其他方法验证 SR Policy。它不是“尚未成功”的空白,而是某个域对特定请求作出的权威拒绝,应与政策版本、节点身份和后续决定一起保存。

沉默也不能被粗暴写成“网络故障”。Responder 可能发现顶层标签在 LFIB 中不可达;它也可能没有 IP 备用路径来报告错误;经默认路由发出的回应仍可能丢失。日志、序列号缺口与超时只告诉我们证据在哪里中断,而非自动给出根因。

把绿色状态拆成六份记录

可靠的跨域诊断至少包括六类相互关联但不互相替代的记录:请求身份与前向标签栈;回程建议及其 LSDB/算法版本;每个 ABR/ASBR 的增段、SRGB 翻译与接口选择;FEC 和 Reply Path 处理结果;实际回应的 responder、时间与返回栈;另行定义的客户流量、方向、时间窗和应用结果。

回应返回可以证明一个远端节点在某时刻作出了回应,也证明某条 MPLS 回程在当时可转发。它不能证明另一个生产标签栈、未观察的 ECMP 分支、未来状态、容量、应用健康或客户反向流量。

安全边界也揭示了权力边界。RFC 9716 假定参与域可以分享内部信息,同时承认探测可能被攻击者用来提取这些信息,因此要求按来源做边缘过滤,并建议在脆弱的跨域链路使用 MACsec。谁可以发起探测、看到回程细节、保留多久以及用何种速率查询,都是诊断能力的一部分。

来源

主要记录:RFC 9716、RFC Editor 页面与 IETF Datatracker。机制背景:RFC 7110、RFC 8029、RFC 8287、RFC 9256、RFC 8402、RFC 8660与 IANA MPLS LSP Ping 参数注册表。