I noticed that if I restart my cable modem all the devices stops using IPv6 until I reboot all the client interfaces. I am requesting a /56 and everything is working great until I reboot the modem, router stays on. I have Debian servers, AP using IPv6 and all stops working until I restart their interfaces. What is the reason behind this?
Does the cable company assign you a different prefix when it reconnects?
No, same prefix
Maybe in the future someone who is an IPv6 expert can figure out why the downstream devices (AP) and clients loose IPv6 connectivity after a modem reboot, maybe RA service stops working.
I created a bash script to solve the problem of IPv6 stop working. On my access point I created lan6 interface to request from upstream router and a br-guest for guest wifi. If IPv6 is not detected in br-guest then lan6 interface is restarted.
#!/bin/sh
IPv6Connectivity=$(/sbin/ip -6 addr show dev br-guest | grep inet6 | awk -F '[ \t]+|/' '{print $3}' | grep '^2')
if [[ -z "$IPv6Connectivity" ]]; then
logger "ALERT: Guest IPv6 connectivity lost, restarting interface"
ifdown lan6 && ifup lan6
fi
exit 0
Chmod the script
chmod +x /root/IPv6Connectivity.sh
Cron Job every 3 hours.
0 */3 * * * /bin/sh /root/IPv6Connectivity.sh
This is a private fix, hopefully someone can figure out why SLAAC stops working after upstream router reboot and find a permanent fix.