Я разрабатываю "встроенное устройство", используя самодельную ОСРВ, которая должна быть подключена к произвольным сетям IPv4 клиента. Давайте назовем это встроенное устройство "мастер". В дополнение к сетевому адаптеру, подключенному к сети клиента, "мастер" также подключается к другой сети, состоящей из сотен (!) сетевых узлов. Давайте назовем эти узлы "рабами". Эта дополнительная сеть представляет собой систему промышленных полевых шин реального времени, но ради этого обсуждения следует рассмотреть ее как еще одну IP-сеть. Давайте назовем эту сеть "полевой автобус".
Дело в том, что каждый "ведомый" предоставляет сетевые сервисы, которые должны быть доступны "клиентам" локальной сети и WLAN в сети заказчика (Windows, Linux, iOS, Android и т.д.). Например, должна быть возможность открыть браузер на любом "клиенте" и указать его на конкретном "ведомом". В лучшем случае, сервисы произвольных сетей должны быть доступны, но в качестве абсолютного минимума мне нужны HTTP (S) и Websockets.
Важным ограничением является то, что все должно работать "из коробки" без необходимости перенастраивать существующую сетевую инфраструктуру, особенно не маршрутизатор (поскольку это часто нелегко сделать из-за ограничений ИТ). Хорошо, что я практически полностью свободен, что можно реализовать на "хозяине" и "рабе".
Назначение уникального IP-адреса каждому "ведомому" представляется естественным способом достижения этого. Но поскольку системе "полевая шина" нужны сотни IP-адресов, по одному для каждого "ведомого", я утверждаю, что должен создать отдельную подсеть для "ведомых", поскольку существующая локальная сеть может не предоставлять достаточно свободных IP-адресов для всех "ведомых" , Помещение "ведомых" в отдельную подсеть создает следующую проблему: эта подсеть не будет доступна "клиентам" без перенастройки ИТ-инфраструктуры (поскольку ни маршрутизатор, ни "клиенты" не имеют маршрутов, определенных для этой подсети). Чтобы обойти эту проблему, я знаю только одно решение - "Переадресация портов" (http://en.wikipedia.org/wiki/Port_forwarding): тратить один (Tcp) порт на "master" для каждой службы и "slave" , Хотя это не разрешает произвольную сетевую связь между "клиентами" и "ведомыми", как желательно в лучшем случае, это по крайней мере позволяет получить доступ к выделенным службам, таким как HTTP (S) и Websockets.
Как будет выглядеть ваше решение этой проблемы? (Примечание: этот вопрос конкретно о сетях IPv4)