摘要
- RFC 9791 第 2.1 节把 NFFRR 描述为 MNA 用例:第一次 FRR 后给数据包做标记,以阻止可能造成环路的再次 FRR;它是 2025 年 7 月发布的 Informational 文档,不是完整动作定义。
- NFFRR 的治理含义比“一个比特”更大:第一处本地修复点实际上获得了委托否决权,它把“第二次修复也许能成功”与“第二次修复可能形成环路”之间的风险判断传给下游。
- 截至 2026-09-20,IANA 的 Network Action Flags Without Ancillary Data 注册表没有 NFFRR;两份 NFFRR Internet-Draft 都已过期,TBA 位、信令方案和动作语义不能当成现行分配,更不能当成部署证据。
- 现有来源不证明已测量事故、厂商实现、互操作性、普及率或量化效果。可审计性因此必须与机制讨论分开:标准文本说明“为什么需要”,并不等于运行网络已经证明“怎样做最优”。
从“救包”到“禁止再救”
RFC 4090 把 RSVP-TE FRR 建立在预计算的局部备份上,RFC 5286 与 RFC 7490 又把 LFA 和 Remote LFA 的安全性明确系于拓扑与故障模型:保护的是某类失败,超出假设的并发或更广故障可能重新引入环路。2025 年的 RFC 9855 继续发展 TI-LFA,但同样区分局部失败保护与其他收敛问题。
因此,NFFRR 不是对 FRR 的否定,而是给 FRR 加“停止条件”。RFC 9791 第 2.1 节只提出用例:一个包已经被 FRR 改道后,再次 FRR 可能让它在激活保护的 LSR 之间循环,造成链路拥塞与额外丢包。它没有给 NFFRR 分配最终动作编码,也没有定义完整信令、鉴权、过期或部署流程。
这正是责任边界出现的地方。第一 PLR 一旦给包附上“不要再 FRR”的含义,下游就不再只根据自己的局部故障视图行动。它必须尊重上游关于“再修一次更危险”的判断。换言之,标记不是单纯状态,而是一项委托:上游把对后续修复的否决权带进了数据平面。
谁可以牺牲第二次交付机会
这种否决只有在假设可说明时才站得住。至少有四层前提。
第一是拓扑假设:第一 PLR 必须有理由相信后续可见的失败与自己观察到的失败相关,或第二次修复会把流量送回已走过的保护域。EVPN 示例成立,正因为一个 CE 故障在 PE2、PE3 两侧表现成两个局部接入失败。
第二是故障模型:链路故障、节点故障、SRLG、CE 故障或多个独立故障不能被混为一谈。RFC 5286 已说明,超出替代路径原先保护范围的失败可能造成临时环路。若第二个失败其实独立且存在安全出口,禁止第二次 FRR 就可能把可交付流量提前丢弃。
第三是能力假设。RFC 9789 要求运营者知道哪些节点支持哪些 MNA,并确保相关能力被信令;可读标签深度也是硬件能力的一部分。混合能力路径上,“我插入了标记”不能自动推出“所有下游都能读、会读、按同一语义处理”。
第四是信任假设。RFC 5920 对 MPLS/GMPLS 的安全框架强调转发平面并非天然可信;RFC 9789 也指出应防止网络处理来自域外的 MPLS 标签。过期的 draft-kompella-mpls-nffrr-04 更直接警告:恶意或被控制的 LSR 可以插入 NFFRR,使本来可能成功的保护不启动,制造不必要丢包。一个假标记因此不是普通格式错误,而是伪造的否决授权。
新编码并没有替 NFFRR 完成标准化
RFC 9994 于 2026 年 6 月以 Proposed Standard 发布,规定 MNA 通用栈内子栈、作用域、动作顺序和未知动作处理。对不认识的网络动作,U=0 表示跳到下一个动作;U=1 表示丢弃数据包,并应维护本地计数器,还可以限速通知运营者。它也规定 I2E、Hop-by-Hop 和 Select 等作用域。
但 RFC 9994 没有定义 NFFRR。当前 IANA “Network Action Flags Without Ancillary Data” 注册表仍为空,因此不能把历史草案里的建议位号、TBA 值或 SPL 建议映射成现行 NFFRR。draft-kompella-mpls-nffrr-04 已于 2024 年 4 月过期;draft-li-mpls-mna-nffrr-01 早在 2023 年 4 月过期,其中 NFFRR 的 Network Action Indication 仍写作 TBA1。机制设想、信令草案与实际分配之间必须保持这条证据线。
这也让错误状态更复杂:缺失标记可能让第二次 FRR 继续发生;错误标记可能阻断本来安全的修复;过期标记可能基于旧拓扑、旧能力或旧故障关联继续生效;伪造标记把攻击者的意图伪装成第一 PLR 的风险判断;误读标记则可能来自作用域、栈位置或能力理解不一致。混合能力节点再叠加 U 位行为,结果可能从“忽略”一路跨到“丢弃”,而不是单一失败模式。
Daniel Kade 的编辑建议:建立“FRR 克制凭证”
下面不是 RFC 要求,而是 Daniel Kade 的编辑建议:凡是采用“第一次修复可以压制第二次修复”这一治理逻辑的网络,都应把决定留成一张可复核的 FRR 克制凭证。至少记录:
- 服务类别;第一次与第二次故障观察;第一 PLR 与其修复方法;
- 拓扑版本与故障模型;动作身份、作用域、插入点与栈位置;
- 预期节点能力证据,包括 MNA 支持、可读深度以及能力信令来源;
- 边界来源与入口过滤,说明哪些节点或域被允许创建、保留或清除该标记;
- 下游识别结果与最终处置,是继续转发、跳过未知动作、丢弃还是其他已定义结果;
- 相关计数器、拥塞与丢包观察;策略责任人,以及复审和过期触发器。
这张凭证的价值不在于增加文档,而在于把“主动丢包是为了保护共享容量”从口号变成可质询的因果链。若环路会持续占用保护链路并扩大损失,克制可能保护更多流量;若第二次 FRR 本可成功,克制就是对单个流的主动牺牲。没有故障关联、能力证明与处置证据,就无法判断是哪一种。
来源
- RFC 9791 — Use Cases for MPLS Network Action Indicators and Ancillary Data
- RFC 9791 — IETF Datatracker record
- RFC 9789 — MPLS Network Actions (MNAs) Framework
- RFC 9994 — MPLS Network Action Sub-Stack Specification
- IANA — MPLS Network Actions
- draft-kompella-mpls-nffrr-04 — No Further Fast Reroute
- draft-kompella-mpls-nffrr — Datatracker history
- draft-li-mpls-mna-nffrr-01 — MPLS Network Actions for No Further Fast Reroute
- RFC 4090 — Fast Reroute Extensions to RSVP-TE
- RFC 5286 — Basic Specification for IP Fast Reroute: Loop-Free Alternates
- RFC 7490 — Remote Loop-Free Alternate Fast Reroute
- RFC 9855 — Topology Independent Fast Reroute Using Segment Routing
- RFC 3443 — Time to Live Processing in MPLS Networks
- RFC 5920 — Security Framework for MPLS and GMPLS Networks
- Heng Lu — Running-Code Primacy and the Future of Post-RIR Internet Coordination
会员简报
档案背景详情
使用相应会员等级登录,即可解锁完整简报与来源注释。
仅限 Strategic Circle
Strategic Circle
所有读者均可浏览。加入并登录后可解锁档案简报。
加入 Strategic Circle仅限 Leadership Alliance
Leadership Alliance
符合条件的 IP 资产所有者和管理层可登录查看 Leadership Alliance 简报。
加入 Leadership Alliance
