
理解 IPv6 唯一本地地址
IPv6 唯一本地地址 (ULA) 是 IPv4 私有地址(10.x.x.x、172.16.x.x、192.168.x.x)的 IPv6 等价物。它们设计用于私有网络和组织内部,不会在公共互联网上路由。

ULA 地址结构
ULA 地址位于 fc00::/7 前缀范围内,具体为:
fd00::/8— 本地分配(最常见)fc00::/8— 保留用于未来集中分配
完整的 ULA 地址结构如下:
fd | 全局 ID (40 位) | 子网 ID (16 位) | 接口 ID (64 位)
全局 ID 按组织随机生成,无需中央协调即可提供统计上的唯一性。
为什么需要 ULA
IPv6 拥有 340 万亿亿个可能的地址,为什么还需要私有地址范围?ULA 服务于特定目的:
稳定性
ULA 地址不受 ISP 或网络变化影响,保持稳定。与链路本地地址不同,ULA 在重启和网络重新配置后仍然存在。
私有通信
不应公开访问的服务(数据库服务器、内部 API、管理接口)应绑定到无法从互联网访问的地址。

多网络场景
拥有多个站点的组织可以使用 ULA 进行站点间 VPN 连接。每个组织使用唯一的全局 ID 可防止网络合并时发生地址冲突。
ULA 与其他 IPv6 地址类型对比
| 属性 | 链路本地 | ULA | 全局单播 |
|---|---|---|---|
| 范围 | 仅单个链路 | 组织范围 | 全球互联网 |
| 持久性 | 是 | 是 | 是 |
| ISP 分配 | 否 | 否 | 是 |
| 子网间可路由 | 否 | 是(组织内) | 是 |
| 互联网可路由 | 否 | 否 | 是 |
生成 ULA 地址
RFC 4193 生成 ULA 全局 ID 的算法:
- 获取当前时间作为 64 位 NTP 时间戳
- 与生成系统的 EUI-64 标识符拼接
- 计算 SHA-1 哈希
- 使用最低 40 位作为全局 ID
这种方法确保统计上的唯一性,无需中央注册。两个随机生成的 40 位 ID 冲突的概率极低——对于任何实际部署都是可接受的。
实际 IPv6 网络设置

家庭/小型办公室网络
一个 /48 ULA 前缀提供 65,536 个可能的 /64 子网:
- 主网络:第一个 /64 子网
- IoT 设备:第二个 /64 子网
- 访客网络:第三个 /64 子网
企业多站点
不同的子网块可以分配给同一 /48 内的不同站点,实现清晰的寻址层次,同时保持组织凝聚力。
在常见平台上配置 ULA
ULA 地址可以通过 networkd 或 ifconfig 在 Linux 上静态配置,通过 Router Advertisement daemon (radvd) 通告,用于 Docker IPv6 网络,以及通过 PowerShell 在 Windows 上设置。大多数现代操作系统和网络设备完全支持 ULA 寻址。
ULA 与 IPv6 理念
与 IPv4 NAT(将私有地址隐藏在公共 IP 后面)不同,IPv6 理念倾向于端到端连接,配合适当的防火墙策略。大多数支持 IPv6 的设备是双栈的(同时拥有 ULA 和全局单播地址),根据目标使用合适的地址。
ULA 地址在互联网边界被过滤——具有 ULA 源或目标地址的数据包会被正确配置的路由器丢弃,提供类似于 IPv4 中 RFC 1918 的安全边界。
使用 ULA 生成器
我们的 ULA 生成器工具:
- 生成加密随机的全局 ID,遵循 RFC 4193
- 创建完整的 /48 前缀,准备进行子网分配
- 显示单个 /64 子网,根据您选择的子网数量
- 生成完整的接口地址,带有随机主机部分
- 以标准表示法复制,可直接用于配置
在您的网络、家庭实验室和容器化环境中使用 ULA 进行稳定、私有的 IPv6 寻址。