下列情况会在什么情况下发生? 从内部networking上的给定OSX机器:
$~ cat /etc/resolv.conf nameserver 10.102.120.7 nameserver 10.102.120.2
从同一台机器:
$~ dig @10.102.120.7 in.local <snip> ... ;; QUESTION SECTION: ;in.local. IN A ;; ANSWER SECTION: in.local. 43200 IN A 10.102.123.30 <snip> ...
然而,这台工作站不能ping in.local,也不能在该机器上加载由apache托pipe的页面。 10.102.123.30是definitley up(我知道有2台OSX机器无法在.local中parsing – 但是networking上的其他机器可以)。 我也检查了他们的/ etc / hosts,看是否有什么可能干扰…不知道还有什么要检查…
.local tld首先通过多播DNS Bonjour / Rendezvous在MacOS X上parsing。 这意味着如果您尝试使用.local tld的DNS服务器,则不会使用DNS服务器parsing。
一些专用networking也使用“.local”域名注册到其内部DNS服务器的主机,即使它不是公共Internet上的有效顶级域名。 如果您的Mac连接到这样的networking,您可能希望它通过使用Unicast DNS与DNS服务器通话来查找以“.local”结尾的主机名,与查找主机名称的方式相同,例如“www .apple.com“在互联网上。
请参阅: http : //support.apple.com/kb/HT3473和: http : //support.apple.com/kb/TA20999
OS X有一个OS级别的DNScaching,您可能需要刷新 – 比如solaris / linux / bsd上的nscd。
尝试使用dscacheutil -flushcache (在Leopard上)或lookupd -flushcache (在10.5.1和之前)。
你刚刚发现为什么使用.LOCAL是一个坏主意 。
我能想到的唯一的事情就是你没有使用名字服务的DNS,或者名字被caching了。
我更熟悉Linux,但是您可能正在寻找OSX的/ etc / equivalent文件中的nsswitch.conf文件(或等效文件),或者Linuxcaching守护进程(nscd)configuration文件(nscd.conf)或状态文件。
nsswitch.conf控制如何parsing名称。 DNS只是一个机制。 其他包括文件(/ etc / host),LDAP和(我认为)NIS。
nscd是一个名字caching,通过caching响应一段适当的时间(比如你的示例挖掘输出中的43200秒),可以更快速地parsing名字(例如,你从Web服务器加载300个页面)