摘要

  • RFC 1887 把 IPv6 地址分配首先定义为路由状态的压缩问题,并明确指出多宿主方案只是在站点、提供商与远端路由器之间重新分摊真实财务成本。
  • RFC 2073 曾设置 Registry ID、Provider ID 与 Subscriber ID;RFC 2374 先去掉注册机构位并换成 TLA/NLA/SLA,RFC 3587 又将这一固定层级列为历史。
  • 消失的是特定机构在比特布局中的永久席位,不是层级聚合本身。分配、路由、合同与实际可达性仍需分别留证。

地址空间变大,路由器并没有变成无限大

1995 年 12 月发布的 RFC 1887 关注的不是某台主机能得到多少地址,而是全网要保存多少可达性信息。若每个站点都带着一个独立前缀出现,远端路由器就必须逐项记录、交换并重新计算。若一批站点从同一提供商的连续地址块中取号,对外便可由一个较短的前缀概括。

这份文档把这种节省称为路由数据抽象。收益主要落在站点之外:其他网络少维护许多表项。此前 RFC 1518 与 RFC 1519 已用 CIDR 让 IPv4 摆脱固定地址类别,以任意长度前缀贴近拓扑。IPv6 延续的不是稀缺地址故事,而是有限路由状态的现实。

RFC 1887 没有把技术效率包装成中立事实。它专门讨论“效率与去中心化控制”。分配可以分散,聚合却要求地址与真实连接关系相符。企业边界、国家边界、管理辖区和物理拓扑并不会天然重合。于是核心问题变成:它们不重合时,例外由谁承担?

四种多宿主方案,都把账单寄给了某个人

第一种方案让多宿主组织取得独立于提供商的单一前缀。内部编号稳定,整个站点也能用一条路由表达。但这条路由无法纳入任一提供商的聚合,可能需要全球各处的提供商单独保存。

第二种方案按每个接入提供商分配一个前缀。各提供商可以整齐聚合,外来流量也更可能从靠近目的地的入口进入。然而某条连接断开时,源自该提供商的地址不一定自动从其他入口可达;外部接入改变,内部地址也得改变。增加备用路由可以缓解故障,却会吃掉原来的聚合收益。

第三种方案选一个主要前缀,只向有限范围发布其他更具体路径。第四种方案给恰好共享同一组提供商的客户一个共同前缀。它们都没有消灭复杂性,只是决定额外表项、协调义务和故障风险出现在哪里。

RFC 1887 在小结中直接说,这些选择会给多宿主组织与传输路由域带来不同的真实——也就是财务——成本,甚至影响没有与该组织直连的网络。提供商是否接受、是否继续传播“非本地”前缀,因此不是简单的格式问题,而是一项成本政策。

五个比特为注册机构留了座位

1997 年 1 月的 RFC 2073 把上述架构做成地址格式:三位格式前缀之后,是五位 Registry ID,再后面依次是 Provider ID、Subscriber ID 和 64 位站点内部部分。

IANA 被写作 IPv6 地址空间的主要注册机构,并可向区域注册机构委派。文档列出了多区域 IANA、RIPE NCC、INTERNIC 和 APNIC 的 Registry ID。注册机构决定提供商与用户字段的分配方式,提供商组织用户字段,用户管理本地部分。

但转发设备不靠解释这些机构名工作。RFC 2073 要求的仍是任意比特边界上的最长前缀匹配,也没有排除其他单播格式。它还承认,有些用户会直接从注册机构取得独立于接入商的地址。

因此,Provider ID 只能证明某套历史分配结构给一个字段起过这个名字。它不能自动证明当前合同、实际路由起源、资产归属或包已成功到达。

注册机构先退出,TLA 与 NLA 随后也退出

1998 年 7 月,RFC 2374 取代 RFC 2073。最醒目的修改之一是删除 Registry bits,理由是路由聚合并不需要它。新格式设置顶级聚合 TLA、次级聚合 NLA、站点级聚合 SLA 与 64 位接口标识符,并把公共拓扑与站点拓扑分开。

它还允许以交换点而非长途提供商作为聚合节点。理论上,站点可在不重新编号的情况下更换长途提供商,也可经交换点实现多宿主,无需从每一家获取前缀。可是提供商选择与可移植机制明确不在文档范围内。格式留出可能,并不等于认证、交接、失败恢复与执行责任都已存在。

2003 年 8 月,RFC 3587 又将 RFC 2374 和 TLA/NLA 结构列为历史。它说固定结构已经被 RIR 协调的分配政策取代;TLA/NLA 在当时部署阶段未必是最佳技术路径,而政策很可能继续演进。

保留下来的格式更克制:全球路由前缀、子网 ID 与接口 ID。全球前缀通常仍由 RIR 与 ISP 分层组织,站点管理员组织自己的子网。聚合没有被废除;标准只是停止把每一级外部机构永久命名在地址内部。

能够平滑改号,不等于改号没有成本

提供商分配地址把更换连接的部分代价交给站点。RFC 4192 给出“先建后拆”的 IPv6 改号程序:同一接口暂时同时持有旧、新前缀,在撤掉旧地址前迁移 DNS、路由与配置。

这是一项真实的连续性工具,却不会自动找出每一处写死的地址。访问控制列表、监控系统、证书配置、应用程序与灾备文档都可能依赖字面地址。RFC 4984 记录了一个后来仍然存在的事实:对某些站点而言,这些依赖足以使改号实际上无法完成。

同一份 IAB 研讨会报告也解释了另一端。PI 地址帮助企业避开提供商锁定,但每个不可聚合前缀都会把表项与处理负担分散到默认无路由区。PA 地址可在原提供商处聚合,经另一提供商宣布时却可能迫使原方解聚合。地址越多,没有让全球路由状态自动变便宜。

报告把深层矛盾称为定位符与标识符过载。定位符应随拓扑变化,标识符则被使用者期待保持稳定。一串数字同时承担两种角色,就会让网络在可扩展性与连续性之间反复支付成本。

连整齐的 /48 也需要重审

RFC 3177 曾建议通常给终端站点分配 /48,已知只有一个子网时分配 /64。它同时承认,技术分配政策会强烈影响商业关系。

2011 年的 RFC 6177 废止了一刀切的 /48 建议。它警告,少数固定边界可能被实现与运营实践写死,等于回到有类地址。新文档仍要求站点获得足够的规划空间,却把具体规模交还给运营判断。

这条演进线索不是摇摆,而是证据更新。最长前缀匹配、足够的本地空间与聚合目标可以稳定;具体机构名、层级数量与默认分配大小必须允许部署现实来纠正。

不要让一个字段冒充整条权力链

地址分配记录证明某个机构在特定政策与时间下登记过委派。BGP 观测证明某一观察点看见哪个 ASN 宣告前缀。合同证明商业义务。包追踪与应用日志分别证明路径与结果。它们可以由同一前缀关联,却不能互相替代。

RFC 1887 至 RFC 3587 的真正遗产,是将长期目标与临时制度分开。让聚合效果接受测量,让每次分配保留出处,让非聚合例外与改号负担都出现在账上,也让政策能够变化而不伪造过去。

路由表需要压缩。责任与证据不能压缩。

来源