Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

When multiple DNS Servers are set on a client I have always believed it worked something like this:

The Primary DNS Server is always used if it is available and the Secondary DNS Server is only ever used if the event that the primary in unavailable. Is my understanding here correct?

Reason for asking is because I have just found this from Microsoft:

if you use multiple DNS servers, the client may also query the secondary server sometimes even if the first one is available


Let me see if I can rephrase the question better:

If Primary DNS is online and working why does DNSCache still seem to use Secondary DNS Server sometimes? My understanding is this should not happen.

According to Microsoft:

if you use multiple DNS servers, the client may also query the secondary server sometimes even if the first one is available

So how are clients with multiple DNS Servers supposed to behave? Is this a bug in Win8 DNSCache?


But this article from MS seems to turn everything on its head: http://support.microsoft.com/kb/320760

This behavior occurs because the Windows XP DNS Client service (Dnscache) follows a certain algorithm when it decides the order in which it uses the DNS servers configured in the TCP/IP properties. If the DNS server list is reprioritized, the Windows XP DNS Client service resets the server priority at periodic intervals. By default, the server priorities are reset every 15 minutes

This suggests that DNSCache does not treat Primary/Secondary as different priorities, just as alternative DNS servers of equal priority.

There is the ServerPriorityTimeLimit=0 registry setting to change to fix this behaviour.

Does this mean that MS DNSCache is broken and needs this registry fix to make it start working correctly again?

share|improve this question

closed as not constructive by Greg Askew, Dave M, Khaled, MadHatter, petrus Apr 23 '13 at 19:34

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.If this question can be reworded to fit the rules in the help center, please edit the question.

    
"I have just found this from Microsoft" - reference/source please? –  Mathias R. Jessen Apr 22 '13 at 13:10
    
You really should specify which client you're talking about. They all behave differently, and often the behavior is documented. –  chris Apr 22 '13 at 13:18
    
Client is Windows 8 –  NickC Apr 22 '13 at 13:36
1  
NickC, please read tour and the faq. By adding answers that should really be edit's to your question you really screw things up. –  Iain Apr 23 '13 at 15:18

1 Answer 1

If the Primary server can be reached, it will only query that server. If the query doesn't return anything it will send it to its forwarders, but if they don't return anything it will fail at that point. It won't continue on to the secondary DNS server.

It uses the secondary DNS server if the primary is not responding to DNS queries at all.

The secondary DNS server is NOT there as a fallback query (think forwarder) in case the primary DNS server doesn't know the answer.

Also, Evan and Joe: How does Windows decides which DNS Server to use when resolving names?

Also:

When is a secondary nameserver hit?

Why should one have a secondary DNS server?

share|improve this answer
    
It all boils down to what "unavailable" means. As pointed out in the Microsoft DNS Process documentation, the first time the preferred name server is queried, the DNS Client considers it "unavailable" after a 1-second timeout. The second time (during the same lookup routine) the preferred name server is queried, the DNS Client considers it "unavailable" after a 2-second timeout. Then, and only then, will secondary name servers be queried –  Mathias R. Jessen Apr 22 '13 at 13:21
1  
Correct. I simplified it, with my answer really being "don't expect if the primary server doesn't know the answer that it will continue on to the secondary." –  TheCleaner Apr 22 '13 at 13:23

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