William Kucharski wrote:
I suspect, but do not know, that in the case of the 30 second timeout one or more of the DNS servers is not properly returning NXDOMAIN for the non-existent domain but is instead returning an error, causing mDNSResponder to try other DNS servers on the list.
If you are curious as to what's really going on, you can run the following command in
Terminal while you do the lookup and see what activity goes by:
sudo tcpdump -n -i
interface
port 53
where
interface is the name of your network interface (usually
en0 for Ethernet or
en1 for AirPort.)
When you are done, press "C" in the
Terminal window while holding down the "Control" key.
You should see output like:
23:51:12.994948 IP 192.168.0.109.55672 > 208.67.222.222.53: 24595+ A? ibm.com. (25)
23:51:13.023554 IP 208.67.222.222.53 > 192.168.0.109.55672: 24595 3/0/0 A 129.42.18.103, A 129.42.16.103, A 129.42.17.103 (73)
I tried and I think that you are basically correct. I'll post the output here once I decide that it's not a security risk to do so.
Looks like when I am configured with both my router and external DNS, there are a few requests in parallel and then an NXDomain response from the external DNS. Next time I do the same query, there is no traffic (must be cached locally).
With only my router, there is a ton of traffic. Lots that look like: FormErr.
It also looks like the result is not cached locally.
Seems like some kind of bad interaction between my router (a 2Wire supplied by ATT) and Snow Leopard. I bet it's a pretty wide spread problem.
On my Tiger OS iMac, the router correctly returns NXDomain.