сетевой тренажер


Мне нужно построить эмулятор устройства, который может обмениваться данными по реальному IP-адресу

Мне нужно создать как можно больше экземпляров для устройства. С одним IP и MAC-адресом для каждого экземпляра эмулятора

Может ли кто-нибудь указать мне, как этого можно достичь?

9 14

9 ответов:

Пять или шесть лет назад я застрял в написании слоя сетевой эмуляции для игры PS2. Мне сказали, что все классическое поведение интернет-соединения должно быть отображено; реалистичные характеристики потерь, переупорядочивание пакетов, задержка, вызванная потоком потеря пакетов. По сути, мне было сказано внедрить интернет за пару недель.

Я предложил просто отскакивать весь наш игровой трафик с удаленного сервера Эхо. Когда мне сказали, что посылать разработки категорически запрещено я просто создал сервер, на который все указывали свои PS2 devkits, чтобы хранить каждый полученный пакет и отправлять doppleganger (полный id для исходного пакета плюс куча случайного мусора, чтобы сделать его одинаковым размером) на Эхо-серверы, которые я запустил. Когда доппельгангер будет получен, я передам исходный пакет его первоначальному адресату.

Бум. Интернет-моделирование со всеми шипами менее чем за 8 часы.

Обновление:

Учитывая успех ответа здесь, я некоторое время назад переосмыслил игру echo service. Казалось, что github может быть лучшим местом, чтобы спрятать его, так что Вот он : если он работает для вас, отлично! Если нет, дайте мне знать. Я ожидаю, что его нынешнее состояние будет в лучшем случае шатким.

Добавьте диапазон виртуальных IP-адресов в Windows

Смотрите 21 февраля 2006 года, 1:18 pm post reply by gil.элессар

.

Для справки:

Команды Netsh для интерфейса IP

Команды Netsh

Команды в контексте IP интерфейса Netsh можно использовать для настройки протокола TCP/IP (включая адреса, шлюзы по умолчанию, DNS-серверы и WINS-серверы), а также для отображения конфигурации и статистических данных. информация.

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

Он очень легкий, в процессоре и памяти. Например, я использую более 10 UML одновременно на" не слишком недавнем " ПК, используяNetkit , Сетевой симулятор, основанный на UML. UML легкий, потому что это нативное приложение, а не тяжелый виртуализация (vmware, virtualbox, qemu) ни пара-виртуализация (xen).

Поскольку сетевые интерфейсы реализованы для подключения к другим машинам UML (с помощью uml_switch), вы можете иметь любой MAC-адрес, который хотите. Если вам нужно подключить эти UML-машины к вашей системе или внешним хостам, вы можете создать виртуальные устройства с помощью TUN/TAP.

PS: Если вы на Windows, вы можете попробовать CoLinix , порт ядра Linux для M$ OS, я не знаю, есть ли у него такой же характеристики, чем UML.

Можно попробовать использовать адаптеры обратной связи. С его помощью вы можете установить любой IP или mac-адрес. Отлично подходит для эмуляции различных сетевых соединений.

Вам нужно глубоко изучить уровень канала передачи данных в части кодирования - тогда вы можете понять, как он получает mac-адрес и связь b/w mac и ip

В зависимости от того, какое устройство вам нужно, вы можете быть довольны рядом движков виртуальных ПК, накладные расходы высоки (весь компьютер эмулируется, а не только сетевой интерфейс), поэтому вы не получите 1000 машин, но это "из коробки" решение - и каждый виртуальный компьютер может иметь несколько виртуальных сетевых карт.

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

Недостатком является то, что такие устройства довольно дороги.

Cisco pakcet tracer позволяет эмулировать сетевой трафик с помощью графического интерфейса. Im превзошел никто не упомянул, что (его ограничивают устройствами cisco, но стандарт одинаков на всех устройствах, поэтому он будет изучать команды для вашего конкретного устройства).

Попробуйте поискать в google, потому что в обычных условиях он доступен только студентам ccna, но я сохранил копию, потому что мой учитель разрешил мне.

Или вы можете найти кого-то, кто разместил копию из своего класса где-то в интернете.