[solved?] Nightly disconnection clears IPV6 address on Android phone

My ISP mandates a daily disconnection, the only choice I have is the time of day so at 0400 UTC I run "/sbin/ifup wan". I have hotplug extras to restart openvpn once the dust has settled, otherwise the IPV6 tunnel would get stuck (vpn is configured to both listen on and provide IPV6). So far, so good, running stable for a few weeks now and the test sites report all clear.

Recently I noticed one odd bit: my Android phone would have no IPV6 address in the morning but toggling the wifi would bring it back. Same thing of course coming home. Now, I know Android doesn't do DHCPv6 so I am kind of puzzled.

I cannot compare with the old ISP since I did not have a forced disconnection and, additionally, the LTE interface on the phone did not have native IPV6 (which is probably unrelated but still a confounding factor); the other Android device on my lan (a mibox) seems unaffected, as well as the other computers.

Has anyone seen such weird behaviour? Any tips?

You will need to determine what actually happens first.

  • does the router still have IPv6 connectivity
  • do wired systems retain IPv6 connectivity
  • do non-iOS (and ideally non-MacOS) systems retain IPv6 connectivity

When I was still using ADSL with daily disconnects and a HE IPv6 tunnel, I had to tear down IPv6 and IPv4 in order, because otherwise the HE tunnel endpoint thought the old session from the previous IP was still in use, with netifd trying to reconnect too often and it hitting a DoS protection. This was my solution back then:

0 5 * * * [ $(ifstatus wan | jsonfilter -e '@.uptime') -lt 3650 ] || (ubus call network.interface.wan6 down;ubus call network.interface.wan down;sleep 1;ubus call network.interface.wan up;sleep 15;ubus call network.interface.wan6 up)
1 Like

The other systems in the network are:

  • a NAS which enters standby in the morning and wakes up in the evening: not a good test, during wakeup the network is surely reinizialized
  • a Samknows Whitebox: if I can trust the web interface, it confirms the static lease for DHCPv6 is still there and it has still connectivity (reasoning: the IPV6 performance through the tunnel is lower than with plain IPV4, so the measurements tell me it is still on IPV6)
  • a Mibox: Android, this has its own "bogus" (non DHCPv6) address and it definitely still has connectivity, since otherwise a lot of apps go through a timeout after attempting IPV6 first and falling back
  • a Raspi running an ADS-B monitoring service: this one I can actually test, "ping -6 google.com" responds just fine and the device has been up from the time I got the DSL line installed
  • the router itself: same here, ping6 works

So, all in all I think the script actually works fine.

It seems just the phone is affected... and in a fascinatingly weird way :smiley:

I'm adding a "ifup" for both internal networks, curious to see if it makes any difference
EDIT: yup, fixed. Ugly but effective.

This topic was automatically closed 10 days after the last reply. New replies are no longer allowed.