LINUX.ORG.RU
Форум — Admin  

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

 ,


1

2

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

Кабель выдерни, выруби роутер…

Zhbert ★★★★★
()

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

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

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

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

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

Согласен, но решил спросить - мало ли есть еще варианты о которых не знаю.

ahnenerbe
() автор топика

В контейнер ее не положить

Почему?

nspawn + veth тебя спасёт.

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

«Выдернуть шнур, выдавить стекло»

«В случае ABEND разбить стекло молотком».

Jameson ★★★★★
()

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

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

Чтобы как минимум не зависало в случае если очередной блок данных не был получен за определенное время.

ahnenerbe
() автор топика

Отключать сеть только для этого приложения?

Так то можно средствами DE просто нажать «Выключить».

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

очевидно, проблема XY
это всё же не так делается. А именно задерживанием «блока данных».

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

ссылка, хабр

tc, модуль sch_netem

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

всё через tc

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

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

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

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

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

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

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

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

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

router ★★★★★
()

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

antech ★
()
Вы не можете добавлять комментарии в эту тему: топик перемещен в архив.