Networking
iperf3 UDP 不可靠,iptables 隨機丟棄
我正在使用 2 個 Ubuntu 18.04 主機之間的 UDP 連接使用 iperf3 在我的網路上執行一些本地測試。但似乎 UDP iperf3 連接不支持 0.1 的隨機丟包?執行 iperf3 測試時,伺服器掛起(我需要重新啟動伺服器以允許再次連接)並且我看到此錯誤:
在伺服器上:
iperf3:客戶端意外關閉了連接
在客戶端:
錯誤 - 無法寫入流套接字:不允許操作
為了在我的網路上模擬/測試一個壞跳,我使用 iptables 使用這個命令生成隨機數據包丟棄(在主機 A 上執行):
sudo iptables -A OUTPUT -p udp -d HOSTB -m statistic --mode random --probability 0.01 -j DROP
而在主機A上執行的iperf3:
iperf3 --version4 --udp --client 10.0.3.10 --port 4000 --bind 10.0.1.10 --cport 12346 --json --zerocopy --verbose --bandwidth 300M --debug
在主機 B 我正在使用:
iperf3 --verbose --server --port 4000 --version4 --debug
就文件而言,iperf3 可以在非常糟糕的網路上工作,這裡會發生什麼?
通過@Appleoddity 的有用評論,我發現了我現在認為錯誤所在的位置。在輸出端丟棄數據包可能會在應用程序級別觸發錯誤,而不僅僅是模擬嘈雜的通道。
通過針對主機 B 上的輸入執行 iptables drop,問題就消失了:
sudo iptables -A INPUT -p udp -s 10.0.1.10 -m statistic –mode random –probability 0.1 -j DROP