[dns-operations] How does resolver query works

Mark Andrews marka at isc.org
Fri Mar 12 23:40:22 UTC 2010

In message <20100312123933.GB42913 at macbook.catpipe.net>, Phil Regnauld writes:
> Paul Vixie (vixie) writes:
> > 
> > what bind4/bind8 did and what i still think is the right thing, is to build
> > the list of nameserver addresses (unrolling all the nameserver names), and
> > try them in measured-RTT order, assuming 0 RTT for untried addresses, and
> > depref'ing each address a little when rolling in new RTT samples.
> > 
> > on SERVFAIL or REFUSED, the address is poisoned (given an absurdly long
> > artificial RTT) along with all other addresses that came from the same
> > nameserver name.
> 	So what does BIND9 do ?
It translates the names to addresses then sorts the list of addresses
based on rtt.  Addresses without a rtt estimate get a small random
value.  It does this using the current cache contents.  It will
also lookup addresses for nameservers it doesn't have in parallel
to completing the current query.  If it has no addresses it will
stall waiting for the nameserver's addresses to resolve.

Mark Andrews, ISC
1 Seymour St., Dundas Valley, NSW 2117, Australia
PHONE: +61 2 9871 4742                 INTERNET: marka at isc.org

More information about the dns-operations mailing list