path of slave server query for external addresses

Kevin Darcy 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
>either the
>forwarder address or the root servers if it gets a query for a non
>local zone
>but I want to be sure. So the question is, does the slave query the
>master
>or the fowarder/root servers for an external address such as
>www.ibm.com
>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,  
forwarding-followed-by-iterative-resolution-if-necessary (i.e. 
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.

                                                                         
                                                               - Kevin




More information about the bind-users mailing list