Назад | Перейти на главную страницу

iperf3 UDP ненадежен с случайным падением iptables

Я выполняю локальный тест в своей сети с iperf3, используя UDP-соединения между двумя хостами Ubuntu 18.04. Но кажется, что 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

И iperf3 выполняется на хосте A:

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 я нашел, где Я теперь думаю ошибка была. Отбрасывание пакетов на выходе может вызвать ошибки на уровне приложения, а не только имитировать шумный канал.

Запустив iptables drop против входа на хосте B, проблема исчезла:

sudo iptables -A INPUT -p udp -s 10.0.1.10 -m statistic --mode random --probability 0.1 -j DROP