what is the behavior of global forwarders

kalyanasundaram S s.kalyanasundaram at inbox.com
Fri Oct 6 05:14:13 UTC 2006

> kalyanasundaram S wrote:
>>>>  global {
>>>>   forward only;
>>>>   forwarders {; };
>>>>   ......
>>>>   ....
>>>>  }
>>>> ..
>>>> zone "example.com" in {
>>>>    type forward;
>>>>    forward first;
>>>>    forwarders {; };
>>>> };
>>>> this does not exist. (it is a stand alone setup- so there is
>>>> no
>>>> root server access,and is alive in that stand alone setup) I
>>>> queried for some client in example.com. What i expected was that it is
>>>> not able to contact so it should go for global forwarders(in
>>>> this case . But it looks for root server and said connection
>>>> time out.
>>>> then again i had
>>>> zone "example.com" in {
>>>>    type forward;
>>>> };
>>>> i expected atleast now it should go for global forwarders. But again
>>>> the
>>>> same.
>>>> what is default behaviour of global forwarders. Where it is used? how
>>>> do
>>>> i configure my dns to go for global forwarders when the forward zone
>>>> forwarders is not available?
>>>> is it a bug or am i missing some option to set
>>> Forwarders are not cumulative. The list of forwarders you define at a
>>> given zone level overrides any forwarders you may or may not have
>>> defined at ancestor zone levels which in turn override the global
>>> forwarders. If you want the global forwarders to be used
>>> *in*addition*to* some set of zone-specific forwarders, then add them to
>>> the list.
>>> Note that some versions of BIND 9 work through the forwarders list
>>> *sequentially*, so if you're running one of those versions, you might
>>> want to give some thought as to the order of the list. Other versions
>>> of
>>> BIND 9 choose forwarders based on an adaptive algorithm which keeps
>>> track of how quickly the respective forwarders respond to queries. For
>>> those versions, the order in which the forwarders are defined is
>>> irrelevant.
>>> - Kevin
>> Well, thaanks a lot for answering me.
>> so what ever is there in global level will be overridden by the zone
>> level declaration.
>> forwarders {; }; at global level is overridden by forwarders
>> {; }; at zone level and the policy also overridden from "only" to
>> "first". Am i correct?
>> But again
>> zone "example.com" in {
>>     type forward;
>>  };
>> These statmenet should inherit the forwarders and the policy from global
>> and go to for the query right?
>> It should become like
>> zone "example.com" in {
>>     type forward;
>>     forward only;
>>     forwarders {};
>>  };
>> Is that the correct way heppening inside?
>> This is not happenening it gives ms NXDOMAIN error and look for root
>> servers?
>> Please help me to figure out what is happening?
> My guess would be that if you define a "type forward" zone, but don't
> explicitly define forwarders, that it treats it like an empty forwarders
> list (i.e. "forwarders { };"), which effectively *cancels* forwarding.
> That would explain why it's going to the roots. Seems a little
> counter-intuitive, I agree, but on the other hand, usually one only
> defines a "type forward" zone if one has a specific set of forwarders
> one wants to use. It's somewhat unusual to _interleave_ forwarded and
> non-forwarded zones, with the same set of forwarders, at different
> levels of the same namespace hierarchy.
> Try explicitly defining the forwarders and see if it fixes the problem.

oh.i think i got it. forwarders{} might be the reason for not going to global forwarders. Thanks a lot.
what is that mean explicitly defining the forwarders?. are you saying to define inside the zone decalaration? that was working fine.
and one more last query. Where the global forwarders are being used? i mean in which situtation it is being used?

thanks a lot

More information about the bind-users mailing list