Ao criar um túnel IPv6 com tunnelbroker.net, o serviço Tunnel Broker atribui a você um endereço IPv6 cliente para ser usado no roteador e uma rede IPv6 roteada para ser usada pelos sistemas na rede.
No entanto, não tenho rede: tenho um único sistema com conectividade IPv4, a quem gostaria de dar também conectividade IPv6. Consigo configurar facilmente o túnel usando o endereço IPv6 do cliente (o serviço Tunnel Broker também tem exemplos de configuração), e isso já é suficiente para enviar tráfego IPv6.
Porém, isso não é o ideal: estou usando o endereço IPv6 do cliente, que deveria ser usado apenas para o túnel, como meu endereço de origem de tráfego IPv6. Por um lado mais prático, não consigo configurar a resolução rDNS para esse endereço, o que, por exemplo, prejudica minha capacidade de enviar e-mail por SMTP.
O que eu gostaria é que meu tráfego IPv6 fosse enviado como se fosse proveniente de um endereço na rede IPv6 roteada, mesmo que o host que envia o tráfego e o roteador que o encaminha pelo túnel sejam na verdade o mesmo sistema. Existe uma maneira razoável de configurar um sistema Linux (Debian) padrão para agir assim?
Você pode literalmente ter apenas os dois endereços na mesma máquina; não há nenhuma exigência para que o /64 roteado seja usado em outro lugar.
Configure o endereço do cliente com um "vida útil preferencial" de 0 (por exemplo,
preferred_lft 0
em um comando iproute2), para que não seja escolhido para pacotes de saída se outro endereço estiver disponível, embora ainda aceite os de entrada.Em seguida, configure qualquer endereço do seu /64 ou /48 roteado em qualquer interface. (Por exemplo, atribua um 2001:470:foo::1/128 à mesma interface de túnel, ou a
lo
, ou a dummy0.)Mesmo em uso normal com uma rede, "o roteador" e "sistemas na rede" se sobrepõem - o roteador tem um endereço IP de cada rede à qual está conectado e é livre para usar qualquer um de seus endereços para enviar tráfego por qualquer interface.
Por exemplo, se você usar 2001:foo::/64 para uma rede real em eth0, quase sempre atribuirá ao próprio eth0 um endereço dessa rede (como 2001:foo::1/64) e o roteador poderia usar esse endereço para originar pacotes de sit0. As instruções acima não são diferentes disso.
Tecnicamente, como este é um túnel L3 ponto a ponto (com apenas um endpoint e nenhum endereçamento L2), você não precisaria atribuir o endereço "cliente" de forma alguma - o endereço de um roteador nunca está envolvido no envio de pacotes encaminhados, apenas recebendo, e com túneis PtP você ainda receberia os pacotes apenas por estar do outro lado do túnel. (Somente com tipos de link que usam ARP/NDP, como Ethernet ou túneis L2 que o emulam, o endereço seria necessário para que os prefixos sejam roteados para você.)
(Da mesma forma, para pacotes de saída através de túneis L3, o "endereço do servidor" não é realmente usado, pois não há pesquisas NDP - apenas o roteamento via
dev sit0
levará os pacotes para a outra extremidade do link de qualquer maneira.)No entanto, com túneis HE.NET, você ainda precisa manter o endereço do "cliente" por outro motivo - verificações periódicas ociosas que desativarão o túnel se o cliente não responder aos pings por vários meses.