[dns-operations] On server selection algorithms in dns resolvers

Mark Andrews marka at isc.org
Mon Nov 23 20:48:35 UTC 2015


In message <0F07018D-4A5D-4B17-B008-3166D4B6D2AD at dnss.ec>, Roy Arends writes:
> 
> > On 23 Nov 2015, at 20:21, Mark Andrews <marka at isc.org> wrote:
> >=20
> >=20
> > In message <93C2F218-FE0A-48A8-92FF-6114FA8E813A at dnss.ec>, Roy Arends =
> writes:
> >> When resolvers select a server to query, from a pool of many, does =
> the
> >> pool consist of just addresses, a combination of name-server name and
> >> address or just name-server names?
> >=20
> > This is entirely implementation specific.
> 
> Ack.
> 
> >> To illustrate, assume a delegation for .example with the following
> >> records and glue in a fictional root zone.
> >>=20
> >> example. NS a.example.
> >> example. NS b.example.
> >>=20
> >> a.example A 10.0.0.1
> >> a.example A 10.0.0.2
> >> b.example A 10.0.0.2
> >>=20
> >> When the strategy is to select from a pool of addresses or hostnames,
> >> then there are two in each case, and if the distribution is equal, =
> each
> >> get 50% of queries.
> >> When the strategy is to select from a pool of records, then there are
> >> three (the three A records), and address 10.0.0.2 would get 66% and =
> host
> >> a.example" would get 66%, etc.
> >=20
> > Or it used srtt and it ends up 95% (50% + 45%) and 5%.  With zero =
> knowledge
> > named initially selects randomly by address.
> 
> Perfect. If you allow me, an additional question?
> 
> When the pool is not quite filled, say there is missing glue for =
> b.example in a previous response, will BIND first fetch the missing =
> address(es) for b.example before it decides which of the addresses to =
> ask?

named uses the addresses it has first.  This is all in lib/dns/resolver.c.
 
> Thanks Mark!
> 
> Roy=
-- 
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