背景情報
サーバーとの通信を目的としたネットワーク対応の組み込みデバイスを開発しています。このサーバーは Linux を実行するため (ただし、開発には Windows ツールが必要です)、開発目的で Ubuntu Server 14.04 を使用して VM を実行しています。
トラブルシューティングのために、最も単純なテスト設定 (VM 上のサーバーにホストを接続して、TCP 接続が確立されていることを確認するだけ) に戻っているため、組み込みの側面はこの質問には重要ではありません。
ネットワークセットアップ
DD-WRT [v24-sp2 (03/25/13) std (SVN リビジョン 21061)] を実行する D-Link DIR-615、MAC フィルターによってホストと VM に割り当てられた静的 IP、DNS 機能が有効
開発マシン (192.168.5.117、dev.test.lan)
Ubuntu VM (192.168.5.118, vm.test.lan) - ブリッジ接続を使用 (クライアントが VM への接続を開始するため、NAT は機能しません)
ルーターはどの種類の WAN にも接続されていません。有線接続のみで、Wi-Fi は無効になっています
実行された健全性チェック
VM からのホストへの ping が成功する (IP または dns 名を使用)
ホストから VM への ping が成功する (IP または dns 名を使用)
ホスト間の nc <-> VM (いずれかの側からリッスン/接続できます) [ポート 9050 でリッスン]
VM 内で、nc 経由で VM で実行されているサーバー アプリケーションに接続でき、接続が正常に確立されます [ポート 9050 へ]
ポート 9050 での着信/発信 TCP 接続用に Windows ファイアウォールが開かれている
問題分析
Wireshark を使用して、nc 健全性テスト (ホスト <-> VM) を実行すると、TCP 接続が正常に機能していることを確認できます。
VM でサーバー (Python で記述され、asyncio を使用) を実行し、ホストから nc 経由で接続しようとすると、サーバーは接続を認識しません (ただし、nc からサーバーへの接続が機能することはわかっています)。 VM内で正常にテストされたため)。
Wireshark から、ホストが SYN を VM に送信し、その後 VM が [RST, ACK] で応答することがわかります。ホストは、あきらめる前に送信を 2 回再試行します。
質問
ブリッジ接続は、VM に使用する適切な設定ですか?
RST がどこから来ているかを知る最良の方法は何ですか? (ルーター、VM の TCP/IP スタック、または Python の一部が原因ですか?)
更新:
VMnc 192.168.5.118 9050
内で試行したところ、ホストから試行した場合と同じ拒否された接続動作が観察されました。アダムの言ったことによると、私たちは近づいているようです. Adam の提案も試して、更新を投稿します。