H3C IPv6动态分配地址配置实验(DHCPv6、前缀委派)

2 阅读5分钟

DHCPv6配置

文章所属IPv6地址均为模拟地址,配置环境为HCL模拟环境。

网络拓扑与角色

  • R1:ISP边缘路由器(DHCPv6服务器)
  • R2:CPE/客户端路由器(DHCPv6前缀委派客户端)
  • PC1PC2:IPv6终端 (测试获取ipv6地址)

image.png

一、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. 路由流程

互联网 → R12001::/64网络 → R2 → 2001:1234:1::/80网络 → 内部设备
内部设备 → R2R1 (通过默认路由) → 互联网

image.png

image.png

四、关键技术点

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        # 查看地址池信息

image.png

在R2上查看

dis ipv6 dhcp client               # 查看DHCPv6客户端状态
dis ipv6 dhcp server ip-in-use    # 查看R2分配的地址
dis ipv6 dhcp duid                # 查看本机DUID
dis ipv6 interface brief          # 查看IPv6接口地址

image.png

PC1连通性测试

image.png

PC2 连通性测试

image.png

六、常见问题与排错

  1. 前缀分配失败

    • 检查前缀池配置:assign-len不能小于前缀长度
    • 检查客户端DUID是否匹配静态绑定
    • 检查接口是否启用ipv6 dhcp client pd
  2. 路由不通

    • 检查回程路由配置是否正确
    • 验证链路本地地址可达性
    • 检查RA是否被抑制(undo ipv6 nd ra halt
  3. 地址获取失败

    • 确认M/O标志位设置正确
    • 检查DHCPv6服务器是否启用allow-hint
    • 验证网络连通性(链路本地地址可ping通)