We exhausted IPv4 addresses more than a decade back, yet still only just more than a third of the internet users can access IPv6 sites. The rest are still on a IPv4-only network.

There is no sense of urgency in the market to transition to IPv6 as it provides no advtanges. It’s same as IPv4 but mitigates exhaustion of addresses. It doesn’t provide any other benefits, cost savings, etc. so there is little motivation to switch.

The main advantage of IPv6 is that it allows every device to have a unique address. However, since there is little adoption still, it makes us question whether having a unique address is even worth it or not?

A Little Bit of History

It was clear in 1990 that without any corrective measures, the B Pool of IPv4 addresses will be depleted by 1994. Amidst other measures adopted by the IETF, there was the adoption of going away with class based system and using variable length address prefixes instead. These prefixes would be allocated and then suballocated. This relieved some pressure, along with the increasing popularity of NATs by ISPs.

These measures pushed a two-year crisis to a decade crisis. It was clear at that time that this wasn’t a sustainable solution, so they wanted to fix IPv4. The IETF finally adopted IPv6 which was IPv4 with 128-bit address field, with some other changes. Notably, ARP was replaced with multicast.

Transition

It was expected that similar to IPv4, the new protocol would just rocket itself to adoption. There was little thought given to the transition, more focus was on the more immediate problem of internet scaling so quickly. IPv6 became sidelined in the 1995-2005 timeframe.

In mid 2000s, the release of the iPhone pushed the internet scale much further. However, IPv6 was not ready at that time, dual stack was not an option on phones. So, we just increased our consumption of IPv4 addresses and deployed more NATs

Then the question is who will start with the adoption of IPv6? It was the operating systems that led the charge with Linux, Windows and MacOS having full dual stack support. This led to an issue that now there are islands of IPv6 but the sea is just IPv4. The islands need to use some tunelling through IPv4 to use IPv6 to communicate. The tunnelling protocol 6to4 failed due to firewall issue, it was slow, etc.

Movement at last

In 2011, a couple of things happened: IANA ran out of the central IPv4 address pool, and a Regional Internet Registry (RIR) called Asia-Pacific Network Information Center (APNIC) ran out of its central address pool. This made ISPs look into deploying IPv6.

Around the same time, the mobile industry started moving from 3G to 4G. This changed from tunelling of packet inside the network to having an all-IP network. This allowed mobile carriers to easily support dual stack networking.

From 2012 to 2018, IPv6 adoption increased from 0.5% to 17.4%. Through this, IPv6 wasn’t predominantly tunneled through IPv4 — many ISPs supported IPv6 natively.

The problem was that this transition was late. It was supposed to happen before IPv4 was exhausted but it happened later. Now, there are a lot of hosts and networks that only support IPv4. What’s the transition plan now?

NATs and Address Scarcity Pressures

Since the transition to IPv6 didn’t happen and we ran out of IPv4 addresses, we had to resort to NATs. The IETF strongly resisted standardising NATs as they didn’t want to provide approval to them. NATs go against being able to have coherent end-to-end communication, by being active network devices.

It resulted in widely varying implementations of NATs which made the behaviours wildly different for anything except an end-to-end TCP conversation. You need to figure out the NATs in the path for things like UDP.

Deploying NATs was easier and could be done by an ISP easily without depending on others. While IPv6 deployment relied on having it deployed in the entire network, NATs allowed the internet to scale.

Also at that time TLS was getting wide adoption. It has a Server Name Indication (SNI) extension which allows multiple domains to be served by a single server at a single IP address. DNS resolves domain name to IP address and TLS performs authentication of the domain name.

TLS and NAT combined relieved pressure off IPv4 address exhaustion problem.

Increasing IPv6 adoption also helped relieve the pressure. Most applications support the Happy Eyeballs protocol where they prefer IPv6 over IPv4 if both protocols are available.

How much longer?

In the US, IPv6 usage has remained almost the same from 2019-2024. Why is that? Following is a theory of the author.

The internet market has shifted from networks being the main money maker to the apps making money now. With CDNs, the content is being pushed closer and closer to the users. Nobody really cares about having global end-to-end unique addressing. DNS returns the address of the closest CDN server — In a way, it is doing name-based routing! So, there is a shift to a sort of name based routing and combined with TLS & NAT, there is little incentive to move to IPv6.