Meu cenário -
Eu tenho dois servidores executando o Ubuntu chamados S1 e S2. S1 tem um endereço IP público e executa o servidor openvpn. S2 tem o cliente openvpn instalado e está conectado ao servidor vpn aberto. S1 IP público (eth1): 47.88.240.xxx, Openvpn IP (tun0): 10.8.0.1 e S2 OpenvpnIP (tun0): 10.8.0.2
Eu tenho um servidor de jogo em execução na porta UDP 28015 no S2.
Atualizei as tabelas de IP no S2 como -
0.0.0.0 via 10.8.0.1
47.88.240.xxx via gateway padrão S2
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth1-j MASCARADA
Eu verifiquei o endereço IP em whatismyip.com enquanto navegava na Internet a partir do S2 e mostrava 47.88.240.xxx
Eu também rastreeei o servidor de DNS do Google a partir do S2 e o primeiro salto foi 10.8.0.1 e o traceroute foi bem-sucedido.
Tenho certeza de que todo o tráfego de internet da S2 está viajando pela S1.
Eu usei o seguinte comando no S1 para encaminhar a porta -
sysctl -w net.ipv4.ip_forward = 1
iptables -t nat -A PREROUTING -d 47.88.240.xxx -p udp -dport 28015 -j DNAT - para-dest 10.8.0.2:28015
iptables -t nat -A POSTROUTING -d 10.8.0.2 -p udp --dport 28015 -j SNAT - para fonte 10.8.0.1
Enquanto estiver usando este método, se eu consultar o servidor do jogo (47.88.240.xxx:28015) do meu pc em casa, eu posso ver o servidor do jogo, mas depois de algumas vezes (talvez 5 vezes) ele não responde por algumas vezes e depois responde depois de algum tempo.
Então, substituí a parte SNAT pelo método explicado aqui no S2 - link
Ao fazer isso, eu poderia consultar o servidor do jogo quantas vezes eu quisesse e ele nunca parasse de responder.
Alguma idéia de por que isso poderia estar acontecendo?
Tags openvpn port-forwarding ubuntu