Hurricane Electric IPv6 Tunnel

On distributions that use Network Manager, you can setup an IPv6 tunnel with Hurricane Electric. Make sure you have done the following.

  1. Create an account at Hurricane Electric
  2. Click "Create Regular Tunnel" on the left hand side
  3. Enter your IPv4 public IP address in the first box
  4. Choose the closest tunnel server to you (in my case, it's Phoenix) - Note the IP Address (eg. 66.220.7.82)
  5. Click "create tunnel"
  6. Note all the information in your "tunnel details"
% nmcli con add type ip-tunnel \
  # Name of the interface
  ifname sit0 \
  # Tunnel protocol with the endpoint
  mode sit remote 66.220.7.82 -- \
  # Disabling IPv4 on this interface
  ipv4.method disabled \
  # Manual IPv6 configuration
  ipv6.method manual \
  # IPv6 endpoint addresses (not your subnet)
  ipv6.address 2001:470:1f18:96::2/64 \
  ipv6.gateway 2001:470:1f18:96::1/64

You will also need to open some parts of your firewall to allow communication. In particular, ICMP (at least type 8) should be allowed from the tunnel server for the heartbeat.

After this, you should be able to assign addresses from your routed /64 on your current machine or machines in your network and be able to ping out. You can also create a /48 and make multiple /64's if you wish.

It is possible to update the tunnel automatically with your IPv4 address in the event it changes.

% vi /etc/NetworkManager/dispatcher.d/pre-up.d/00-tunnelfix.sh
#!/bin/sh
user=USERNAME
pass=PASSWORD
tunnel=TUNNEL_ID

if [ "$1" = sit0 ]; then
  wget -O /dev/null https://$user:$pass@ipv4.tunnelbroker.net/ipv4_end.php?tid=$tunnel
fi