IPv6 is finally rolling out onto the internet. We’ve been waiting for this to happen for nearly ten years now. On 6 June 2012 we celebrated World IPv6 Day. This event marked a commitment by many major ISPs, home networking equipment manufacturers, and web companies around the world to permanently enable IPv6 for their products and services. In the very long-term, this will revolutionise the internet.
The number of unique addresses available under IPv6 is difficult to express in non-mathematical terms. Wikipedia describes the number as 2^52 addresses for every observable star in the known universe. One of the nicest descriptions I have seen is that there are enough IPv6 addresses for every atom on the surface of the earth, and enough left over for another 100+ earth-sized planets. The idea that we could ever run out of IPv6 addresses is beyond imagining. So how did we get to this?
For a long time now I have seen endless articles stating that we are rapidly running out of IPv4 addresses. Most of these articles rave on about how every device that connects to the internet needs a unique IP address. That’s not exactly true, and if it was the case, we would have run out of addresses years ago. The truth is a lot more subtle than that. In most businesses, and even on home networks, we take advantage of a technologies like Network Address Translation (NAT), IP forwarding and port forwarding in order to connect to the internet. Most of these devices use a private address range and rely on one or two internet connected devices (routers or gateways) to handle internet connectivity. That means that a single public IP address can be used to allow hundreds of people to connect to the internet at once. IPv4 has a total of 4 294 967 296 unique addresses.
Many of those addresses have restrictions on their usage, but it’s still a lot of addresses. In 1980, ignoring restricted addresses, there was an IP address available for every single person on the planet. Based on current global population growth, by 2050 there will be one IP address to be shared between every two people on the planet. Actually, taking into account restricted address ranges, we’ve probably already crossed that boundary. In reality, less than one-third of the world’s population is actually internet connected. Most of those connections take advantage of NAT to share IP addresses. With these things in mind, the situation isn’t quite as desperate as the media likes to make out.
Still, as mobile devices become more prevalent and virtualization allows us to run many virtual machines on a single hardware device, it is becoming clear that the shortage of IPv4 addresses is eventually going to become a problem. Right back in the 1990s, the IETF started working on defining the new standard that would allow us to replace IPv4 with something that could really scale to accommodate any future requirements. For most people, this should seem like a no-brainer. Just add some more numbers.
Actually, it’s not that simple. The whole IP protocol is defined around the 32-bit addressing that we use for IPv4. Adding any more numbers changes the shape of those packets considerably, which means that there all sorts of implications for devices that are meant to make sense of those packets and deliver them to their destination. Furthermore, we need to take into account a whole migration strategy that will allow people to gradually move over to the new addressing scheme. We can’t end up with an internet where systems using IPv6 are unable to communicate with systems using IPv4.
Much of the work that has gone into defining IPv6 has attempted to take these problems into account, leading to vast improvements in the IP landscape above and beyond the larger address space problem. For instance, Neighbor Discovery Protocol will help devices to auto configure themselves within a network space, so that they are also aware of devices that are currently unreachable. That will help to improve efficiency in routing. IPSec, the ground of many VPNs, was originally designed to work for IPv6, but was ported back to IPv4 so that we could take advantage of it immediately. Privacy extensions help to limit IP address tracking, so that it is more difficult to pin internet activity to a single IP address. IPv6 has also brought changes to the protocol to allow for more extensibility, which means that its capable of allowing future services to be added to the protocol without requiring a whole new redesign to the protocol. This time, the IETF is hoping its got its bases covered.
Okay, so some of this might have taken a while to put together, but its been nearly 20 years since the IETF started murmuring about the shortcomings of IPv4. So why has it taken so long? Well the first thing is simply that we found some neat ways to get around the IP address shortage. Remember how I mentioned that we can use NAT and IP forwarding to share a public IP address. Since a whole private network can be given access to the internet through a gateway router performing NAT, the urgency of the issue seemed to die down a bit. Hardware manufacturers focussed more on how to build these workaround solutions into their products rather than pushing toward full implementation of IPv6 within routing devices.
The biggest problem with rolling this out is that there has to be some form of translation between the two versions of the protocol, so that we don’t end up with a split internet. Its taken a long time to get to a point where we are confident that sites can switch over to IPv6 without disappearing off the Net. Last year, many of the major online companies such as Google, Yahoo and Microsoft briefly switched over to prove that it was possible for the two protocols to run side-by-side with translation taking place between protocols. IPv4 users will experience a slight reduction in speed as a result, but everything works as expected. Since then, various companies and service providers have been trying to switch over. Romania leads the way, with a 6.5% adoption rate, followed by France.
The World IPv6 Day will have helped to change that dynamic to increase adoption across the globe. The process will be slow, and phasing out IPv4 will take many years. We’re also bound to come up against a whole new range of security and administration problems that we aren’t well-equipped to handle. But ultimately IPv6 will change the internet for the better.