Q:

DNS Resolution on Windows with multiple NICs

I'm trying to figure out how DNS resolution works on Windows. I have a PC with two NICs, each one linked to a different LAN (basically the first one is connected to the internet and the other one to the company network). Each of these NICs have a different domain and DNS configured : the first one has the ISP's default and the second one the company private domain and DNS Server. Resolving domains on the internet works fine, as well as resolving FQDN for the private DNS.
However, if I try to ping only hostnames (of devices on the company network), Windows only tries to resolve names on the ISP's DNS which results on a timeout. From the documentation I found on internet, I've read that Windows is supposed to ask the primary DNS and if it does not get an answer, tries the DNS on the other interfaces. It does not seem to be the case though. Did I miss something ? Does windows considers a negative answer from the primary DNS server as a definitive answer ? I don't think it is about prioritising one NIC or the other since it won't ever asks the secondary DNS.

A:

https://docs.microsoft.com/en-us/archive/blogs/stdqry/dns-clients-and-timeouts-part-1
The actual behavior of the DNS client is that it is going to query its DNS servers in the order that they are listed until an answer, either positive or negative, is received. Once an answer is received, either positive or negative, the DNS client stops the query process and gives that answer back to the calling application. Only when a query to a DNS server times-out (or reports a server error) is when the client retries the query with the next DNS server in the list. In other words: negative answers do not trigger retries with alternate DNS servers, only timeouts (and other errors) do.

