摘要

  • draft-many-lsr-power-group-04 提议用 IS-IS 发布 Power Group、节电潜力、休眠邻接和 LAG 的休眠带宽。这些字段让流量工程数据库能描述休眠资源,却不负责驱动或观测硬件。
  • 配套电源转换草案要求针对明确资源完成双端协商、两套本地电源管理动作、TE 状态保全,以及一条不依赖休眠资源的唤醒控制路径。发出请求或收到确认都不是物理完成。
  • 原有流量只有在双端就绪、邻接或活性恢复、预留与保护状态完成对账、最新可用容量成立、转发表安装并观察到业务效果之后,才能安全进入已唤醒资源。

凌晨两点,控制器看到一个 LAG 标出了 80 Gbit/s 的休眠带宽。节电潜力很高,休眠邻接仍在 TED 里。业务量突然上升,控制器请求唤醒一个成员,收到协议确认,随即把一条 60 Gbit/s 的流量放了进去。

屏幕上的三条信息都可能是真实的,但合在一起仍不足以推出“链路可用”。一端的本地电源管理器可能还停在 Pending;远端成员可能在休眠期间重启,使部分映射无法解析;80 Gbit/s 可能只是休眠成员最大带宽扣除 RSVP-TE 已分配容量后的汇总,并不是刚刚测得的转发余量。

这不是对真实事故的描述,而是对证据边界的压力测试。第 04 版草案解决的是如何让休眠资源继续可计算,不是如何把一次唤醒证明为完成。

字段保留声明,不扩大声明的权限

Power Group TLV 为每个组携带本节点范围内的标识符、以毫瓦计的 Power Savings Potential,以及同样只在本节点内有意义的父标识符。Sleeping Adjacencies TLV 嵌入完整的 IS-IS 可达性 TLV,使暂时不能转发的邻接不必从拓扑记忆中消失。

接口层还有四类信息:所属 Power Group、接口 PSP、非休眠 LAG 的单向休眠带宽,以及放在 RFC 5029 Link Attributes 子 TLV 中的 Power-Sleep Capable 位。

它们各自只能回答一个有限问题:

记录 能证明什么 单独不能证明什么
Power-Sleep Capable 链路可被设计为进入低功耗状态 本次动作已授权或硬件已切换
PSP 清醒与休眠功耗差的声明值 本周期实际节省的电量
休眠邻接 发布者认为邻接休眠且仍需保留身份 两端完成了同一事务或当前已能唤醒
LAG 休眠带宽 休眠成员容量的规定汇总 某个成员已经恢复并可供新流量使用
认证后的 LSP 消息来自一个获认可的 IS-IS 参与者 获授权设备的传感器、配置与物理状态必然正确
新路径计算 某版策略找到了候选 硬件已安装路径、数据包已到达业务

把这张表压成一个绿色“节能就绪”状态,会把多个责任主体变成一个无法追责的结论。

“当前”必须由完整 LSP 集合定义

Power Group 标识符不是全网对象名。它只能在发布该信息的 Intermediate System 上解释。父标识符为零表示根;非零但无法解析的父会让该组按根处理;形成环时,环内所有组都不得用于路径计算。

同一发布者、同一 IS-IS level 的所有 LSP 分片必须合起来判断。标识符、PSP 与父项完全相同的重复记录可以合并;同一标识符对应不同 PSP 或父项时,所有冲突项都应被忽略。接收者不能按到达次序、分片编号或处理顺序挑一个看起来顺眼的答案。

草案只要求发布者在可能时把相关分片作为原子式泛洪更新。也就是说,收敛期间看到新旧混合不是异常假设,而是必须处理的现实。此时正确动作是让冲突信息失效,而不是抢先计算。

休眠邻接同样采用保守规则:若完整集合把同一邻接同时标为休眠和非休眠,休眠状态优先;嵌入 TLV 截断会让整个容器失效;远端节点重启后,广告可以保留,但无法解析的字段在远端重新发布之前不能用于路径计算。

因此,审计记录必须包含发布者、level、LSP 序列与分片集合、生效时段、验证分支和失效原因。只有 sleeping=true 的扁平记录无法重现控制器当时看到的世界。

LAG 汇总值丢失了需要被唤醒的成员身份

一个三层 LAG 可以属于多个 Power Group,但成员子 TLV 不指出哪个物理成员把 LAG 连到哪个组。休眠带宽也只是汇总:休眠成员的最大带宽之和,再排除已分配给 RSVP-TE LSP 的容量。

它不是成员级唤醒证书。一个 100 Gbit/s 端口通电后,可能尚未完成光层同步、邻接恢复、预留对账或加入活动成员集合。此时“电气上醒了”也不等于“出现了 100 Gbit/s 可承诺容量”。

该字段是单向的,以 IEEE 754 binary32 表示字节每秒。NaN、正负无穷和负值无效;同一接口出现互相冲突的副本时应全部忽略。这些规则保证数值可解析且不自相矛盾,但不会替硬件生成就绪后置条件。

RFC 5305提供 IS-IS 流量工程带宽语境,RFC 5120提供多拓扑语境。二者都没有把 TED 中的汇总字段变成实时成员容量测量。

路径计算与电源动作属于不同主体

PCPPS 草案在低负载时把流量集中到少数资源。普通计算必须排除休眠邻接;只有找不到路径时,才可以考虑包含休眠邻接的路径,向独立休眠管理组件发出唤醒请求,然后用“新近唤醒”的邻接重新计算。

负责上下电的组件明确不在该草案范围内。这不是缺陷,而是责任边界:计算器提出需求,本地电源管理器执行物理变化。

电源转换框架草案进一步把状态分为 Operating、Requisition、Ready、Pending 和 Sleeping。准备确认只到 Ready;最终指令发出后先进入 Pending;只有协调转换完成才是 Sleeping。文本明确禁止仅因请求已发送就报告成功。

两端各自执行本地动作。唤醒可以由任一端、业务需要或本地策略触发,而且唤醒消息必须通过一条不依赖休眠资源的路径。链路身份、地址、TE 属性、平行链路区分、LSP、预留、标签和保护状态必须跨越休眠期得到保留或对账。

可信链条至少包括九份记录:输入来源;认证且验证通过的当前 LSP 集合;带时段的 TED 投影;精确策略和计算决定;针对具体资源的双端事务;两端各自的物理完成;身份、TE 状态与独立唤醒路径的保全;唤醒、双端就绪、邻接或活性和最新容量;最后是安装、数据包、能耗测量和业务结果。

前一份回执不能冒充后一份。

认证回答“谁说的”,不回答“机器做了什么”

RFC 5310为 IS-IS 提供密码学认证。第 04 版草案建议保护这些广告,因为伪造、重放或压制信息可能让流量集中到不足容量、选择休眠资源或反复切换状态。

同一段安全分析也指出,认证无法阻止一个获授权但配置错误的路由器发布错误数据。HMAC 可以证明一个认可的控制面主体发出了 LSP;它不能说明 PSP 来自哪类传感器、配置何时更新、两端是否一致、物理继电动作是否完成。

因此每个值都需要记录来源类型——硬件观测、管理配置或派生值——以及版本、采集时间、发布者、认证上下文和后续读回。

唤醒后,RFC 5880定义的 BFD 可以提供一份有限的双向转发活性证据。BFD 正常仍不证明预留容量、预期 LAG 成员、节电量或应用成功。它是链条中的一环。

文档进展不是运行结果

Datatracker把第 04 版列为活跃的个人 Internet-Draft、LSR 工作组候选,并显示已发起采用征询。历史页证明文档在演进,不证明已被工作组采用、成为 RFC、存在实现或完成互操作测试。多个 IANA 码点仍是 TBD。

因此本文不声称任何产品已经部署该机制,也不声称发生过真实故障或获得了实际节能。它只要求在业务决策前尊重字段的语义范围。

安全的准入门槛应是明确的连接后置条件:资源身份未漂移;两端本地状态就绪;两套物理管理器完成;独立控制路径仍在;邻接以及所选活性检查恢复;当前 LSP 集合一致;组映射可解析;预留与保护状态完成对账;最新可用容量足够;转发表已安装;实际流量或业务观察符合预期。缺一项,就标记为 wake_unverified,保留上一条安全路径。

运行代码优先要求把真实执行放在状态名称之前。权力与责任脱节追问谁能下令、谁承担容量回不来的损失。稳定性谬误则把正在运行的业务连续性置于控制面叙事的连续性之上。

LSDB 可以记住一条休眠链路,却不能把它叫醒。

来源