avahi Отдельные домены mDNS с одного многосетевого хоста

Мы пытаемся включить ряд рекламируемых услуг mDNS в нашей беспроводной сети на территории кампуса, в первую очередь, трансляцию. В нашем случае airServer будет находиться в нашей проводной сети, поэтому нам нужно вручную рекламировать службы с помощью DNS-SD или mDNS на беспроводной стороне. Мы добились этого, используя статическую рекламу услуг в avahi, и это довольно гладко, но у нас есть проблема с масштабированием.

У нас есть потенциально 150 хостов AirServer в различных классах по всему кампусу. Если бы мы включили их все, список для выбора на iPad был бы невероятно большим (не говоря уже о том, что студенты получают огромное удовольствие от захвата AirServer через весь кампус, когда преподаватель забывает сменить пароль).

Что мы хотели бы сделать, так это разделить нашу беспроводную сеть на один влан для каждого здания, чтобы сформировать 27 сегментов mDNS, а затем запустить avahi для рекламы услуг в каждом сегменте, предпочтительно на одном многосетевом хосте с доступом ко всем сегментам. .

Я надеялся, что avahi-daemon возьмет в avahi-daemon.conf параметр, указывающий на уникальный каталог сервисов, чтобы у меня было несколько конфигурационных файлов, каждый с другим разделом allow-interfaces и указателем на разные сервисы. каталог, но это не настраиваемый параметр.

Я думал о chroot-окружении нескольких копий avahi, но это кажется очень неуклюжим.

Я упустил какую-то более очевидную стратегию, чтобы справиться с этим без создания 27 отдельных хостов?

Спасибо большое!

JD


person Wiley    schedule 15.07.2013    source источник


Ответы (1)


Можно добиться того, чего вы хотите, если вы создадите собственное приложение для публикации сервисов в нужных вам интерфейсах. Этот метод вызывается из GNUStep "базовой" среды, класс GSAvahiNetServices (может использоваться в Linux), и метод основан на Аваи API.

- (id) initWithDomain: (NSString*)domain
                 type: (NSString*)type
                 name: (NSString*)name
                 port: (NSInteger)port
         avahiIfIndex: (AvahiIfIndex)anIfIndex
        avahiProtocol: (AvahiProtocol)aProtocol

Как видите, можно указать индекс сетевого интерфейса, на котором вы хотите опубликовать сервис. Вы также можете ограничить протокол (IPv4 или IPv6). Если вы хотите, чтобы одна служба была доступна более чем в одном интерфейсе, просто опубликуйте ее в каждом интерфейсе.

person slgramacho    schedule 09.08.2013