Friday, April 2, 2010

The IPv6 Debacle...

Non-geeks, look aside.  This post can only cause you pain.

The Internet that most people know runs on the Internet Protocol version 4 (IPv4 for short).  Decades ago the Internet gurus realized that the 32-bit addresses in IPv4 meant that we'd run out of IP addresses relatively quickly (there are only 2^32, or about 4 billion, IP addresses available in IPv4).  IPv4 has some other problems as well, but the lack of address space was the biggie.

So along came Internet Protocol version 6 (IPv6 for short).  IPv6 solved the address space problem by moving to 128 bit addresses (enough to give every molecule in the universe it's own IP address).  It introduces many other changes as well, but the address space expansion is the biggie. 

But there's one little niggling problem: nearly all the software written for every computer is incompatible with IPv6.  Almost everything will have to be revised or rewritten, and the fixes are not trivial.  Oops.

Around the same time (mid 1990s) that the IPv6 forces were trying to convince the whole world to rewrite all their software, technologies called Network Address Translation and Port Address Translation (NAT and PAT for short) started to become popular.  Very popular.  These technologies let enterprises (and homeowners) have multiple computers or other devices on their local area networks using “private” IP addresses. 

These are a bit like the street addresses we see in cities: Boston has a 100 Broadway, and so does New York and a bazillion other cities and towns.  But this doesn't cause confusion, because we know that 100 Broadway in Boston is in Boston, not New York.  Similarly I can have a computer with an IP address of 10.0.0.1 in my home (my “town”), and you can have one with the same IP address in your home.  NAT and PAT are what make this possible.

So with NAT and PAT, much of the driving force behind moving to IPv6 is removed.  We no longer need that gigantic address space.  Meanwhile, software writers are still creating new software packages that are incompatible with IPv6.  In fact, very few programmers have ever created an IPv6-compliant program – they don't even know how!  So IPv6 has become a “nice to have” instead of a “must have” – and since it's such a costly thing to move to IPv6, that means we'll likely never do it.

Here's a much more technical dive into the IPv4 vs. IPv6 struggle...

1 comment:

  1. Unfortunately IPv6 isn't enough to give every molecule in EVERY universe its own address space. And with scientists theorizing as many as 13 universes...I lose track... well, we should prepare. :)

    The company I work at has a process requirement to test with IPv6.

    But... we don't have control or physical access to the test lab machines and they frown on "Shadow IT". So each time I end up requesting a process waiver and explain that while yes, we can turn on IPv6 in the OS, I cannot introduce an IPv6 router onto the network between them without getting tracked down and possibly detained indefinitely in a secret prison by the Shadow IT police.

    ReplyDelete