I have a VPN (WireGuard right now, but the same behaviour manifested with OpenVPN) that provides me with an IPv6 address. I can confirm that it is working because pings (both from the android terminal with ping6
and to the android terminal from the other side of the VPN) work. This also confirms that the VPN is establishing the DNS server properly, as I am using an internal domain while pinging from Android.
However, the browser (both Chrome and Firefox) only work properly when the main connectivity has also IPv6 enabled. That means that if I am connected to a WiFi that provides IPv6 connectivity, then the VPN works properly. But if I am using mobile data (my ISP doesn't provide IPv6) or I am using a IPv6-less WiFi, then the browser doesn't work for IPv6-only URLs. The android terminal ping6
command keeps working in all scenarios, meaning that the VPN is properly connected and working, but it's as if the browser/android machinery refuses to use AAAA records and the browser gives me an error.
Is that a known issue? I am using Android 11. Can I change something or force Android to believe that there is an IPv6 connection established? Is the browser's fault? Is the DNS resolver fault?
Edit: Forgot to mention: if I manually enter the IPv6 into the browser, it loads the web properly. So it seems that there is a DNS issue there, but the DNS is properly set up. So I assume that Android (or both browsers) are misjudging when to use AAAA records, hence the title of this question.