Eu tenho uma VPN Wireguard configurada para encaminhar pacotes (com iptables
) recebidos em um VPS para um servidor, o que funciona muito bem. Porém, a configuração automática da eno2
interface (do servidor) pelo Debian cria rotas IP, uma delas é a x:x:x:x::/64 dev eno2
, que é a rede local em que o servidor está.
Isso cria um comportamento indesejado, pois quando eu (da rede local) envio pacotes para o servidor através do VPS (isso significa que o servidor receberá os pacotes na interface wg0
), o servidor responde na rede local (interface eno2
), pois o IPv6 de origem O endereço é o mesmo na Internet e na rede local e, portanto, corresponde à rota x:x:x:x::/64 dev eno2
, mesmo que o tráfego IPv6 não local seja enviado wg0
. E responde com um endereço IP que o computador de onde enviei os pacotes não conhece porque configurei o NAT com o Wireguard.
Conforme está escrito no título isso não ocorre com IPv4, pois ele usa NAT, então o endereço IP de origem não corresponde 192.168.1.0/24 dev eno2
.
Sempre posso me conectar diretamente ao servidor sem passar pelo VPS, ou me conectar com os endereços link-local fe80::/10
quando preciso e substituir a rota configurada automaticamente por uma que tenha métrica mais baixa e preferência mais alta (ex. x:x:x:x::/64 dev wg0 metric 200 pref high
) para manter a configuração automática feita pelo Debian, exceto esta rota. Mas isso não leva em consideração que o prefixo da rede pode mudar. Também consegui fazê-lo funcionar adicionando uma regra SNAT iptables
do VPS, mas isso interrompe os serviços que precisam do endereço IP de origem (por exemplo, SPF).
Existe uma solução melhor para o problema? Talvez adicionando uma rota que envie pacotes de volta wg0
para wg0
e fazendo com que essa rota tenha prioridade sobre a x:x:x:x::/64 dev eno2
rota, para que eu ainda possa acessar o servidor na minha rede local com seu endereço IPv6 público?