By accident, I found out that my DNS server was lying to me again.  Last time I caught it out was when it was serving up the wrong IP addresses to me (see this post for details).

The problem occurs when I want to do something to a remote PC, say copy a file to it, or delete it from SMS.

First I try to “Ping” it to see if it’s alive on the network.  If the Ping fails, I move onto the next victim candidate.  How the Ping command fails for me, is something like this:

  1. The Ping command asks the DNS server for the IP address of the computer I want to Ping.
  2. The DNS server replies “No IP address for that computer”.
  3. I move onto the next computer in my Ping list.

Except the DNS server is lying at point 2.  If I do a second Ping, the DNS replies “Oh, the IP address is ww.xx.yy.zzz”.

Is it a “bug” or a “feature”?

Well I don’t know.  I first saw this behaviour with a Digital MicroVAX based DNS, many years ago.  The solution then was to adjust some thingymebob.  I was discussing the pros and cons of doing this with our MicroVAX guru at the time, and her comment was

‘Yeah, we can change the thingymebob setting, but it will slow down dohickey requests”.

You can tell by the precise technical terms thingymebob/dohickey, that I’ve forgotten what the settings were.  It’ll be some sort of DNS timeout value.

My workaround?

I’ll going with the “if the first ping fails, do another one” fix.  Mainly for the reason that having to explain the DNS issue to our current DNS guru, is not worth the energy involved.

And I’ve done some tests.  The DNS only lies to me once.  If the second Ping fails, the PC really isn’t on the network.