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


13

公司网络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查找?


感谢您提出的问题-我将其作为Mac DNS解析参考添加为书签;)
Alex

当您确定DNS服务器为什么要花10秒来发送记录的空记录集答案AAAA时(根据您的说法)A在很长一段时间内都无法回答查询时,您会得到更好的服务相同的域名。您似乎处在经典的RFC 4074地区,问题在于服务器已损坏。同样,请注意,您遇到了使用local.水平分割DNS服务的几种众所周知且讨论已久的原因之一。最好也修复。
JdeBP 2011年

1
第二步中的DNS服务器立即返回空的AAAA记录。问题是步骤3-MDNS / Bonjour / Zeroconf查询。Lion会在广播后等待10秒,然后再超时。经过一番谷歌搜索之后,我很清楚使用local.是一个坏主意,但是IT部门告诉我,他们认为使用local.companyname.完全可以,我对此无能为力。
雅各布·艾格

您的IT部门的人员知之甚少。大约五年来,这在网络管理界中并不十分“完美”。您可以……鼓励……将您的IT部门人员的网络知识带入21世纪。您可以……提醒……他们,他们的工作不是安排事务,以使公司计算机无法正常工作。☺
JdeBP

@JdeBP但是,Apple决定使用它是一个好主意...您会注意到Microsoft也使用它,并建议将其作为最佳实践。所以...谁说不是
2013年

Answers:


8

阻止您的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
这些信息都无法解决我在Lion(Mac OS X 10.7)中进行DNS解析的问题。此外,/etc/resolver/companyname.local在Lion中似乎被忽略了。
Jakob Egger

0

我不知道mac真的不能帮上什么忙,但是我想到了一个聪明的解决方法:如果您在互联网上进行安装,"somedomain.com DNAME companyname.local"-它会在步骤2捕获DNAME。现在我不确定会发生什么接下来,它是否仍会回到bonjour,或者由于已经处于某些DNS进程的中间,也许它将继续使用DNS。


如果您愿意,我可以自愿为您创建DNAME :)
Alex
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.