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
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.