ゲームサーバー用のOpenVPNポート転送

ゲームサーバー用のOpenVPNポート転送

私のシーン -

  1. S1とS2というUbuntuを実行する2つのサーバーがあります。 S1 にはパブリック IP アドレスがあり、openvpn サーバーを実行しています。 S2 には openvpn クライアントがインストールされ、openvpn サーバーに接続されます。 S1 パブリック IP(eth1): 47.88.240.xxx、Openvpn IP(tun0): 10.8.0.1 および S2 OpenvpnIP(tun0): 10.8.0.2

  2. S2のUDPポート28015で実行されるゲームサーバーがあります。

  3. S2のIPテーブルを次に更新しました。

10.8.0.1による0.0.0.0

S2デフォルトゲートウェイ経由の47.88.240.xxx

  1. S1では、次のコマンドを使用してすべてのインターネットトラフィックをS2からS1にルーティングしました。

iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth1 -j MASQUERADE

S2でインターネットを閲覧中にWhatismyip.comのIPアドレスを確認しましたが、47.88.240.xxxが表示されました。

また、S2でGoogleのDNSサーバーを追跡しましたが、最初のホップは10.8.0.1で、追跡パスは成功しました。

したがって、S2のすべてのインターネットトラフィックはS1を通過すると確信しています。

  1. ポートを転送するには、S1で次のコマンドを使用しています。

    sysctl -w net.ipv4.ip_forward=1

    iptables -t nat -A プリルーティング -d 47.88.240.xxx -p udp --dport 28015 -j DNAT --to-dest 10.8.0.2:28015

    iptables -t nat -A POSTROUTING -d 10.8.0.2 -p udp --dport 28015 -j SNAT --to-source 10.8.0.1

この方法を使用するとき、自宅のコンピュータでゲームサーバー(47.88.240.xxx:28015)に問い合わせるとゲームサーバーが出てきますが、数回(おそらく5回程度)経過するとしばらく応答がなく、しばらくしてから再度応答します。

そこで、SNAT部分をS2で説明した方法に置き換えました。https://www.thomas-krenn.com/en/wiki/Two_Default_Gateways_on_One_System

これにより、必要に応じてゲームサーバーに問い合わせることができ、応答が停止しなくなります。

  1. 両方のデフォルトゲートウェイ方法を使用してゲームサーバーに確実に接続されていますが、ゲームサーバーはゲームのメインサーバーのリストには表示されませんが、手動でゲームサーバーに接続できます。ゲームサーバーからゲームメインサーバーへのトラフィックに問題があるようです。正しいIPが送信されないか、ゲームサーバーが何らかの理由でメインサーバーに接続できません。

なぜこれが起こるのかご存知ですか?

関連情報