Я не могу выполнить обнаружение wcf через сетевой маршрутизатор.
У меня есть клиентское и серверное приложение. При развертывании этих двух приложений на любых двух компьютерах в одной и той же сети он работает отлично. Клиентское приложение находит серверное приложение и начинает связь. Когда я перемещаю клиента в другую сеть, отделенную маршрутизатором, он не может найти сервер.
Маршрутизатор - Cisco Catalyst 3750. У меня есть полное разрешение на изменение настроек, но я не уверен, какие настройки применяются к пакетам обнаружения wcf.
Моя цель - изменить конфигурацию маршрутизатора так, чтобы пакет обнаружения wcf, который транслируется по локальной сети клиента, ретранслировался через маршрутизатор в локальную сеть сервера.
Можете ли вы привести примеры выполнения обнаружения wcf через роутер? Знаете ли вы, какие настройки роутера мне следует искать?
Нам удалось заставить обнаружение WCF работать в сетях. По сути, нам пришлось увеличить TimeToLive в WCF до значения, превышающего значение по умолчанию 1. Вот более подробное объяснение от нашего сетевого консультанта:
Стандартный TTL для пакетов WS-Discovery из WCF равен 1. При увеличении этого числа и включении разреженно-плотного PIM на правильных SVI на коммутаторе уровня 3, настроенном как RP, многоадресная маршрутизация позволяет протоколу WS-Discovery. для прохождения нескольких подсетей на более крупном уровне предприятия. Это НЕ будет работать через NAT, брандмауэр и т. Д. - оно будет работать только между фактическими маршрутизируемыми подсетями (хотя оно должно работать через зашифрованный IPsec VTI с правильно настроенными протоколами IP и многоадресной маршрутизации).
После долгих исследований я решил, что это либо невозможно, либо, по крайней мере, совершенно непрактично. Согласно определениям сети, широковещательная передача UDP через маршрутизатор не принесет значимого результата.
Например, предположим, что я могу заставить маршрутизатор ретранслировать сообщение во все другие подсети. Я мог бы предположительно получить результаты из 10.0.1.5 в одной подсети (давайте назовем этот ПК1) и 10.0.1.5 в другой подсети (ПК2). Технология TCP / IP не позволяет их различать. Кроме того, было бы глупо пытаться открыть канал для 10.0.1.5, а другой канал для 10.0.1.5. Итак, хотя я знаю, что получу уникальные результаты на основе топологии моей сети, маршрутизатор не сможет это доказать.
Что еще хуже, роутер фактически скрывает от меня IP-адреса PC1 и PC2. Это делается с помощью технологии NAT (трансляция сетевых адресов). Возможно, мне придется обратиться к 10.3.3.64, чтобы подключиться к ПК1, и к 10.3.4.64, чтобы достичь ПК2. Опять же, моя топология не приводит к этим непонятным числам, они достаточно уникальны и предсказуемы, но система не может этого доказать.
Вывод: решил построить «трекер». Так работают P2P сети. Все компьютеры будут сообщать известному трекеру, и клиенты будут запрашивать у трекера адреса нужных им серверов.