[dns-operations] On server selection algorithms in dns resolvers
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:
> > In message <93C2F218-FE0A-48A8-92FF-6114FA8E813A at dnss.ec>, Roy Arends =
> >> When resolvers select a server to query, from a pool of many, does =
> >> pool consist of just addresses, a combination of name-server name and
> >> address or just name-server names?
> > This is entirely implementation specific.
> >> To illustrate, assume a delegation for .example with the following
> >> records and glue in a fictional root zone.
> >> example. NS a.example.
> >> example. NS b.example.
> >> a.example A 10.0.0.1
> >> a.example A 10.0.0.2
> >> b.example A 10.0.0.2
> >> 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, =
> >> 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 =
> >> a.example" would get 66%, etc.
> > Or it used srtt and it ends up 95% (50% + 45%) and 5%. With zero =
> > 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 =
named uses the addresses it has first. This is all in lib/dns/resolver.c.
> Thanks Mark!
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