Networking

iperf3 UDP 不可靠,iptables 隨機丟棄

  • August 20, 2018

我正在使用 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

引用自:https://serverfault.com/questions/926900