Как стать автором
Обновить

Комментарии 17

Очень крутой тул! Может быть кто-то в курсе, нет ли чего-то подобного под windows?
Вчера отлаживал сетевое взаимодействие клиента с сервисом, ничего умнее чем выключение сетевого подключения (пардон за тавтологию) в голову не пришло. Довольно муторно и неудобно.

Почему не использовать для раздачи сети виртуальную с линуксом и использовать эту статью?

Как вариант. Правда разворачивать винду с средствами разработки в виртуалке довольно трудозатратно

Я не это имел в виду. У вас есть хост с Windows, на нем среды разработки и приложения. И есть виртуальная с Linux server, которая через виртуальные адаптеры создаёт есть и через неё приложения общаются. На ней и делайте конфигурацию сети, задержки. Что то вроде виртуального роутера.

Под Windows можно использовать Clumsy. Она сильно проще, но основные сценарии покроет.

Не всегда удобно то что все эти команды требуют root превилегий… Но в целом — добротный материал для организации тестирования. Даже задумался над тем что бы поиграться с такими тестами в своих pet-проектах…

Контейнеры вам в руки, подман без рута вам поднимет контейнер, в котором вы будете рутом.

Только в использовании iptables внутри Docker-контейнеров есть небольшой нюанс.
А вы не пользуйтесь докером, берите подман и без привелигерованного режима для slirp4ns юзайте iptables.
Проще уж в уже поднятый контейнер прокидывать вольюмами обновленные коды и тесты, и там пускать сборку и тесты под рутом. Но это лишний слой абстакции — когда в IDE правишь код и тесты, то запустить тесты (не под рутом) — один клик в IDE… Хотя… на этот клик можно накрутить и тесты в контейнере.
Надо будет попробовать.

iptables -A INPUT -m statistic --probability 0.05 -j DROP забыли.
Для очень простых случаев подходит лучше чем городить tc/netem.

Спасибо за наводку! Прикреплю тогда здесь полное описание этого экстеншна:
statistic
This module matches packets based on some statistic condition. It supports two distinct modes settable with the --mode option.
Supported options:

--mode mode
Set the matching mode of the matching rule, supported modes are random and nth.
[!] --probability p
Set the probability for a packet to be randomly matched. It only works with the random mode. p must be within 0.0 and 1.0. The supported granularity is in 1/2147483648th increments.
[!] --every n
Match one packet every nth packet. It works only with the nth mode (see also the --packet option).
--packet p
Set the initial counter value (0 <= p <= n-1, default 0) for the nth mode.

Есть еще простая утилита-обертка wondershaper для ограничения полосы.

Интересно, есть ли java-обертки или решения подобные данному инструменту в виде open-source Java библиотек?
Альтернатива для распределённых систем — Wanem.
В двух словах, это гейтвей, который позволяет регулировать свойства канала для всех соединений через него.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации