我们正在尝试在我们的校园无线网络上启用一些mDNS广告服务,最明显的是airplay。在我们的例子中,airServers将位于我们的有线网络上,因此我们需要在无线端使用DNS-SD或mDNS手动通告服务。我们已经在avahi中使用静态服务广告实现了这一点,它非常灵活,但我们有一个可伸缩性的问题。
我们可能有150个AirServer主机分布在校园内的各种教室中。如果我们启用所有这些功能,iPads上的可供选择的列表将会非常大(更不用说当一个教员忘记更改密码时,学生们非常喜欢从校园的另一边接管AirServer )。
我们要做的是在每个建筑物的单个虚拟局域网基础上隔离我们的无线网络,形成27个mDNS网段,然后运行avahi来通告每个网段中的服务,最好是在可以访问所有网段的单个多宿主主机上。
我希望avahi-daemon能在avahi-daemon.conf中带一个指向唯一服务目录的参数,这样我就可以有多个配置文件,每个配置文件都有一个不同的allow-interface子句和一个指向不同服务目录的指针,但这似乎不是一个可配置的选项。
我正在考虑将avahi的多个副本投入chroot监狱,但这似乎真的很笨拙。
我是不是错过了一些更明显的策略来处理这个问题,而不是创建27个独立的主机?
非常感谢!
JD
发布于 2013-08-10 07:41:48
如果您构建自己的应用程序来在您想要的接口中发布服务,则可以实现您想要的内容。此方法调用来自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)。如果您希望一个服务在多个接口中可用,只需在每个接口中发布它。
https://stackoverflow.com/questions/17658773
复制相似问题