古いゲームのためのTincとラジオ

古いゲームのためのTincとラジオ

古いゲームの放送を正しく設定する方法を学びたいです。私は特にローカルネットワーク上で動作し、192.168.0.0/16サブネットのゲームだけを検索するWarcraft 3ゲームに興味があります。

私の使命は、ローカルネットワークにあるように、LinuxとWindowsシステムでゲームを実行させることです。

初期データ:

  • ローカルインタフェース:eth0
  • ローカルアドレス:192.168.20.75
  • VPN インターフェイス: tun0
  • VPNアドレス:192.168.55.1
  • ゲームポート:6112

今、奇妙に見える動作する解決策がありました。

  • Warcraft 3を起動してローカルゲームを作成しましたが、0.0.0.0:6112まで上がりました。
  • ルーティングルールの開発
    ip route add 255.255.255.255 dev tun0
    
  • 放送ソースを変えるルールを作っています。
    iptables -tnat -A POSTROUTING -p udp -m udp --dport 6112 -j SNAT --to-source 192.168.55.1
    

チャジャン、ゲームはクライアントのローカルネットワークに表示されます

この状況では、より信頼性が高く、あまり「奇妙な」解決策はありますか?私を混乱させるのは、すべての255.255.255.255を対応するtun0インターフェースにリダイレクトする必要があるということです。

答え1

私はiptablesで私の問題に対する解決策を見つけましたが、それが私に役立つことができないことがわかりました。オンラインチャットでnfttablesを調べるように指示され、数時間後にこのソリューションが見つかりました。

MANGLEチェーンのINPUTとOUTPUT用の2つのテーブルを作成する

nft 'add chain ip mangle OUTPUT { type filter hook output priority  150; policy accept; }'
nft 'add chain ip mangle INPUT { type filter hook input priority  150; policy accept; }'`

トラフィックを別のインターフェイスにコピー

nft add rule mangle INPUT iifname eth0 ip daddr 255.255.255.255 udp dport 6112 meta mark set 2 dup to 255.255.255.255 device tun0

ローカルネットワークインターフェイス(eth0)からトラフィックを取得し、受信アドレスがブロードキャスト(255.255.255.255)から来ていることを確認し、ポート6112に進みます。条件が true の場合は「2」と表示し、ポート 6112 に送信します。アドレス 255.255.255.255、VPN(tun0) インターフェイスのみ。

この段階では、VPNのデバイスで必要なトラフィックの確認を開始し、送信元アドレスのみがローカルネットワークの送信元と同じです。それでは、この問題を解決してみましょう。

nft add rule mangle OUTPUT oifname tun0 meta mark 2 counter ip saddr set 192.168.55.5

ここでは、ラベルが "2" の tun0 インターフェイスから着信トラフィックの送信元アドレスが VPN ネットワークのアドレスに置き換えられていることを確認します。それ以外の場合、ブロードキャスト経由でアクセスすると、トラフィックはローカルネットワークアドレスに流れます。

関連情報