Host names that contain only one label in addition to local,for example “My-Computer.local”,are resolved using Multicast DNS (Bonjour) by default. Host names that contain two or more labels in addition to local,for example “server.domain.local”,are resolved using a DNS server by default.
这不符合我的测试.如果我尝试在本地计算机上打开到远程端口的连接:
telnet example.domain.local 22
然后,它将在A和AAAA查找旁边的多播DNS中查找IP地址.这会导致每次查找都有两秒的查找超时.这是很多!
当我尝试使用IPv4时,它不会使用多播查询来获取远程地址只是简单的A查询.
telnet -4 example.domain.local 22
当我尝试使用IPv6时:
telnet -6 example.domain.local 22
然后它将再次使用多播DNS和AAAA进行查找,并再次发生2秒超时延迟.
我试图为我的/etc/resolver/domain.local和/etc/resolver/local.1创建一个解析器条目,但它们都没有工作.
有没有办法禁用“两个或多个标签添加到本地”域的多播查找,或者只是为选定的子域(domain.local)禁用它?
谢谢!
更新#1
感谢@mralexgray用于scutil –dns命令,现在我可以在列表中看到我的域名,但它在订单中已经很晚了:
DNS configuration resolver #1 domain : adverticum.lan nameserver[0] : 192.168.1.1 order : 200000 resolver #2 domain : local options : mdns timeout : 2 order : 300000 resolver #3 domain : 254.169.in-addr.arpa options : mdns timeout : 2 order : 300200 resolver #4 domain : 8.e.f.ip6.arpa options : mdns timeout : 2 order : 300400 resolver #5 domain : 9.e.f.ip6.arpa options : mdns timeout : 2 order : 300600 resolver #6 domain : a.e.f.ip6.arpa options : mdns timeout : 2 order : 300800 resolver #7 domain : b.e.f.ip6.arpa options : mdns timeout : 2 order : 301000 resolver #8 domain : domain.local nameserver[0] : 192.168.1.1 order : 200001
如果我能将解析器#8移动到位置#2,它可能会起作用.
更新#2
不可能不会工作,因为192.168.1.1上的本地DNS服务器回答了domain.local请求,而它在mDNS(解析器#2)之前.
更新#3
我可以减少/System/Library/SystemConfiguration/IPMonitor.bundle/Contents/Info.plist文件中的mDNS超时,这会加快查找速度,但这不是解决方案.
解决方法
10.0.1.1 ns1 ns1.local 10.0.1.200 www www.local 2001:470:20::9999 www ns1 www.example.net ns1.example.net
在本地子网上运行的其他DNS服务是什么?您可以通过明确地提供本地DNS来解决许多问题,而且非常简单 – 使用DNSMasq,我全心全意地建议您这样做.
您也可能只需要使用dscacheutil -flushcache↩或一个好的sudo killall mDNSResponder flush来清除东西.在极端的事情,我不建议 – 你也可以完全禁用mDNSResponder(Bonjour等)↝
launchctl unload -w /System/Library/LaunchDaemons/com.apple.mDNSResponderHelper.plist launchctl unload -w /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist
10.5之后的系统通过一个非常令人困惑的指令链提供DNS解析,这些指令由configd强制执行,对于旧的“系统踢球者”来说是明显的.要获得其状态↝scutil–dns↩,它显示DNS解析的系统顺序,例如↯
DNS configuration
resolver #1 domain: example.net search domain[0]: example.net nameserver[0]: 127.0.0.1 order: 200000
resolver #2 domain: local options: mdns timeout: 2 order: 300000
resolver #3 domain:254.169.in-addr.arpa options: mdns timeout: 2 order: 300200
resolver #4 domain: 8.e.f.ip6.arpa options: mdns timeout: 2 order: 300400
如果您仍然遇到问题,请确保此列表“对您而言有意义” – 然后从那里开始……