摘要

  • RFC 10028 取代 RFC 3307 中服务器分配、主机分配与 Solicited-Node 相互重叠的旧区间,分别划出 MADCAP、主机分配 SSM、私用、实验和 Solicited-Node 空间。
  • 新登记只能说明哪一类机制应当使用哪一段数值;它不能证明现场软件已更新,也不能证明地址无碰撞、接收者已加入、交换机正确转发,或应用收到了预期的 (S,G) 流。

两段原本隔离的船载网络在一次改造中接到同一条以太网上。左边的新设备按照 RFC 10028,从 0xF0000000 起的区间里为一条 SSM 雷达流选出组 ID。右边的旧控制器多年没有升级,它仍把 RFC 3307 的 0x80000000 到 0xFFFFFFFF 当作 MADCAP 动态池。

分区关闭前,两边都没有报警。分区关闭后,旧控制器恰好租出相同的低 32 位。

新主机可以通过最新区间校验,旧服务器也可以通过自己的旧版校验。登记表只有一份,运行中的规则却有两代。两个“合法”判断在链路层汇成同一目的地址,低带宽仪表开始收到不属于它的高带宽流。

这正是 RFC 10028 的治理含义。该文档于 2026 年 8 月作为 IETF 标准轨道 RFC 发布,修补了一个明确的命名空间缺陷。但修订不会从纸面越过组织边界,自动抵达固件、备用节点、交换芯片和应用进程。标准负责画界;采用者负责证明已经跨过迁移线。

旧规则把两套分配方法放进了同一个池

RFC 3307 把 IPv6 多播地址的低 32 位定义为组 ID,并让这一部分参与链路层映射。它同时描述服务器分配和主机分配,却让两者都在 0x80000000 至 0xFFFFFFFF 的动态空间内取值。最高一段又与 Solicited-Node 使用的组 ID 重叠。

因此,冲突并不一定来自某个实现偏离规范。两套各自遵守旧规范的分配器,就可能在同一作用域选择同一数值。仅凭最终地址,运营者无法倒推出它来自服务器、主机还是 IPv6 邻居发现所需的 Solicited-Node 机制。

RFC 10028 将新划分写入 IANA IPv6 多播地址空间登记:

  • 0x800000000x8FFFFFFF:MADCAP;
  • 0x900000000xEFFFFFFF:未分配,未来需 Standards Action;
  • 0xF00000000xFCFFFFFF:主机分配的 SSM 组地址;
  • 0xFD0000000xFDFFFFFF:私用;
  • 0xFE0000000xFEFFFFFF:实验;
  • 0xFF0000000xFFFFFFFF:Solicited-Node。

RFC 8126 给出了登记政策、变更控制、私用与实验等术语的通用含义。新表格让不同机制可以从数值上彼此识别,是一项必要的最小公共规则。

它不是一台全球分配服务器。IANA 不为某条现场流选择具体 ID,不检查本地配置,也不回收某台设备留下的旧状态。“落在正确区间”只能证明数值与分类相符,不能证明谁产生了它。

标准明确留下了“升级或隔离”这一选择

RFC 10028 大幅缩小 MADCAP 可用范围,并要求实现按新范围更新。对已经部署的 MADCAP,文档给出两个操作方向:使用更新后的实现,或者确保环境内没有其他 IPv6 多播地址分配协议共存。

这不是一句泛泛的最佳实践,而是迁移边界。无法证明升级,就必须证明隔离。

RFC 在写作时称只知道一个 MADCAP 实现,也不知道有大规模部署。这个表述只能作为标准制定当时的有限观察,不能被改写成当前市场统计,更不能替代本地资产盘点。旧分配器最容易藏在冷备、封闭设备和多年不动的工业系统中;它们通常恰恰不会出现在公开部署清单里。

RFC 2730 将 MADCAP 定义为客户端—服务器协议。客户端发现服务器、请求地址,并可能获得 OFFER、ACK 或 NAK;管理员可以决定本地分配政策。一条成功租约能证明服务器做过决定,却不能证明服务器的池边界已经切换到 RFC 10028。

因此,迁移盘点要记录可执行版本、构建号、配置哈希、实际池边界、客户端、作用域、租约 ID、起止时间与续租。主节点更新并不能覆盖故障切换后才上线的备用实例。

低 32 位会成为以太网转发事实

RFC 4291 定义 IPv6 多播地址的格式、标志、作用域与组 ID。临时组在特定作用域内才有意义。两个隔离网络各自使用同一数值可以长期无事,一旦作用域被合并,含义就发生改变。

在以太网上,RFC 2464 使用 33:33 加 IPv6 目的地址最后四个字节组成多播 MAC。这意味着分配器选出的低 32 位会进入网卡过滤器、交换机表项和实际带宽路径。映射正确不等于映射唯一。

RFC 10019 把后果写得很具体:链路层碰撞可能迫使主机在软件中处理多余流量,削弱多播侦听的效果,把高带宽流灌向低带宽设备,甚至碰满交换芯片中的固定哈希桶。它以船载传感器、控制器、雷达、声呐和视频为例,但同一问题也存在于工业自动化、影音和临时传感网络。

网络分区还会制造延迟碰撞。两边离线时分别分配同一地址,重连后才发现冲突。RFC 10019 要求未来的零配置方案能够发现并迁移冲突流;它没有交付那套完整算法。RFC 10028 做的是为这类主机协议预留独立区间,使其能与 MADCAP 等机制共存。

SSM 减少的是对 G 的协调,不是所有证据

RFC 4607 用 (S,G) 定义 SSM 频道:接收者既指定来源 S,也指定组地址 G。两个不同来源可以复用同一个 G,而不会成为同一频道。RFC 8815 因此指出,在保留的 SSM 空间内,G 不必具备全球唯一性。

但来源必须被记录,应用和主机必须支持,成员报告必须进入网络,转发设备还要执行相应状态。RFC 10028 明确提醒 SSM 并非普遍可用。

一些低成本交换机只按目的 MAC 建表,无法表达来源过滤。RFC 10019 对此给出现场背景,RFC 4541 则说明 IGMP/MLD 侦听设备在版本或能力不一致时可能错误剪枝,也可能把未登记流量扩散出去。

因此,SSM 区间内的地址不能独自证明网络执行了 (S,G)。证据需要分别保留来源元组、MLD/IGMP 成员报告、侦听表、路由状态,以及能够识别预期流内容的应用探针。

私用和实验只是命名边界

私用区间适合隔离环境内的手工分配。它允许本地选择,也意味着两个管理域可以选择同一数值。并网、收购整合、临时互联或冗余恢复,都应触发碰撞检查和预案,而不能把“私用”理解为“天然不会冲突”。

实验区间允许测试新的动态分配协议,RFC 10028 甚至没有把实验限定在封闭互联网之外。可是“实验”不等于安全、授权、隔离或兼容。每项实验仍要有负责人、作用域、到期时间和退出证明。

未分配区间等待未来 Standards Action,不是运营者可以先占的库存。Solicited-Node 也承担特定 IPv6 功能,不是剩余动态池。登记标签的作用是限制推断,不是扩大隐含权限。

为每枚组 ID 保存规则世代

一条可审计分配至少要保存:采用的 RFC 修订、分配器类别与版本、配置哈希、请求或本地选择事件、完整 IPv6 地址、作用域、组 ID、以太网映射、应用与流身份、租约开始、续租和到期时间。SSM 还必须把来源 S 绑定进频道身份。

证据链不能停在分配器。还要列出该作用域内所有分配机制、碰撞探测、MLD/IGMP 成员关系、侦听与转发表项、首末包、内容探针、意外来源流量、重新编号触发、旧地址撤销和陈旧状态清除。

以下六个判断必须分开:数值属于当前区间;已知分配器按已知规则产生它;作用域内没有竞争分配;接收者加入;路径转发;应用收到预期流。

这符合 Heng Lu 的运行代码优先:登记是协调证据,执行链才是运行事实。他的最小初始规范、本地化未来决策与自愿采用说明新区间应保持窄而清晰,让采用与部署责任留在本地。他对数据主权形式控制与实际控制的区分,则解释了为什么 IETF 与 IANA 可以定义、记录空间,却不控制现场分配器、交换机和接收端。

RFC 10028 已经移动了边界。运营者还需要证明运行中的系统也移动了。