LINUX.ORG.RU

имитировать физический обрыв связи

 


0

1

привет!

есть некоторые процессы, запущенные на одной физической машине, и общающиеся по TCP.

был замечен странный баг, который, для попытки(!!!) воспроизведения требует физического отключения сети(ну, т.е., чтоб вообще ничего не ходило).

вопрос в том, как имитировать физический обрыв связи в пределаз одной машины?

спасибо.

зы

разнести процессы на разные машины - не проблема, но баг воспроизводится только на этой машине.

★★★

положить интерфейс, не?

anonymous ()

ifdown eth0 && sleep 10 && ifup eth0 в tmux или через nohup, как самый простой вариант.

Deleted ()
Ответ на: комментарий от Harald

похоже - то, что надо. вот только совсем положить интерфейс нельзя, инструменты(ну, те, через которые наблюдаю) отвалятся...

а можно как-то это же проделать, но только для конкретного соединения?

niXman ★★★ ()

Я не уверен прямо насчёт обрыва, но потерю пакетов умеет netem.

В принципе, там можно было процентное соотношение задать, так что видимо достаточно сэмулировать 100% потерю пакетов?:)

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

По идее, можно сделать bridge. И пустить нужную софтину через bridge а инструменты наблюдения через настоящий интерфейс.

А всякие netem или просто отрубания интерфейсов можно делать с мостом.

pon4ik ★★★★★ ()

вот только совсем положить интерфейс нельзя, инструменты(ну, те, через которые наблюдаю) отвалятся

Меняешь дефолт роут на некорректный. Я так например fallback к локальным файлам в приложении тестировал. Ведь нету интернета, и рабочий dns и запрос на который не приходит ответ это совсем разные вещи. Можно например сделать так, что fallback будет работать без интернета, но когда просто request'ы отваливаются, по факту он не будет работать.

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

Оборвать определенное TCP соединение?

Если есть iptables с фильтрацией по состоянию соединения (--state ESTABLISHED) и net.netfilter.nf_conntrack_tcp_loose = 0, то достаточно через «conntack -D» грохнуть соединение.

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

Глянь его адреса и порты и добавь соответствующее правило для iptables.

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