faqts : Computers : Internet : Domain Names : djbdns

+ Search
Add Entry AlertManage Folder Edit Entry Add page to http://del.icio.us/
Did You Find This Entry Useful?

7 of 9 people (78%) answered Yes
Recently 7 of 9 people (78%) answered Yes


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.