Сначала немного фона. У меня на каждом из компьютеров в локальной сети установлен агент клиента .net. Они также взаимодействуют с моим центральным сервером [веб-сайтом] на той же локальной сети.
Для моего сайта важно выяснить, какие из машин могут общаться друг с другом. Например, машины одной подсети не могут напрямую общаться с машинами другой подсети без настройки маршрутизаторов и тому подобного. Но машины в одной подсети должны иметь возможность общаться друг с другом напрямую.
Проблема, с которой я сталкиваюсь, заключается в том, что настройка локальной сети такая же, как на рисунке 1.
Рисунок 1 http://www.freeimagehosting.net/uploads/3105becc0a.png
Поскольку Comp1, Comp2 и Comp3 находятся за маршрутизатором, они получили IP-адрес с 192.168.1.2 до 192.168.1.4. Мой клиентский агент на этих машинах сообщает тот же IP-адрес обратно на сервер. Тем не менее, машины Comp4, Comp5 также имеют такие же ipaddresses.
Таким образом, что касается моего сервера, есть 2 машины с одинаковым IP-адресом. Не только потому, что маска подсети для всех машин равна 255.255.255.0, но мой сервер одурачен тем, что Comp1 может напрямую общаться с Comp5, что невозможно.
Итак, как мне это решить? Что мне нужно изменить в моем клиенте или на моем сервере, чтобы я мог поддержать этот сценарий. Эти два - единственные вещи, которые находятся под моим контролем.