DHCPv6 是什么
DHCPv6 用 UDP 546 作为客户端端口、547 作为服务器端口,提供三类能力:有状态模式直接分配地址,无状态模式只下发 DNS 等其他配置,前缀委派模式把整段前缀交给下游路由器。它与 IPv4 的 DHCP 有一个关键差异:DHCPv6 不提供默认网关,网关永远来自路由器通告。理解这一点能省下大量排障时间。
基本信息
| 客户端端口 | UDP 546 |
|---|---|
| 服务器端口 | UDP 547 |
| 有状态模式 | 分配地址,报文使用 IA_NA 选项,由 RA 中 M=1 触发 |
| 无状态模式 | 只提供其他配置,由 RA 中 O=1 触发 |
| 前缀委派 | 使用 IA_PD 选项,向上级申请整段前缀供下游使用 |
| 默认路由 | 不提供,必须依赖 RA |
三种模式对比
| 模式 | 提供内容 | 触发方式 |
|---|---|---|
| 有状态 | 地址与其他配置 | RA 中 M=1 |
| 无状态 | 仅其他配置如 DNS | RA 中 O=1 |
| 前缀委派 | 整段前缀给下游路由器 | 客户端主动发起 IA_PD 请求 |
| 组合使用 | 地址由 DHCPv6 给,默认路由由 RA 给 | M=1 且 RA 正常发送 |
排错命令
排错命令
systemctl status isc-dhcp-client # 客户端服务状态
dhclient -6 -d eth0 # 前台运行观察交互,验证租约获取
journalctl -u NetworkManager | grep -i dhcp6
tcpdump -ni eth0 'udp port 546 or udp port 547' # 抓包看四步交互
cat /var/lib/dhcp/dhclient6.leases # 查看已获取的租约典型使用场景
- 企业内网需要集中管理地址与审计:用有状态模式,终端地址由服务器统一记录
- 家宽与企业分支获取前缀:上游用前缀委派把一段前缀交给下级路由器继续分配
- 只想统一下发 DNS 而不想管地址:用无状态模式,地址仍由终端自动生成
- 与 RA 配合使用:RA 给默认路由,DHCPv6 给地址与配置,两者缺一不可
- 排查终端拿不到地址:先确认 RA 是否发出、M 位是否置位,再看 DHCPv6 交互
端口号容易记反:546 是客户端、547 是服务器。抓包过滤写反会导致看不到任何报文,误以为协议没启用。
无状态模式的价值在于“地址自己生成、配置集中下发”:终端仍用 SLAAC 生成地址,但 DNS 与域名搜索列表由服务器统一管理,改动时无需逐台设备调整。