Roteamento
No host A , você precisa encaminhar todo o tráfego para a rede de destino para hospedar B . Eu vou assumir que isso é algo como 192.168.0.0/24
para linux (no host A ):
ip r a 192.168.0.0/24 via 10.9.8.3 dev eth0
para windows (no host A ):
route ADD 192.168.0.0 MASK 255.255.255.0 10.9.8.3
Encaminhamento
Depois que o roteamento estiver em vigor, todos os pacotes para a rede 192.168.0.0/24 serão enviados para o host B .
Para permitir que os pacotes sejam encaminhados de wlp3s0 para tun0 no host B , é necessário ativar o encaminhamento de IP.
Para habilitar temporariamente o encaminhamento de IP para todas as interfaces:
sysctl net.ipv4.conf.all.forwarding=1
Para ativar essa alteração permanentemente, adicione uma nova linha a /etc/sysctl.conf :
net.ipv4.conf.all.forwarding = 1
Além das configurações de interface, iptables pode estar ativo e precisa permitir o encaminhamento de pacotes.
Para verificar se iptables está ativo (pelo menos para a cadeia FORWARD ):
iptables -L FORWARD -nv
Se a cadeia não tiver regras e a política disser ACCEPT , você está pronto para ir, caso contrário, é necessário adicionar regras relevantes para permitir o encaminhamento para 192.168.0.0/24 .
Permitir o encaminhamento de todos os pacotes para 192.168.0.0/24 on wlp3s0 :
iptables -I FORWARD -i wlp3s0 -d 192.168.0.0/24 -j ACCEPT
iptables -I FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
o RELATED,ESTABLISHED permite automaticamente os pacotes de retorno.
NAT
Agora, após o encaminhamento ser configurado, os pacotes serão enviados para o túnel. Mas, na medida em que a rede remota por trás da VPN não conhece nossa rede local, o que normalmente é o caso, precisamos NAT de todos os pacotes que vêm da nossa rede local e entraremos na VPN para o endereço. o servidor VPN (que é o IP no tun0 ).
Para fazer isso, você precisa criar uma regra MASQUERADE na tabela POSTROUTING :
iptables -t nat -I POSTROUTING -o tun0 -j MASQUERADE
Isto irá nat todos os pacotes de saída em tun0 para o IP da interface.