This is my first attempt at editing and fixing someone else tutorial.
You will need a tunnel broker, and you can follow my guide and use Hurricane Electric. Once you have your account set up, you will need to create a regular tunnel, and all you have to do is enter in your public IP address which can be found at http://whatismyipaddress.com/.
With that set up, now you will need to get your tunnel info. Here is an example:
Server IPv4 Address: 220.127.116.11
Server IPv6 Address: 2001:480:a:40b::1/64
Client IPv4 Address: 123.456.789.101 (Your IP address here)
Client IPv6 Address: 2001:480:a:40b::2/64
In my case, as I’m behind NAT on my router, so the tunnel actually ends at 192.168.0.2 (for the Windows configuration, not set in the HE control panel).
For Windows, you will have to enable IPv6 for XP/2003, not for Vista/7, but if it is not, the command “ipv6 install” or “netsh interface ipv6 install” should get it set up.
In my example, I am using Windows 7. Open up the command prompt and type in:
netsh interface ipv6>
This will put us into the IPv6 context of netsh and will save a lot of typing.
Next, we need to make the tunnel. I am using the example address from above; you should replace them with your own. Also note that I use the LAN IPv4 address for my end point. This is needed for the tunnel to work, but the broker doesn’t need to know this. Make sure you substitute your addresses for mine, as it will not work if you use mine.
netsh interface ipv6>add v6v4tunnel IP6Tunnel 192.168.0.2 18.104.22.168
netsh interface ipv6>add addr IP6Tunnel 2001:480:a:40b::1/64
That’s the tunnel set up. Don’t bother testing it yet though, as we don’t have a gateway set up. We also need to set up forwarding (allowing interfaces to forward traffic not meant for them) and advertising (telling other hosts where the router is). You will also need the name of your LAN interface. To find this out, either type “show interface”, or open your network connections window. In my case it is “Local Area Connection”. In this article, I have specified interfaces by name, but using “show interface” will also give you the ID of the interface (in my case, “Local Area Connection” is 5 and “IP6Tunnel” is 7) which can be substituted to save typing.
netsh interface ipv6>set interface IP6Tunnel forwarding=enabled
netsh interface ipv6>set interface “Local Area Connection” forwarding=enabled advertise=enabled
Now we need to add some routes, and tell Windows to broadcast these out to other machines on the network. We will set up three routes: one is your routed /64, and we will say that anything there is on the local connection; The next is the tunnel itself, and the final one is the default gateway. We will also broadcast all of these to the rest of the network.
netsh interface ipv6>add addr “Local Area Connection” 2001:480:a:bcd::1
netsh interface ipv6>add route 2001:480:b:40b::/64 “Local Area Connection” publi
netsh interface ipv6> add route ::/0 “IP6Tunnel” 2001:480:a:bcd::1 publish=yes
And that should be it. Any IPv6 enabled machine on your LAN should now get a global IPv6 address and route. Note that I have not covered DNS. In my case this wasn’t an issue as my DNS server could already handle AAAA records, but yours may not.
Original source and credits: http://www.dezzanet.co.uk/articles/26/2010/05/12/Sharing-an-IPv6-tunnel-from-a-Windows-machine/