Aqui está minha infraestrutura:
dns of mydomain.com:
vpn A 90.90.90.1
vpn A 90.90.90.2
client vpn config:
client
dev tun
proto udp
nobind
remote vpn.mydomain.com 1394
server1
net.ipv4.ip_forward = 1
iptables:
FORWARD defaults to ACCEPT
vpn config:
dev tun
topology subnet
port 1394
proto udp
server 10.10.1.0 255.255.255.0
push "route 10.90.90.0 255.255.255.0"
interfaces:
ifpub: 90.90.90.1/24
ifpriv: 10.90.90.1/24
ifvpn: 10.10.1.1/24
routes:
10.10.1.0/24 src 10.10.1.1 dev ifvpn
10.10.2.0/24 via 10.90.90.2 dev ifpriv
server2
net.ipv4.ip_forward = 1
iptables:
FORWARD defaults to ACCEPT
vpn config:
dev tun
topology subnet
port 1394
proto udp
server 10.10.2.0 255.255.255.0
push "route 10.90.90.0 255.255.255.0"
interfaces:
ifpub: 90.90.90.2/24
ifpriv: 10.90.90.2/24
ifvpn: 10.10.2.1/24
routes:
10.10.1.0/24 via 10.90.90.1 dev ifpriv
10.10.2.0/24 src 10.10.2.1 dev ifvpn
O problema é que do meu cliente posso executar ping no servidor OpenVPN ao qual estou conectado, mas não no outro servidor na sub-rede 10.90.90.0/24.
tcpdump
mostra que a solicitação ICMP vai de ifvpn
para ifpriv
no mesmo servidor, mas o pacote de solicitação ICMP nunca vai mais longe.
Adicionar log ao iptables também me mostra que o pacote de solicitação ICMP vai para o estado POSTROUTING sem ser descartado, mas o pacote nunca chegou ao seu destino e não sei o que acontece aqui, estou sem soluções.
Eu sabia que posso mascarar meus pacotes, mas não quero porque não é recomendado (https://community.openvpn.net/openvpn/wiki/NatHack), ou será minha última solução.
Responder1
Se o servidor remoto "expõe uma sub-rede", você deve ter um ccd
diretório contendo arquivos com iroute
diretivas, conforme descrito cuidadosamente na documentação do OpenVPN. Você também deve route
enviar diretivas aos clientes.
Quando tudo estiver funcionando corretamente:
- O cliente envia o ping.
- O sistema operacional do cliente possui um comando de roteamento que envia esse tráfego para o servidor OpenVPN local.
- A
ccd
informação diz ao OpenVPNao qual o controle remoto conectadopara enviar o tráfego para entrega. - O tráfego emerge neste controle remoto e segue até seu destino.
- Para a viagem de volta, o sistema remoto devetambémter uma rota de sistema operacional que enviará o tráfego de volta paraisso éServidor OpenVPN.