I’ve been looking around for a possible way to connect to the IPv6 internet for some time now and given the fact my provider didn’t allow me to run IPv6 natively I had to find an alternative solution. Hurricane Electrics (HE) provides (for free) five configurable IPv4-to-IPv6 tunnels together with a free DNS service and an interesting certification program.
Willing to test the latest revision of the Internet Protocol on your Debian, Ubuntu, Fedora machines? Here’s how:
1. Register yourself at Hurricane Electrics by visiting tunnelbroker.net.
2. Create a new tunnel and make sure to use your public IP address as your IPv4 Endpoint.
3. Write down the relevant details of your tunnel, specifically:
- Server IPv6 Address: 2001:470:1f0a:a6f::1 /64
- Server IPv4 Address: 18.104.22.168 (this actually depends on which server did you choose on the previous step)
- Client IPv6 Address: 2001:470:1f0a:a6f::2⁄64
4. Create a little script that will update your IPv4 tunnel endpoint every time your internet IP changes. (this step is not needed if you have an internet connection with a static IP):
#!/bin/bash USERNAME=yourHEUsername PASSWORD=yourHEPassword TUNNELID=yourHETunnelID GET "https://$USERNAME:$PASSWORD@ipv4.tunnelbroker.net/ipv4_end.php?tid=$TUNNELID"
5. Create the networking configuration files on your computer:
Debian / Ubuntu, on the /etc/network/interfaces file:
auto he-ipv6 iface he-ipv6 inet6 v4tunnel address 2001:470:<b>1f0a</b>:a6f::2 netmask 64 endpoint 22.214.171.124 local 192.168.X.X (Your PC's LAN IP address) ttl 255 gateway 2001:470:<b>1f0a</b>:a6f::1 pre-up /home/user/bin/update_tunnel.sh
Fedora, on the /etc/sysconfig/network-scripts/ifcfg-he-ipv6 file:
DEVICE=he-ipv6 TYPE=sit BOOTPROTO=none ONBOOT=yes IPV6INIT=yes IPV6TUNNELIPV4="126.96.36.199" IPV6TUNNELIPV4LOCAL="192.168.X.X" (Your PC's LAN IP address) IPV6ADDR="2001:470:<b>1f0a</b>:a6f::2/64"
and on the /etc/sysconfig/network file, add:
NETWORKING_IPV6=yes IPV6_DEFAULTGW="2001:470:<b>1f0a</b>:a6f::1" IPV6_DEFAULTDEV="he-ipv6"
You can then set up a little /sbin/ifup-pre-local script to update the IPv4 tunnel endpoint when your dynamic IP changes or simply add the script on the /etc/cron.daily directory and have it executed when you turn up your computer.
6. Change the DNS servers on /etc/resolv.conf:
nameserver 2620:0:ccc::2 nameserver 2620:0:ccd::2
nameserver 2001:4860:4860::8888 nameserver 2001:4860:4860::8844
7. Restart your network and enjoy IPv6!
8. If you want to know more about IPv6 take some time for the HE Certification program, you will learn a lot and eventually win a sponsored t-shirt, I just finished mine :-)
EDIT: Be aware of the fact that as soon as the tunnel is up, your computer will be exposed to to the internet without any kind of firewall (the tunnel sets up a direct connection to the internet, even bypassing your router’s firewall), you can secure your machine by using ip6tables. Thanks Michael Zanetti for pointing this out!