Update on the situation: Tonight I realized my ipv6 stopped working again on lan even without an ONT restart and I ran a series of commands to show you the situation. Hope it helps.
I ran these commands after i realised ipv6 was not working on lan.
In the broken state, the router itself still has working IPv6 connectivity on WAN:
root@GL-BE9300:~# ping -6 -c 3 -I eth0 2606:4700:4700::1111
PING 2606:4700:4700::1111 (2606:4700:4700::1111): 56 data bytes
64 bytes from 2606:4700:4700::1111: seq=0 ttl=60 time=16.182 ms
64 bytes from 2606:4700:4700::1111: seq=1 ttl=60 time=16.007 ms
64 bytes from 2606:4700:4700::1111: seq=2 ttl=60 time=15.740 ms
--- 2606:4700:4700::1111 ping statistics ---
3 packets transmitted, 3 packets received, 0% packet loss
A normal IPv6 ping from the router also works:
root@GL-BE9300:~# ping -6 -c 3 2606:4700:4700::1111
PING 2606:4700:4700::1111 (2606:4700:4700::1111): 56 data bytes
64 bytes from 2606:4700:4700::1111: seq=0 ttl=60 time=16.091 ms
64 bytes from 2606:4700:4700::1111: seq=1 ttl=60 time=15.602 ms
64 bytes from 2606:4700:4700::1111: seq=2 ttl=60 time=15.960 ms
--- 2606:4700:4700::1111 ping statistics ---
3 packets transmitted, 3 packets received, 0% packet loss
wan6 also looks valid. It is up, has an IPv6 address, and has a delegated prefix:
{
"up": true,
"available": true,
"l3_device": "eth0",
"proto": "dhcpv6",
"device": "eth0",
"delegation": true,
"ipv6-address": [
{
"address": "2a02:a58:8906:xxxx::1",
"mask": 128,
"preferred": 44285,
"valid": 47885
}
],
"ipv6-prefix": [
{
"address": "2a02:a58:96be:xx00::",
"mask": 56,
"preferred": 44285,
"valid": 47885,
"class": "wan6",
"assigned": {
"lan": {
"address": "2a02:a58:96be:xx00::",
"mask": 60
}
}
}
],
"route": [
{
"target": "::",
"mask": 0,
"nexthop": "fe80::2621:24ff:feXX:XXXX",
"metric": 512,
"source": "2a02:a58:96be:xx00::/56"
},
{
"target": "::",
"mask": 0,
"nexthop": "fe80::2621:24ff:feXX:XXXX",
"metric": 512,
"source": "2a02:a58:8906:xxxx::1/128"
}
],
"dns-server": [
"2a02:a58:21:21::1",
"2a02:a58:21:21::2"
]
}
br-lan also has an address from the delegated public prefix:
root@GL-BE9300:~# ip -6 addr show br-lan
16: br-lan: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
inet6 2a02:a58:96be:xx00::1/60 scope global dynamic noprefixroute
valid_lft 47875sec preferred_lft 44275sec
inet6 fe80::9683:c4ff:feXX:XXXX/64 scope link
valid_lft forever preferred_lft forever
However, traffic sourced from the LAN delegated prefix does not work:
root@GL-BE9300:~# ping -6 -c 3 -I 2a02:a58:96be:xx00::1 2606:4700:4700::1111
PING 2606:4700:4700::1111 (2606:4700:4700::1111) from 2a02:a58:96be:xx00::1: 56 data bytes
--- 2606:4700:4700::1111 ping statistics ---
3 packets transmitted, 0 packets received, 100% packet loss
The IPv6 routing table also looks correct. There is a default route for the delegated prefix via the upstream link-local gateway:
root@GL-BE9300:~# ip -6 route show
default from 2a02:a58:8906:xxxx::1 via fe80::2621:24ff:feXX:XXXX dev eth0 proto static metric 512 pref medium
default from 2a02:a58:96be:xx00::/56 via fe80::2621:24ff:feXX:XXXX dev eth0 proto static metric 512 pref medium
2a02:a58:96be:xx00::/64 dev br-lan proto static metric 1024 pref medium
unreachable 2a02:a58:96be:xx00::/56 dev lo proto static metric 2147483647 pref medium
default via fe80::2621:24ff:feXX:XXXX dev eth0 proto static metric 10 pref medium
default via fe80::2621:24ff:feXX:XXXX dev eth0 proto ra metric 1024 expires 3984sec hoplimit 64 pref medium
Even route lookup for traffic sourced from the LAN IPv6 address selects the correct WAN path:
root@GL-BE9300:~# ip -6 route get 2606:4700:4700::1111 from 2a02:a58:96be:xx00::1 iif br-lan
2606:4700:4700::1111 from 2a02:a58:96be:xx00::1 via fe80::2621:24ff:feXX:XXXX dev eth0 proto static metric 512 iif br-lan pref medium
So the visible configuration looks correct:
-
router WAN IPv6 works
-
wan6 is up
-
wan6 has an IPv6 address
-
wan6 has a delegated prefix
-
br-lan has an IPv6 address from the delegated prefix
-
route lookup for traffic from the LAN prefix selects the correct upstream route
But traffic sourced from the LAN delegated prefix still fails.
Then I ran a manual renew:
root@GL-BE9300:~# ubus call network.interface.wan6 renew
Immediately after that, the same ping sourced from the LAN IPv6 address started working:
root@GL-BE9300:~# ping -6 -c 3 -I 2a02:a58:96be:xx00::1 2606:4700:4700::1111
PING 2606:4700:4700::1111 (2606:4700:4700::1111) from 2a02:a58:96be:xx00::1: 56 data bytes
64 bytes from 2606:4700:4700::1111: seq=0 ttl=60 time=15.806 ms
64 bytes from 2606:4700:4700::1111: seq=1 ttl=60 time=16.006 ms
64 bytes from 2606:4700:4700::1111: seq=2 ttl=60 time=16.060 ms
--- 2606:4700:4700::1111 ping statistics ---
3 packets transmitted, 3 packets received, 0% packet loss
This suggests that the problem is not simply missing IPv6 configuration on LAN. The IPv6 address, delegated prefix, and routes are present and look correct, but the delegated prefix is not actually usable for LAN-sourced traffic until wan6 is renewed again.
The router appears to have the correct IPv6 information, but traffic from the delegated LAN prefix does not work until ubus call network.interface.wan6 renew is executed.