14-06-2018 12:44 PM
So I recently found I couldn't access any of my self-hosted services on my mobile phone when on the EE 4g network. I thought at first it was my problem, but they worked fine on wifi.
it turns out the EE network is no longer assigning an IPv4 address to my mobile device, only and IPv6. Now they seem to have done some magic to allow you to access IPv4 services, but there is a case where it doesn't work
If the website is only IPv4 and the nameservers for the domain are only IPv4 you can't access them on EE's network. As soon as I added IPv6 to one of my DNS servers, I could suddenly access IPv4 services on my server (which still does not have an IPv6 address).
Obviously, in this case, I've solved the problem, but given IPv6's low uptake even now, how many IPv4 only services are we now unable to use?
14-06-2018 03:56 PM
16-12-2018 12:22 AM - edited 16-12-2018 12:48 AM
I had this issue too.. but worked out how it all works and what went wrong 🙂
Basically EE are switching off IPv4 for customers that have devices which are IPv6 compatible. When you request an IP address for a website and are using the EE DNS server a psudo-IPv6 address gets added for those that run on IPv4 only. This is known as DNS64 (DNS 6-to-4). If you don't use EE's DNS server this won't happen.
The EE network will recognise the beginning bytes and will convert the IPv6 address back into an IPv4 message within the network. This is known as NAT64 (NAT 6-to-4)
If you try to connect to an IPv4 address directly (without using a hostname with EE DNS) and you are using Android, your phone will clerly automatically append the pseudo-IPv6 details and route it over IPv6 instead.
If you are tethering then due to a limitation on Android tethering (it blindly offers an IPv6 address) then your device may try to reach the IPv4 address directly and so it will fail (there's no route from the private IPv4 addres the tether offers) and you may find pinging the address gives you Network Unreachable errors.
So how does one connect to the IPv4 address while tethering? Append the psuedo IPv6 characters (64:ff9b::) to the beginning of your IPv4 address (you need to represent the remaining IPv4 address in hex, search Google for IPv4 to Hex) and connect over IPv6.
So for example news.bbc.co.uk resolves to IPv4 address : 220.127.116.11.. which if we want to use the EE IPv6 to IPv4 service we convert that to hex D43AF438 and then adding the prefix get 64:ff9b::d43a:f438.. so connecting to http://64:ff9b::d43a:f438 gets you the IPv4 BBC News but via the IPv6 network 🙂
If you're using EE's DNS server then this automatically happens for hostnames (news.bbc.co.uk), only time you may face an issue is connecting to a specific IPv4 address while tethering.
Hope this is useful
by max1486 Tuesday