0

我们正在尝试在我们的校园无线网络上启用许多 mDNS 广告服务,最显着的是 airplay。在我们的例子中,airServers 将位于我们的有线网络上,因此我们需要在无线端使用 DNS-SD 或 mDNS 手动通告服务。我们已经在 avahi 中使用静态服务广告来实现这一点,它非常流畅,但我们遇到了扩展问题。

我们在校园内的各种教室中可能有 150 台 AirServer 主机。如果我们要启用所有这些,那么在 iPad 上可供选择的列表将非常大(更不用说当教员忘记更改密码时,学生们非常喜欢从校园内接管 AirServer)。

我们想要做的是在每个建筑物的单个 vlan 上隔离我们的无线网络,以形成 27 个 mDNS 段,然后运行 ​​avahi 以通告每个段中的服务,最好是在可以访问所有段的单个多宿主主机上.

我希望 avahi-daemon 会在 avahi-daemon.conf 中获取一个指向唯一服务目录的参数,这样我就可以拥有多个配置文件,每个配置文件都有不同的 allow-interfaces 子句和指向不同服务的指针目录,但这似乎不是一个可配置的选项。

我正在考虑 chroot 监禁多个 avahi 副本,但这似乎真的很笨拙。

我是否错过了一些更明显的策略来处理这个而不创建 27 个单独的主机?

非常感谢!

京东

4

1 回答 1

0

如果您构建自己的应用程序以在您想要的接口中发布服务,则可以实现您想要的。此方法调用来自GNUStep “基础”框架、类GSAvahiNetServices(可在 Linux 上使用),该方法基于 Avahi API。

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

如您所见,可以指定要发布服务的网络接口索引。您还可以限制协议(IPv4 或 IPv6)。如果您希望一项服务在多个界面中可用,只需在每个界面中发布即可。

于 2013-08-09T23:41:47.940 回答