path of slave server query for external addresses
kcd at daimlerchrysler.com
Fri Feb 10 00:33:14 UTC 2006
rsesnaski at yahoo.com wrote:
>I think the answer is that the slave server issues it's own query to
>forwarder address or the root servers if it gets a query for a non
>but I want to be sure. So the question is, does the slave query the
>or the fowarder/root servers for an external address such as
>assuming I'm not ibm.com of course.
I think you're falling into the trap of characterizing a whole
nameserver instance as either "master", "slave", "caching-only",
"forwarder", "stub", etc. These designations are configurable by *zone*,
so all sorts of combinations are possible within a given instance, e.g.
master/slave, slave/forwarder, caching/slave. For queries that don't
fall under a zone explicitly defined in the config, the "catch-all"
resolution mechanism can be set to either a) exclusive forwarding
("forward only"), b) opportunistic forwarding ("forward first"), c) no
recursive service at all ("recursion no"), or d) normal, iterative
resolution (which is the default if none of the above is specified).
Options (b) and (d) involve iterative resolution, so they need to have
or be able to get some information about the root zone -- from there
they can follow the delegation hierarchy down to whatever else they
need. They obtain this root-zone information by being either master for
the root zone, fully replicating the root-zone information as a
root-zone slave, partially replicating the "top" of the zone as a
root-zone "stub", or by "priming" (querying and storing the results of)
the root-zone information at startup, based on the data in a hints file.
So the short(er) answer to your (implied) question is: either it has an
explicit definition for the relevant zone, in which case it resolves the
query using whatever mechanism is defined for that zone, or it falls
into some "catch-all" resolution mechanism, which is also configurable
and could consist of forwarding, regular iterative resolution,
opportunistic forwarding), or no recursive service at all.
A slave would never forward to the master for a query in a given zone,
since it (the slave) is authoritative for the zone and from its
replicated copy of it can give a definitive answer (positive or
negative) for anything in the zone that is queried. Slave zones can
expire, of course, but in that case the nameserver instance is no longer
a "slave" for the zone, so the sentence above still holds true.
More information about the bind-users