LINUX.ORG.RU
ФорумAdmin

Как отключить доступ к сети для теста?

 ,


1

2

Всем привет. Пишу небольшую научную статью, для нее разработал простенькую программу, которая делает обработку на нескольких машинах, потом сливает все вместе. Сейчас мне потребовалось в ходе теста устроить локальную проблему: нужно отключить сеть и посмотреть на поведение программы (отключать нужно часто). В контейнер ее не положить, виртуалка тоже не вариант. Отключить адаптер тоже - я это проверяю и уже исследовал. Нужно именно устроить черную дыру для всех пакетов определенного интерфейса. Я пока склоняюсь к варианту iptables и, возможно, route … reject. Но может есть что-то попроще? Например, sysctl может что-то универсальное имеет или же может вообще без вмешательства в систему? Был бы очень признателен за идею.

REJECT это именно что REJECT, с отлупом, тебе нужна iptables policy DROP. Та самая «чёрная дыра» в которой исчезают пакеты, без какой либо «обратной связи».

Jameson ★★★★★
()
Последнее исправление: Jameson (всего исправлений: 2)

Я пока склоняюсь к варианту iptables и, возможно, route … reject. Но может есть что-то попроще?

Это одна простая команда, ты бы быстрее ее выполнил и все протестировал, чем бы писал этот пост. Резать пакеты фаерволом - самое прямое решение.

goingUp ★★★★★
()

Проще фаерволла ничего нет. Но можно же запихать программу в отдельный network namespace и там вдоволь ломать-чинить сеть, не влияя на работу остальной системы.

thesis ★★★★★
()
Последнее исправление: thesis (всего исправлений: 1)
Ответ на: комментарий от router

В топике:
нужно отключить сеть

Вы:
задержка пакетов, джиттер
потери пакетов
повреждения пакетов
дублирование пакетов
переупорядочивание пакетов

КМК это разные вещи.

anc ★★★★★
()
Ответ на: комментарий от anc

В топике: нужно отключить сеть

А вы его внимательно читали? ;)

Отключить адаптер тоже - я это проверяю и уже исследовал. Нужно именно устроить черную дыру для всех пакетов определенного интерфейса

Дроп 100% пакетов вполне решает эту задачу, ИМХО

router ★★★★★
()

«отключение от сети» это слишком ниочемное название. Существует много разновидностей отказа сети. вы определитесь сначало какой отказ вы хотите имитировать. А еще лучше почитайте что нибудь на тему разработки сетевых приложений, где уже все расписано вплоть до готового кода можно найти. Так же, работа с сетью в том числе и обработка отказов уже входит в состав стандартных библиотек, и зачастую изобретать велосипед не имеет смысла.

antech
()