I have a WAN interface with a /48 routed prefix (HE tunnelbroker) and a LAN interface which is supposed to delegate /64 prefixes to connected devices.
This has worked fine so far but all of a sudden it's stopped working. Specifically (on the device connected via LAN):
ping6 2606:4700:4700::1111
ping6: UDP connect: No route to host
...
ping6 2606:4700:4700::1111%en5
PING6(56=40+8+8 bytes) [redacted: my public IP] --> 2606:4700:4700::1111
16 bytes from 2606:4700:4700::1111, icmp_seq=1 hlim=59 time=2.703 ms
i.e. I can access the Internet but my device does not create the correct route for doing so.
This is confirmed with netstat -rn
which shows a route created as follows:
Internet6:
Destination Gateway Flags Netif Expire
default fe80::[redacted, link-local IP of router's LAN interface]%en5 UGcIg en5
I have IPv6 connectivity from within the router, and as the ping shows, I also have IPv6 connectivity from my device except it doesn't have the correct route created.
Any ideas?
Edit: after reading the relevant RFC it seems that advertising a link-local address is indeed the correct behavior. Unfortunately, this leaves me even more confused as to why this isn't working.