Eu normalmente apenas configuro um túnel IPv6 (a partir do sixxs.net ou he.net) se eles já não tiverem IPv6 e então o computador tem um endereço estático e não tenho que mexer com o NAT. Eu também gosto de configurar a autenticação baseada em chave (então eles não precisam dizer a senha).
O Sixxs tem seu próprio cliente que você usa. Ele funciona por trás de praticamente qualquer NAT e é atualizado automaticamente quando o endereço IPv4 é alterado. Eles têm instruções sobre como configurá-lo e ele é empacotado para o Ubuntu.
O Hurricane Electric usa um túnel onde os pacotes IPv6 são enviados como carga útil de um pacote IPv4. Ao contrário do Sixxs, nenhum TCP / UDP é usado. Isto significa que o NAT que você está por trás tem que suportar o PROTOCOLO 41 (não porta) e somente um computador atrás do NAT pode usá-lo. O software para usar um túnel como esse está embutido no Ubuntu.
Para HE, eu uso algo assim em /etc/network/interfaces
:
auto he-ipv6
iface he-ipv6 inet6 v4tunnel
endpoint 216.218.226.238
address 2001:470:a29f::2
netmask 64
ttl 64
up ip -6 route add default dev he-ipv6
down ip -6 route del default dev he-ipv6
A outra coisa que você precisa fazer é atualizar seu endpoint de túnel. Como você não sabe quando o IP externo é alterado, você terá que tentar atualizar o endpoint a cada poucos minutos. Você poderia usar algo assim e executá-lo no cron:
#!/bin/sh
echo -n "Hurricane Electric Proto-41 tunnel endpoint update: "
#(C) 2010 Erik B. Andersen This script is licensed under the latest version of the
# AGPL published by the Free Software Foundation at http://www.gnu.org/licenses/ .
####Set these for each different site#########
pass="passwordhere"
user_id="a765b8e2f474667dcb56e08c5f1aa05b"
tunnel_id="97817"
####Past here doesn't need to be changed######
wget -4 "https://ipv4.tunnelbroker.net/ipv4_end.php?ipv4b=AUTO&pass=$(echo -n "${pass}" | md5sum | grep -o -E "[0-9a-fA-F]{32}")&user_id=${user_id}&tunnel_id=${tunnel_id}" -O /dev/null -o /dev/null --no-check-certificate
echo " Done"