Todas as comparações de VPS deste site o indicam: «um único /128 IPv6 por omissão», «/64 IPv6», «sem IPv6 no plano base». Lê-se como um pormenor de ficha técnica. Para um servidor WireGuard auto-alojado não é: decide se os seus pares podem sequer ter IPv6.
Ao WireGuard é indiferente que pilha use
Comecemos pelo fácil. A documentação do WireGuard é explícita: «Any combination of IPv4 and IPv6 can be used, for any of the fields.» - qualquer combinação de IPv4 e IPv6 pode ser usada, em qualquer dos campos.
O endpoint pode ser IPv4 enquanto o túnel transporta IPv6, ou o inverso. Não há um modo IPv6 separado para ativar nem um segundo serviço para correr. Um túnel dual-stack são simplesmente dois endereços na mesma interface.
O que /64 e /128 significam na prática
É aqui que a ficha do fornecedor começa a contar.
Um /128 é um único endereço. É o IPv6 do seu servidor e nada mais. Pode dar conectividade IPv6 ao servidor, mas não lhe sobra nenhum endereço para distribuir: os seus pares não podem ter um cada.
Um /64 é um bloco. É o tamanho de atribuição padrão para um segmento de rede e deixa-o livre para atribuir um endereço a cada par a partir de dentro.
Um fornecedor que anuncia «IPv6 incluído» com um único /128 diz a verdade e mesmo assim não dá o que um servidor VPN precisa. É a linha a reler numa tabela comparativa, incluindo a nossa.
O AllowedIPs faz dois trabalhos diferentes
Esta é a parte que se entende mal, e está documentada sem ambiguidade. O mesmo campo comporta-se de forma diferente consoante o sentido:
«ao enviar pacotes, a lista de IP permitidos comporta-se como uma espécie de tabela de encaminhamento»
«ao receber pacotes, a lista de IP permitidos comporta-se como uma espécie de lista de controlo de acesso»
O WireGuard chama ao conjunto uma Cryptokey Routing Table - «a simples associação de chaves públicas e IP permitidos».
A consequência para IPv6 é direta: se quer que o tráfego IPv6 de um par passe pelo túnel, ::/0 tem de constar do seu AllowedIPs. Pôr apenas 0.0.0.0/0 encaminha só IPv4, e o tráfego IPv6 do par sai pela ligação normal, fora do túnel e com o seu endereço real.
Isso é uma fuga, e não é uma falha do WireGuard. É a lista de controlo de acesso a fazer exatamente o que lhe foi dito.
A configuração na prática
No servidor, dê à interface um endereço IPv4 e um IPv6 da sua atribuição. Em cada par, liste as duas pilhas em AllowedIPs. Para tunelar tudo é 0.0.0.0/0, ::/0; para uma repartição, liste os prefixos concretos de cada pilha.
Duas coisas a reter. O forwarding tem de ser ativado para ambas as famílias, não só IPv4: são definições sysctl distintas, e ativar uma não faz nada pela outra. E as suas regras de firewall também existem em duplicado: iptables e ip6tables são tabelas diferentes, pelo que um masquerade ou um kill switch escrito só para IPv4 deixa o IPv6 sem proteção.
Verificar em vez de supor
Depois de montado, confirme a partir do cliente que o seu IPv6 público é o do servidor e não o seu. Um túnel que transporta bem o IPv4 enquanto deixa fugir o IPv6 parece perfeitamente saudável por dentro: o handshake resulta, o tráfego passa e nada nos registos se queixa.
Se o seu fornecedor só lhe dá um /128, as opções honestas são ficar em IPv4 dentro do túnel e bloquear o IPv6 nos pares para que não possa fugir, ou mudar de fornecedor. Uma pilha dupla configurada a meio é pior do que não ter IPv6.

★ Datacenter GDPR em Nuremberg · ✓ IPv4 dedicado incluído · 200+ Mbps garantidos
Aloje a sua VPN no seu próprio VPS → ContaboAcesso root completo · IPv4 público · escolha a sua região→


