O endereço local do link deve funcionar bem e, de fato, é o endereço usado por rtadvd
.
Estou usando o 6to4, mas é basicamente a mesma configuração. No meu caso, tudo que faço é:
ifconfig stf0 create
ifconfig stf0 inet6 2002:c0a8:1:ffff::1/16
ifconfig lan0 inet6 2002:c0a8:1::1/64
Isso cria a conexão, seu túnel deve cortar o mesmo propósito.
route add -inet6 default 2002:c058:6301::
Neste ponto, ping6 ipv6.google.com
funciona no meu roteador.
sysctl net.inet6.ip6.forwarding=1
Agora o roteamento está habilitado, mesmo com endereços locais de link, se eu configurar manualmente os clientes para usar o roteador à medida que seu DG IPv6 funciona. Mas queremos algum nível de configuração automática ... então /etc/rtadvd.conf
contém:
lan0:\
:addr="2002:c0a8:1::":prefixlen=64:tc=ether:
A única coisa que resta é adicionar a configuração ao meu arquivo rc.conf
:
ipv6_gateway_enable="YES" # Route IPv6 Traffic
rtadvd_enable="YES" # IPv6 Router Advertisement Daemon
rtadvd_interfaces="lan0"
cloned_interfaces="stf0"
ifconfig_stf0_ipv6="inet6 2002:c0a8:1:ffff::1/16"
ipv6_defaultrouter="2002:c058:6301::" # 6to4 Default Router
Os clientes têm uma rota padrão do intervalo fec0 ::, mas funciona perfeitamente. Um tcpdump
mostra os clientes enviando de seu endereço IPv6 global para o endereço fec0.
Para qualquer um que esteja lendo este desejo de fazer 6to4, os endereços "internos" acima são para 192.168.0.1, que não podem ser roteados na Internet. Você precisa calcular seu próprio endereço IPv6 interno com base em seu endereço IPv4 externo.