Назад | Перейти на главную страницу

Эмулятор сети и хоста с открытым исходным кодом

Мне интересно, существует ли вообще следующий продукт. Вот мой список желаний:

Загрузочный компакт-диск с простой конфигурацией (XML, YAML), позволяющий запускать несколько виртуальных хостов, каждый со своим собственным IP-адресом и базовыми службами, такими как HTTP или SMTP. Для этого не требуется ничего, кроме ответа сервера (с данными по умолчанию или HELO) на запрос порта.

Пример конфигурации:

<host>
  <name>alpha</name>
  <ip>192.168.1.1</ip> 
  <service>smtp</service>
</host>
<host>
  <name>bravo</name>
  <ip>192.168.1.2</ip> 
  <service>
    <protocol>http</protocol>
    <port>8080</port>
  </service>
</host>
<host>
  <name>charlie</name>
  <ip>192.168.1.2</ip> 
  <service>http</service> 
  <service>smtp</service>  
</host>

Эта проблема

Я хотел бы имитировать сеть среднего размера (30 хостов) для тестирования брандмауэра и правил маршрутизации перед развертыванием в реальной среде. Меня не волнует пропускная способность сети, я просто забочусь о том, чтобы при входе в один интерфейс я был защищен брандмауэром и правильно маршрутизировался.

Я мог бы решить эту проблему с помощью VMware (или какой-либо другой платформы виртуализации), но мне кажется, что она тяжелее, чем мне нужно.

я использую GNS3 для подобных вещей. Это настольное приложение, в отличие от автономной среды на собственном загрузочном носителе, но оно делает в значительной степени то, о чем вы просите. Он очень популярен среди сетевых специалистов, поскольку может эмулировать некоторое оборудование Cisco и Juniper (вы предоставляете образы ОС), но он также связан с QEMU и VirtualBox, так что вы также можете работать с хостами Windows или Linux.

Производительность далека от реального оборудования, но оно было разработано для использования в лаборатории, а не в производстве. Это неплохо, если вы не переборщите с огромными образами системы; IOS 12.2 только IP-образы и Micro Core Linux имеют небольшие следы памяти и отлично подходят для этого.

В зависимости от того, насколько виртуальным вы хотите получить, вы можете получить это с помощью Linux VServer. Возможно, лучше было бы посмотреть на Vagrant с Chef / Puppet. Или Xen с ролевым скриптом, который может делать что-то на основе одного из этих <host> элементы?

Но я ничего не знаю, чтобы делать это из коробки. :-(