Eu tenho uma configuração de VPN muito simples usando tinc
que funciona perfeitamente bem. Eu gostaria de poder rotear o tráfego da WAN através de um host, mas não consigo descobrir como obter a tabela de roteamento correta.
Host A (servidor):
eth0 -> WAN -> <publicip>
tun0 -> VPN -> 10.0.0.1
Host B (cliente):
wlp6s0 -> LAN -> 10.0.1.27
tun0 -> VPN -> 10.0.0.3
Aqui está o que eu fiz até agora:
No lado do servidor, habilitado o encaminhamento de IP e mascarado no iptables:
# iptables -t nat -A POSTROUTING -s 10.0.0.3 -o eth0 -j MASQUERADE
Aqui está a aparência da minha tabela de clientes antes de tocar na tabela de roteamento:
default via 10.0.1.1 dev wlp6s0
10.0.0.0/24 dev tun0 proto kernel scope link src 10.0.0.3
10.0.1.0/24 dev wlp6s0 proto dhcp scope link src 10.0.1.27 metric 303
Como você pode ver, 10.0.1.1 é o gateway da LAN. Tanto o cliente quanto o servidor podem fazer ping uns com os outros pela VPN.
Agora, o que tentei aplicar à tabela de roteamento no cliente:
# ip route add <publicip> via 10.0.1.1 # so that I don't take down tunnel as in https://unix.stackexchange.com/questions/420633
# ip route del default via 10.0.1.1
# ip route add default via 10.0.0.1
Minha tabela agora parece assim:
default via 10.0.0.1 dev tun0
10.0.0.0/24 dev tun0 proto kernel scope link src 10.0.0.3
10.0.1.0/24 dev wlp6s0 proto dhcp scope link src 10.0.1.27 metric 303
<publicip> via 10.0.1.1 dev wlp6s0
Ainda consigo passar tráfego entre o cliente e o servidor por meio do túnel VPN. Mas, o tráfego destinado ao WLAN do cliente retorna "Destination Net Unknown" e não vejo nenhum pacote de entrada no lado do servidor. O que estou fazendo errado?