我想捕獲我的 Iperf 伺服器中混雜偵聽的所有流量,即使我不是預期的 IP。
我知道你可以使用多播位址來做到這一點,但我不想遵循這種方式: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 之間的資料包。
我知道資料包僅在開放(未加密)的 Wifi 網路上可見。我就是這樣設定的此網路僅用於測試目的,因此安全性目前並不重要。
有任何想法嗎?如果您需要更多信息,請告訴我。
編輯:將主機 3 綁定位址變更為 0.0.0.0。然而,這並沒有解決我的問題。
答案1
您將iperf
Host3 上的 IP 綁定到 IP 192.168.4.121
,因此它只會接收傳送到該 IP 的封包。您可以嘗試將其綁定到 IP 上0.0.0.0
,將網路介面設定為混雜模式並檢查。