关于DHCP-PD

DHCP-PD (Prefix Delegation,前缀委派):这是DHCPv6的一个扩展功能。它不分配单个地址,而是分配一整段IPv6地址前缀(比如一个 /60 或 /48 的网段)给客户端路由器。拿到这个前缀后,路由器就可以把它划分成更小的子网(比如多个 /64 网段),再通过路由通告(RA)等方式分给自己下辖的各个内网接口和终端设备使用。

这个功能最常见于家庭或企业网络,特别是当你的路由器作为用户端(CPE)连接到运营商(ISP)网络时。

  1. 你的RouterOS路由器在WAN口启用DHCPv6客户端,并请求前缀(request=prefix)。
  2. 运营商(ISP)的DHCPv6-PD服务器会分配一个较大的前缀(如 /60 或 /48)给你的路由器。
  3. RouterOS收到这个前缀后,会将其存入一个IPv6地址池(Pool)。
  4. 你可以配置RouterOS,从这个池子里取出 /64 的子网,分配给LAN接口,并开启路由通告(RA)。这样,你内网的电脑、手机等设备就能通过SLAAC等方式自动获取到公网IPv6地址了。

简单来说,如果DHCPv6地址是给“门牌号”,那么DHCP-PD就是给了一整块“地皮”,让你可以自己划分门牌号分给家里的各个房间。

多级路由DHCP-PD

现在我们有这样一个情况,R1路由器从运营商通过DHCPv6 client获取了一个/60的前缀地址池(接口是ether1),但我不直接分配给LAN网络,而是将这个IPv6 Pool通过DHCPv6 Server分配二级路由器R2,然后R2路由再将这个IPv6 pool地址池分配到下面的LAN网络,如下图:


一级路由器:DHCPv6 Server

负责把前缀下发给下级路由器:

/ipv6 pool 
add name=ipv6-pd-pool prefix=fd00:abcd:1000::/60  prefix-length=62
/ipv6 dhcp-server
add interface=ether2 prefix-pool=ipv6-pd-pool
二级路由器:DHCPv6 Client

负责向上级请求前缀:

/ipv6 dhcp-client
add interface=ether1 request=prefix pool-name=from-r1

然后二级路由器从收到的前缀池里给 LAN 分配 /64

/ipv6 address
add address=::1/64 from-pool=from-r1 interface=bridge-lan advertise=yes