Моделирование сети до определенного процесса - PullRequest
3 голосов
/ 28 августа 2009

Я пытаюсь смоделировать сценарий, в котором соединение с сервером одного процесса не работает, а соединение с другим сервером установлено. В моем случае простое подключение сетевого кабеля не сработает, так как мне нужно другое подключение к процессу, чтобы оставаться на связи.

Есть ли какой-нибудь инструмент для такой работы? Я на Windows. Спасибо!

Ответы [ 3 ]

3 голосов
/ 28 августа 2009

Есть несколько слоев, на которых вы можете смоделировать это. Проще всего было бы, если бы два ваших сервера прослушивали два разных TCP-порта. В этом случае вы можете запустить два прокси-сервера tcp и остановить / приостановить один, когда вы хотите симулировать сбой. Для Windows я бы предложил использовать tcpTrace для этого.

Другой вариант - привязать два сервера к двум виртуальным сетевым картам, которые соединены с физическим сетевым адаптером. Конечно, если у вас есть две физические NIC, вы можете привязать каждый процесс сервера к отдельной физической NIC.

На более низком уровне вы можете запустить симулятор WAN. Большинство симуляторов позволяют ослаблять определенные типы трафика или определенные порты. Одним из таких симуляторов является Packetstorm .

Еще один метод, который я бы предложил, это присоединить отладчик к одному процессу и остановить все потоки в процессе с помощью отладчика. Часто процесс не умирает, но застревает в сборке мусора или в цикле. Поскольку сокеты не закрываются, многие решения «высокой доступности» не будут автоматически переключаться при сбое.

2 голосов
/ 28 августа 2009

Одним из подходов будет макет соответствующего кода сетевого подключения для целей тестирования. В этом случае вы, вероятно, захотите издеваться над ним, возвращая все, что обычно бывает, если соединение не работает.

0 голосов
/ 18 декабря 2016

Подход бедняка, если вы можете использовать режим сна / гибернации на своей машине:

  • Установите исходящее правило в брандмауэре Windows, чтобы запретить подключение для определенной программы.
  • Уже подключенные розетки остаются подключенными: переведите аппарат в режим сна / гибернации на короткое время, чтобы принудительно отключить эти розетки.
  • Когда система восстанавливается, программа не может установить новые соединения.
  • Новые подключения становятся возможными, как только вы отключите правило брандмауэра.

Обратите внимание, что он не симулирует перебои в работе сети, потому что каждое соединение сразу прерывается с ошибкой разрешения. Но это мешает процессу установить соединения.

...