Question (and asking recos): IPv6 and subnetting to downstream router

Hi,

I'm think I'm getting over my head on how to set this up properly. So I'll try to give the details what I'm trying to achieve here.

Below is my network setup:

ISP Fiber modem (bridged) <<-->> Main Router (openwrt) <<-->> Downstream Router (openwrt)

So the main router gets a /56 delegation so I think I'm good in there. There are other devices connected to the Main Router and no issues with the IPv6 setup. I've setup the br-lan to assign a /60 I'm not sure if this the most efficient correct value for what I'm trying to achieve. Below are the settings.

config interface 'wan6'
        option device 'eth4'
        option proto 'dhcpv6'
        option reqaddress 'none'
        option reqprefix 'auto'
        option ip6assign '64'
        option ip6hint 'FF'
        option ip6ifaceid '::1'
        option norelease '0'
        option peerdns '0'
        list dns '2606:4700:4700::1112'
        list dns '2620:fe::fe'
        list dns '2606:4700:4700::1002'
        list dns '2620:fe::9'

config interface 'lan'
        option device 'br-lan'
        option proto 'static'
        option ipaddr '10.0.0.1'
        option netmask '255.255.255.0'
        option ip6assign '60'
        option ip6hint '1000'

Now on the downstream router has its own local network and devices connected. And here is where I got stomped on how to properly give downstream devices proper IPv6. The downstream was able to get a /61 prefix delegation. The downstream router can do IPv6 tests like ping and traceroutes to global IPv6 addresses/domains.

I've been trying to set the br-lan of the downstream to delegate IPv6 but I keep on getting errors. If I'm able to do this, I want to also replicate it to the br-guest only difference I want br-lan and br-guest to have different IPv6 assignment hint away from the IPv6 hint i've setup from the main router.

This is doable right? I want the downstream router to run as IPv6 server for DHCP/RA for it's own network.

Or should I just set it up as relays instead of server?

I hope I was clear enough with what I'm trying to achieve here.

If you only get a /56 then ip6hint 1000 will not work!

Use a hint from 00 to FF.

1 Like

The default settings can work fine for both main and downstream routers.
On the main you don't need the following on wan6.

        option ip6assign '64'
        option ip6hint 'FF'
        option ip6ifaceid '::1'

You can change the

to try, but it is not absolutely necessary.
As @_bernd mentioned, the 1000 hint will not work, you only have 2 hex digits to configure there.

What errors are you getting and what is the configuration?
If the downstream gets a /61 from main, then what prefix does it assign to the lan interface? And what are the dhcp clients downstream of second router trying to request as PD?

Ok I'll try that. That is just for the main router right?

In my setup it needs to be set as 'none' as something is wrong with how my ISP is giving the dynamic IPv6 IP to the router. More info on here: IPv6 works from LAN but not the router

I didn't log the errors, but I'll try again. I need to turn of wan6 for a couple of hours when doing changes on the IPv6 settings on the main router as it gets borked somehow after a few ifup and ifdown commands. But this is more due to my ISP borking it.

@_bernd and @trendy

Below are the changes I've made so far..

From main router:

config interface 'wan6'
        option device 'eth4'
        option proto 'dhcpv6'
        option reqaddress 'none'
        option reqprefix 'auto'
        option norelease '0'
        option peerdns '0'
        list dns '2606:4700:4700::1112'
        list dns '2620:fe::fe'
        list dns '2606:4700:4700::1002'
        list dns '2620:fe::9'

config interface 'lan'
        option device 'br-lan'
        option proto 'static'
        option ipaddr '10.0.0.1'
        option netmask '255.255.255.0'
        option ip6assign '60'
        option ip6hint '00'

With this settings, only difference I can see is that on the overview screen (luci), there is no IPv6 address assigned on the IPv6 Upstream

Now moving to the downstream router...

config interface 'lan'
        option device 'br-lan'
        option proto 'static'
        option netmask '255.255.255.0'
        option ipaddr '192.168.10.1'
        option delegate '0'

config interface 'wan'
        option device 'wan'
        option proto 'dhcp'
        option norelease '1'

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

Enabling "Delegate IPv6 prefixes" in br-lan leads to this error (still on the downstream router):

Wed May 10 21:21:19 2023 daemon.warn netifd: You have delegated IPv6-prefixes but haven't assigned them to any interface. Did you forget to set option ip6assign on your lan-interfaces?
Wed May 10 21:21:19 2023 daemon.warn netifd: You have delegated IPv6-prefixes but haven't assigned them to any interface. Did you forget to set option ip6assign on your lan-interfaces?
Wed May 10 21:21:19 2023 daemon.info avahi-daemon[3882]: Withdrawing address record for fdfc:1a2d:c7ed::1 on wan.
Wed May 10 21:21:19 2023 daemon.warn netifd: You have delegated IPv6-prefixes but haven't assigned them to any interface. Did you forget to set option ip6assign on your lan-interfaces?

Then setting the IPv6 assignment to '64', leads to no error but this display in the interfaces:

Config looks like this:

config interface 'lan'
        option device 'br-lan'
        option proto 'static'
        option netmask '255.255.255.0'
        option ipaddr '192.168.10.1'
        option ip6assign '64'

config interface 'wan'
        option device 'wan'
        option proto 'dhcp'
        option norelease '1'

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

It is not needed anyway, the gateway is link local.

The errors you get are expected. Change 2nd router into this:

config interface 'lan'
        option device 'br-lan'
        option proto 'static'
        option netmask '255.255.255.0'
        option ipaddr '192.168.10.1'
        option ip6assign '62'

config interface 'wan'
        option device 'wan'
        option proto 'dhcp'
        option norelease '1'

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

Still not getting IPv6 on br-lan..

What does the "IPV6-PD" on wan6 look like?

My config is similar to yours, but I do "try = 56" (which you already said doesn't work for you? weird):

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'

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

Oh, and second router looks like:

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

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

@efahl hmmm i'll try your way later..

The issue if i use 'try' or 'force' on the main router is that the ISP assigned IPv6 address to my router is a /128 and the segment is not the same as the PD (which i've explained here).

On secondary:
Please run the following commands (copy-paste the whole block) and paste the output here, using the "Preformatted text </> " button:
grafik
Remember to redact passwords, MAC addresses and any public IP addresses you may have

ubus call system board; \
uci export network; \
uci export dhcp; uci export firewall; \
ip -6 addr ; ip -6 ro li tab all ; ip -6 ru; \
ifstatus wan6; ifstatus lan

That's what I see, too. wan6 IP is /128 on my ISP's net, but I still get a distinct PD that is /56, which is used by lan and all devices on lan.

My ISP connection with "try 56", note IP/128 is not on PD/56.

I use ubus call network.interface dump to figure out what is up with the various changes in settings I make. It's verbose and somewhat hard to pick through, but it's sure complete.

Yes, but somehow the routing is borked (by my ISP) for the given /128 IP as only the router has no working IPv6 but all devices (LAN) have working IPv6. Anyway, that is entirely a different thing not related to the current topic.

Below is the output (redacted/removed some items especially on the DHCP (dhcp static lease/host) and FIREWALL (firewall rules)):

{
	"kernel": "5.15.109",
	"hostname": "BlackPanther",
	"system": "MediaTek MT7621 ver:1 eco:3",
	"model": "Newifi-D2",
	"board_name": "d-team,newifi-d2",
	"rootfs_type": "squashfs",
	"release": {
		"distribution": "OpenWrt",
		"version": "SNAPSHOT",
		"revision": "r22699-45f5115253",
		"target": "ramips/mt7621",
		"description": "OpenWrt SNAPSHOT r22699-45f5115253"
	}
}


==========================================================================================
==========================================================================================


package 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 packet_steering '1'
	option ula_prefix 'fdfc:1a2d:c7ed::/48'

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

config interface 'lan'
	option device 'br-lan'
	option proto 'static'
	option netmask '255.255.255.0'
	option ipaddr '192.168.10.1'
	option ip6assign '62'

config interface 'wan'
	option device 'wan'
	option proto 'dhcp'
	option norelease '1'

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

config device
	option type 'bridge'
	option name 'br-guest'
	option bridge_empty '1'
	option ipv6 '0'
	list ports '@trk01.20'
	list ports '@trk02.20'

config interface 'guest'
	option proto 'static'
	option device 'br-guest'
	option ipaddr '192.168.20.1'
	option netmask '255.255.255.0'
	option defaultroute '0'
	option delegate '0'

config interface 'trk01'
	option proto 'gretap'
	option peeraddr '192.168.10.2'
	option ipaddr '192.168.10.1'
	option df '0'
	option defaultroute '0'
	option delegate '0'
	option force_link '1'

config interface 'trk02'
	option proto 'gretap'
	option force_link '1'
	option peeraddr '192.168.10.3'
	option ipaddr '192.168.10.1'
	option df '0'
	option defaultroute '0'


==========================================================================================
==========================================================================================


package dhcp

config dnsmasq
	option domainneeded '1'
	option localise_queries '1'
	option local '/lan/'
	option domain 'lan'
	option expandhosts '1'
	option authoritative '1'
	option readethers '1'
	option leasefile '/tmp/dhcp.leases'
	option localservice '1'
	option ednspacket_max '1232'
	option confdir '/tmp/dnsmasq.d'
	option dnsforwardmax '300'
	option cachesize '10000'
	option min_cache_ttl '3600'
	option rebind_protection '0'

config dhcp 'lan'
	option interface 'lan'
	option start '100'
	option dhcpv4 'server'
	option force '1'
	option limit '200'
	option leasetime '12h'
	list dhcp_option '6,10.0.0.1'

config dhcp 'wan'
	option interface 'wan'
	option ignore '1'

config odhcpd 'odhcpd'
	option maindhcp '0'
	option leasefile '/tmp/hosts/odhcpd'
	option leasetrigger '/usr/sbin/odhcpd-update'
	option loglevel '4'

config dhcp 'guest'
	option interface 'guest'
	option start '200'
	option leasetime '1h'
	option limit '250'
	option force '1'
	list dhcp_option '6,10.0.0.1'

package firewall

config defaults
	option syn_flood '1'
	option input 'REJECT'
	option output 'ACCEPT'
	option forward 'REJECT'

config zone
	option name 'lan'
	list network 'lan'
	option input 'ACCEPT'
	option output 'ACCEPT'
	option forward 'ACCEPT'

config zone
	option name 'wan'
	list network 'wan'
	list network 'wan6'
	option input 'REJECT'
	option output 'ACCEPT'
	option forward 'REJECT'
	option masq '1'
	option mtu_fix '1'

config forwarding
	option src 'lan'
	option dest 'wan'

config rule
	option name 'Allow-DHCP-Renew'
	option src 'wan'
	option proto 'udp'
	option dest_port '68'
	option target 'ACCEPT'
	option family 'ipv4'

config rule
	option name 'Allow-Ping'
	option src 'wan'
	option proto 'icmp'
	option icmp_type 'echo-request'
	option family 'ipv4'
	option target 'ACCEPT'

config rule
	option name 'Allow-IGMP'
	option src 'wan'
	option proto 'igmp'
	option family 'ipv4'
	option target 'ACCEPT'

config rule
	option name 'Allow-DHCPv6'
	option src 'wan'
	option proto 'udp'
	option dest_port '546'
	option family 'ipv6'
	option target 'ACCEPT'

config rule
	option name 'Allow-MLD'
	option src 'wan'
	option proto 'icmp'
	option src_ip 'fe80::/10'
	list icmp_type '130/0'
	list icmp_type '131/0'
	list icmp_type '132/0'
	list icmp_type '143/0'
	option family 'ipv6'
	option target 'ACCEPT'

config rule
	option name 'Allow-ICMPv6-Input'
	option src 'wan'
	option proto 'icmp'
	list icmp_type 'echo-request'
	list icmp_type 'echo-reply'
	list icmp_type 'destination-unreachable'
	list icmp_type 'packet-too-big'
	list icmp_type 'time-exceeded'
	list icmp_type 'bad-header'
	list icmp_type 'unknown-header-type'
	list icmp_type 'router-solicitation'
	list icmp_type 'neighbour-solicitation'
	list icmp_type 'router-advertisement'
	list icmp_type 'neighbour-advertisement'
	option limit '1000/sec'
	option family 'ipv6'
	option target 'ACCEPT'

config rule
	option name 'Allow-ICMPv6-Forward'
	option src 'wan'
	option dest '*'
	option proto 'icmp'
	list icmp_type 'echo-request'
	list icmp_type 'echo-reply'
	list icmp_type 'destination-unreachable'
	list icmp_type 'packet-too-big'
	list icmp_type 'time-exceeded'
	list icmp_type 'bad-header'
	list icmp_type 'unknown-header-type'
	option limit '1000/sec'
	option family 'ipv6'
	option target 'ACCEPT'

config rule
	option name 'Allow-IPSec-ESP'
	option src 'wan'
	option dest 'lan'
	option proto 'esp'
	option target 'ACCEPT'

config rule
	option name 'Allow-ISAKMP'
	option src 'wan'
	option dest 'lan'
	option dest_port '500'
	option proto 'udp'
	option target 'ACCEPT'

config rule
	option name 'Guest-DNS-and-DHCP'
	option dest_port '53 67 68'
	option target 'ACCEPT'
	option src 'guest'

config zone
	option name 'guest'
	option output 'ACCEPT'
	option forward 'REJECT'
	option input 'REJECT'
	list network 'guest'

config forwarding
	option src 'guest'
	option dest 'wan'

config include 'estab'
	option path '/etc/nftables.d/estab.sh'


==========================================================================================
==========================================================================================


1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 state UNKNOWN qlen 1000
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1504 state UP qlen 1000
    inet6 fe80::XXXX:XXXX:fe51:c877/64 scope link
       valid_lft forever preferred_lft forever
7: wan@eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 state UP qlen 1000
    inet6 2001:XXXX:XXXX:2600:XXXX:XXXX:fe51:c879/64 scope global dynamic noprefixroute
       valid_lft 258749sec preferred_lft 172349sec
    inet6 2001:XXXX:XXXX:e000:XXXX:XXXX:fe51:c879/64 scope global deprecated dynamic noprefixroute
       valid_lft 6723sec preferred_lft 0sec
    inet6 2001:XXXX:XXXX:2600::2/128 scope global dynamic noprefixroute
       valid_lft 165500sec preferred_lft 165500sec
    inet6 fd50:356e:ee69::2/128 scope global dynamic noprefixroute
       valid_lft 165500sec preferred_lft 165500sec
    inet6 fe80::XXXX:XXXX:fe51:c879/64 scope link
       valid_lft forever preferred_lft forever
65: ifb4br-guest: <BROADCAST,NOARP,UP,LOWER_UP> mtu 1500 state UNKNOWN qlen 32
    inet6 fe80::70cf:84ff:fed6:eba/64 scope link
       valid_lft forever preferred_lft forever
66: mesh0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 state UP qlen 1000
    inet6 fe80::XXXX:XXXX:fe51:c878/64 scope link
       valid_lft forever preferred_lft forever
68: gre4t-trk02@NONE: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1280 state UNKNOWN qlen 1000
    inet6 fe80::7455:50ff:fee4:d436/64 scope link
       valid_lft forever preferred_lft forever
70: gre4t-trk01@NONE: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1280 state UNKNOWN qlen 1000
    inet6 fe80::d8cf:a6ff:feb5:9842/64 scope link
       valid_lft forever preferred_lft forever
72: phy1-ap0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 state UP qlen 1000
    inet6 fe80::2076:93ff:fe51:c878/64 scope link
       valid_lft forever preferred_lft forever
73: phy0-ap0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 state UP qlen 1000
    inet6 fe80::XXXX:XXXX:fe51:c876/64 scope link
       valid_lft forever preferred_lft forever
74: phy1-ap1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 state UP qlen 1000
    inet6 fe80::2476:93ff:fe51:c878/64 scope link
       valid_lft forever preferred_lft forever
75: phy0-ap1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 state UP qlen 1000
    inet6 fe80::2076:93ff:fe51:c876/64 scope link
       valid_lft forever preferred_lft forever
default from 2001:XXXX:XXXX:e000::/64 via fe80::ea9f:XXXX:XXXX:e2d4 dev wan proto static metric 512 pref medium
default from 2001:XXXX:XXXX:2600::2 via fe80::ea9f:XXXX:XXXX:e2d4 dev wan proto static metric 512 pref medium
default from 2001:XXXX:XXXX:2600::/64 via fe80::ea9f:XXXX:XXXX:e2d4 dev wan proto static metric 512 pref medium
default from 2001:XXXX:XXXX:2608::/61 via fe80::ea9f:XXXX:XXXX:e2d4 dev wan proto static metric 512 pref medium
default from fd50:356e:ee69::2 via fe80::ea9f:XXXX:XXXX:e2d4 dev wan proto static metric 512 pref medium
default from fd50:356e:ee69::/64 via fe80::ea9f:XXXX:XXXX:e2d4 dev wan proto static metric 512 pref medium
default from fd50:356e:ee69:8::/61 via fe80::ea9f:XXXX:XXXX:e2d4 dev wan proto static metric 512 pref medium
2001:XXXX:XXXX:e000::/56 from 2001:XXXX:XXXX:e000::/64 via fe80::ea9f:XXXX:XXXX:e2d4 dev wan proto static metric 512 pref medium
2001:XXXX:XXXX:e000::/56 from 2001:XXXX:XXXX:2600::2 via fe80::ea9f:XXXX:XXXX:e2d4 dev wan proto static metric 512 pref medium
2001:XXXX:XXXX:e000::/56 from 2001:XXXX:XXXX:2600::/64 via fe80::ea9f:XXXX:XXXX:e2d4 dev wan proto static metric 512 pref medium
2001:XXXX:XXXX:e000::/56 from 2001:XXXX:XXXX:2608::/61 via fe80::ea9f:XXXX:XXXX:e2d4 dev wan proto static metric 512 pref medium
2001:XXXX:XXXX:e000::/56 from fd50:356e:ee69::2 via fe80::ea9f:XXXX:XXXX:e2d4 dev wan proto static metric 512 pref medium
2001:XXXX:XXXX:e000::/56 from fd50:356e:ee69::/64 via fe80::ea9f:XXXX:XXXX:e2d4 dev wan proto static metric 512 pref medium
2001:XXXX:XXXX:e000::/56 from fd50:356e:ee69:8::/61 via fe80::ea9f:XXXX:XXXX:e2d4 dev wan proto static metric 512 pref medium
2001:XXXX:XXXX:e000::/64 dev wan proto static metric 256 pref medium
unreachable 2001:XXXX:XXXX:e000::/64 dev lo proto static metric 2147483647 pref medium
2001:XXXX:XXXX:2600::/56 from 2001:XXXX:XXXX:e000::/64 via fe80::ea9f:XXXX:XXXX:e2d4 dev wan proto static metric 512 pref medium
2001:XXXX:XXXX:2600::/56 from 2001:XXXX:XXXX:2600::2 via fe80::ea9f:XXXX:XXXX:e2d4 dev wan proto static metric 512 pref medium
2001:XXXX:XXXX:2600::/56 from 2001:XXXX:XXXX:2600::/64 via fe80::ea9f:XXXX:XXXX:e2d4 dev wan proto static metric 512 pref medium
2001:XXXX:XXXX:2600::/56 from 2001:XXXX:XXXX:2608::/61 via fe80::ea9f:XXXX:XXXX:e2d4 dev wan proto static metric 512 pref medium
2001:XXXX:XXXX:2600::/56 from fd50:356e:ee69::2 via fe80::ea9f:XXXX:XXXX:e2d4 dev wan proto static metric 512 pref medium
2001:XXXX:XXXX:2600::/56 from fd50:356e:ee69::/64 via fe80::ea9f:XXXX:XXXX:e2d4 dev wan proto static metric 512 pref medium
2001:XXXX:XXXX:2600::/56 from fd50:356e:ee69:8::/61 via fe80::ea9f:XXXX:XXXX:e2d4 dev wan proto static metric 512 pref medium
2001:XXXX:XXXX:2600::/64 dev wan proto static metric 256 pref medium
unreachable 2001:XXXX:XXXX:2600::/64 dev lo proto static metric 2147483647 pref medium
unreachable 2001:XXXX:XXXX:2608::/61 dev lo proto static metric 2147483647 pref medium
fd50:356e:ee69::/48 from 2001:XXXX:XXXX:e000::/64 via fe80::ea9f:XXXX:XXXX:e2d4 dev wan proto static metric 512 pref medium
fd50:356e:ee69::/48 from 2001:XXXX:XXXX:2600::2 via fe80::ea9f:XXXX:XXXX:e2d4 dev wan proto static metric 512 pref medium
fd50:356e:ee69::/48 from 2001:XXXX:XXXX:2600::/64 via fe80::ea9f:XXXX:XXXX:e2d4 dev wan proto static metric 512 pref medium
fd50:356e:ee69::/48 from 2001:XXXX:XXXX:2608::/61 via fe80::ea9f:XXXX:XXXX:e2d4 dev wan proto static metric 512 pref medium
fd50:356e:ee69::/48 from fd50:356e:ee69::2 via fe80::ea9f:XXXX:XXXX:e2d4 dev wan proto static metric 512 pref medium
fd50:356e:ee69::/48 from fd50:356e:ee69::/64 via fe80::ea9f:XXXX:XXXX:e2d4 dev wan proto static metric 512 pref medium
fd50:356e:ee69::/48 from fd50:356e:ee69:8::/61 via fe80::ea9f:XXXX:XXXX:e2d4 dev wan proto static metric 512 pref medium
fd50:356e:ee69::/64 dev wan proto static metric 256 pref medium
unreachable fd50:356e:ee69::/64 dev lo proto static metric 2147483647 pref medium
unreachable fd50:356e:ee69:8::/61 dev lo proto static metric 2147483647 pref medium
unreachable fdfc:1a2d:c7ed::/48 dev lo proto static metric 2147483647 pref medium
fe80::/64 dev eth0 proto kernel metric 256 pref medium
fe80::/64 dev ifb4br-guest proto kernel metric 256 pref medium
fe80::/64 dev gre4t-trk02 proto kernel metric 256 pref medium
fe80::/64 dev wan proto kernel metric 256 pref medium
fe80::/64 dev gre4t-trk01 proto kernel metric 256 pref medium
fe80::/64 dev phy1-ap0 proto kernel metric 256 pref medium
fe80::/64 dev phy1-ap1 proto kernel metric 256 pref medium
fe80::/64 dev phy0-ap0 proto kernel metric 256 pref medium
fe80::/64 dev phy0-ap1 proto kernel metric 256 pref medium
fe80::/64 dev mesh0 proto kernel metric 256 pref medium
local ::1 dev lo table local proto kernel metric 0 pref medium
anycast 2001:XXXX:XXXX:e000:: dev wan table local proto kernel metric 0 pref medium
local 2001:XXXX:XXXX:e000:XXXX:XXXX:fe51:c879 dev wan table local proto kernel metric 0 pref medium
anycast 2001:XXXX:XXXX:2600:: dev wan table local proto kernel metric 0 pref medium
local 2001:XXXX:XXXX:2600::2 dev wan table local proto kernel metric 0 pref medium
local 2001:XXXX:XXXX:2600:XXXX:XXXX:fe51:c879 dev wan table local proto kernel metric 0 pref medium
local fd50:356e:ee69::2 dev wan table local proto kernel metric 0 pref medium
anycast fe80:: dev eth0 table local proto kernel metric 0 pref medium
anycast fe80:: dev ifb4br-guest table local proto kernel metric 0 pref medium
anycast fe80:: dev gre4t-trk02 table local proto kernel metric 0 pref medium
anycast fe80:: dev wan table local proto kernel metric 0 pref medium
anycast fe80:: dev gre4t-trk01 table local proto kernel metric 0 pref medium
anycast fe80:: dev phy1-ap0 table local proto kernel metric 0 pref medium
anycast fe80:: dev phy0-ap0 table local proto kernel metric 0 pref medium
anycast fe80:: dev phy1-ap1 table local proto kernel metric 0 pref medium
anycast fe80:: dev phy0-ap1 table local proto kernel metric 0 pref medium
anycast fe80:: dev mesh0 table local proto kernel metric 0 pref medium
local fe80::2076:93ff:fe51:c876 dev phy0-ap1 table local proto kernel metric 0 pref medium
local fe80::2076:93ff:fe51:c878 dev phy1-ap0 table local proto kernel metric 0 pref medium
local fe80::XXXX:XXXX:fe51:c876 dev phy0-ap0 table local proto kernel metric 0 pref medium
local fe80::XXXX:XXXX:fe51:c877 dev eth0 table local proto kernel metric 0 pref medium
local fe80::XXXX:XXXX:fe51:c878 dev mesh0 table local proto kernel metric 0 pref medium
local fe80::XXXX:XXXX:fe51:c879 dev wan table local proto kernel metric 0 pref medium
local fe80::2476:93ff:fe51:c878 dev phy1-ap1 table local proto kernel metric 0 pref medium
local fe80::70cf:84ff:fed6:eba dev ifb4br-guest table local proto kernel metric 0 pref medium
local fe80::7455:50ff:fee4:d436 dev gre4t-trk02 table local proto kernel metric 0 pref medium
local fe80::d8cf:a6ff:feb5:9842 dev gre4t-trk01 table local proto kernel metric 0 pref medium
multicast ff00::/8 dev eth0 table local proto kernel metric 256 pref medium
multicast ff00::/8 dev ifb4br-guest table local proto kernel metric 256 pref medium
multicast ff00::/8 dev gre4t-trk02 table local proto kernel metric 256 pref medium
multicast ff00::/8 dev wan table local proto kernel metric 256 pref medium
multicast ff00::/8 dev gre4t-trk01 table local proto kernel metric 256 pref medium
multicast ff00::/8 dev phy1-ap0 table local proto kernel metric 256 pref medium
multicast ff00::/8 dev phy1-ap1 table local proto kernel metric 256 pref medium
multicast ff00::/8 dev phy0-ap0 table local proto kernel metric 256 pref medium
multicast ff00::/8 dev phy0-ap1 table local proto kernel metric 256 pref medium
multicast ff00::/8 dev mesh0 table local proto kernel metric 256 pref medium
0:	from all lookup local
32766:	from all lookup main
4200000068:	from all iif gre4t-trk02 failed_policy
4200000070:	from all iif gre4t-trk01 failed_policy
{
	"up": true,
	"pending": false,
	"available": true,
	"autostart": true,
	"dynamic": false,
	"uptime": 36244,
	"l3_device": "wan",
	"proto": "dhcpv6",
	"device": "wan",
	"updated": [
		"prefixes"
	],
	"metric": 0,
	"dns_metric": 0,
	"delegation": true,
	"ipv4-address": [

	],
	"ipv6-address": [
		{
			"address": "fd50:356e:ee69::2",
			"mask": 128,
			"preferred": 165500,
			"valid": 165500
		},
		{
			"address": "2001:XXXX:XXXX:2600::2",
			"mask": 128,
			"preferred": 165500,
			"valid": 165500
		},
		{
			"address": "2001:XXXX:XXXX:e000:XXXX:XXXX:fe51:c879",
			"mask": 64,
			"preferred": 0,
			"valid": 6723
		},
		{
			"address": "fd50:356e:ee69:0:XXXX:XXXX:fe51:c879",
			"mask": 64
		},
		{
			"address": "2001:XXXX:XXXX:2600:XXXX:XXXX:fe51:c879",
			"mask": 64,
			"preferred": 172349,
			"valid": 258749
		}
	],
	"ipv6-prefix": [
		{
			"address": "2001:XXXX:XXXX:2608::",
			"mask": 61,
			"preferred": 165500,
			"valid": 165500,
			"class": "wan6",
			"assigned": {
				"lan": {
					"address": "2001:XXXX:XXXX:2608::",
					"mask": 62
				}
			}
		},
		{
			"address": "fd50:356e:ee69:8::",
			"mask": 61,
			"preferred": 165500,
			"valid": 165500,
			"class": "wan6",
			"assigned": {
				"lan": {
					"address": "fd50:356e:ee69:8::",
					"mask": 62
				}
			}
		}
	],
	"ipv6-prefix-assignment": [

	],
	"route": [
		{
			"target": "2001:XXXX:XXXX:e000::",
			"mask": 64,
			"nexthop": "::",
			"metric": 256,
			"valid": 6723,
			"source": "::/0"
		},
		{
			"target": "2001:XXXX:XXXX:2600::",
			"mask": 64,
			"nexthop": "::",
			"metric": 256,
			"valid": 258749,
			"source": "::/0"
		},
		{
			"target": "fd50:356e:ee69::",
			"mask": 64,
			"nexthop": "::",
			"metric": 256,
			"source": "::/0"
		},
		{
			"target": "2001:XXXX:XXXX:e000::",
			"mask": 56,
			"nexthop": "fe80::ea9f:XXXX:XXXX:e2d4",
			"metric": 512,
			"valid": 1105,
			"source": "2001:XXXX:XXXX:2608::/61"
		},
		{
			"target": "2001:XXXX:XXXX:2600::",
			"mask": 56,
			"nexthop": "fe80::ea9f:XXXX:XXXX:e2d4",
			"metric": 512,
			"valid": 1701,
			"source": "2001:XXXX:XXXX:2608::/61"
		},
		{
			"target": "2001:XXXX:XXXX:e000::",
			"mask": 56,
			"nexthop": "fe80::ea9f:XXXX:XXXX:e2d4",
			"metric": 512,
			"valid": 1105,
			"source": "fd50:356e:ee69:8::/61"
		},
		{
			"target": "2001:XXXX:XXXX:2600::",
			"mask": 56,
			"nexthop": "fe80::ea9f:XXXX:XXXX:e2d4",
			"metric": 512,
			"valid": 1701,
			"source": "fd50:356e:ee69:8::/61"
		},
		{
			"target": "2001:XXXX:XXXX:e000::",
			"mask": 56,
			"nexthop": "fe80::ea9f:XXXX:XXXX:e2d4",
			"metric": 512,
			"valid": 1105,
			"source": "2001:XXXX:XXXX:e000:XXXX:XXXX:fe51:c879/64"
		},
		{
			"target": "2001:XXXX:XXXX:2600::",
			"mask": 56,
			"nexthop": "fe80::ea9f:XXXX:XXXX:e2d4",
			"metric": 512,
			"valid": 1701,
			"source": "2001:XXXX:XXXX:e000:XXXX:XXXX:fe51:c879/64"
		},
		{
			"target": "2001:XXXX:XXXX:e000::",
			"mask": 56,
			"nexthop": "fe80::ea9f:XXXX:XXXX:e2d4",
			"metric": 512,
			"valid": 1105,
			"source": "2001:XXXX:XXXX:2600:XXXX:XXXX:fe51:c879/64"
		},
		{
			"target": "2001:XXXX:XXXX:2600::",
			"mask": 56,
			"nexthop": "fe80::ea9f:XXXX:XXXX:e2d4",
			"metric": 512,
			"valid": 1701,
			"source": "2001:XXXX:XXXX:2600:XXXX:XXXX:fe51:c879/64"
		},
		{
			"target": "2001:XXXX:XXXX:e000::",
			"mask": 56,
			"nexthop": "fe80::ea9f:XXXX:XXXX:e2d4",
			"metric": 512,
			"valid": 1105,
			"source": "fd50:356e:ee69:0:XXXX:XXXX:fe51:c879/64"
		},
		{
			"target": "2001:XXXX:XXXX:2600::",
			"mask": 56,
			"nexthop": "fe80::ea9f:XXXX:XXXX:e2d4",
			"metric": 512,
			"valid": 1701,
			"source": "fd50:356e:ee69:0:XXXX:XXXX:fe51:c879/64"
		},
		{
			"target": "2001:XXXX:XXXX:e000::",
			"mask": 56,
			"nexthop": "fe80::ea9f:XXXX:XXXX:e2d4",
			"metric": 512,
			"valid": 1105,
			"source": "2001:XXXX:XXXX:2600::2/128"
		},
		{
			"target": "2001:XXXX:XXXX:2600::",
			"mask": 56,
			"nexthop": "fe80::ea9f:XXXX:XXXX:e2d4",
			"metric": 512,
			"valid": 1701,
			"source": "2001:XXXX:XXXX:2600::2/128"
		},
		{
			"target": "2001:XXXX:XXXX:e000::",
			"mask": 56,
			"nexthop": "fe80::ea9f:XXXX:XXXX:e2d4",
			"metric": 512,
			"valid": 1105,
			"source": "fd50:356e:ee69::2/128"
		},
		{
			"target": "2001:XXXX:XXXX:2600::",
			"mask": 56,
			"nexthop": "fe80::ea9f:XXXX:XXXX:e2d4",
			"metric": 512,
			"valid": 1701,
			"source": "fd50:356e:ee69::2/128"
		},
		{
			"target": "fd50:356e:ee69::",
			"mask": 48,
			"nexthop": "fe80::ea9f:XXXX:XXXX:e2d4",
			"metric": 512,
			"valid": 1701,
			"source": "2001:XXXX:XXXX:2608::/61"
		},
		{
			"target": "fd50:356e:ee69::",
			"mask": 48,
			"nexthop": "fe80::ea9f:XXXX:XXXX:e2d4",
			"metric": 512,
			"valid": 1701,
			"source": "fd50:356e:ee69:8::/61"
		},
		{
			"target": "fd50:356e:ee69::",
			"mask": 48,
			"nexthop": "fe80::ea9f:XXXX:XXXX:e2d4",
			"metric": 512,
			"valid": 1701,
			"source": "2001:XXXX:XXXX:e000:XXXX:XXXX:fe51:c879/64"
		},
		{
			"target": "fd50:356e:ee69::",
			"mask": 48,
			"nexthop": "fe80::ea9f:XXXX:XXXX:e2d4",
			"metric": 512,
			"valid": 1701,
			"source": "2001:XXXX:XXXX:2600:XXXX:XXXX:fe51:c879/64"
		},
		{
			"target": "fd50:356e:ee69::",
			"mask": 48,
			"nexthop": "fe80::ea9f:XXXX:XXXX:e2d4",
			"metric": 512,
			"valid": 1701,
			"source": "fd50:356e:ee69:0:XXXX:XXXX:fe51:c879/64"
		},
		{
			"target": "fd50:356e:ee69::",
			"mask": 48,
			"nexthop": "fe80::ea9f:XXXX:XXXX:e2d4",
			"metric": 512,
			"valid": 1701,
			"source": "2001:XXXX:XXXX:2600::2/128"
		},
		{
			"target": "fd50:356e:ee69::",
			"mask": 48,
			"nexthop": "fe80::ea9f:XXXX:XXXX:e2d4",
			"metric": 512,
			"valid": 1701,
			"source": "fd50:356e:ee69::2/128"
		},
		{
			"target": "::",
			"mask": 0,
			"nexthop": "fe80::ea9f:XXXX:XXXX:e2d4",
			"metric": 512,
			"valid": 1701,
			"source": "2001:XXXX:XXXX:2608::/61"
		},
		{
			"target": "::",
			"mask": 0,
			"nexthop": "fe80::ea9f:XXXX:XXXX:e2d4",
			"metric": 512,
			"valid": 1701,
			"source": "fd50:356e:ee69:8::/61"
		},
		{
			"target": "::",
			"mask": 0,
			"nexthop": "fe80::ea9f:XXXX:XXXX:e2d4",
			"metric": 512,
			"valid": 1701,
			"source": "2001:XXXX:XXXX:e000:XXXX:XXXX:fe51:c879/64"
		},
		{
			"target": "::",
			"mask": 0,
			"nexthop": "fe80::ea9f:XXXX:XXXX:e2d4",
			"metric": 512,
			"valid": 1701,
			"source": "2001:XXXX:XXXX:2600:XXXX:XXXX:fe51:c879/64"
		},
		{
			"target": "::",
			"mask": 0,
			"nexthop": "fe80::ea9f:XXXX:XXXX:e2d4",
			"metric": 512,
			"valid": 1701,
			"source": "fd50:356e:ee69:0:XXXX:XXXX:fe51:c879/64"
		},
		{
			"target": "::",
			"mask": 0,
			"nexthop": "fe80::ea9f:XXXX:XXXX:e2d4",
			"metric": 512,
			"valid": 1701,
			"source": "2001:XXXX:XXXX:2600::2/128"
		},
		{
			"target": "::",
			"mask": 0,
			"nexthop": "fe80::ea9f:XXXX:XXXX:e2d4",
			"metric": 512,
			"valid": 1701,
			"source": "fd50:356e:ee69::2/128"
		}
	],
	"dns-server": [
		"fd50:356e:ee69::1"
	],
	"dns-search": [

	],
	"neighbors": [

	],
	"inactive": {
		"ipv4-address": [

		],
		"ipv6-address": [

		],
		"route": [

		],
		"dns-server": [

		],
		"dns-search": [

		],
		"neighbors": [

		]
	},
	"data": {
		"passthru": "00170010XXXXXXXXXXXX00000000000000000001"
	}
}
{
	"up": true,
	"pending": false,
	"available": true,
	"autostart": true,
	"dynamic": false,
	"uptime": 36252,
	"l3_device": "br-lan",
	"proto": "static",
	"device": "br-lan",
	"updated": [
		"addresses"
	],
	"metric": 0,
	"dns_metric": 0,
	"delegation": true,
	"ipv4-address": [
		{
			"address": "192.168.10.1",
			"mask": 24
		}
	],
	"ipv6-address": [

	],
	"ipv6-prefix": [

	],
	"ipv6-prefix-assignment": [
		{
			"address": "2001:XXXX:XXXX:2608::",
			"mask": 62,
			"preferred": 165500,
			"valid": 165500,
			"local-address": {

			}
		},
		{
			"address": "fd50:356e:ee69:8::",
			"mask": 62,
			"preferred": 165500,
			"valid": 165500,
			"local-address": {

			}
		},
		{
			"address": "fdfc:1a2d:c7ed::",
			"mask": 62,
			"local-address": {

			}
		}
	],
	"route": [

	],
	"dns-server": [

	],
	"dns-search": [

	],
	"neighbors": [

	],
	"inactive": {
		"ipv4-address": [

		],
		"ipv6-address": [

		],
		"route": [

		],
		"dns-server": [

		],
		"dns-search": [

		],
		"neighbors": [

		]
	},
	"data": {

	}
}

@trendy and @_bernd thanks for your assistance but for now I'm shelving this as I'll be away (due to work) for a couple of weeks and won't have time to do additional testing on my local network before I leave.

You have disabled ipv6 in multiple places.

Also you have defaultroute '0' in some interfaces.

There are no dhcp6 options.

Thanks! I'll try to squeeze in the recommended changes tonight.

Thanks @trendy for pointing out that the bridge interface has the IPv6 disabled. I didn't notice that immediately.