Page 4 of 4
In principle NAT might have saved us from running out of externally routable addresses. It most certainly has prolonged the life of the current Internet standard IPv4 by allowing the reuse of addresses many times over but... the modern Internet needs more addresses.
IPv6 solves the problem by simply increasing the number of bits used for the source and destination address. IPv4 uses 32 bit addresses where IPv6 used 128 bits. This means that IPv6 can provide more then 10^28 addresses for every human on the planet.
Once the IPv4 addresses have all been allocated it is likely that only IPv6 addresses will be allocated and the move to IPv6 will accelerate.
The big problem is that IPv6 and IPv4 are not compatible. However while IPv4 networks exist there are a number of solutions to routing traffic over mixed networks.
The key idea is that any machine would have to operate both IPv4 and IPv6 stacks. It is easy to see how IPv6 hosts can access IPv4 machines - they simply reduce the number of bits used in the address i.e. the first 32 bits of the 128 bits of the IPv6 address can be mapped to IPv4 machines. However there is no easy way to allow an IPv4 machine to address an IPv6 machine - how can a 32 bit address be correctly expanded to 128 bits. The only reasonable solution is to equip the entire connection path with software for IPv4 and IPv6. Notice that in principle this is just a software change and no hardware needs to be replaced. In practice hardware will probably have to be replaced.
The big problem is that until the entire Internet is IPv6 or dual IPv6/IPv4 any new IPv6 site will only be accessible from IPv6 equipped machines but IPv6 machines will be able to access both IPv6 and IPv4.
Things aren't quite as bleak as this sounds because a client that can work with IPv6 and IPv4 i.e. most modern operating systems can connect to IPv6 sites as long as the connection path is also IPv6 or can support an IPv6 tunnel. In other words if your connection all the way to the Internet is IPv6 enabled then you can work with either protocol.
At the moment this is a relatively rare occurrence. It you want to know if you can work with IPv6 search for IPv6 test site on your favourite search engine and try it out.
If you really need IPv6 and your ISP doesn't support it your only option is to use an IPv6 Tunnel Broker. In this case you will still need an IPv6 capable machine and an IPv6 capable router connecting you to your ISP. Software does the rest and the Tunnel routes your IPv6 packets onto the IPv6 portion of the Internet. Most brokers will also put your IPv6 address on the network for you so that other IPv6 clients can access your servers. Unfortunately currently IPv6 tunnels don't work well with NAT.
No matter what anyone tells you, the changeover to IPv6 isn't going to be painless.
If you would like to be informed about new articles on I Programmer you can either follow us on Twitter, on Facebook , on Digg or you can subscribe to our weekly newsletter.