摘要
- Generic Metric 取最大可用值时,链路仍以最后手段留在 Flex-Algorithm 计算中;高成本不等于撤回。
- 胜出的 FAD 若选择一种非普通 IGP 度量,而链路没有发布该度量,链路必须被剪除;但带宽或时延证据缺失时,相应阈值规则本身不得据此剪除。
- 可审计记录必须保存字段是否存在、来源、显式或派生方式、消费它的规则、首个剪除原因、计算拓扑,以及后续独立的 FIB、报文与服务证据。
一次维护窗口里,工程师把设备上所有链路的度量推到最大,然后宣布“流量已经排空”。大部分流量确实转移了,却仍有一条路径经过这台设备。若没有更短的替代路径,这并不要求设备存在缺陷:最大可用度量仍然是一条昂贵但合法的最后退路。
同一张监控图上,另一个空字段可能产生相反结果。所选度量消失,链路从计算中被剪掉;时延观测消失,最大时延约束却不能仅凭未知值把链路剪掉。三个格子都可以被涂成红色,协议动作仍完全不同。
RFC 9843 于 2025 年 9 月以 Standards Track 发布,并有独立的 RFC Editor 记录。它更新 RFC 9350;纯文本版与 XML 版定义 Generic Metric、最低带宽与最高时延约束、Bandwidth Metric,以及 IS-IS、OSPF 的自动度量计算。发布确立共同语义,不证明任何网络已经部署、收敛或按它转发。
最大值保留的是最后退路
在 IS-IS 中,0xFFFFFF 是 Generic Metric 的最大可用值;在 OSPF 中,对应值为 0xFFFFFFFF。RFC 9843 要求把这类链路作为 last resort 使用。维护时,高成本会让更短路径优先,却在没有替代路径时保住连通性。
这项设计同时揭示操作语言的漏洞。“调到最大”只证明去优先化,不证明移除;“drain”也不天然等于“隔离”。若业务决策要求任何报文都不得再经过某节点,变更回执必须展示真正的剪除或撤回动作、胜出 FAD、受影响的发布、重新计算结果和实际替代路径。
RFC 1195与 RFC 2328分别提供 IS-IS、OSPF 基础。RFC 5305与 RFC 3630定义 Traffic Engineering 属性。RFC 9843 没有把既有度量全部改写成可互换的通用字段:已有旧式发布机制的度量仍以原机制为准,重复的 Generic Metric 形式要被忽略。值从哪里来,本身就是有效性的一部分。
缺少所选度量,比较便失去共同尺度
胜出的 Flexible Algorithm Definition 决定计算类型、度量类型与约束。RFC 9350 的有序剪枝规则明确:如果算法选择的不是普通 IGP 度量,而某链路没有发布所选度量,就必须将链路从计算中剪除,不能假设其值为零。
原因不是保守,而是语义一致。把缺失填成零,会让证据最少的链路看起来最便宜;用厂商默认值填补,会让各节点因本地约定不同而计算出不同拓扑。这里的“缺失”意味着算法不可比较所需的共同输入不存在。
自动 Bandwidth Metric 是受约束的派生路径,而不是任意 fallback。FAD 明确选择自动计算后,显式 Bandwidth Metric 缺失可以由已发布的 Link Bandwidth 推导。如果连底层带宽也没有,RFC 9843 要求剪除链路。数据模型因此至少要区分“显式值缺失但派生值存在”和“派生输入也缺失”。一个 null 无法解释这两种状态。
缺少约束证据,不等于通过,也不触发这条剪枝
FAEMB 比较已发布的 Maximum Link Bandwidth 与 FAD 中的最低带宽。值存在且低于门槛,链路被剪除;值不存在,链路不得因这条最低带宽约束而被剪除,而是继续接受后续规则。
FAEMD 对最高时延做类似判断。它消费 Min Unidirectional Link Delay;相关发布由 RFC 8570与 RFC 7471界定。时延值高于上限时剪除;值缺失时,这条规则不剪除。
准确的状态是“本规则无法作出否决”,而不是“链路满足阈值”。把它显示为 pass,会把无证据变成正面证据;直接显示为 prune,又会偷偷加入标准没有规定的 fail-closed 政策。RFC 9479与 RFC 9492还说明 application-specific 属性的范围:某个值在链路状态的其他位置存在,不代表当前应用与 FAD 能合法消费它。
运营方完全可以增加本地准入条件:任何候选链路缺带宽或时延数据,就不激活这套 FAD。关键是把它记录为额外政策,而不是声称 RFC 阈值本来就这样工作。docs/heng-lu-note.md 所强调的最小共同规则、未来决策本地化,在这里非常具体:所有参与节点共享字段与剪枝语义;是否要求已知数据、选什么阈值、何时上线,由运行代码的运营方决定。
容量函数不是实时负载
RFC 9843 提供 reference bandwidth 与 threshold 两种自动方法。前者用参考带宽除以链路带宽,并用 granularity 截断微小变化,避免度量抖动;后者把容量区间映射到预设度量。两种方法不能同时放进同一 FAD,否则 FAD 被忽略;参考带宽为零时,相应 sub-TLV 也无效。
显式 Bandwidth Metric 优先于自动派生。Interface Group Mode 对并行链路强调整体一致:若所有并行链路都有显式度量,就逐条采用;只有一部分有时,这些局部发布全部忽略,整组改用自动计算。RFC 8668与 RFC 9356提供 Layer 2 bundle member 的背景;工作成员发生变化,会改变输入函数的合计容量。
但容量不是占用率。RFC 9843 明确说,这些程序按总容量或最大链路带宽分配度量,不根据实际流量更新,也不替代 RFC 4655 所描述的 PCE 动态视图或其他实时带宽管理。低成本只能证明容量政策被执行,不能证明此刻还有空间容纳下一条 elephant flow。
记录必须回答“是哪条规则作了决定”
RFC 8919与 RFC 8920提供 IS-IS、OSPF 的 Flex-Algorithm Definition 背景。计算回执首先应固定胜出 FAD 的来源、版本或序列、计算类型、度量类型、约束集合与原始字节或规范哈希。RFC 2119与 RFC 8174则限定哪些大写规范词是真正义务。
对每条链路,还要记录所选度量、带宽、时延和应用容器的存在位图;原始值、单位、年龄、fragment 或 LSA;显式、派生或不可用来源;参考带宽、粒度或阈值表;接口组成员;重复发布、旧机制优先与无效组合的处理;首个剪除规则,或者通过全部规则的事实。SPF 输出、FIB 安装、报文观察与服务结果必须另列,不能拿计算结论替代。
对抗测试只改一个变量。最大值且无替代路径,链路应保留;所选度量移除,链路应剪除;启用自动计算却移除 Link Bandwidth,也应剪除;只移除 FAEMB 或 FAEMD 所需观测,则应通过这一规则继续,但不能标记为合格;并行组只发布部分显式度量,应统一忽略;两种自动方法同时出现,FAD 应被忽略。
测试目标不是所有屏幕同为绿色,而是所有参与实现从相同字节得到相同的第一决策原因。
本文没有证明什么
本文没有测试任何路由器、软件、厂商默认值、算法编号、阈值、容量、时延、网络域或维护事件,也没有观察 FIB、报文、拥塞规避或 SLA。Standards Track 不等于已部署;计算出路径也不等于流量实际经过。
可以成立的结论更窄:最大成本仍保留最后退路;缺少算法必需度量会剪除;缺少门槛判断所需证据不会由该规则剪除。若记录不写消费字段的规则,“缺失”就没有可审计意义。
来源
会员简报
档案背景详情
使用相应会员等级登录,即可解锁完整简报与来源注释。
仅限 Strategic Circle
Strategic Circle
所有读者均可浏览。加入并登录后可解锁档案简报。
加入 Strategic Circle仅限 Leadership Alliance
Leadership Alliance
符合条件的 IP 资产所有者和管理层可登录查看 Leadership Alliance 简报。
加入 Leadership Alliance
