IPv6 Native vs NAT6 Issue on GL.iNet (STACK 4.8.4 / odhcpd)
Scenario
-
Router: GL.iNet (OpenWrt-based)
-
Connection: PPPoE
-
IPv6 fully enabled:
-
WAN IPv6

-
Prefix delegation
(/48 → /60 on LAN)
-
ipv6-prefix: 2a07:7e81:4829::/48
assigned LAN: /60
Problem
In Native IPv6 mode
-
LAN clients:
-
sometimes receive IPv6
-
but lose connectivity intermittently
-
-
Logs previously showed:
odhcpd: A default route is present but there is no public prefix on br-lan thus we don't announce a default route
This means:
odhcpd does NOT advertise a default IPv6 route to clients (GitHub)
In NAT6 mode
-
Everything works perfectly:
-
stable IPv6 connectivity
-
no drops
-
no routing issues
-
Technical Explanation
How Native IPv6 works (OpenWrt)
OpenWrt uses:
-
odhcp6c→ WAN DHCPv6 client -
odhcpd→ LAN DHCPv6 + Router Advertisement (RA) daemon (OneUptime)
Clients rely on RA (Router Advertisement) to:
-
learn the default gateway
-
build routing
What goes wrong
When this appears:
no public prefix on lan
odhcpd behavior:
-
sees a default route

-
but does NOT detect a valid LAN prefix

-
therefore:
it stops advertising the default route
Result:
-
clients may still have IPv6 addresses

-
but no valid route

→ IPv6 connectivity breaks intermittently
Confirmed behavior
This issue is known in OpenWrt:
without a valid prefix, odhcpd will not announce a default route (Forum OpenWrt)
Why NAT6 works
NAT6 behavior
-
No RA required
-
No prefix delegation needed on LAN
-
Router handles all routing internally
therefore:
-
clients don’t depend on odhcpd
-
no RA issues
-
no prefix validation needed
In short:
NAT6 bypasses odhcpd completely
Key Observation
-
ISP → working correctly

-
Prefix delegation → working

-
WAN IPv6 → working

So the issue is NOT ISP-related
Real problem:
Router Advertisement (odhcpd) inconsistency on LAN
Debug performed
-
ifstatus wan6→ valid prefix
-
ubus call dhcp ipv6leases→ leases present
-
curl -6→ IPv6 working
Core IPv6 stack is fine
Distribution to LAN is unstable
Question
Why, despite:
-
valid prefix delegation

-
odhcpd running

do LAN clients not consistently receive RA / default route?
Possible causes
-
odhcpd bug (RA / prefix handling)
-
timing issue with prefix delegation
-
LAN configuration (ra / dhcpv6 / ra_management)
-
PPPoE + IPv6 interaction
Goal
Achieve stable native IPv6 (without NAT6)
Final Summary
NAT6 works because it bypasses RA
Native fails because odhcpd does not reliably advertise the IPv6 default route
