Im doing some tests with ipv6 behind a ISP router.
ISP provides a /56 to the subscriber. A /64 can be obtained to each machine directly from the ISP's router.
I tried as follow :
(modem/router) = (owrt1) = (owrt2)
Just after that router, i add a owrt1. It obtains a ipv6, and can dispatch it to lan machines of owrt1. Great !
well.. if i connect owrt2 to owrt1 (not directly to the ISP's router), it can't get ipv6. why?
as if owrt2 is connected directly to ISP's router, it obtain a v6 addr.
I read somewhere that since 2025, the ipv6 integration/conf is almost ready to use : it took me a little hour to put properly the network/firewall conf files, to get ipv6. When done, ipv6 lokos working well.
I guess if i do that on older versions of owrt, 5yrs or 10yrs, it wont work? as ipv6 is supported since a long time under linux (and owrt i guess).. what changed recently to make owrt that ready to use with newer versions of owrt, that older ones doesnt have?
A router needs one IPv6 address on wan and a prefix assigned via DHCPv6-PD of at least /64 or bigger for its disposal (on its lan), this works fine for the "(modem/router) = (owrt1)" case. (owrt2) can now still get an IPv6 address on its wan, but there is no /64 available for its lan, so connected clients can't get IPv6 connectivity.
For the "(modem/router) = (owrt1) = (owrt2)" case, you'd need to configured at least a /63 prefix length for DHCPv6-PD (and configure (owrt1) to pass through a /64 via DHCPv6-PD to (owrt2)).
You cannot sub-divide a /64 further, it's the smallest possible prefix length/ subnet size (technically -in theory- this is a lie, OpenWrt won't stop you - but most clients (particularly android and anything else using SLAAC will fail hard with anything but /64).
There are (bad, borderline broken) workarounds, but considering
I wouldn't even think about going there, as there are better alternatives (be it connecting (owrt1) && (owrt2) directly to (modem/router), so each of them gets their own /64 , or…).