web-dev-qa-db-ja.com

UDP接続が失敗した場所を見つけるにはどうすればよいですか?

OpenVPNを使用してVPNサーバーをセットアップし、クライアントPCが同じ物理ネットワーク内にあるかのように相互にアクセスできるようにします。

私が遭遇した問題の1つは、UDP経由で接続できないことです。 TCP接続を使用するようにサーバー+クライアント構成を変更すると、クライアントはサーバーに正常に接続できます。 TCP over TCPは不良であり、多くのオーバーヘッドが発生します。

サーバーはパブリックIPを持つルーターの背後にあり、サーバーのIPはルーターのDMZにあるように構成されています。

UDPを使用しているときに接続が失敗する場所をテストする方法はありますか?クライアントのルーター、クライアントのISP、私のルーター、どこか他の場所で?このような設定はUDPでも可能ですか、それともTCPに頼る必要がありますか?

重要な詳細を見逃した場合は、お知らせください。喜んで追加させていただきます。

2
knittl

ファイアウォールがトラフィックをブロックしているようです。 Linuxの場合はudpsnifferを使用することをお勧めします。tcpdumpを試してください(名前にもかかわらずudpも使用します)。

2
öde

DMZにいるからといって、インターネットやネットワーク上の他の場所から完全にアクセスできるわけではありません。多くのファイルウォールでは、必要なポートのみがDMZに出入りできます。ポートが許可されていない場合許可されたリストにある場合、それらはサーバーに到着しません。

UDPの障害は、TCPの障害ほど簡単には調査できません。

  • ICMPモニターは、パケットが拒否された場所を示す場合があります。パケットがドロップされた場合は失敗します。
  • 両端のファイアウォールログは、トラフィックがドロップされていることを示している可能性があります。一時的なロギングルールは、トラフィックがファイアウォールに到着しているかどうかを示すことができます。
  • tcpdumpのようなツールを使用して、送信および/または到着するトラフィックを判別できます。
0
BillThor