bind 9.4.1: bug or feature?

Chris Buxton cbuxton at menandmice.com
Tue Jul 24 18:49:28 UTC 2007


This isn't so much a bug as just a weird consequence of how things work.

In your initial attempt, when you ask your server for  
something.xyz.local, here's what happens:

- Examine local authoritative data.
- Find an authoritative zone for a domain that covers the request.  
There is no answer in the zone, nor any delegation.
- Return a negative answer.

The forward zone is not even considered. Now, with your second  
attempt (the solution that inexplicably works):

- Examine local authoritative data.
- Find an authoritative zone for a domain that covers the request.  
There is an intervening delegation, so turn operation over to  
resolver logic.
- Examine resolver rules, including root hints, stub zones, forward  
zones, global forwarding, etc.
- Find forward zone. Rather than following delegation and doing  
recursion, forward to specified server.

If you wanted to, you could achieve nearly the same effect without  
the forward zone as follows:

xyz	NS	ns1.xyz
	NS	ns2.xyz
ns1.xyz	A	1.2.3.4
nx2.xyz	A	5.6.7.8

The differences would be:

- You would have to maintain the addresses of the other servers in  
the zone data rather than in named.conf.
- Rather than sending a recursive query to the other servers, your  
server would send iterative queries.

Chris Buxton
Men & Mice

On Jul 24, 2007, at 5:45 AM, Tom Schmitt wrote:

> Hi,
>
> I'm using Bind 9.4.1 for my internal DNS where I have a domain with  
> the name local.
>
> Now I have to forward a subdomain of this through a firewall to  
> another DNS-server. Nothing easier than that (I thought) and added  
> the following statement to my named.conf:
>
> zone "xyz.local" {
>         type forward;
>         forwarders { 1.2.3.4; 5.6.7.8; };
>         forward only;
> };
>
> And I was happy till I tested it: I doesn't work. After a rndc  
> reconfig the named still doesn't know anything about the domain  
> xyz.local.
> A networkscan revealed that named don't even try to ask one of the  
> forwarders.
>
> So I thought i have some kind of syntax-error in my statement and  
> checked the logfiles of named: But there was no errormessage of any  
> kind, not a warning, not even a info-message which indicate a  
> problem with my forwarding-statement.
>
> I tried a lot of things, but in the end the following brought my  
> statement to work: I added the following record to my local.-zone:
>
> xyz.local. 3600  IN NS nosuchserver.xyz.local.
>
> Together with this record my forward-statement is working fine!  
> Even tough the mentioned server doesn't exist.
>
> So what I don't understand: Why is it necassary to add this record?  
> Is it a bug in Bind 9.4.1? Or is this intentional? And if it is  
> intentional, why is there no error-message if it is missing?
>
> Tom.
>
> -- 
> Der GMX SmartSurfer hilft bis zu 70% Ihrer Onlinekosten zu sparen!
> Ideal für Modem und ISDN: http://www.gmx.net/de/go/smartsurfer
>
>



More information about the bind-users mailing list