As every tech news website has been shouting at you for weeks now, IPv4 is coming to the last days of its life, and the world needs to transition to IPv6 to continue to use the internet. But is this true? What’s really going on? Why has IPv4 ‘run out’? And what can you do, right now, to get access to the IPv6 internet? As part of our series on IPv6, we’re going to tackle these questions, and more, to help explain what’s happening, and how you can avoid being left behind.
What is really going on?
IPv4 addresses are allocated, in the first instance, by the ‘Internet Assigned Numbers Authority’ (IANA). The IANA allocates blocks to Regional Internet Registries (RIRs), of which there are five, located around the world: AfriNIC for Africa, ARIN for the US, Canada and parts of the Caribbean, APNIC for Asia, Australia, New Zealand, and neighbouring countries, LACNIC for Latin America and parts of the Caribbean, and RIPE, which oversees Europe, the Middle East, and Central Asia.
The blocks allocated to the RIRs come from the first octet of an IP address, e.g. 209.x.x.x is assigned to ARIN, and it is then ARIN’s responsibility to maintain and subdivide that block to ISPs and companies who request an address range from them, according to whatever policies they decide to establish.
What all the fuss is about is the fact that the IANA is running out of blocks to allocate to the RIRs. Out of 255 possible blocks, at the time of writing, only 7 remain unallocated. It is expected that these will be assigned by the end of the week. Whilst it will be a few more days (or possibly even weeks) before the RIRs fully assign the space to customers, it’s an important wakeup call to people running large networks, that the need to roll out IPv6 is getting more and more important.
RIRs, such as ARIN, have already begun tightening up restrictions surrounding requirements from ISPs who request new address ranges from them. For example, ISPs must be using 80% of the space already assigned to them before being permitted a further allocation. There is also a requirement to begin using the space requested within three months. This is to prevent ISPs from hoarding address space, and possibly auctioning it off to the highest bidder once there are no more ranges left to allocate.
IPv6 gets around this limitation by using a 128-bit integer to represent the address, which makes the number four times as long, and gives many more possible addresses. In fact, the limit with IPv6 is 340282366920938463463374607431768211455 addresses (that's 340 undecillion, 282 decillion, 366 nonillion, 920 octillion, 938 septillion, 463 sextillion, 463 quintillion, 374 quadrillion, 607 trillion, 431 billion, 768 million, 211 thousand and 455). The main difference users will see is that addresses are no longer a string of four numbers, separated by dots, instead, they are composed of hexadecimal values, separated by colons, for example: 2001:0db8:85a3:0000:0000:8a2e:0370:7334. A further part of the IPv6 spec allows for removal of leading 0's, and abbreviations of multiple series' of 0's, so the above address would be expressed as 2001:db8:85a3::8a2e:370:7334, with the double colon indicating where 0's have been removed. This can be used once in an address, to avoid confusion.
Why has IPv4 run out?
IPv4 addresses are, essentially, a 32 bit integer. For example, Neowin has a web server at 184.108.40.206, but expressed as an integer, this is 3514580951 (try loading http://3514580951 and you’ll see a reply from our servers). Because of this, the maximum number of possible IP addresses, is limited to 232-1, aka 4,294,967,295 addresses.
Not all of these addresses are in use on the internet, but there are various reasons why they cannot be used. For example, certain ranges like 10.x.x.x and 192.168.x.x are reserved for use on private networks (most of you will have seen one of these if you have a NAT router at home). There are other ranges reserved for other purposes, but there are too many to list fully here.
Another limitation is caused by the way that routing works on the Internet. In order to keep routing tables (essentially a map that tells routers where to send packets, based on the destination) to a manageable size, the concept of subnets was created. Subnets enable address ranges to be grouped together, with a single destination. Neowin exists within the 209.124.63.x subnet, and any traffic directed to an address within that subnet is sent to a router at Stardock’s datacenter, which then passes it to the relevant server. The downside to this is while the subnet allows for 254 machines to be active within it, we don’t actually make use of that ability, and the same is true for a large number of networks on the internet. Most are used very sparsely, but due to routing protocols, there is no way to allow machines on other networks to ‘fill the gaps’.
Is there anything else ISPs can do to delay the switch?
One thing that is starting to be seen, particularly with mobile operators, is implementation of carrier-grade NAT. This, essentially, is the same as the technology built into your home router, but on a far larger scale. This technology doesn't scale very well though, and doesn't allow for public access to ports on the consumer device, which will be off-putting to many. For these reasons, it's unlikely that CGN will be deployed on home-to-ISP connections, and is likely to remain a technology only implemented in the mobile arena where the number of simultaneous connections is low, and there is no need for publicly accessible ports.
How can I access the IPv6 Internet?
Here, you have a number of options, as transition technologies have been under development for quite some time now. But firstly, it's probably worth giving your ISP a call, and finding out when they plan to roll out IPv6 to consumers, and if there is a trial you could sign up for. If you're lucky, they may have already launched their IPv6 service.
If you're out of luck there, then you have a number of options at your disposal. Teredo is an IPv6 tunneling technology that has been built into Windows since XP SP2, with clients also available for Mac and Linux. Teredo encapsulates IPv6 traffic inside UDP packets, which allows them to transition through most NAT firewalls with no additional configuration. The technology uses a set of servers to direct your traffic to a tunnel relay near to your destination, and relays, which have both IPv4 and IPv6 technology, to forward your traffic to IPv6 hosts. The address prefix of 2001::/32 has been reserved for Teredo communications.
Possibly the easiest option to setup though, is connectivity via a tunnel broker, such as the one provided by he.net. These can be configured on Windows with just four commands, and you're ready to go. Again, like Teredo, this technology relies on passing your communications via a host that is enabled for both IPv4 and IPv6. However, this method may not be supported by all routers.
So, is it worth setting up an IPv6 connection?
The answer for most people will simply be no. IPv4 isn't going to be phased out any time soon, and as the majority of the world doesn't yet have IPv6 access, websites will ensure that they continue to provide IPv4 connectivity to customers through one method or another. If you wish to score geek points with your friends, then by all means, setup a tunnel and enjoy, but the average consumer will run into no issues waiting for their ISP to roll out native IPv6 connectivity.
Image Credit: ThinkBroadband