This week, the Number Resource Organisation (NRO), the official representative of the five Regional Internet Registries and who oversees the allocation of IP addresses, announced that less than 10 percent of IPv4 addresses remain unallocated. Although this should be a concern for all who use the Internet, the numbers (and letters) are often glossed over, with everyone assuming that it's someone else's responsibility to fix it. But if it's not addressed in the near future, the ramifications could be huge.
What are IPv4 addresses?
First, some background. Every computer or mobile device that can talk to the Internet needs a globally unique address. This allows the device to send network data out to a remote host (say, www.infoq.com
) and get the right data back. To make things easier for humans, the Domain Name Service (DNS) translates familiar names into such IPv4 addresses. For example, when you browse to this website, DNS translates it to the globally unique 63.246.7.184
; and whenever your browser sends a request, it leaves a 'return to' address like 216.239.59.99
.
These four numerals are known as the IPv4 address, or sometimes just IP address. Given that each one can be between 0 and 255, there's about 4.3 billion possible IP addresses. Clearly, there's an upper limit to the number of devices – and in comparison, there's 6.7 billion people on the planet. Even in an ideally distributed world, that still means that there's on average one IP address for two people; and yet, in the West, there are many devices which may be networked (not to mention the number of mobile phones, which already is estimated to be over 4 billion).
Not all IP addresses are available for global routing. Those between with 10.0.0.0
- 10.255.255.255
are defined to be a privately routable subset, along with 172.16.0.0
- 172.31.255.255
and 192.168.0.0
- 192.168.255.255
. The latter range may be familiar to those using automatically assigned addresses in local networks. Furthermore, some IP addresses are defined to be multicast, so 224.x.x.x
, 232.0.0.x
and 233.0.0.x
are defined to be multicast address spaces.
The net effect of all this is that there's less than 4 billion IPv4 addresses to go around. The NRO looks after the distribution of these addresses to the local Regional Internet Registries (RIRs), who in turn then distribute those IP addresses to ISPs that connect you to the Internet.
The news is essentially that of the address space, less than 10% remain in the global unallocated pool, or around 400 million addresses. That might still seem a lot, but they're a non-renewable resource, and once they're gone, they're gone. OK, so we might be able to recycle a few blocks but the effort (both legal and practical) would be immense, and only postpone the inevitable by a matter of months. Counters exist which estimate the final exhaustion date, but is expected to be in the 2012-2013 timeframe. After the central registry runs out, the regional registries will have enough to keep going for maybe another year (depending on demand) but that of course assumes a business-as-usual attitude, rather than a gold-rush stampede to get the last remaining IPv4 addresses.
What happens when IPv4 addresses run out?
The simple answer is: not a lot. The Internet will continue to function mostly as it does before; you'll still be able to browse new sites, and so on. However, what will happen is that no new businesses can start up on the net, at least, without multi-hosting on an existing IP address. In short, it could be a slowdown in the Internet economy that has ballooned over the last decade.
There are those who claim that NAT will solve the shortage at the client side (which hides a set of non-routable addresses behind a signle globally routable IP address) - but even this has limits. Assuming each computer is actively connecting to around 25 outgoing ports simultaneously (not a difficult number to achieve with a few web pages open, the odd mail client and social networking application), combined with the fact that most NAT-level routers can only handle mappings for up to 50,000 ports at a time, means that at best, a globally routable IPv4 address can only field another 50k items.
Furthermore, NAT can't be used for servers or other websites which need to be connected; they can only be applied on the client connecting in side. Regardless of whether this solves the problem of an ever growing list of clients, once the IPv4 addresses run out there can be no new servers.
Enter IPv6
IPv6 was designed to solve the problem of IPv4 address exhaustion, as well as adding a number of additional features. Where the IPv4 address is made up of 32 bits, IPv6 addresses are made up of 128 bits; to put it into perspective, there are more than a million million IPv6 addresses for every square millimetre of the Earth's surface. Furthermore, this means that we can add routing information into the address space without negatively affecting the size of the IPv6 addresses available for end devices; in addition, it allows local networks to automatically assign addresses from a subnet using the device's MAC address.
The transition won't be easy. IPv6 devices can talk to IPv6 devices, and IPv4 devices can talk to IPv4 devices. Fortunately, all major recent operating systems and hardware support IPv6 natively and will automatically enable it when added to an IPv6-enabled network. The easiest transition is therefore to provide dual-hosting which will allow a computer to speak either in order to reach its destination.
However, there may be services which are only available over IPv4. For example, Google is only available via IPv4 at www.google.com; they have a different website at ipv6.google.com which is visible over IPv6 networks only. (If you can browse to the IPv6 variant, then your computer is already connected to IPv6.)
To facilitate the handover, there are a couple of mechanisms to map the IPv4 address space to a subset of the IPv6 address space. 6to4 performs automatic mapping between a host on both IPv4 and IPv6 networks, and can be used to allow a family of IPv6 machines to communicate over one IPv4 address. (This is similar to the way NAT operates, except that the other side of the bridge is an IPv6 address instead of an IPv4 non-globally-routable address.) This is the approach taken by Apple, and their Internet-facing routers (and indeed, operating systems) will automatically detect an appropriate 6to4 gateway if the ISP supports it. Google's presentation to RIPE in 2008 showed that Mac OS X leads in IPv6 adoption (primarily because of having to do zero client setup for it to take effect). Apple's Airport Extreme also automatically configures an IPv6 address – and then distributes a subnet over the local network – which means that most users may not even know that they have an IPv6 address already.
Windows systems generally prefer to use Teredo tunneling, and with Vista automatically enabling IPv6 if it is available, it means that we have a way of moving forwards during the transition phase to IPv6.
Note that both 6to4 and Teredo are intended to be transitional; that is, they are not going to last much past a decade (after which we'll be on IPv6 natively in any case). At that point, the IPv4 Internet can be retired, although the final phasing-out may take some time.
Current state of play
You'd think that with the end of the IPv4 space almost upon us, that the people looking after the Internet connections would be on the case. However, the vast majority of ISPs don't know about IPv6; nor do many of the large websites and key infrastructure services (like www.direct.gov.uk). These will become generally inaccessible in an IPv6 world without a 6to4 client performing the transformation, but there's no sense of urgency. Even large telecos – like BT's 21st Century Network – are still firmly stuck in the 20th Century, as they're looking at rolling out an IPv4 upgrade to Britain's electronic brain.
ISPs will be the first place this hits; and ideally, they should be at the forefront of the rollout. Yet there's less than 1% of the global users on IPv6 at the moment; although some countries like France have a greater proportion thanks to central IPv6 tunnel providers.
In 2008, China showed that it could host the Olympic games using IPv6, and with the increasing number of Chinese users, the national strategy to roll out IPv6 is well underway. There's a list of IPv6 deployments by country; a number of early movers are aiming to get ahead with IPv6 networking.
Summary
IPv4 addresses are a finite and nearly depleted resource. Whether interim solutions like reclaiming 'dark' IP space or recycling unused IP addresses happens, this will only delay the inevitable by a matter of months. IPv6 has been shown to work in large-scale deployments, and are supported by all operating systems, so the completion of the roll-out to IPv6 is now in the hands of the ISPs, who incidentally have the most to gain/lose through this transition. Yet reports still suggest that a 1% penetration rate of IPv6 hosts, which means there's a long way to go.