LANゲームをリモートでプレイするために使用しているopenVPNが設定されたdd-wrtルーターがあります。
ネットワークの詳細:
remote site LAN: 192.168.10.0/23
router LAN IP: 192.168.11.1
LAN DHCP range: 192.168.11.1-254 (same for VPN clients)
私たちがプレイしているゲームは、ブロードキャストパケットを使用してサーバーを特定しています。問題は、ブロードキャストがVPNに送信されても、ルーターがクライアントからリモートサイトのLAN内のホストにブロードキャストを取得していないことです。逆もまた真であり、リモートLANからのブロードキャストはVPNクライアントに到達していません。
これは255.255.255.255ブロードキャストアドレスでのみ発生します。クライアント側でネットワークをスニッフィングしましたが、192.168.11.255への「通常の」ブロードキャストを確認できます。
非トラバースパケットの例(ソースはVPNクライアント):
192.168.11.24 255.255.255.255 UDP Source port: 28960 Destination port: 28961
トラバースパケットの例(VPNクライアントでスニッフィングによってキャッチされます。ソースはリモートLANのホストです):
192.168.11.25 192.168.11.255 UDP Source port: 60978 Destination port: 32414
これらのパケットをブロードキャストするようにルーターを構成するにはどうすればよいですか?
これはルーティング、iptables、またはopenVPNの修正ですか?
編集:VPNはブリッジモード(タップ)で構成されています。
2台のルーター(クライアントとサーバー)をopenVPNに接続することで、これを機能させることができました。openVPNでは、tap0インターフェイスが両側でイーサネットにブリッジされています。
VPNインターフェイスを介して255.255.255.255を伝播しないことは、おそらくブリッジングがないために、Windowsクライアントでのみ問題になる可能性があるようです。
OpenVPNはおそらくtun
モードに構成されています。これは、レイヤー3で機能し、サブネット間でブロードキャストを伝播しません。
tap
モードに切り替える必要があります。このモードは、レイヤー2で機能し、ブロードキャストを伝播します。 tap
モードで行う必要があるのは、br0
などのブリッジインターフェイスを作成し、物理的なeth0
とtap0
をそれに接続することです。次に、br0
にIPが割り当てられ、br0
から送信されたブロードキャストは、スイッチであるかのように、それに接続されているすべてのものに到達します。
DD-WRTインターフェースがほとんどの作業を処理してくれると思います。それが、その要点です。
ブロードキャストはルーティングされません。これはOpenVPNの問題ではありません。これは、IPの仕組みです。
OpenVPNがレイヤー3モード(別名tun)で構成されている場合、OpenVPNはルーターのように機能し、ブロードキャストは渡されません。
オプションは、ブリッジ(別名タップ)をセットアップして、ブロードキャストを転送するレイヤー2ネットワークを形成することです。しかし、dd-wrtでこれを機能させるためにあなたが何をしなければならないのかわかりません。
ところで、dd-wrtの代替案を検討したいと思うかもしれませんが、ほとんどのルーターのリリースは4年以上更新されていません。これは、ハートブリードやおそらくシェルショックなど、多くのセキュリティバグが蓄積されていることを意味します。ファームウェアイメージが1か月以上古い場合は、アップグレードするか、代替を探す時期です。