如何让 OS X 10.5+ 使用 mDNS 解析所有 .local DNS 查找?

如何让 OS X 10.5+ 使用 mDNS 解析所有 .local DNS 查找?

OS X 10.5+ 有一些略微奇怪的解析器配置,用于解决网络故障问题。 请参阅此处。

http://support.apple.com/kb/HT3473

我遇到的问题是,我们的网络不依赖于使用单播 DNS 上的 .local 域,而是依赖于 mDNS 进行大多数内部查找。这对于我们的大多数系统来说都很好,但我们也希望有一些子域。遗憾的是,由于此功能,我们所有的 OS X 用户都无法使用此功能

除了本地之外还包含两个或更多标签的主机名,例如“server.domain.local”,默认使用 DNS 服务器进行解析。

这导致我们的子域名在单播 DNS 服务器上查找,而该服务器根本不知道如何解析 .local 地址。

支持文章声称这是默认行为,对我来说这表明它在某种程度上是可配置的,但我无法弄清楚如何让它像 10.4 那样运行并仅使用 mDNS 进行所有 .local 查找。

答案1

Mac OS X 有一个可插入的解析器库。这意味着您可以编写自己的解析器,并将其置于现有解析器堆栈之上。事实上,单播 DNS 和 mDNS 是完全独立的层,但堆叠在一起。

Apple 描述的默认行为实际上是指默认堆栈。我知道的唯一改变此行为的方法是编写一个解析器插件,使其按照您想要的方式运行。

如果这听起来像您想尝试的事情,我不知道该怎么做。但是,37signals 生产的 POW 网络服务器包含一个用 Ruby 编写的解析器插件。POW 是开源的,因此您可以从这里开始(假设您或您认识的人了解 Ruby)。

相关内容