部署 IPv6 时常遇到的问题是如何在 4 位半字节边界之外划分子网。文章以 2001:db8::/32 为例演示了在边界内按 4 位步长切分 /36、/40、/44、/48 的简便性,并解释为何大型网络(如 Comcast 的 /31 分配)必须理解跨边界计算的二进制原理。
半字节边界的定义与边界内划分
IPv6 地址共 128 位,采用十六进制表示,每 4 位为一组,对应一个十六进制字符。2001:db8::/32 为例,若在半字节边界内划分,只需在十六进制位上增减:/36 步长 1 个十六进制位(2001:db8:0000::/36、2001:db8:1000::/36…),/40 步长 2 位(2001:db8:0000::/40、2001:db8:0100::/40…),/44 步长 3 位,/48 步长 4 位。这种方式无需处理二进制进位,工程上极不易出错,因此强烈建议所有常规场景均在半字节边界内完成子网规划。
二进制基础与跨边界计算的复杂性
每个十六进制字符对应 4 位二进制,共有 16 种组合(0000 至 1111)。当前缀长度不是 4 的倍数时,必须进入 4 位组内部按二进制计数。例如从 /32 划分 /33,需在第 33 位上做 0/1 区分,不再能简单增减十六进制字符。原文列出 4 位二进制的完整排列顺序,指出一旦跨越半字节边界,就必须像十进制计数一样处理二进制进位,心智负担显著增加,且容易导致前缀重叠或遗漏。
实际案例:Comcast 的 /31 分配
Comcast 获得 2001:558::/31,范围覆盖 2001:558:: 至 2001:559:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF。该前缀长度 31 位,本身即跨越半字节边界(31 非 4 的倍数)。原文给出的 WHOIS 信息显示:NetRange 为上述范围,CIDR 为 2001:558::/31,OriginAS 为 AS7922,组织为 Comcast Cable Communications, LLC,注册日期原文未给出具体数据。此类大型运营商必须在二进制层面精确切分子网,无法依赖十六进制边界的便利性。
运维人员应优先在半字节边界内规划,仅在前缀极短时被迫跨边界。掌握 4 位二进制组合与十六进制的映射关系,能避免手工计算错误,也便于在大型网络中排查前缀重叠问题。
原文: APNIC Blog(2018-08-10)|编译自 APNIC Blog,事实以原文为准。
来源:APNIC Blog