Mobile Networking · Mobile Data Under the Hood · Lesson 3 of 4
IPv6 on Phones
Why mobile networks moved to IPv6, and how phones still reach IPv4 sites.
Why Phones Went IPv6
An IPv4 address is 32 bits long, which allows about 4.3 billion addresses. There are now billions of phones, plus computers, TVs and everything else, so IPv4 ran short years ago. CGNAT is one patch. The long-term fix is IPv6.
An IPv6 address is 128 bits long, written as groups of hex digits separated by colons, like 2001:db8:4a::1c. That's enough addresses to give every device its own, with room to spare. Mobile networks were among the biggest early adopters, because they add millions of new devices and IPv4 addresses are scarce and expensive.
On cellular, the carrier gives each phone its own IPv6 prefix, a whole block of addresses. Your phone can then have a globally unique address with no NAT in the way.
A unique address could make tracking easier, so phones usually create temporary, randomized addresses inside that prefix and swap them regularly. The prefix still belongs to the carrier, though. As with IPv4, the carrier's records can link an address and a time back to a subscriber.
IPv6-Only and 464XLAT
Some major carriers go further and give phones only an IPv6 address. T-Mobile US is a well-known example. It moved its phones to IPv6-only around 2014. The catch is that plenty of websites and apps still only speak IPv4.
One fix runs entirely at the carrier. DNS64 makes up an IPv6 address for an IPv4-only site, and NAT64 translates the traffic to IPv4 on its way out. This works for apps that look up names, but apps that use IPv4 addresses directly break.
That's what 464XLAT solves, defined in RFC 6877. It has two parts.
- The CLAT runs on the phone. It turns an app's IPv4 packets into IPv6.
- The PLAT runs at the carrier. It turns them back into IPv4 for the internet.
Modern Android phones and iPhones have a CLAT built in. Apple has also required App Store apps to work on IPv6-only networks since June 2016.
For investigators, an IPv4 website sees the carrier's PLAT address, which many customers share, just like CGNAT.
Can you answer these?
- How many bits long is an IPv6 address?
- In 464XLAT, which part runs on the phone itself?
Answer them in the app to earn 70 XP (Pro).
Answer in the app