我已经看到基于mDNS的服务发现的奇迹,但是我没有多less时间去更多地了解它。 我也有在DHCPconfiguration文件或其他的参考。
我如何使用mDNS来让区域自动填充?
要么通过DHCPD做某事
或者每台机器自己做广告
我想查询本地DNS服务器(仅供内部使用)能够回答问题。 我怎么做?
DNS服务发现只是寻找PTRlogging来查找服务的惯例,例如:
$ dig +short ptr _http._tcp.dns-sd.org ;; Truncated, retrying in TCP mode. \032*\032Zeroconf._http._tcp.dns-sd.org. \032*\032Multicast\032DNS._http._tcp.dns-sd.org. \032*\032DNS\032Service\032Discovery._http._tcp.dns-sd.org. << snipped >>
然后是一个SRVlogging,例如:
$ dig +short srv \ *\ Multicast\ DNS._http._tcp.dns-sd.org 0 0 80 multicastdns.org.
最后是一个没有被SRVlogging封装的TXTlogging:
$ dig +short txt \ *\ Multicast\ DNS._http._tcp.dns-sd.org "path=/"
上述最终结果将是一个名为“* Multicast DNS”的条目,链接到http://multicastdns.org:80/ 。 您可能会问DNS-SD感知客户端如何知道如何在dns-sd.org上查找这些logging? 那么要么必须明确告诉(手动configuration),要么必须查看可以通过DHCPconfiguration的系统search域。
DHCP守护进程可以通过紧密耦合到DNS守护进程(例如:dnsmasq)或通过向DNS服务器发送更新请求来维护它们发出的租约的logging。 一般情况下,后者是使用TSIG的DNS更新请求完成的,但是这种方法因使用的DNS / DHCP服务器而异 – ISC BIND + DHCP和使用类似方法的Microsoft堆栈很常见。
多播DNS通过让客户负责宣传他们的logging,消除了设置上述环境所涉及的许多麻烦。 虽然它的名字是DNS(单播),但DNS和mDNS并不互相操作,它们并行存在,导致在使用“.local”命名空间的环境中发生冲突(默认为mDNS堆栈)与他们的本地单播DNS。 您也可以结束与意外的主机名 – 例如,如果两个客户争夺相同的主机名,一个会失去,并附加一个数字重试(此行为可以改变)。 这就是说,在一个小的环境中,这不太可能成为一个问题。
mDNS安装程序是在Windows上安装Bonjour或在UNIX上安装Avahi系统的问题。 OS X开箱即用Bonjour。 安装完成后,您应该可以通过附加“.local”的主机名访问另一台机器。 虽然可以从默认的“.local”命名空间进行更改,但这有点麻烦。