Мультикаст днс \ обнаружение сервиса через роутер
Я использую mDNSResponder от Apple. Работает в единой сети. Есть ли способ заставить его работать, даже если есть роутер между компьютером, который просматривает сервисы, и компьютером, который является поставщиком услуг?
Я плохо разбираюсь в сетях, но мне кажется, что обычно многоадресные пакеты не проходят через маршрутизатор.
Итак, я имею в виду два возможных варианта:
- В каком-то сетевом протоколе может быть какой-то ключ, который заставляет маршрутизатор ретранслировать многоадресный пакет в другую сеть.
- Для этого на роутере можно установить программу (если нет, то можно ли ее написать?).
1 ответ
Есть методы для многоадресной маршрутизации, да. В настоящее время предпочтительным протоколом является PIM, который заменяет старый DVMRP. Это даже поддерживается в различных академических сетях, таких как GÉANT. (Например, вот статья о многоадресной рассылке через CUDN.)
(Я тоже не пробовал; маршрутизаторам в сетях, которыми я управляю, не хватает поддержки.)
Кроме того, есть IGMP-прокси. Он более широко поддерживается и проще в настройке... Но, с другой стороны, он направленный (вероятно, предназначен для использования с IPTV) - вместо правильной маршрутизации вы должны настроить один сетевой интерфейс как "восходящий" (источник многоадресной рассылки). данные), а остальные как "вниз по течению" (пассивные получатели).
Таким образом, это может работать для одноранговых сценариев, таких как mDNS, но я бы не стал тратить время впустую.
Кроме того, некоторые реализации mDNS используют TTL=1, поэтому маршрутизаторы в любом случае откажутся от этого. (Это проблема как с маршрутизацией, так и с IGMP-прокси.)
Таким образом, ваш третий вариант - прокси mDNS. Если роутер работает под управлением Linux с Avahi, вы можете найти параметры "отражателя" в avahi-daemon.conf
:
[reflector]
enable-reflector=yes