First thing you’ll need to do is register at the Hurricane Electric Website and create your own tunnel. I’m not going to go over that since there’s a lot of help on the Hurricane Electric Website about it. These instructions only apply to you, after you’ve registered as a user, and set up your tunnel on their website.
Take a note of your Tunnel details from the Hurricane Electric website, you’ll need them to set up your Linux IPv6 Gateway. The IPv6 addresses are used for documentation purposes only, see RFC 3849 (no point showing everyone on the Internet my home IPv6 address range).
|HE Server IPv4 Endpoint||220.127.116.11|
|Static IPv6 assignment from my routable range||2001:DB8:8:7aa::1|
|Client IPv6 Endpoint||2001:DB8:7:7aa::2|
Ok first thing to do is enable IPv6 support on your raspberry pi, at the prompt type.
sudo modprobe ipv6
To make the change permanent, you will have to edit the modules file and have your pi load it at start-up (reboot). To do this edit the modules file, type the following.
sudo nano /etc/modules
Your modules file should look similar to this after to append the “ipv6″ line at the end.
#/etc/modules: kernel modules to load at boot time. # # This file contains the names of kernel modules that should be loaded # at boot time, one per line. Lines beginning with "#" are ignored. # Parameters can be specified after the module name. snd-bcm2835 ipv6
You need to edit /etc/network/interfaces and add your own data to the bottom of the file. Two bits of data, the first bit goes after your own network adaptor (usually eth0). and the second part after that.
sudo nano /etc/network/interfaces
- Adding static IPv6 address from my routable range.
- Adding the Hurricane Electric Tunnel interface (called he-ipv6)
- Please note that the IP’s are on different networks.
# Adding an IPv6 address to the eth0 interface. # Interface up up ip -6 addr add 2001:DB8:8:7aa::1/64 dev eth0 # Interface down down ip -6 addr del 2001:DB8:8:7aa::1/64 dev eth0
The IPv6 and IPv4 setting below will of course be yours and not the ones I’ve made up for the purpose of showing how it’s done
# IPv6 via Hurricane Electric Tunnel auto he-ipv6 iface he-ipv6 inet6 v4tunnel address 2001:DB8:7:7aa::1 netmask 64 endpoint 18.104.22.168 gateway 2001:DB8:7:7aa::2 ttl 255 # The MTU set on my router "negotiated via my ISP" is # 1492. So 1492 - 20 = 1472. # If your routers MTU is 1500, then you can just leave # the following line out as it will default to 1480. mtu 1472
Now we’ll deal with DNS, you have two options, you can either use your ISP’s DNS server and hope that it’s set up to deal with IPv6 resolution, or you can use free public recursive DNS servers. I’m going to use Google’s public recursive DNS servers which I know work.
To set this up, you’ll need to edit the /etc/resolv.conf file and add the DNS servers in. Type the following at the prompt.
sudo nano /etc/resolv.conf
Add the following and save.
nameserver 22.214.171.124 nameserver 126.96.36.199
Testing the Tunnel
Before we go any further, were going to bring the tunnel up and test it.
At the prompt, type the following.
sudo ifup he-ipv6
To test, type the following.
ping6 -c 5 ipv6.google.com
You should get similar results to me.
ping6 -c 5 ipv6.google.com PING ipv6.google.com(we-in-x68.1e100.net) 56 data bytes 64 bytes from we-in-x68.1e100.net: icmp_seq=1 ttl=57 time=31.2 ms 64 bytes from we-in-x68.1e100.net: icmp_seq=2 ttl=57 time=30.7 ms 64 bytes from we-in-x68.1e100.net: icmp_seq=3 ttl=57 time=30.9 ms 64 bytes from we-in-x68.1e100.net: icmp_seq=4 ttl=57 time=31.3 ms 64 bytes from we-in-x68.1e100.net: icmp_seq=5 ttl=57 time=31.3 ms --- ipv6.google.com ping statistics --- 5 packets transmitted, 5 received, 0% packet loss, time 4007ms rtt min/avg/max/mdev = 30.780/31.119/31.358/0.297 ms
If your results are similar to above then your raspberrypi is connected to the IPv6 Internet (Hurrah!) :-). If not then check your IPv6 settings and ask for help on the HE forum here.
Now we need to bring the interface down, we’ll bring it back up again after we’ve firewalled it.
sudo ifdown he-ipv6