IPv6 地址类型地图:GUA、ULA、LLA 与特殊地址
IPv6 没有"地址类别"(A/B/C 类)这个概念,取而代之的是按前缀划分的用途。看懂下面这张表,就掌握了 IPv6 地址体系的主干。
一、三大常用类型
| 类型 | 前缀 | 作用域 | 类比 IPv4 |
|---|---|---|---|
| 全球单播 GUA | 2000::/3 |
全球可路由 | 公网地址 |
| 唯一本地 ULA | fc00::/7 |
组织内部 | 私有地址(10.0.0.0/8) |
| 链路本地 LLA | fe80::/10 |
单条链路 | 无对应物,IPv4 没有 |
- GUA(Global Unicast Address):真正上网用的地址。目前实际分配的是
2000::/3中的2001:、2400:等段落。中国大陆运营商大量使用240e::/20(电信)、2408::/20(联通)、2409::/20(移动)等块。 - ULA(Unique Local Address):
fc00::/7,但 RFC 4193 规定目前只使用fd00::/8(第 8 位固定为 1)。相当于"永远出不了公网的私网地址",用于内部组网,不能靠它访问互联网。 - LLA(Link-Local Address):每块网卡启用 IPv6 时自动生成,形如
fe80::xxxx。它有两个特点:一是只在同一链路内有效,路由器不会转发;二是永远存在,即使这台机器一个 GUA 都没有。IPv6 的邻居发现、路由通告、DHCPv6 都靠它工作,关掉 LLA 等于关掉 IPv6。
新手的常见困惑:"为什么我一台机器有三个 IPv6 地址?" 很可能分别是:
fe80::链路本地(必然有)+240e:...全球单播(上网用)+ 一个临时地址(隐私扩展,RFC 4941)。三者共存是正常现象,不是配置错误。
二、特殊用途前缀速查
以下前缀来自 IANA《IPv6 Special-Purpose Address Registry》,建议收藏备用。
| 前缀 | 用途 | 参考 |
|---|---|---|
::/128 |
未指定地址(仅作源地址) | RFC 4291 |
::1/128 |
回环地址 | RFC 4291 |
::ffff:0:0/96 |
IPv4 映射地址 | RFC 4291 |
64:ff9b::/96 |
NAT64 知名前缀(WKP) | RFC 6052 |
64:ff9b:1::/48 |
本地使用 NAT64 前缀 | RFC 8215 |
100::/64 |
黑洞/丢弃前缀 | RFC 6666 |
2001::/32 |
Teredo 隧道 | RFC 4380 |
2001:2::/48 |
基准性能测试 | RFC 5180 |
2001:db8::/32 |
文档与示例专用 | RFC 3849 |
2001:20::/28 |
ORCHIDv2(非路由标识) | RFC 7343 |
2002::/16 |
6to4 隧道(已弃用) | RFC 3056 / 7526 |
2000::/3 |
全球单播 | RFC 4291 |
fc00::/7 |
唯一本地地址 | RFC 4193 |
fe80::/10 |
链路本地 | RFC 4291 |
ff00::/8 |
组播 | RFC 4291 |
几条实用守则:
- 写文档、做实验、贴截图,一律用
2001:db8::/32,不要用真实分配到的网段。 - 内网互访优先用 ULA(
fd00::/8)或 GUA,不要用fe80::做业务地址——它对链路敏感,换接口标识就变。 2002::/16(6to4)已被 RFC 7526 降级为"不建议使用",新规划不要采用。
三、组播:IPv6 没有广播
IPv4 用广播(255.255.255.255)找人,IPv6 彻底取消了广播,改用组播(multicast),只打扰"该被打扰"的设备。常用组播地址:
| 地址 | 含义 |
|---|---|
ff02::1 |
链路内所有节点(IPv4 广播的替代品) |
ff02::2 |
链路内所有路由器 |
ff02::1:2 |
链路内所有 DHCPv6 服务器与中继 |
ff02::1:ff00:0/104 |
请求节点组播(Solicited-Node),用于地址解析 |
ff05::1:3 |
站点内所有 DHCPv6 服务器 |
最后一行是关键:当主机要找 2001:db8::abcd:1234 时,它不是广播问全网,而是向 ff02::1:ffcd:1234 发请求节点组播。地址的最后 24 位被"映射"进了组播地址,所以正常情况下只有目标主机自己会被打扰。这正是 NDP 比 ARP 更安静的原因。
四、任播:一个地址,多台设备
IPv6 的任播(Anycast)没有专用地址段——任何单播前缀都可以被多台设备同时配置,路由器按路由协议把它导向"最近"的那一台(RFC 4291)。
典型用途:
- DNS 根与公共解析服务:全球多个节点共享同一 IPv6 地址。
- 子网路由器任播:接口标识全零的地址(如
2001:db8:abcd::),由链路上任一路由器响应,用于容错网关。
对使用者来说,任播"看起来"就是一台服务器,你无法(也不需要)知道背后有多少台。
五、接口标识的两种生成方式
GUA/ULA/LLA 的后 64 位叫接口标识(Interface ID),主要生成方式:
| 方式 | 特点 | 参考 |
|---|---|---|
| EUI-64 | 由 MAC 地址变换而来(反转 U/L 位并插入 ff:fe),地址可被追踪 |
RFC 4291 附录 A |
| 隐私扩展 | 随机生成,定期更换,现代操作系统默认开启 | RFC 4941 |
| 稳定隐私地址 | 用密钥 + 网络前缀稳定生成,既有隐私又能保持不变 | RFC 7217 |
这也解释了一个现象:同一台电脑在不同 Wi-Fi 下的 IPv6 地址完全不同;重启后地址又变了。这不是故障,而是隐私保护的默认行为。
小结
- 上网用 GUA(
2000::/3),内网可用 ULA(fd00::/8),每块网卡必然有 LLA(fe80::/10)。 - 写文档只用
2001:db8::/32;6to4 已弃用。 - IPv6 无广播,只有组播;任播无专用段,任何单播都可任播。
- 一台设备有多个地址是常态,临时地址是隐私保护。
下一篇:《IPv4 与 IPv6 的十个关键差异》,把协议层面的变化一次说清。