FULL AI ANALYSIS

Clients receive IPv6 addresses but no default route after enabling DHCPv6-only mode on OpenWrt router

Generated Oct 14, 2026, 9:39:02 AM

Analysis summary

Clients acquiring addresses but lacking a default route typically indicates Router Advertisements not advertising a route (R bit) or RA packets being filtered, dropped, or bound to the wrong socket. Root causes include misconfigured or competing RA/odhcpd/radvd processes, incorrect socket binding after interface/file descriptor limits causing RA to fail intermittently, firewall blocking ICMPv6 router advertisements, or kernel forwarding/RA acceptance settings on clients. The observation of radvd bind failures points to a local daemon/socket problem or resource exhaustion. Fix requires checking the RA daemon configuration and ensuring RA is reliably sent and not filtered by the router firewall or host kernel.

Possible causes

RA daemon (odhcpd/radvd) failing to bind/send RAs reliably due to socket errors after configuration reload or file descriptor exhaustion on router, causing clients to lack default route.

80%

Router firewall or ip6tables rules are dropping ICMPv6 RA/RS packets (or NAT-like rules applied to ICMPv6), preventing clients from receiving default route information.

60%

Client-side kernel settings (accept_ra, forwarding) or network-manager settings disable accepting RA-derived default routes; some clients prefer DHCPv6 default-router options not used by current RA configuration.

40%

Upstream ISP PD configuration changed (short lifetimes or delegated prefix mismatch) so RAs advertise prefix but not global default route due to missing upstream default route information on router.

25%

Suggested fixes

1

Diagnostic step 1

On router, check running RA-related daemons: ps aux | grep -E 'odhcpd|radvd' and inspect dmesg/syslog for 'failed to bind' or EMFILE errors. Increase ulimit/file-descriptor limits if EMFILE shown, then restart odhcpd/radvd.

2

Diagnostic step 2

Capture RA packets on LAN (tcpdump -i br-lan -s 0 -vv icmp6) and confirm each RA contains the Router Lifetime > 0 and the 'router' flag; verify M/O flags and Prefix Information options are present and have non-zero valid/preferred lifetimes.

3

Diagnostic step 3

Temporarily set router firewall to permissive for IPv6 (ip6tables -P INPUT ACCEPT; ip6tables -F) and restart odhcpd/radvd to see if clients acquire default routes — if that fixes it, tighten rules to allow ICMPv6 types 133/134/135/136.

4

Diagnostic step 4

On representative clients, check 'sysctl net.ipv6.conf.all.accept_ra' and 'net.ipv6.conf.<iface>.accept_ra' (should be 1 for typical desktops). For NetworkManager-managed interfaces, confirm it isn't configured to ignore RA-derived routes.

5

Diagnostic step 5

If the router logs show repeated socket errors or crashes, collect full logs and escalate to OpenWrt community or vendor for a possible bug/firmware update; consider upgrading to latest stable OpenWrt after testing in lab if persistent.