If we just look at br0 and not the container interfaces thats:
2601:647:cc00:f4::/64 dev br0 proto ra metric 213 pref medium
2601:647:cc00:f4::/64 dev br0 proto kernel metric 256 expires 86277sec pref medium
fd3f:4d46:8539:4967::/64 dev br0 proto ra metric 213 pref medium
fd3f:4d46:8539:4967::/64 dev br0 proto kernel metric 256 expires 1754sec pref medium
fe80::/64 dev br0 proto kernel metric 256 pref medium
multicast ff00::/8 dev br0 proto kernel metric 256 pref medium
default via fe80::929a:4aff:fe31:cfa3 dev br0 proto ra metric 213 pref medium
default via fe80::929a:4aff:fe31:cfa3 dev br0 proto ra metric 1024 expires 1677sec hoplimit 64 pref medium
No idea why yours has duplicates like that.
Mine is:
# ip -6 route
fd59:86c6:e5a5::/64 via fe80::1423:d0cd:3961:8e4c dev vlan101 metric 1024 expires 0sec
fd69:3e50:e165:4bf8::/64 dev vlan101 metric 256 expires 0sec
fe80::/64 dev vlan101 metric 256
multicast ff00::/8 dev vlan101 metric 256
So there are 2 ipv6 networks in play. The accept_ra
change we made seems to have allowed your unraid box to see one of them (fd3f
). But you are missing an equivalent to this route:
fd59:86c6:e5a5::/64 via fe80::1423:d0cd:3961:8e4c dev vlan101 metric 1024 expires 0sec
When i didn’t get this route it was because i didn’t have the sysctl net.ipv6.conf.all.accept_ra_rt_info_max_plen
configured.
If you run something like this:
tcpdump -n -vvv -e -i br0 icmp6
You’ll eventually see something like this (be patient, it can be a while between broadcasts):
22:51:28.322971 04:99:b9:64:1b:eb > 33:33:00:00:00:01, ethertype IPv6 (0x86dd), length 126: (flowlabel 0xb0400, hlim 255, next-header ICMPv6 (58) payload length: 72) fe80::1423:d0cd:3961:8e4c > ff02::1: [icmp6 sum ok] ICMP6, router advertisement, length 72
hop limit 0, Flags [none], pref medium, router lifetime 0s, reachable time 0ms, retrans timer 0ms
source link-address option (1), length 8 (1): 04:99:b9:64:1b:eb
0x0000: 0499 b964 1beb
prefix info option (3), length 32 (4): fd69:3e50:e165:4bf8::/64, Flags [onlink, auto], valid time 1800s, pref. time 1800s
0x0000: 40c0 0000 0708 0000 0708 0000 0000 fd69
0x0010: 3e50 e165 4bf8 0000 0000 0000 0000
route info option (24), length 16 (2): fd59:86c6:e5a5::/64, pref=medium, lifetime=1800s
0x0000: 4000 0000 0708 fd59 86c6 e5a5 0000
If you do see a record like this (the crucial bit is the “route info option”) then you your kernel is just dropping the hint from the border router.