Friday was the start of a timer, a timer that will countdown to an event that changes our lives forever. We could have stopped it, I even warned about it in one of my first posts but no one listened. They never do. On friday, the last blocks of IPv4 addresses were given out to the Regional Internet Registries (RIRs) that further dole out addresses to end consumers and ISPs. We are done, the well is dry, after those last addresses are used, no new devices can connect to the Internet. IPv4, for the uninitiated, is the basic protocol of the Internet, the binary code that is assigned to each and every internet connected device. It’s like your computer’s phone number. While there are numerous technologies acting as intermediates in transmission of packets (subnets, VPNs, NAT – which we’ll come back to soon) in the end you need a sending IP address and a receiver address. If you don’t have that, you don’t have a connection and you don’t have communication and you don’t have the internet. Hence the problem.
IPv4 is a 32-bit address system, which means it theoretically accommodates ~4.3 billion addresses. In the real world, there are about 3.7 billion and they’re almost all gone. Internet traffic has exploded in the past few years, especially with the smartphone revolution. The Asia-Pacific RIR has been burning through around 10 million addresses a month in 2010, according to ArsTechnica and they just got their last block. The other RIRs for Africa, North America, Europe and South America have a little more time with less demand. But there are now less than 100 million addresses left, and they will most definitely be eaten up in 2011. This is the year the internet will reach its limits and we only have two solutions: NAT or IPv6.
NAT is network access translation, and is a technology that allows multiple devices to share a single IP address. You see this often with public networks at your local Starbucks et al. While this works, it adds major complexity to communication, since your router is now going to have to do some major negotiation to figure out where to send data. Usually a NAT system generates a “master address” from the public IP block and then dishes out private addresses (a special block of addresses meant for closed networks) to all the clients accessing it. These days, your router already does this in some capacity, either with private addresses or subnet masks etc, but it isn’t mandatory. In the end your computer still (in most cases) has its own IP address. But that’s just not gonna cut it much longer. NAT is a stop-gap solution at best, it allows for more clients to join the internet but adds complexity and reduces performance in non-trivial ways. It also makes some protocols unreliable.
Picture the internet as a city with traffic. As more and more people have to go to work, they buy cars (addresses) and add to congestion on the roads. Eventually, congestion got so bad that people started to carpool. But demand continues to increase to the point where there are too many carpools, so now they switch to minivans (NAT) in order to reduce the vehicles (addresses) being used by singular people. Now, carpools are becoming so important that they go to multiple destinations, not just the same “office” for similar people (information packets). Right now, we are entering the “minivan stage” and it won’t be long until those “minivans” have to run all over the city because they are carrying “people” to completely different end destinations. And no, there is no HOV lane.
Despite New Urbanism advocates who love the concept of carpools, that model doesn’t work on the internet. Things work best if there is an end-to-end connection between the sender and receiver. There’s already tons of translation, masking, tunneling, and security protocols that packets go through to get to their destination, so adding the NAT layer only increases complexity even further. The silver bullet to this is IPv6, the 128-bit technology meant to replace IPv4…. 15 years ago. Being 128-bit means that there are virtually unlimited amounts of addresses to use. Every person on earth could have as many IPv6 addresses as the entire IPv4 pool each, and there would still be plenty left over. IPv6, in the concept of our “city” model would be if the everyone switched to flying cars and the entire city was 3 miles high – nearly unlimited flight space.
However, as of today, IPv6 is implemented by about .5% of the internet. Transition has been almost non-existent because 1) ISPs are notoriously slow to start implementing an IPv6 leasing system and 2) most home users are not configured to support it. As such, a transition phase will require a lot of translation between IPv6 and IPv4 traffic. But is has to happen.
We have a year guys, a year at most to get this right. After that…. things are gonna get really rough out there on the seas of the internet.