Server names for query
Kevin Darcy
kcd at chrysler.com
Mon Mar 23 22:20:38 UTC 2009
Casey Deccio wrote:
> RFC 1035 [1] (page 44) describes the use of a list of server names
> (SLIST) to query for a particular name. It is unclear to me from the
> RFC as to whether the server is selected by address or by name. In
> other words, all history (e.g., batting average and response time)
> being equal, if a name resolves to two IP addresses, is it twice as
> likely to be used in resolution for a name as that which resolves to
> only one--both according to the RFC, and as implemented in BIND? Example:
>
> example.com <http://example.com>. 3600 IN NS ns1.example.com
> <http://ns1.example.com>.
> example.com <http://example.com>. 3600 IN NS ns2.example.com
> <http://ns2.example.com>.
> ns1.example.com <http://ns1.example.com>. 3600 IN A 10.0.0.1
> ns1.example.com <http://ns1.example.com>. 3600 IN A 10.0.0.2
> ns2.example.com <http://ns2.example.com>. 3600 IN A 10.0.0.3
>
For the *initial* NS query, I believe BIND will resolve those names down
to a flat set of addresses, all of which have equal chance of being
tried, so, yes, if a given NS name resolves to more addresses than other
names, it is more likely to be tried on the initial NS query.
But that's just the *initial* NS query. Once BIND, and/or virtually any
other full-resolver implementation, builds up a history of how fast each
nameserver responds (based on round-trip-time or RTT), it will start
using nameservers which respond faster (although there is some "banding"
that occurs, so that nameservers which respond more-or-less at the same
speed get tried equally often). So if the point of your question is to
try to control the distribution of query load to nameservers, be aware
that this will be determined much more by the speed at which they
respond, respectively, to clients, than to how the NS names are
organized. Clients gravitate to faster servers. If the extra volume
causes the fast servers to bog down and be slower, then clients
gravitate away from them, and some sort of query-volume equilibrium is
achieved between all of the nameservers which are published for the
zone. In a sense, it is "auto-tuning" in this regard.
- Kevin
More information about the bind-users
mailing list