Devices stopped getting IPv6 address (after upgrade?)

I’m not entirely sure if this is the result of a sys upgrade. However, devices on my local IPv6 network have now stopped being able to obtain an IPv6 address.

I have router advertisements enabled and set to ‘forced’, and there is a delegated IPv6 prefix available. The exact same configuration serves multiple interfaces (my router is a VM on a hypervisor and the other interfaces served by this configuration are neighboring VMs connected through a bridge on the hypervisor), but for some reason only my physical IPv6 network has stopped working.

The interface works perfectly fine with IPv4 and DHCP. I even tried enabling DHCPv6, but that still doesn’t solve the issue.

If I manually assign an IPv6 address to a connected client device and set the default gateway to the router interface’s link-local address, I can connect to the Internet. I can however not ping the actual router interface itself. To do that, I also need to add a route to the interface with a gateway to the router (I believe this may be related to the router’s address falling within the /64 block the client device is assigned).

Relevant config stuff:

config device
	option name 'eth0'
	option ipv6 '1'

config interface 'lan6'
	option proto 'static'
	option ip6assign '64'
	list ip6class 'wan6'
	option delegate '0'
	option defaultroute '0'
	list dns '2620:10a:80bb::10'
	list dns '2620:10a:80bc::10'
	option device 'eth0'
	option ip6hint '74ef'

I tried putting lan6 into the same firewall zone used for the other IPv6 network to no avail, so I don’t think it’s a firewall issue.

I ran radvdump and every once in a while it shows a router advertisement coming through that looks fine (i.e. IP addresses seem correct). I do not get an advertisement coming through immediately upon connecting however, and my OS (Debian, though I’ve tried this with pretty much every OS under the sun) does not seem to accept the advertisement and assign the address to the device.

Edit: after checking in on my device after a while it seems like it has successfully acquired an IP address? Perhaps the issue is that the router is not accepting router solicitations properly and the device has to wait for a router advertisement to come through? It's very confusing and I'm not a networking expert. Either way, there's no internet connectivity. No routes are created.

Edit: that happened with a manual route to the router interface defined (via the router's interface's link-local interface). I don't see any advertisements after removing that route and setting routes (and everything else) to automatic.

Edit: this doesn't guarantee that there are no router advertisements. I think it still is putting out router advertisements.

Any pointers?

To be actionable, this post lacks information about the previous OpenWrt version (last known good) and the one you upgraded to (first presumed bad), as well as some information about the hypervisor and its networking setup.

The current version is 24.10.4, and I believe the last known working version was 24.10.2.

The hypervisor has a PCIe network card which is passthrough'd to the OpenWRT VM. The same port on the card works just fine for IPv4—in fact, even the particular interface in question successfully assigns IPv4 addresses if I enable DHCP and configure a static IPv4 address on OpenWRT—but it does not assign IPv6 addresses for some reason.

I've also tried it on a different network port that's configured as a 'direct attachment' (QEMU) with the exact same results.

If you're using PCIe pass-through into the VM, what is the hardware of your network card - did you (initially) have to install special kmods to make it work? Keep in mind that sysupgrade (without asu/ owut) only retains configurations, not runtime installed binary packages (including kmods). In case or rtl8125/ rtl8126/ rtl8127 you also have an additional complication, namely that two kmods (may-) feel responsible for the same hardware, mainline's r8169 XOR the respective (runtime installable) vendor drivers for these chipsets, which can be messed up during sysupgrades (losing the blacklist for r8169 or the device paths changing).

Intel X540-T2. I don't think I needed a special kmod/package. The NIC works, I just can't get IPv6 addresses auto-assigned to client devices whether by router advertisements or over DHCPv6. IPv6 still works with manual IPv6 assignment.

Not sure but I would nevertheless check if the correct module is loaded or not.