在 Mac OS X(Mavericks)中,我看到多个解析器,并且我不明白范围和非范围 DNS 查询解析器之间的区别,如下所示:
$ scutil --dns
DNS configuration
resolver #1
search domain[1] : test
nameserver[0] : 172.31.30.10
flags : Request A records
reach : Reachable
.... <arpa stuff snipped> ...
resolver #6
domain : 9.e.f.ip6.arpa
options : mdns
timeout : 5
flags : Request A records
order : 300600
DNS configuration (for scoped queries)
resolver #1
search domain[0] : test
nameserver[0] : 172.31.30.10
if_index : 4 (en0)
flags : Scoped, Request A records
reach : Reachable
答案1
简而言之,范围 DNS 查询只能使用指定的网络接口(例如以太网或 WiFi),而非范围 DNS 查询可以使用任何可用的接口。
更详细地说,想要解析名称的应用程序会发送一个要求(范围或非范围)到解析器(通常是 DNS 客户端应用程序),如果解析器没有缓存答案,它会发送 DNS询问到特定的名称服务器(并且这通过一个接口进行,因此它始终是“范围之内的”)。
在您的示例中,用于范围查询的解析器 #1 只能使用 en0 接口(以太网)。