SKNK 中文技术指南
IPv6 /48 怎么划分?/64、/56、/127 与 VLAN 地址规划
从一个 IPv6 /48 出发,说明如何按地区、环境和业务划分 /64,/56 适合什么场景,点对点链路何时使用 /127,以及如何避免后期重编址。
技术内容
由 Shikanoko Networks 编写与维护
一个 IPv6 /48 可以划分成 65,536 个 /64。实际规划的重点不是节省地址,而是让每个子网的位置、环境和用途可以被长期识别,并为新机房、新 VLAN、路由汇总和反向 DNS 留出空间。
普通终端 LAN 通常使用 /64,路由器点对点链路可以按 RFC 6164 使用 /127,单个 Loopback 常使用 /128。/56 则更适合作为向一个站点、客户或下级网络委派的地址块,而不是普通 VLAN 的终端子网。

好的 IPv6 规划不是把地址切得越碎越好,而是让层级、用途和预留空间一眼可读。
先理解 /48 的结构
IPv6 地址一共 128 位。以文档地址为例:
2001:db8:1200::/48
前三个十六进制组,也就是前 48 位,属于这个前缀。接下来的 16 位可以用来编号 /64 子网:
2001:db8:1200:0000::/64
2001:db8:1200:0001::/64
2001:db8:1200:0002::/64
...
2001:db8:1200:ffff::/64
计算公式是:
2^(64 - 48) = 65,536
因此,规划 /48 时真正需要设计的是第四个十六进制组,也就是 16 位 Subnet ID。
常见前缀长度分别做什么
| 前缀长度 | 包含多少个 /64 |
常见用途 |
|---|---|---|
/48 |
65,536 | 组织、站点集合或终端网络的总体地址块 |
/52 |
4,096 | /48 内的大区块或区域汇总 |
/56 |
256 | 站点、客户或下级网络委派 |
/60 |
16 | 较小站点或设备组委派 |
/64 |
1 | 普通 LAN、VLAN、终端网段 |
/127 |
不按 /64 子网数量理解 |
路由器点对点链路 |
/128 |
单个地址 | Loopback、Host Route、特定服务地址 |
这张表描述的是常见工程习惯,不意味着所有场景只能使用一种长度。地址分配政策、接入方式、设备能力和协议要求仍需单独确认。
为什么普通 LAN 通常使用 /64
IPv6 Stateless Address Autoconfiguration(SLAAC)和许多终端实现都围绕 64 位 Interface Identifier 工作。
在普通终端网段上使用比 /64 更长的前缀,例如 /80 或 /120,可能导致:
- SLAAC 无法按标准方式工作;
- 操作系统和网络设备行为不一致;
- Neighbor Discovery、地址生成或安全功能出现兼容问题;
- 后续接入新设备时需要特殊配置;
- 运维人员无法使用通用工具和经验排障。
所以,普通 LAN、VLAN、无线网络和服务器二层网段优先使用 /64。不要把 IPv4 的“按主机数量精确切小子网”习惯原样搬到 IPv6。
/127 适合什么
RFC 6164 建议在路由器之间的点对点链路上使用 /127。这种场景只有两个链路端点,不需要普通终端使用的 SLAAC。
示例:
2001:db8:1200:ff00::/127
Router A: 2001:db8:1200:ff00::
Router B: 2001:db8:1200:ff00::1
RFC 6164 采用 /127 的主要理由,包括避免某些点对点链路的 Ping-Pong 转发问题,以及缩小由未使用地址触发 Neighbor Cache 消耗的攻击面。
但不要因此把所有网络都改成 /127。它适用于明确的路由器点对点链路,不适用于有普通主机、SLAAC 或多设备接入的 LAN。
/56 应该怎样理解
一个 /56 包含 256 个 /64:
2^(64 - 56) = 256
常见用法是把 /56 作为一个站点或下级网络的委派范围。例如:
总部:2001:db8:1200:0000::/56
东京:2001:db8:1200:0100::/56
法兰克福:2001:db8:1200:0200::/56
实验环境:2001:db8:1200:f000::/56
每个 /56 内仍然可以划分 256 个 /64。
这样做的价值不是“每个站点现在就需要 256 个 VLAN”,而是:
- 站点边界清楚;
- 可以按站点汇总路由;
- 新 VLAN 不需要跨区寻找零散编号;
- 防火墙、日志和 IPAM 更容易按范围管理;
- 迁移或新增站点时不必重排整个地址计划。
用十六进制做结构化编号
IPv6 适合按 4 位 Hex Nibble 规划。一个 /48 到 /64 之间有四个十六进制数字,可以拆成:
R E FF
│ │ └─ 业务或 VLAN 编号(8 位)
│ └─── 环境编号(4 位)
└───── 地区或站点编号(4 位)
示例约定:
| 字段 | 数值 | 含义 |
|---|---|---|
| Region | 1 |
上海 |
| Environment | 2 |
生产 |
| Function | 01 |
Web VLAN |
得到:
2001:db8:1200:1201::/64
再例如:
2001:db8:1200:1101::/64 上海 / 测试 / Web
2001:db8:1200:1201::/64 上海 / 生产 / Web
2001:db8:1200:1202::/64 上海 / 生产 / Database
2001:db8:1200:2201::/64 东京 / 生产 / Web
是否采用这套字段并不重要,重要的是规则固定、有文档,而且预留值有明确含义。
不要把所有信息都塞进地址
结构化地址很有用,但过度编码会让计划难以维护。
不建议把以下内容全部写进 16 位 Subnet ID:
- 国家;
- 城市;
- 机房;
- 楼层;
- 机柜;
- 环境;
- 部门;
- VLAN;
- 设备类型;
- 客户编号。
16 位空间有限,组织结构也会变化。地址里只保留最稳定、最有运维价值的两到三个维度,其余信息放进 IPAM、DNS 和资产系统。
一个小型双站点示例
假设一家公司有上海和东京两个站点,分为生产、测试和基础设施三类。
可以先按 /56 预留:
2001:db8:1200:0000::/56 上海
2001:db8:1200:0100::/56 东京
2001:db8:1200:fe00::/56 全局基础设施
2001:db8:1200:ff00::/56 路由器链路与 Loopback
上海站点内:
2001:db8:1200:0001::/64 管理网
2001:db8:1200:0010::/64 生产 Web
2001:db8:1200:0011::/64 生产 Database
2001:db8:1200:0020::/64 测试 Web
2001:db8:1200:0021::/64 测试 Database
东京站点内使用相同末尾编号:
2001:db8:1200:0101::/64 管理网
2001:db8:1200:0110::/64 生产 Web
2001:db8:1200:0111::/64 生产 Database
同类业务在各站点使用相似编号,看到地址就能大致判断用途。
BGP 应该发布哪些前缀
内部划分很多 /64,不等于要把每个 /64 发布到全球 BGP。
对于一个 /48,常见做法是:
- 对公网发布聚合的
/48; - 在内部 IGP、IBGP 或静态路由中处理各
/56、/64; - 只有在明确的流量工程、Anycast 或故障隔离需求下,才评估发布更具体路由;
- 发布前确认上游长度限制、IRR 和 ROA
maxLength; - 避免向全球路由表加入没有必要的更具体前缀。
如果 ROA 只授权 /48 且 maxLength=/48,发布 /64 会成为 RPKI Invalid。反过来,为了将来“可能会用”而把 maxLength 放宽到 /64,也会扩大授权范围。地址规划和 ROA 计划应一起设计。
PA 与 PI 对地址规划的影响
地址内部怎么划分是一回事,地址能否在更换提供方后继续使用是另一回事。
PA 地址
Provider Aggregatable 地址依附于上级地址持有方。更换提供方或终止服务时,通常需要重新编号。规划时应:
- 保留清晰的 IPAM;
- 避免把地址写死在无法批量修改的配置里;
- 使用配置管理和 DNS;
- 提前记录迁移依赖;
- 不把 PA 地址当作永久可携带资产。
PI 地址
Provider Independent 地址作为独立资源,迁移上游时通常更灵活,但仍需维持相应合同、政策和注册关系。
无论 PA 还是 PI,都需要合理的内部规划。PI 不会自动解决混乱的 VLAN 编号,PA 也不意味着可以不做长期设计。
DNS、反向 DNS 和 IPAM
IPv6 地址比 IPv4 更难靠人脑记忆,地址计划必须与管理系统配合。
至少记录:
- Prefix 和用途;
- 站点;
- VLAN 或接口;
- 网关;
- DHCPv6、SLAAC 或静态分配方式;
- DNS Zone;
- Reverse DNS 委派;
- 防火墙区域;
- 负责人;
- 创建和回收日期。
反向 DNS 使用 ip6.arpa 的 Nibble 形式。按 4 位边界规划 /48、/52、/56、/60 和 /64,通常更方便做清晰的反向委派。
ULA 和公网地址怎么配合
ULA 使用 fc00::/7 范围,目前本地生成通常使用 fd00::/8。它适合不应依赖公网前缀的内部通信,但不是“IPv6 私网地址直接替代品”这么简单。
需要注意:
- ULA 不应出现在公共 DNS 中;
- 同一主机同时有 ULA 和 Global Unicast 时,要理解源地址选择;
- 防火墙不能因为是 ULA 就默认信任;
- VPN、网络合并时要避免 ULA 前缀冲突;
- 不要用 ULA 掩盖本应通过路由和安全策略解决的问题。
对于服务器网络,很多团队直接使用 Global Unicast,再通过防火墙控制访问范围。是否同时部署 ULA,应基于具体依赖和运维能力决定。
常见错误
沿用 IPv4 的节省思路
把普通 LAN 划成 /120,只因为“实际只有几十台主机”,会牺牲 SLAAC 和兼容性,却没有带来有意义的地址节省。
按创建顺序连续编号
0001、0002、0003 初期看起来简单,几年后却无法从地址判断站点和用途,也难以做范围汇总。
第一版就设计得过度复杂
为了未来可能出现的几十个国家和几百个部门,把所有位都预先编码,反而让当前团队无法理解。规划应保留空间,但不需要预测所有未来。
忘记路由和 ROA 边界
内部切了 /64 后直接对公网发布,却没有核对上游最长前缀和 ROA maxLength。
没有回收流程
删除 VLAN 后不回收 DNS、防火墙、IPAM 和监控记录,旧地址会长期保留在系统里。
把两条 PA 前缀混成一套地址计划
多上游各提供一段 PA 地址时,终端会出现多个前缀,故障切换和源地址选择也会变复杂。这不等同于使用自有可独立发布前缀的 BGP Multihoming。
地址规划检查清单
- 普通 LAN 使用
/64 - 点对点路由链路按实际设备能力评估
/127 - Loopback 使用清晰的
/128地址池 -
/48到/64的 16 位有稳定编号规则 - 为新站点和新环境预留空间
- 内部子网不被无意发布到公网
- BGP 前缀、IRR 和 ROA 相互一致
- DNS、反向 DNS 和 IPAM 同步设计
- PA 地址具备未来重编址方案
- 地址创建、变更和回收都有负责人
常见问题
一个 /48 有多少个 /64
有 65,536 个,计算方式是 2^(64-48)。
每个 VLAN 都应该使用 /64 吗
普通终端 VLAN 通常是。路由器点对点链路和 Loopback 是不同场景,可以分别使用 /127 和 /128。
/56 比 /64 更适合服务器网段吗
不是这个关系。/56 通常作为包含多个 /64 的委派或站点范围,具体服务器 LAN 仍使用 /64。
地址多是不是可以随便分
不能。IPv6 不缺地址,但仍需要清晰的路由边界、访问控制、DNS、日志和回收流程。
/48 里的所有 /64 都能对公网发布吗
技术上能否被上游接受取决于过滤政策和授权,运营上通常不应把大量内部 /64 加入全球路由表。优先发布聚合前缀。
小结
IPv6 地址规划关注的不是把地址用得最省,而是让网络长期可读、可汇总、可迁移。
对一个 /48 来说,最实用的原则是:
普通 LAN 使用
/64,站点按/56或其他清晰边界预留,点对点链路单独规划;公网只发布必要的聚合前缀,并让 IRR、ROA 和真实公告保持一致。
参考资料
- RFC 4291:IPv6 Addressing Architecture
- RFC 7421:Why 64?
- RFC 6177:IPv6 Address Assignment to End Sites
- RFC 6164:Using 127-Bit IPv6 Prefixes on Inter-Router Links
- RFC 9099:Operational Security Considerations for IPv6 Networks