In Mac OS X (Mavericks) I see multiple resolvers, and I don't understand the difference between scoped and non-scoped DNS query resolvers as displayed below:

$ scutil --dns
DNS configuration

resolver #1
  search domain[1] : test
  nameserver[0] :
  flags    : Request A records
  reach    : Reachable

.... <arpa stuff snipped> ...
resolver #6
  domain   :
  options  : mdns
  timeout  : 5
  flags    : Request A records
  order    : 300600

DNS configuration (for scoped queries) 

resolver #1
  search domain[0] : test
  nameserver[0] :
  if_index : 4 (en0)
  flags    : Scoped, Request A records
  reach    : Reachable
up vote 11 down vote accepted

Briefly speaking, a scoped DNS query can use only specified network interfaces (e.g. Ethernet or WiFi), while non-scoped can use any available interface.

More verbosely, an application that wants to resolve a name, sends a request (either scoped or non-scoped) to a resolver (usually a DNS client application), if the resolver does not have the answer cached, it sends a DNS query to a particular nameserver (and this goes through one interface, so it is always "scoped").

In your example resolver #1 "for scoped queries" can use only en0 interface (Ethernet).

  • So the application decides whether to make the query scoped or nonscoped? What is the default behavior, and/or which would dig or a web browser use? – Keith Bennett Jan 31 at 4:16
  • An application like a web browser most probably queries the meta-resolver, which routes the queries to different resolvers according to rules described in resolver(5) manpage. Applications like dig or host make the queries directly to nameservers, not using the Mac OS X DNS query routing mechanism. – mik Feb 2 at 23:42

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.