本文最后更新于 2026年1月7日。
IPv6 地址的生成方式主要有以下几种,具体取决于网络配置(如 SLAAC、DHCPv6 或静态配置)。以下是详细解释:
1. 无状态地址自动配置(SLAAC)
原理:设备通过路由器通告(Router Advertisement, RA)消息自动获取网络前缀,并结合接口标识符(Interface Identifier)生成 IPv6 地址。
步骤:
- 获取前缀:路由器发送 RA 消息,包含 IPv6 网络前缀(如
2001:db8::/64)。 - 生成接口标识符:
- EUI-64 方法(传统方式):基于设备的 MAC 地址生成 64 位标识符。
- 示例:MAC 地址
00:0c:29:68:63:74→ 插入fffe→00:0c:29:ff:fe:68:63:74→ 反转第7位 →020c:29ff:fe68:6374。 - 最终地址:
2001:db8::020c:29ff:fe68:6374。
- 示例:MAC 地址
- 隐私扩展(RFC 4941):随机生成临时接口标识符,避免基于 MAC 的追踪(如
2001:db8::a1b2:c3d4:e5f6:1234)。
- EUI-64 方法(传统方式):基于设备的 MAC 地址生成 64 位标识符。
- 组合地址:前缀 + 接口标识符 = 完整 IPv6 地址。
特点:
- 无需 DHCPv6 服务器,但默认不分配 DNS 信息(需额外配置 RDNSS 或 DHCPv6)。
2. 有状态 DHCPv6(Stateful DHCPv6)
原理:设备从 DHCPv6 服务器获取完整的 IPv6 地址及其他配置(如 DNS)。
步骤:
- 设备发送
DHCPv6 Solicit消息请求配置。 - DHCPv6 服务器分配地址(如
2001:db8::1000)并返回 DNS 服务器地址。
特点:
- 需要 DHCPv6 服务器支持,适合集中管理 IP 地址的场景。
3. 无状态 DHCPv6(Stateless DHCPv6)
原理:结合 SLAAC 和 DHCPv6 的优势。
- 地址生成:仍通过 SLAAC 获取前缀 + 接口标识符。
- 其他配置:通过 DHCPv6 获取 DNS、NTP 等额外信息。
特点:
- 既保留 SLAAC 的自动性,又能补充 DNS 配置。
4. 静态配置
手动指定 IPv6 地址、前缀长度、网关和 DNS,例如:
- 地址:
2001:db8::1/64 - 网关:
2001:db8::ffff - DNS:
2001:4860:4860::8888
5. 链路本地地址(Link-Local)
所有 IPv6 接口自动生成的本地链路地址,格式固定:
- 前缀:
fe80::/10 - 接口标识符:通常基于 EUI-64(如
fe80::20c:29ff:fe68:6374)。
关键注意事项
- 隐私保护:
- 默认 EUI-64 会暴露 MAC 地址,建议启用隐私扩展(随机标识符)。
- DNS 分配:
- SLAAC 本身不分配 DNS,需依赖 RA 的 RDNSS 选项或 DHCPv6。
- 地址冲突检测:
- 生成地址后,设备会发送邻居请求(Neighbor Solicitation)检测冲突。
总结
| 生成方式 | 地址来源 | 是否需要服务器 | 典型用途 |
|---|---|---|---|
| SLAAC + EUI-64 | RA 前缀 + MAC 地址 | 否 | 家庭网络、临时设备 |
| SLAAC + 隐私扩展 | RA 前缀 + 随机标识符 | 否 | 保护隐私(客户端) |
| 有状态 DHCPv6 | DHCPv6 分配 | 是 | 企业网络、固定地址设备 |
| 无状态 DHCPv6 | SLAAC 地址 + DHCPv6 提供 DNS | 是(仅 DNS) | 补充 DNS 配置 |
| 静态配置 | 手动输入 | 否 | 服务器、网络设备 |
根据你的网络需求选择合适的方式,并确保 DNS 正确配置(尤其是 SLAAC 场景)。