LINUX.ORG.RU

Тестирование сети, UPnP, Hole Punching виртуально, без оборудования.

 , ,


0

1

Приветствую, господа и дамы.

В общем столкнулся с проблемой тестирования приложения, которое должно пробивать дыры в NAT посредством UPnP или UDP hole punching. Есть ли какая-то практика поднять виртуальную разветвлённую сеть, чтобы приложение схавало её как живую, без реальной сети? Роутеры и всё такое. В идеале, чтобы и потеря UPD пакетов бала какая-нибудь.

Или я многого хочу? Как вообще это делается, если кто сталкивался.

P.S.: Собственно потерю пакетов наверное можно через прокси-приложение организовать. Собственно любое небольшое сетевое приложения я могу накидать по быстрому, если это поможет.

P.P.S.: Логика того приложения проста: проверка всех сетевых устройств, если IP внешний, то используется он, если 192.168.* то пробуется UPnP, если не вариант, то пробивается UDP-дыра и приложение использует UDP (т.е. HTTPU). На данный момент у меня роутер с поддержкой UPnP и тестирую я его через удалённый SOCKS5 прокси обратно к себе на комп через ещё один UPnP порт.

★★

Последнее исправление: kostyarin_ (всего исправлений: 3)

Можно сделать внутри виртуальной сетки kvm (Для симуляции потери пакетов можно использовать tc).

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

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

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

Потерю пакетов можно симулировать с заданным распределением с помощью tc netem.

Конкретно с nat traversal я не сталкивался, но, говорят, что gns3 и подобные могут эмулировать чито угодно в промышленных масштабах.

На колене, это можно сделать на сетевых мостах и обычных виртуалках (чуть менее чем любых имхо), но любви придётся много поиметь.

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

ns3 это вроде совсем хардкор - полностью эмуляция физической среды и квантов времени. Для твоей задачи скорее всего подойдут просто network namespaces + linux bridge + tc. Посмотри mininet - его для тестирования sdn контроллеров используют.

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