Delegating IPv6 Prefix Downstream in 25.12

I get a /56 delegated prefix from my ISP. In OpenWRT 24.10, I was able to delegate a /60 portion of that prefix to a downstream router, and the clients of that downstream router had full IPv6 support. I have not been able to get this to work in 25.12.

The downstream router now gets a /64, and its clients don't get routable IPv6 addresses. The /etc/config/network files are effectively the same - here is part of the 25.12 config (which doesn't work):

config interface 'lan'
	option device 'br-lan'
	option proto 'static'
	option ipaddr '192.168.1.1'
	option netmask '255.255.255.0'
	option ip6assign '60'
	option multipath 'off'
	list ip6class 'wan6'

And here is the same part of the 24.10 config (which works):

config interface 'lan'
	option device 'br-lan'
	option proto 'static'
	option ipaddr '192.168.1.1'
	option netmask '255.255.255.0'
	option ip6assign '60'

Both are set to delegate a /60 downstream, but for me, only the 24.10 one does.

Am I missing a new setting or are others seeing this same thing?

I get a /56 on my edge router's wan6, assign the whole thing to the lan, then let the downstream routers request whatever they want.

On edge:

config interface 'wan6'
        option device 'eth0'
        option proto 'dhcpv6'
        option reqaddress 'try'
        option reqprefix '56'
        option peerdns '0'
        list dns '0::1'

config interface 'lan'
        option device 'br-lan'
        option proto 'static'
        option netmask '255.255.255.0'
        option ipaddr '10.1.1.1'
        option ip6assign '56'

Then a representative downstream subnet router:

config interface 'wan6'
        option device 'eth0'
        option proto 'dhcpv6'
        option reqaddress 'try'
        option reqprefix '60'

This same config has been working as-is since at least 22.03, now running 25.12 on the production devices (edge router and APs) and 23.05, 24.10, 25.12 and snapshot on downstream devices...

Thanks for the feedback - much appreciated. I'm not sure how your idea of passing the full /56 downstream will work - it's the first I've heard of doing that, so I need to think about it.

In my case, I see the LAN interface address showing as /60, but the downstream router is not getting a delegated prefix. ("Delegate IPv6 prefixes" is checked.) This works fine in 24.10, so I am wondering what's changed in 25.12.

Have you already tried to see if you can get more information by adding this:

example on my system:

cat /etc/init.d/network 
#!/bin/sh /etc/rc.common

START=20
STOP=90

USE_PROCD=1

init_switch() {
        setup_switch() { return 0; }

        include /lib/network
        setup_switch
}

start_service() {
        init_switch

        procd_open_instance
        procd_set_param command /sbin/netifd -l 4 -d 4
        procd_set_param respawn
        procd_set_param watch network.interface
        [ -e /proc/sys/kernel/core_pattern ] && {
                procd_set_param limits core="unlimited"
        }
        procd_set_param stdout 1
        procd_set_param stderr 1
        procd_close_instance
}

It can help if you show your configs, please connect to your OpenWRT device using ssh and copy the output of the following commands and post it here using the "Preformatted text </> " button

Remember to redact keys, passwords, MAC addresses and any public IP addresses you may have but do not redact private RFC 1918 IP addresses (192.168.X.X, 10.X.X.X and 172.16-32.X.X) as that is not needed:

ubus call system board
ifstatus wan6
cat /etc/config/network
cat /etc/config/dhcp
cat /etc/config/firewall

Note unless specifically set in the config, your router does not hand out more than a /62 prefix, see:

Unless that has recently changed

My upstream LAN has a /58 prefix and my downstream router has a /62 delegated prefix just with the default settings:

config interface 'wan6'
	option device 'eth1'
	option proto 'dhcpv6'
	option reqaddress 'try'
	option reqprefix 'auto'
	option norelease '1'
	option peerdns '0'
	list dns '2606:4700::1111'
	list dns '2620:fe::10'

All routers running 25.12.02

I have the exact setup and after reading your post I did a test on my downstream router and it had the same problem, devices were not getting the IPv6 addresses.

What I did was on the downstream router I went to interfaces > wan6 > Request IPv6 address - Force. Request IPv6-prefix 64. And after that devices started to get IPv6 addresses.

This one causes problem for me. But auto works fine. My config (I use hints 10 for LAN because it's not the only network I have):

config interface 'lan'
	option device 'br-lan'
	option proto 'static'
	option ipaddr '192.168.1.1'
	option netmask '255.255.255.0'
	option ip6assign '60'
	option ip6hint '10'
	option multipath 'off'

config interface 'wan'
	option proto 'pppoe'
	option device 'wan'
	option username 'LOGIN'
	option password 'PASSWORD'
	option ipv6 '1'

config interface 'wan6'
	option proto 'dhcpv6'
	option device '@wan'
	option reqaddress 'try'
	option reqprefix 'auto'
	option norelease '1'

1 Like

This will be a problem if your v6 wan is actually named wan_6. Omitting ip6class, which should be the default, will cause any available prefixes on any interface to be delegated to the lan.

Run ifstatus wan6 (or ifstatus wan_6) to confirm that you did receive /56 from the ISP. Some ISPs require you to request a specific size rather than auto.

That's why I don't use wan_6 (which is created automatically).

As I said my ISP works only with auto. And yes, I did receive /56.

My ISP respects the request, I've tried 56, 58 and 60, all give back what I requested. Cox support for IPv6 seems pretty good in that regard.

May I ask why the full 56 and not only let's say 58...

Well, if you only have one lan, you just give the whole pool to odhcpd to parcel out as appropriate. If you have multiple lans, then you'd give each one a chunk of that, say if you had 4, you'd give each a /58. Then each downstream router grabs what it thinks it needs...