I updated my first post in order to be coherent with the last one (ie public IP v6 subnets 2a01:e0a:22a:xxx0 & 2a01:e0a:22a:xxx1 )
Below my DD-WRT Mac
eth0 HWaddr XX:XX:XX:XX:A4:68
vlan2 HWaddr XX:XX:XX:XX:A4:69
br0 HWaddr XX:XX:XX:XX:A4:6A
On my ISP Box I think it was necessary to indicate for nexthop the local-link IPv6 from the DD-WRT eth0 interface (so ended with 6 ; Am I mistaken?
vlan2 receive public DHCPv6 from ISB on the first subnet xxx0 (2a01:e0a:22a:xxx0:XXXX:XXXX:XXXX:a469/64)
So I think the ISP answer correctly to the dhcp6 request from DD-WRT router ; That's why I get a public IPv6 on vlan2 interface; That's explain that IPv6 works fine from DD-WRT router itself.
What I don't understand, it is how workstation behind DD-WRT should get IPv6 public address on subnet 2a01:e0a:22a:xxx1 : from DD-WRT router (through netmasq) or from another IPv6 mechanism ?
I discover / understand (I hope) something about the difference between mode "Native IPv6 from ISP" vs "DHCPv6 with Prefix Delegation"
Mode "DHCPv6 with Prefix Delegation"
>>> Use of dhcp6c (It run command dhcp6c -c /tmp/dhcp6c.conf -T LL vlan2)
Mode "Native IPv6 from ISP"
>>> No use of dhcp6c ; I assume this mode refer to SLAAC
am I right ?
For both modes DD-WRT ipv6 works fine from DD-WRT router itself. I always get a public ipv6 address assigned to vlan2 DD-WRT interface (on the first subnet xxx0)
So I left configuration to "Native IPv6 from ISP".
Although that, I wonder how DD-WRT use the field "Assigned / Routed Prefix" (where I put subnet 2a01:e0a:22a:xxx1) --> Because I have not identified any use of this data (no ipv6 address with this subnet on DD-WRT interfaces).
So with "Native IPv6 from ISP" I add now RADVD with this config
Now devices behind DD-WRT router get global IPv6 on subnet xxx1 and the IPv6 gateway is the DD-WRT br0 interface local ipv6 address (fe80::xxxx:xxxx:xxxx:a46a).
IPv6 still works fine from DD-WRT but not from Workstations
So I think the ISP answer correctly to the dhcp6 request from DD-WRT router ; That's why I get a public IPv6 on vlan2 interface; That's explain that IPv6 works fine from DD-WRT router itself.
What I don't understand, it is how workstation behind DD-WRT should get IPv6 public address on subnet 2a01:e0a:22a:xxx1 : from DD-WRT router (through netmasq) or from another IPv6 mechanism ?
DHCPv6 is not DHCPv6-PD. Just because 1 works does not mean the other does. As Per Yngve Berg said your ISP is not responding to dhcpv6-pd requests. I could have told you this yesterday if you had supplied the make and model of the ISP box as I asked.
Sorry indeed I forgot to add ISP details : Free (Freebox Optical)
tedm wrote:
DHCPv6 is not DHCPv6-PD. Just because 1 works does not mean the other does.
--> It's a quite difficult to understand for me.
DHCPv6 is working (because vlan 2 get a public IPv6 address) on the first subnet xxx0 ?
But no DHCPv6-PD : Because workstations or DD-WRT don't "catch" (know/discover) the delegation (subnet xxx1)?
tedm wrote:
As Per Yngve Berg said your ISP is not responding to dhcpv6-pd requests
DHCPv6-pd is useful/required for workstations ? not for the router itself (because it already get an ipv6 public address)
I don't understand how DHCPv6-pd works : Workstations behind DD-WRT "emit" dhcpv6-pd requests ? these requests are relayed through DD-WRT router (no filtering) to ISP box/Operator network or only to DD-WRT router ? I don't understand who should "manage" the subnet delegation (subnet xxx1) : DD-WRT router or ISP Box ?
About my DD-WRT router : Indeed it is a Broadcom (BCM4708A0). So vlan2 is the network public interface public.
On the IPv6 tab, enter
Assigned / Routed Prefix: 2a01:e0a:22a:xxx1::
Router IPv6 Address: 2a01:e0a:22a:xxx1::2/64
The address is not assigned to br0. This must be a bug. You can assign it with a line in the startup script. ip -6 addr add `nvram get ipv6_addr` dev br0
--> Really sorry, but not sure to understand. Which address is not assigned to br0 ? 2a01:e0a:22a:xxx1::2 ?
But good news indeed the command for ipv6 assignment on br0 ("ip -6 addr add `nvram get ipv6_addr` dev br0") executed manually --> assign 2a01:e0a:22a:xxx1::2 to br0 interface