(2018-11-15)
How do Windows clients deal with having multiple DNS servers configured?
With one server:
Seconds since start | Action |
---|
0 | Query DNS server |
1 | If no answer, query DNS server |
2 | If no answer, query DNS server |
4 | If no answer, query DNS server |
8 | If no answer, query DNS server |
10 | If no answer, give up |
A negative answer will count as an answer and stop the query at that point.
With two servers, A and B:
Seconds since start | Action |
---|
0 | Query DNS server A |
1 | If no answer, query DNS server B |
2 | If no answer, query DNS server B |
4 | If no answer, query both DNS servers |
8 | If no answer, query both DNS servers |
10 | If no answer, give up |
With three servers, A and B and C:
Seconds since start | Action |
---|
0 | Query DNS server A |
1 | If no answer, query DNS server B |
2 | If no answer, query DNS server C |
4 | If no answer, query all DNS servers |
8 | If no answer, query all DNS servers |
10 | If no answer, give up |
Takeaways:
- The computer always queries the first DNS server in the list first. This means that our practice of putting the internal DNS server in clients (or dhcp scopes) first, with google as a fall-back, is valid -- google should only be queried if the internal server doesn't respond.
- No single DNS resolution query should block for more than 10 seconds. This does not prevent calling programs from merely repeating their query, of course.
(
Source which claims to be valid for Win7 through Win10. Article notes that if a computer has multiple interfaces defined that have their own DNS servers defined, resolution will be somewhat different and you should look at
this article instead.