By: Cas Mollien Last modified on: 22 July 2011, 16:23h
For some time now, experts have been warning the world that we will soon run out of IP addresses. The current IP addresses, IP version 4 (IPv4), have a successor called IP version 6 (IPv6), which should solve that problem once and for all.
The problem with the implementation of IPv6 is that every device on the internet must support IPv6 addressing and routing, which is definitely not the case yet.
Some providers already have IPv6 available, but most don't. As I am a technology professional and a geek at heart, i decided that it is time to take the plunge and start playing around with it. But as usual, there has to be some reason that makes it attractive to change. For me, it is the -currently- free content that is only available for IPv6 users, specifically the high bandwidth streaming television from the Netherlands and the high retention usenet servers that are open to IPv6 users!
So, in short, here is what I am up against:
Current Setup In my home network, I have the following devices that I want to take care of primarily:
- My workstation, running Kubuntu Linux
- My server, running Windows 2003 R2
- My router, running m0n0wall v1.3b13 (with IPv6 support)
Ultimate Goal To have my whole network at home run IPv6 and to automatically connect toIPv6 sources on the internet when they are available. Ultimately, this would mean that my m0n0wall router would take care of the IPv6 routing or tunneling, and the other devices talk IPv6 to it.
Questions - Can m0n0wall be a 4to6 bridge? For example, if all my devices talk IPv4 to my m0n0wall, can my m0n0wall translate to IPv6 sources when they are available? Or must every device have IPv6 installed in order to do that?
- What is the difference between an IPv6 tunnel (6in4) and routing to a 6to4 gateway (and what is better)?
The steps I have taken Firstly, I signed up for an IPv6 tunnel at SixXS. I know that many people dislike them, but many other report low latency and better connections. I figured that I can always switch if I don't like them, once I have a little bit more experience.
IPv6 tunneling with SixXS on Windows I did everything that I should have done, using AICCU on Windows to create the tunnel. Since IPv6 is not working behind NAT out of the box, using an app to create a tunnel should circumvent this issue. Unfortunately, after several hours of messing around, I was still unable to ping anything outside (like ipv6.google.com) of my own network. I decided to give Linux a try.
IPv6 tunneling with SixXS on Kubuntu After installing AICCU from the repositories (apt-get install aiccu) and choosing SixXS as my tunnel provider, I checked the interface with 'ifconfig sixxs', which showed me my IPv6 address. A quick 'ping -6 ipv6.google.com' revealed that I had connectivity immediately. That was just too simple!!
Taking Konqueror, Opera and the Firefox to http://www.kame.net to see the moving turtle (which only moved when you are using IPv6) did not work, though. I found that I needed to restart both Firefox and Opera to get it to detect IPv6. I don't know if it has anything to do with caching, but I did not bother trying to find out.
So far so good, on Linux at least. I used Putty from my Windows machine to set up a local port forward (local 121 to remote news.ipv6.eweka.nl:119) through my workstation, and executed a quick 'telnet localhost 121' to see a nice message '201 ipv6reader2.eweka.nl NNRP Service Ready - firstname.lastname@example.org (no posting).'.
Great! I have tested usenet over an SSH tunnel, to my workstation, over an IPv6 tunnel to SixXS, to the newsserver at Eweka. This is definately NOT the way I want it to work, but this shows that it works, at least.
I think my next step will be trying to get m0n0wall to be the tunnel endpoint, and see if I can take my workstation out of the picture. I will log my next steps and update the article as I go along.....
Windows 7 and the temporary ipv6 address Apparently, Microsoft mixed up how the interface identifier should be created even though Microsoft engineers helped write RFC 4941. Oh well. Still, you can force Windows 7 to use the correct method by issuing the following command from an elevated DOS prompt(run as Administrator):
netsh interface ipv6 set global randomizeidentifiers=disabled
This will give your Windows 7 machine a proper IPv6 address, based on the MAC address of the machine. Next, you want to turn off the 'privacy' setting that generates the seemingly random IPv6 address(es) that is used to connect. Once again, open an elevated DOS prompt and enter the following command:
netsh interface ipv6 set privacy state=disable
Now disable your NIC and re-enable it. The only IPv6 address that should come up is the one based on your MAC address.. Happy routing!
Found this article useful? Please consider buying me a beer - or something else useful..