what is the behavior of global forwarders
Kevin Darcy
kcd at daimlerchrysler.com
Fri Oct 6 03:45:19 UTC 2006
kalyanasundaram S wrote:
>>> global {
>>> forward only;
>>> forwarders {1.2.3.4; };
>>> ......
>>> ....
>>> }
>>>
>>> ..
>>> zone "example.com" in {
>>> type forward;
>>> forward first;
>>> forwarders { 3.3.3.3; };
>>> };
>>>
>>> this 3.3.3.3 does not exist. (it is a stand alone setup- so there is no
>>> root server access,and 1.2.3.4 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 3.3.3.3 so it should go for global forwarders(in
>>> this case 1.2.3.4) . 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 {1.2.3.4; }; at global level is overridden by forwarders {3.3.3.3; }; 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 1.2.3.4 for the query right?
> It should become like
> zone "example.com" in {
> type forward;
> forward only;
> forwarders { 1.2.3.4};
> };
> 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.
- Kevin
More information about the bind-users
mailing list