Why doesn't an "ANY" query to "dnscache" return all resource records attached to the domain name?
Jul 1st, 2008 11:34
sheana krat, Jonathan de Boyne Pollard, Guest,
Because "ANY" is not the same as "ALL".
As per step 4 of the algorithm in RFC 1034, if an "ANY" query
is satisfied by a caching proxy DNS server looking in its
cache, without sending a back-end query, the answer that the
original client receives may comprise only those resource
record sets that happen to be in the cache. So, first of all,
caching proxy DNS servers need not return "ALL" resource
records for a domain name, in response to an "ANY" query,
because they may not actually have "ALL" resource record sets
for that domain name cached in the first place.
The behaviour of "dnscache", specifically, is a direct
consequence of whether or not it determines that it has to
issue a back end query to satisfy the "ANY" query that it has
received from the client. If "dnscache" has any resource
record sets in its cache for the specified domain name, it
issues no back end queries and simply returns (one of) those
resource record sets. If it has no resource record sets in its
cache (and no cached "no such name" information), it issues a
back end query to the appropriate content DNS server, and
returns (and caches for later use) whatever it receives as the
Because of an implementation quirk, in response to an "ANY"
query "dnscache" looks in its cache for various resource record
set types, in order, for the queried domain name. It responds
with the first such resource record set that it finds.