Loss of IPv6 connectivity after a while (Comcast/Xfinity)

I'm running OpenWRT 22.03.3 on an EdgeRouter X. ISP is Comcast/Xfinity.
I have a fairly standard LAN setup (br-lan, with a similarly straightforward WAN IPv4 and DHCPv6 IPv6 setup as follows:

Everything works beautifully...initially. IPv4 connectivity is rock-solid. However, after some time has elapsed (at least a few minutes, but always less than an hour), I lose my IPv6 connectivity. OpenWRT still shows that the wan6 interface is up and running and all IPv6 routes still appear to be preserved, but pings to WAN IPv6 addresses time out on clients as well as from the router itself. Strangely, a simple restart of the WAN6 interface or sending a SIGUSR1 to the odhcp6c process will fix it, until the same thing happens again.

Any idea what could be causing this? I've used the exact same setup with Comcast/Xfinity at another location and everything was working just fine.

I was eventually able to resolve this issue. I changed all modes to "hybrid" mode on both the LAN, WAN, and WAN6 interfaces. Not sure why this would fix things though...

From what I can tell, "hybrid" really isn't a separate mode, it is just a setting that attempts to automatically select between relay and server.

Comcast should issue your router a /60 prefix, so you can do conventional delegation. The lan interface and lan devices should have IPs within a 2601 prefix. The wan holds a /128 within 2001.

On the lan interface, ra-service and dhcpv6-service should be set to server mode, or you can set dhcpv6-service to disabled if you don't need stateful address assignment in ipv6 on your network. Ndp-proxy should be disabled. Relay mode isn't appropriate here for any of those settings.

On the wan6 interface, the dhcp server tab should say no dhcp configured for this interface. You shouldn't be running ra/dhcpv6 services on the wan6 interface at all. It's supposed to be a dhcpv6 client only.

The wan6 interface has to be set to request a /60 prefix for that to work. If it's set to automatic (the default) or some other value, Comcast will delegate a /64. This doesn't need to be changed to solve the problem described by the op.

1 Like