For a couple of years now, people are scared of running out of oil because when it does it means big change for almost the entire population of earth. Similar to oil, another resource will experience a massive shortage soon. At least that is what we are told. Compared to oil however it is already hard to get new IPv4 addresses. The good news is that there is a replacement called IPv6 and there is so much of it that »there are approximately 6.67 * 10^27 IPv6 addresses per square meter on our planet«. This replacement now exists for over ten years but still the adoption among providers and users is almost insignificant. I assume this is because the internet still works as it has been for the last two decades without any noticeable consequences for most of the people. They are accustomed to the »little« drawbacks of being behind a NAT. They know that for some reason they don’t get the »real« internet at home through their dsl connection over their little plastic router. They accept it that file transfers over instant messaging do not always work, that their peer to peer transfers are slow or unusable and that they cannot connect to their working station at home when they are at the office or on a business trip. So did I but a couple of weeks ago I decided to stop ignoring these issues and to do something about it.
The theory is simple. Since there are so many IPv6 addresses available, every one can have one, or to be more accurate 4.86117667029912… x 10^28 which is obviously more than anyone could even think about. This make things like NAT obsolete. Everyone can have tons of real, globally accessible IP addresses which will eliminate all these issues mentioned above and many more. If you will most of the people will get »more« internet than they were ever able to get, even in the early years when there was plenty of IPv4 addresses available.
But there is really no need to use the future tense here because you can be part of the IPv6 internet right now and you really should. Since I already mentioned why it is a good idea, I want to talk about how you can do it.
To use IPv6 you really don’t need that much and the most important thing you need is a computer running a moder operating system. Anything newer than Windows XP Service Pack 1, Mac OS 10.2, FreeBSD 4.0, Ubuntu 4.10 will work.
The second important thing you need is a IPv6 provider. Some of us are lucky to have an ISP which already enabled IPv6 for its customers but most people are still only given IPv4 addresses. If your provider is already IPv6 ready you really don’t have to do anything else. It seems as if many ISPs will enable IPv6 by the end of the year but its almost certain to say that there will be many left running IPv4 only. So if you have an ISP without IPv6 you don’t have to stop here. There are quite a few official transition techniques to give you IPv6 even if you are on an IPv4 only network. Most if not all techniques use so called »tunnels« to give you IPv6 encapsulated in IPv4 and its not as bad as it sounds. In fact this is the most common way for IPv6 distribution today.
How to get IPv6 on a IPv4 network
If you own a recent (as in one or two years old) Airport Extreme base station from apple and you have it directly connected to you dsl router or cable modem there is almost nothing you have to do because Apple took care of that for you. Their base stations use a IPv4 to IPv6 transition technique called »6to4«
The good thing about 6to4 is that there is very little to do to get it running. In fact all you basically have to do is to enable IPv6. You then have to configure an IPv6 6to4 gateway which has the address 126.96.36.199. This is an anycast address which means no matter where you are, when you connect to that IP, you get the 6to4 gateway which is closest to your current location. You can try that by tracerouting that IP from various locations:
Once you’ve done that you get a IPv6 address based on your current IPv4 address and you are ready to go. Not only can you connect to IPv6 hosts but others also connected via IPv6 are able to connect to your machine, no matter if you use a dynamic IPv4 address (e.g. via adsl, cable or dial up) or a static on (e.g. university network, company network, server). This is the same thing the Apple Airport Extreme base stations uses.
There is another tunneling technique which allows you to have IPv6 no matter where you are and no matter if there is an Apple base station around you or not. For that you have to explicitly setup a tunnel which connects you to a so called »tunnel broker«. The most popular seems to be SixXS but there are others available. You can get a tunnel for free but the setup requires a lot of interaction with the broker compared to the easy 6to4 setup. However it usually takes only one or two days until you have a tunnel requested and setup. Now you can run a tool which sets up the tunnel, either manually or as a daemon and voila you just got IPv6!
When it comes to servers its also pretty simple. Either you ISP offers v6 which more an more do or you can get it easy via 6to4. As an example these are the lines you need to add to /etc/rc.conf on a FreeBSD machine to set up 6to4:
ipv6_enable="YES" cloned_interfaces="stf0 lo1" ipv6_ifconfig_stf0="2002:f222:cef7::/48 prefixlen 16" ipv6_defaultrouter="2002:c058:6301::" ipv6_ifconfig_bge0="2002:f222:cef7:c:: prefixlen 64"
Not that bad right? Next: get your web servers, ssh daemons, name servers IPv6 ready if they are not already. Lots of packages come with IPv6 support enabled by default now but if something isn’t working when you use the v6 address explicitly then check if your ports and packages need an update.
Now the whole point of all that is to significantly increase of IPv6 usage to accelerate deployment on the ISP side as they put more effort behind it the more it is used. Get your name servers to listen on your new v6 addresses, create AAAA records for your hosts so that people already using IPv6 can access more and more resources through it without having to fall back to good old IPv4.
Once you have taken care of the IPv6 connectivity your own machines, go out and tell others about your experience. Write mails to your favorite websites (twitter.com, github.com, google.com), ask your provider about IPv6, or even better, demand it! Point them to this article: »Deploying IPv6 is vital to the continued development of the Internet«. Help them by sharing your migration experience and knowledge.
Most of the articles in the web only say »BECAUSE IPv4 ADDRESSES WILL BE DEPLEATED SOON!!!!« but they completely forget about all the benefits you can get with IPv6.
- use remote desktop to connect to your sisters computer at your parents house whithout having to deal with NAT and port forwardings
- use peer to peer networks far more efficiantly because there is now a better way for other peers to connect to you
- connect to the file server at the office or at home from where ever you want
- host web servers and other services from you’re home network and make them globally visible.
- stream audio / video content from you’re own machine rather then relaying it to a globaly accessible server
- connect anything you want to the internet
- get rid of DHCP and all the hassle because IPv6 provides better and easier auto configuration features.
- and many things
Also think about things you can do with every computer fully connected to the internet in terms of distributed systems. It could allow alternatives to the classic server – client relationship, enabling and simplifying distributed file systems, distributed knowledge bases like a distributed wikipedia, distributed chat and p2p systems etc etc. I know its an unpopular term in some circles but I think that cloud computing really starts to make sense that way.
Don’t just look on the IPv4 shortage as only reason to switch to IPv6, think about all the benefits and free your brain of the old IPv4 / NAT limitations!
I strongly encourage all of you to get involved with IPv6. Either by using it as end user or as a system administrator by providing / exposing more services via v6. Read about it, play around with it enable it. Its quite different to IPv4 which we are all more or less used to. It took me a week or two to wrap my mind around it. It takes time to understand how to create v6 DNS records etc etc. But as far as I can tell its totally worth it as it is giving back qualities of the internet that were almost forgotten.
My personal mission of enabling IPv6 on all host which are under my control goes on. So far I’ve enabled it for an entire faculty of the UdK Berlin via 6to4, also enabled the autoconf feature for all student computers within the building. You get there, you get v6. I configured v6 on most of my servers and began to create AAAA DNS records for all the hosts (there are many of them so I’m far away from being done). I also enabled a couple of web hosts but this is work in progress. I will report once I’m done.