
Мне бы хотелось оценить надежность нового туннельного протокола 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» может быть хорошей стратегией.