X

OS X 10.6.3 and DNS server priority changes

Apple has released a knowledgebase article (reprinted here) that covers details regarding DNS server handling in 10.6 and the 10.6.3 update.

Topher Kessler MacFixIt Editor
Topher, an avid Mac user for the past 15 years, has been a contributing author to MacFixIt since the spring of 2008. One of his passions is troubleshooting Mac problems and making the best use of Macs and Apple hardware at home and in the workplace.
Topher Kessler
2 min read

Apple has released a knowledgebase article (reprinted here) that covers details regarding DNS server handling in 10.6 and the 10.6.3 update. In Mac OS X v10.6 and later, the search order of DNS servers specificed in Network preferences is dynamic, so that servers that don't respond are moved to the end of the search order. This provides performance and reliability improvements over previous Mac OS X versions, but it can lead to unexpected results where a strict search order is required in Mac OS X v10.6.

With Mac OS X v10.6.3 and later, DNS servers can be searched in a strict order by making a change to the mDNSResponder plist as an administrator. Learn how in this advanced article.

To search DNS servers in a strict order in Mac OS X v10.6.3 or later

Note: Making this change will result in DNS servers being tried in the specified search order for all queries, even if a server is not responsive. This may affect performance and reliability.

  1. Log in as an administrator if you aren't already.

  2. Back up the mDNSResponder.plist file if you haven't. To do this:

    1. Open Terminal (in /Applications/Utilities)

    2. Execute this command on a single line:

      sudo mv /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist /System/Library/com.apple.mDNSResponder.plist_previous_LaunchDaemon

      (NOTE: Apple's article says to use "mv," but you should use "cp" in this command. Alternatively, just go to the mentioned folder via the Finder and copy the file to an alternate location.)

    3. Close Terminal.

  3. Open the com.apple.mDNSResponder.plist file in a text editor (the file is located in /System/Library/LaunchDaemons/ ).

  4. Locate the following key in the file:

    <key>EnableTransactions</key>
         <true/>
    </dict>

  5. Between the last <true/> and </dict>, add the following lines:

    <key>StrictUnicastOrdering</key>
    <true/>

  6. Save the file.

  7. Open Terminal.

  8. Restart mDNSResponder using these two commands:

    sudo launchctl unload /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist

    sudo launchctl load /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist

Additional Information

In Mac OS X v10.6, the default DNS server searching behavior is that when a server does not return a result (returning SERV_FAIL for a query), and other servers are available to query, the server is temporarily disabled in the search order for about thirty seconds. If there is more than one server for the query and all of them have returned SERV_FAIL, the servers will be queried in the order that they were disabled (that is, the server that has been disabled the longest will be used first).

Original article: http://support.apple.com/kb/HT4030



Questions? Comments? Post them below or email us!
Be sure to check us out on Twitter and the CNET Mac forums.