Мы изучаем способы создания сервера сетевых эффектов. Под этим я подразумеваю центральный сервер, который будет проверять все пакеты в сети и применять логику (drop, delay, alter и т. Д.) На основе факторов, внешних по отношению к реальной сети, таких как погода и прямая видимость.Можете ли вы использовать ARP-Отравление (спуфинг) для применения имитируемых внешних эффектов?
Это все, что связано с запуском симуляции нескольких объектов реального мира: физический узел в сети будет представлять собой 3D-движущийся объект в 3D-виртуальном мире. Как я уже упоминал, эффекты будут вычисляться по прямой видимости, расстоянию, помехам и т. Д. Между «виртуальным положением» узлов.
Мне известны другие инструменты, которые позволяют делать такие эффекты (например, OPNET, которые мы можем использовать как часть решения), но они обычно требуют, чтобы вы направили данные непосредственно к ним для обработки. Они также не обрабатывают UDP или TCP.
Мне нужен способ прозрачного запуска нашего сервера и применения эффектов без изменения какого-либо существующего программного обеспечения (а некоторые не могут быть изменены в любом случае) для UDP и TCP.
В связи с этим мы думали использовать ARP-отравление (или спуфинг, в зависимости от того, что вы предпочитаете его называть), чтобы заставить весь трафик через один (или потенциально несколько для балансировки нагрузки) этих серверов выполнять формирование пакета.
Возможно ли это? (Не хотите тратить недели разработки, прежде чем понял, что существует слишком много препятствий, или что это утончается невозможно)
Если это возможно, является RFC826 (плюс 5227 и 5494) последний документ на ARP? Есть ли лучший документ?
Будет ли это работать, если некоторые из узлов сети являются виртуальными машинами (они могут быть мостом или NAT'ed)?
Есть ли библиотеки, которые позволяют делать это на C#?
(Мы открыты для языка, который мы используем, но, вероятно, предпочитают C# или решения Qt на основе)
Мы управляем маршрутизатором (и всей сетью - это в нашей собственной лаборатории), так что это должно быть возможно. –