摘要

  • RFC 1888 在给出四种可选兼容机制之前,先建议已有 OSI 地址规划者尽量重新设计原生 IPv6 方案。
  • 它明确指出三类错位:OSI Area 可能跨多条链路,两类前缀不能自然聚合,面向主机的 NSAP 身份也不能直接充当逐接口 IPv6 地址。
  • RFC 4048 后来将“据 IETF 所知未获认真使用”的映射与反向映射中的两个规范错误分开处理;RFC 4548 只修复了后者的窄范围编号用途。

先重画拓扑,再考虑保留字节

1996 年 8 月发布的 RFC 1888 属于 Experimental,而非互联网标准。它开篇最重要的建议不是如何塞入旧地址,而是:已经规划或部署 OSI NSAP 的组织,应当优先设计原生 IPv6 地址计划,并在可行时重新映射本地拓扑。

原因首先是层级含义不同。IS-IS 可以把横跨若干物理链路的系统归入一个 Area;IPv6 子网则假定所有节点处在同一条链路上。把 Area 号原样当成子网号,只保留了数字外观,没有证明邻接、发现和末跳转发仍然成立。

第二处差异是聚合。广域路由要把许多地址压缩成一个公告,必须拥有共同而适用的前缀。普通 IPv6 地址与 RFC 1888 的受限 NSAPA 映射并不会因为同属一个迁移计划就自动聚合。单个地址可以无损还原,整个路由表却可能为此膨胀。

第三处差异落在身份边界。OSI 终端可以拥有多个标识整台主机、跨越各接口的 NSAP;IPv6 地址属于具体接口。把前一种身份放进后一种结构,并不会告诉末跳路由器应当选择哪一个接口。RFC 1888 也明确不处理 ES-IS、IS-IS 及其基础设施的迁移。地址被搬走了,赋予地址可达性的控制面并未随行。

四种机制留下了四种待决事项

第一种机制以 0x02 开头,把受限 ICD 或 DCC 格式 NSAPA 放入十六字节 IPv6 地址。在限定子集内,这个算法可逆;但 RFC 自己警告,它可能导致低效路由,一个 Area 若含多个物理子网,还需要额外机制。能解码旧地址,不等于能找出旧拓扑中的正确链路。

第二种以 0x03 开头,对 NSAPA 截断。保留的层级可帮助分组靠近目标 Area,但最终身份必须由完整 NSAPA 目的选项或封装的 CLNP 分组补足。接收端仍需按本地实现与策略决定转发、解封装或丢弃。自动完成末跳发现不在规范范围内,静态映射或未来类似 ES-IS 的机制只是设想。

这种缺口也会破坏故障证据。常规自动配置与发现不能照搬,完整 NSAPA 不能直接装入 IPv6 路由首部;发给截断源地址的 ICMP 差错甚至可能被丢弃,而不是回到真实源端。兼容层不但可能失败,还可能抹去解释失败所需的回执。

第三种机制保留普通 IPv6 地址,并附带完整 NSAPA 源或目的选项,交给接收端解释。不使用该功能的节点无需实现它。因此,抓包中存在选项只能证明发送端提供了资料,不能证明对端支持、启用或执行了它。

第四种方向相反:在 IANA AFI 35 下,用二十字节 NSAPA 容纳 IPv6 地址,并以 ICP 0 标识。规范禁止递归嵌套,以免形成 RFC 1326 所讨论的路由异常或循环。RFC 1629 提供 NSAP 与 ATM 的相邻背景,RFC 3513 描述后来的 IPv6 地址架构;两者都不是 RFC 1888 已部署的证据。

淘汰旧整体,不等于丢弃仍有用途的编号

2005 年的 RFC 4048 作出带边界的历史判断:据 IETF 所知,把 NSAP 放进 IPv6 的映射从未得到认真使用,也没有 IPv6 实现支持。这个表述是署名于机构知识范围的评估,并非对所有私有实验的普查。它支持把 RFC 1888 改列 Historic,并把原先分配的 IPv6 前缀退回 Reserved。

反向的 IPv6-in-NSAPA 映射则曾引起新的兴趣,包括潜在 ATM 用途。这里还有两个具体错误。ICP 实际是十六位、占两个八位组,不是“第三个八位组”中的单字节;四位十进制 IDI 应以两个八位组的 BCD 编码,而不是任意二进制整数。

2006 年的 RFC 4548 仅替代第 6 节:在 AFI 35 下,十进制 ICP 0 表示 IPv6 格式,ICP 1 表示 IPv4;2 至 9999 只有在格式已经定义并公开、且经 IETF 共识后才可分配。现行 IANA OSI NSAPA Numbers 登记表 保存了这两个含义。登记行证明编号权威,不证明解析器、功能开关、路由或流量存在。

RFC Editor 的 RFC 1888 信息页、RFC 4048 信息页 与 RFC 4548 信息页 清楚记录了状态和替代关系。RFC 4548 没有复活受限或截断 NSAPA-in-IPv6 机制;它只是在旧整体成为历史后,为一个仍可成立的编号需求提供正确格式。

由此可以建立证据阶梯:文档定义计划,算法保留字节,登记机构赋予编号含义,实现解析格式,策略启用功能,路由送达 Area,末跳识别接口,接收端采取动作,应用得到结果,独立观察才证明使用。较低一级永远不能代替较高一级。