KAR*_*ván 7 domain-name-system ipv6 multicast mac-osx ipv4
我的 OSX 计算机上的主机名查找有问题。根据 Apple 的HK3473文档,它针对 v10.6 说:
默认情况下,除本地外仅包含一个标签的主机名(例如“My-Computer.local”)使用多播 DNS (Bonjour) 进行解析。默认情况下,除本地之外还包含两个或多个标签的主机名(例如“server.domain.local”)使用 DNS 服务器进行解析。
这在我的测试中是不正确的。如果我尝试在本地计算机上打开与远程端口的连接:
telnet example.domain.local 22
Run Code Online (Sandbox Code Playgroud)
然后它将使用和查找旁边的多播 DNS查找 IP 地址。这会导致每次查找都有两秒的查找超时。这是很多!AAAAA
当我只尝试使用 IPv4 时,它不会使用多播查询来获取远程地址,只是简单的A查询。
telnet -4 example.domain.local 22
Run Code Online (Sandbox Code Playgroud)
当我仅尝试使用 IPv6 时:
telnet -6 example.domain.local 22
Run Code Online (Sandbox Code Playgroud)
然后它将再次使用多播 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
Run Code Online (Sandbox Code Playgroud)
如果我可以将 移动resolver #8到位置 #2,也许它会起作用。
更新 #2
否可能不会起作用,因为本地 DNS 服务器192.168.1.1用于domain.local响应请求,并且它在 mDNS ( resolver #2)之前。
更新 #3
我可以减少/System/Library/SystemConfiguration/IPMonitor.bundle/Contents/Info.plist文件中的 mDNS 超时,这会稍微加快查找速度,但这不是解决方案。
您是否尝试过在文件中定义名称/etc/hosts?
10.0.1.1 ns1 ns1.local\n10.0.1.200 www www.local\n2001:470:20::9999 www ns1 www.example.net ns1.example.net \nRun Code Online (Sandbox Code Playgroud)\n\n本地子网上还有哪些其他 DNS 服务正在运行?您可以通过明确地提供本地 DNS 服务来解决很多问题,而且非常简单 - 使用DNSMasq,我全心全意地建议您这样做。
\n\ndscacheutil -flushcache您可能还只需要使用\xe2\x86\xa9 或好的 ole sudo killall mDNSResponder\xe2\x86\xa9来清除内容。在极端情况下,我不建议 - 你也可以禁用 mDNSResponder (Bonjour 等) \xe2\x86\x9d
launchctl unload -w /System/Library/LaunchDaemons/com.apple.mDNSResponderHelper.plist\nlaunchctl unload -w /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist\nRun Code Online (Sandbox Code Playgroud)\n\n10.5 之后的系统通过相当混乱的指令链提供 DNS 解析,这些指令由configd强制执行,显然是旧“系统踢球者”的继承人。获取其状态 \xe2\x86\x9d scutil --dns\xe2\x86\xa9 显示 DNS 解析的系统顺序,例如 \xe2\x86\xaf
\n\n\nDNS配置
\n\n解析器 #1 域:example.net 搜索域[0]:example.net 名称服务器[0]:127.0.0.1 订单:200000
\n\n解析器 #2 域:本地选项:mdns 超时:2 订单:300000
\n\n解析器 #3 域:254.169.in-addr.arpa 选项:mdns 超时:2 订单:300200
\n\n解析器 #4 域名:8.efip6.arpa 选项:mdns 超时:2 订单:300400
\n
如果您仍然遇到问题,请确保此列表“对您来说有意义” - 然后从那里开始......
\n| 归档时间: |
|
| 查看次数: |
4164 次 |
| 最近记录: |