Mac OS X Lion 中 .local TLD 的延迟为 10 秒

Mac OS X Lion 中 .local TLD 的延迟为 10 秒

我们公司网络用于xxx.companyname.local本地网络上的所有服务器。每当我在 Mac 上访问这些服务器之一时,都会有 10 秒的延迟。我发现这种延迟是由 DNS 查找引起的,因为 Lion 显然按以下顺序解析 .local 域:

  1. 检查/etc/hostsIPv6 地址
  2. 检查 DNS 服务器是否有 AAAA 记录(IPv6 地址)
  3. 通过 MDNS (Bonjour) 检查 AAAA 记录
  4. 检查/etc/hostsIPv4 地址
  5. 检查 DNS 服务器是否有 A 记录(IPv4 地址)
  6. 检查 MDNS 中的 A 记录

现在,问题是,我们没有 IPv6 网络。xxx.companyname.local我们网络上的所有服务器都只有 IPv4 地址,DNS 服务器只有 A 记录。这意味着地址在步骤 5 中解析。问题在于步骤 3 需要 10 秒钟才会超时!每次我连接到我们的 wiki、SVN 服务器、Kerberos 服务器等时,都会有 10 秒的延迟。

我成功地欺骗了 Lion,方法是将下面的代码添加到/etc/hosts

::FFFF:10.99.99.99 xxx.companyname.local

如果我这样做,Lion 会认为该域有一个 IPv6 地址,并在步骤 1 之后停止。但是,这种解决方法完全绕过了 DNS 的所有有用功能。我不想手动跟踪数十个内部域的 IP 地址!我也可以停止使用主机名,只需输入 IP 地址!

那么:有人知道如何更改此查找顺序吗?或者禁用 IPv6 查找,因为我们没有 IPv6 网络?

答案1

阻止您的 IT 部门滥用local.

如上所述,滥用域名您的公司不拥有,因此不应假设它可以在其中创建公司子域,这是错误的,也是问题的一半。如果公司计算机包括 Macintoshes(或任何其他使用 DNSSD 的设备),那么绝对不要假设这local.是你的,你可以以这种方式随意摆弄它。

升级你的 Macintosh。

MacOS 10.4 确实会xxx.companyname.local.按照您描述的方式处理。但这在操作系统的后续版本中发生了变化。MacOS 10.5 仅将双标签名称传递给多播 DNS。三标签名称(例如)xxx.companyname.local.不由 MDNS 处理。MacOS 10.6 更进一步,尝试检测 DNS 服务器是否配置错误,导致local. 并采取相应行动。

至少你应该配置你的 Macintosh 以拥有/etc/resolver/公司名称.local文件search_order 1内列出了代理 DNS 服务器的当前 IP 地址。不过,正如 Apple 所说,这不适用于 DHCP 分配的、会发生变化的 DNS 服务器 IP 地址。

紧握的手上……

… 这些只是逐渐复杂的补救措施,以适应错误的想法。引用苹果公司的马克·克罗赫马尔的话,“当人们像你公司那样滥用职权时,总会有一些问题” local.。自 2002 年(我快速搜索了一下,发现)以来,甚至更早,它就被认为是错误的。只是不要这样做

进一步阅读

答案2

我不懂 mac,所以帮不上什么忙,但我想到了一个聪明的解决方法:如果你在互联网上的某个地方进行设置,"somedomain.com DNAME companyname.local"它会在第 2 步捕获 DNAME。现在我不确定接下来会发生什么,它是否还会回到 bonjour,或者因为它已经处于某个 DNS 过程的中间,也许它会坚持使用 DNS。

相关内容