DHCPv6配置
文章所属IPv6地址均为模拟地址,配置环境为HCL模拟环境。
网络拓扑与角色
- R1:ISP边缘路由器(DHCPv6服务器)
- R2:CPE/客户端路由器(DHCPv6前缀委派客户端)
- PC1、PC2:IPv6终端 (测试获取ipv6地址)
一、R1配置详解(ISP侧)
1. 基础DHCPv6配置
dhcp enable # 全局启用DHCP服务
ipv6 dhcp prefix-pool 1 prefix 2001::/64 assign-len 80
# 创建前缀池"1",从2001::/64分配,给客户端分配/80前缀
2. DHCPv6地址池配置
ipv6 dhcp pool 1
network 2001::/64 # 地址分配范围
dns-server 2001::1 # DNS服务器
prefix-pool 1 preferred-lifetime 86400 valid-lifetime 259200 # 前缀委派配置
static-bind prefix 2001:1234:1::/80 duid 000300011a79de090400 # 静态绑定给R2
3. R1下联接口配置
interface GigabitEthernet0/0
ipv6 address 2001::1/64 # 接口地址
ipv6 address FE80::187B:48FF:FE0D:105 link-local # 链路本地地址
ipv6 dhcp select server # 启用DHCPv6服务器功能
ipv6 dhcp server allow-hint preference 255 rapid-commit # 允许客户端提示,优先级最高
ipv6 nd autoconfig managed-address-flag # 告知客户端使用DHCPv6获取地址
ipv6 nd autoconfig other-flag # 告知客户端使用DHCPv6获取其他配置
undo ipv6 nd ra halt # 发送RA消息
ipv6 nd ra router-lifetime 1800 # 路由器生存时间1800秒
4. 回程路由配置
去往前缀委派的网段需手动配置
ipv6 route-static 2001:1234:1:: 80 GigabitEthernet0/0 FE80::1879:DEFF:FE09:405
# 指向R2获取的前缀,使用R2的链路本地地址作为下一跳
二、R2配置详解(客户端侧)
1. R2-WAN口配置
interface GigabitEthernet0/0
ipv6 address FE80::1879:DEFF:FE09:405 link-local
ipv6 address auto link-local # 自动生成链路本地地址
ipv6 address dhcp-alloc # 通过DHCPv6获取全球单播地址
ipv6 dhcp client pd 1 # 请求前缀委派(需事先开启DHCP)
2. R2-LAN口配置
interface GigabitEthernet0/1
ipv6 address 2001:1234:1::1/80 # 使用从R1获取的前缀
ipv6 dhcp select server # 启用DHCPv6服务器
ipv6 dhcp server apply pool 1 # 应用地址池
undo ipv6 nd ra halt
ipv6 nd ra router-lifetime 1800 # 通告自己为默认网关
3. DHCPv6服务配置
dhcp enable
ipv6 dhcp pool 1
network 2001:1234:1::/80 # 使用委派的前缀分配地址
dns-server 2001:1234:1::1 # DNS服务器(指向自己或ISP的DNS)
三、工作原理流程
1. 前缀委派过程
R2 (客户端) R1 (服务器)
|-----Solicit (请求PD)-------------->|
|<-----Advertise (通告可用PD)--------|
|-----Request (请求PD)-------------->|
|<-----Reply (分配2001:1234:1::/80)--|
2. 地址分配过程
下游设备 R2 (DHCP服务器)
|-----Solicit---------------------->|
|<-----Advertise--------------------|
|-----Request---------------------->|
|<-----Reply (分配2001:1234:1::/128)|
3. 路由流程
互联网 → R1 → 2001::/64网络 → R2 → 2001:1234:1::/80网络 → 内部设备
内部设备 → R2 → R1 (通过默认路由) → 互联网
四、关键技术点
1. DHCPv6分配方式
- 前缀委派 (PD):为站点/路由器分配地址块(如/56, /60, /64)
- 用途:企业站点、家庭网络下级路由
- 示例:分配2001:1234:1::/80给R2,然后R2再往下游分配
- 地址分配 (IA_NA):为终端分配单个IPv6地址(/128)
- 用途:PC、手机等终端设备
- 示例:分配2001::100/128给客户端
2. RA标志位含义
ipv6 nd autoconfig managed-address-flag # M标志=1,使用DHCPv6获取地址
ipv6 nd autoconfig other-flag # O标志=1,使用DHCPv6获取其他配置
# 组合意义:
# M=1,O=0: 仅地址通过DHCPv6获取
# M=0,O=1: SLAAC获取地址,其他配置通过DHCPv6
# M=1,O=1: 地址和其他配置都通过DHCPv6
3. 静态前缀绑定
static-bind prefix 2001:1234:1::/80 duid 000300011a79de090400
# 基于DUID固定分配特定前缀给特定客户端
# DUID获取:在客户端执行 `display ipv6 dhcp duid`
4. 链路本地地址路由
ipv6 route-static 2001:1234:1:: 80 GigabitEthernet0/0 FE80::1879:DEFF:FE09:405
# 使用链路本地地址作为下一跳
# 优势:不依赖全球单播地址变化,更稳定
五、验证命令
在R1上查看
dis ipv6 dhcp server ip-in-use # 查看分配的IPv6地址
dis ipv6 dhcp server pd-in-use # 查看前缀委派分配情况
dis ipv6 dhcp server statistics # 查看DHCPv6服务器统计
dis ipv6 dhcp server pool 1 # 查看地址池信息
在R2上查看
dis ipv6 dhcp client # 查看DHCPv6客户端状态
dis ipv6 dhcp server ip-in-use # 查看R2分配的地址
dis ipv6 dhcp duid # 查看本机DUID
dis ipv6 interface brief # 查看IPv6接口地址
PC1连通性测试
PC2 连通性测试
六、常见问题与排错
-
前缀分配失败
- 检查前缀池配置:
assign-len不能小于前缀长度 - 检查客户端DUID是否匹配静态绑定
- 检查接口是否启用
ipv6 dhcp client pd
- 检查前缀池配置:
-
路由不通
- 检查回程路由配置是否正确
- 验证链路本地地址可达性
- 检查RA是否被抑制(
undo ipv6 nd ra halt)
-
地址获取失败
- 确认M/O标志位设置正确
- 检查DHCPv6服务器是否启用
allow-hint - 验证网络连通性(链路本地地址可ping通)