[dns-operations] How does resolver query works

Paul Vixie vixie at isc.org
Wed Mar 10 18:35:02 UTC 2010

> Date: Wed, 10 Mar 2010 16:09:40 +0100
> From: Stephane Bortzmeyer <bortzmeyer at nic.fr>
> We're not talking of the same thing: I was referring to a resolver (a
> name server) and you talk about an application.

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.

this gives low-churn try-all use-closest behaviour, and it works well,
and its cost both in resolver state, resolver cpu, network load, and
code complexity was very low.

More information about the dns-operations mailing list