Как имитировать потерю пакетов в соединении ssh с помощью scp

Как имитировать потерю пакетов в соединении ssh с помощью scp

Мне бы хотелось оценить надежность нового туннельного протокола VPN под названием wireGuard в нестабильной сетевой среде на платформах macOS и Linux при передаче большого объема данных с одного узла на другой.

Обратите внимание, что wireGuard работает по протоколу UDP, и мне хотелось бы узнать, как он справляется с потерей пакетов.

Есть ли способ настроить сетевой интерфейс на отбрасывание некоторого процента пакетов во время сеанса удаленного копирования?

решение1

Для Linux с iptables, что-то вроде этого:

iptables -A OUTPUT -m statistic --mode random --probability 0.02 -j DROP

или

iptables -A INPUT -m statistic --mode random --probability 0.02 -j DROP

Примечания:

  • Вышеуказанные команды влияют на все пакеты, обработанные OUTPUT(или INPUTсоответственно) цепочкой таблицы filter. Вероятно, вы захотите использовать -p(протокол) и, например, --dport(порт назначения) для нацеливания только на определенные соединения:

    iptables -A OUTPUT -p udp --dport 1234 -m …
    
  • При тестировании различных вариантов не забывайте удалять ненужные правила, а не накладывать их друг на друга. Чтобы удалить правило, вызовите ту же iptables …команду, но -Dвместо -A.


Я не знаю nftablesдостаточно хорошо. Я нашел это:Как отбрасывать пакеты на основе вероятности nftables?


Я не знаю macOSсовсем. В своих исследованиях я столкнулся pfctlс dnctl. Я нашел это для OSX:Как отбрасывать пакеты случайным образом. Я совершенно не знаю, dnctlможно ли использовать в macOS то, что указано в ответе. Извините.

Переношу «часть macOS» в отдельный вопрос (который, как я полагаю, можно задать наapple.stackexchange.com), хотя оставить здесь только «часть Linux» может быть хорошей стратегией.

Связанный контент