Iperf2 はマルチキャストではなくプロミスカスモードのトラフィックを受信して​​キャプチャします

Iperf2 はマルチキャストではなくプロミスカスモードのトラフィックを受信して​​キャプチャします

意図した IP ではない場合でも、無差別にリッスンする Iperf サーバー内のすべてのトラフィックをキャプチャしたいと考えています。

マルチキャストアドレスでこれを行うことができることは知っていますが、その方法は使いたくありません。Wifiでのマルチキャストはスループットの損失を引き起こします。

現在の設定は次のとおりです: 3 台のホスト、それぞれにプロミスカス モードの WiFi NIC があります。プロミスカスでリッスンするだけで、受信できる UDP パケットの数を知りたいです。

たとえば、
ホスト 1 は iperf クライアントを実行しています:iperf -c 192.168.4.197 -B 192.168.4.142 -b 100M -u
ホスト 2 は iperf サーバーを実行しています:iperf -s -u -B 192.168.4.197
ホスト 3 も iperf サーバーを実行しています:iperf -s -u -B 0.0.0.0

バインディング アドレスは、wlan0 インターフェイスのローカル アドレスです。

ホスト 3 上の iperf が、無差別にリッスンされたパケットをそのパケットとして読み取らない理由は理解できます。パケット内の IP は、ローカル wlan0 インターフェイスのアドレスではないからです。

しかし、ホスト 3 の iperf でこれらのパケットを受信する方法はありますか? iptables/ebtables を使用するか、tcpdump を書き換える方法でしょうか?

iptables が無差別にリッスンされたパケットを任意のローカル IP アドレスに再ルーティングできる場合は、iperf を使用してそれをキャプチャできます。

ホスト 3 でパケットを受信できることはわかっています。tcpdump を実行すると、ホスト 1 とホスト 2 間のパケットを確認できます。

パケットはオープンな (暗号化されていない) Wi-Fi ネットワークでのみ表示されることはわかっています。私はこのように設定しました。このネットワークはテスト目的のみなので、現時点ではセキュリティは問題ではありません。

何かアイデアはありますか? さらに情報が必要な場合はお知らせください。

編集: ホスト 3 のバインディング アドレスを 0.0.0.0 に変更しました。ただし、問題は解決しませんでした。

答え1

iperfHost3 の を IP にバインドする192.168.4.121と、この IP に送信されたパケットのみが受信されます。 IP にバインドし0.0.0.0、ネットワーク インターフェイスを無差別モードにして確認してみてください。

関連情報