Could someone verify this behavior on newer versions?
This is my configuration:
/ipv6/dhcp-client add allow-reconfigure=yes interface=ether1-gateway pool-name=global prefix-hint=::/60 request=prefix
Today I noticed that despite the hint the allocated prefix is /64. Naturally I blamed my ISP. But was suggested to verify router's behavior first.
Apparently, prefix-hint is only respected when you manually release via the release command. But automatic renewal, manual renewal as well as modification of prefix-hint disregard the hint and use currently allocated prefix length instead.
To reproduce with the configuration above, sniff port 546. This is the behavior I observe, in order:
- Change /60 -> /64
/ipv6/dhcp-client set 0 prefix-hint=::/64-> Rebind - Prefix Length: 60
<- Reply - Prefix Length: 60
- Renew
/ipv6/dhcp-client renew 0-> Renew - Prefix Length: 60
<- Reply - Prefix Length: 60
- Release
/ipv6/dhcp-client release 0-> Release - Prefix Length: 60
-> Solicit - Prefix Length: 64
<- Advertise - Prefix Length: 64
-> Request - Prefix Length: 64
<- Reply - Prefix Length: 64
- Change /64 to /60
/ipv6/dhcp-client set 0 prefix-hint=::/60-> Rebind - Prefix Length: 64
<- Reply - Prefix Length: 64
- Renew
/ipv6/dhcp-client renew 0-> Renew - Prefix Length: 64
<- Reply - Prefix Length: 64
- Release
/ipv6/dhcp-client release 0-> Release - Prefix Length: 64
-> Solicit - Prefix Length: 60
<- Advertise - Prefix Length: 60
-> Request - Prefix Length: 60
<- Reply - Prefix Length: 60
This seems bogus to me because if the upstream serves smaller prefix (e.g. temporary misconfiguration), the router will be stuck with it.