Ip6hint used for local addresses but not wan delegated?

R7800 recently upgraded to a fresh openwrt 24.10.

I receive a /60 from my ISP.

# cat /etc/config/network 

config interface 'loopback'
	option device 'lo'
	option proto 'static'
	option ipaddr '127.0.0.1'
	option netmask '255.0.0.0'

config globals 'globals'
	option ula_prefix 'fdf5:123:456::/48'
	option packet_steering '1'

config device
	option name 'br-lan'
	option type 'bridge'
	list ports 'lan1'
	list ports 'lan2'
	list ports 'lan3'
	list ports 'lan4'

config interface 'lan'
	option device 'br-lan'
	option proto 'static'
	option ipaddr '192.168.1.1'
	option netmask '255.255.255.0'
	option ip6assign '64'
	option ip6hint '8b16'

config interface 'wan'
	option device 'wan'
	option proto 'pppoe'
	option username 'username'
	option password 'password'
	option ipv6 'auto'

With this config, my lan devices get a few ipv6 addresses, e.g:

  • IPv6: 2001:123:456:8b12::1/64
  • IPv6: fdf5:123:456:8b16::1/64

A local address (within fdf5:: ) includes the '8b16' hint.

The public address doesn't. It seems to be stuck to a specific address e.g. '8b12'. This sticks around through restarts, reconfiguring etc.

What is setting this? Where is it cached? How can I get my hint used for public addresses?

My previous configuration used static routing to delegate /64's but that had it's own issues, I'd like to do it this openwrt'y way if possible.

I dont see any dhcpv6 config on wan6/wan_6....

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

Adding that doesn't change the /64 delegation ignoring hints.

Before this extra configuration my wan had ipv6 addresses (Via option ipv6 'auto' - the separate 'wan6' isn't required?) and the same /64 was already delegated, ignoring the hint.

After this... every interface is shown having two identical allocations from the public range. But they're still ignoring ip6hint.

Thanks for trying to help, but to be clear, /64's are being delegated to my lan interface. It's just ignoring the ip6hint option for the address delegated from my wan address. The ip6hint is used for local fd addresses.

Did you checked that you really have a valid /60 route at the moment?

root@cpe:~# ifstatus wan_6
{
        "up": true,
.....
        "ipv4-address": [

        ],
        "ipv6-address": [
                {
                        "address": "2003:XX",
                        "mask": 64,
                        "preferred": 1352,
                        "valid": 13952
                }
        ],
        "ipv6-prefix": [
                {
                        "address": "2003:aa:bb:cc::",
                        "mask": 56,
                        "preferred": 83739,
                        "valid": 83739,
                        "class": "wan_6",
                        "assigned": {
                                "vlan16": {
                                        "address": "2003:",
                                        "mask": 64
                                },
                                "vlan17": {
                                        "address": "2003:",
                                        "mask": 64
                                },

Yes. The /60 is retrieved from my ISP fine. It's routed. The openwrt router uses it.

A /64 is delegated to my lan. Clients receive it, can route fine.

My issue is that ip6hint is ignored for the range allocated to lan.

Please show me either by ifstatus or ip -6 route....

I'm happy for you to not believe me on that one.

Thanks for trying, I'll sit tight and hope someone else is willing to help with another idea.

What's so hard to just show the info?

root@cpe:~# ip -6 route show | grep -e ' 2003:.*::/56'
default from 2003:aa:bb:cc00::/56 via fe80::f6cc:55ff:fe42:1a94 dev pppoe-wan proto static metric 512 pref medium
unreachable 2003:aa:bb:cc00::/56 dev lo proto static metric 2147483647 pref medium

If you don't have similar entries for your /60, then there is nothing to delegate. That's why I want you to check and show...

I've worked it out. I'm an idiot.

For the example of 2001:123:456:8b10::/60 being allocated to wan and ip6hint '2' I then see:

  • IPv6: 2001:123:456:8b12::1/64
  • IPv6: fdf5:123:456:2::1/64

My real mistake was supplying e.g. ip6hint '8b12' which doesn't really make sense.

I apologise that my obfuscation of the real addresses above removed a hint as to my mistake. (Plus possibly other conflicts in my address space..)

Everything is working as intended - 8b10+2 = 8b12. The hints work fine. My mental subnetting failed.

Thank you for your time.

This topic was automatically closed 10 days after the last reply. New replies are no longer allowed.