Recursive Query Problem

Kevin Darcy kcd at daimlerchrysler.com
Wed Mar 8 01:10:41 UTC 2006


Nitin Bhagnari wrote:

>Hi All,
>
>I have 2 DNS servers, one for resolving internal
>queries and the other for external ones. I am using
>BIND9
>
>In the db.cache file of the IDNS i added an entry to
>next query the EDNS. The EDNS's db.cache has root DNS
>server IP addresses.
>
The only thing that should go into a hints zonefile are names and 
addresses of servers authoritative for the root zone.

>My problem is as follows:
>
>1. When i logon to EDNS and make a query as:
>dig abc.xyz.com. NS
>
>I get a response just fine.
>
>2. However, when i make the same query from my IDNS, i
>get the named server IPs of the root DNSes
>
>I believe my EDNS is not make recursive queries even
>though it is indicated in the query that the IDNS
>makes.
>
>I included the following config in my named.conf file
>of EDNS:
>
>options {
>         allow-recursion {
>                          192.168.200.34;
>                          };
>};
>
>where 192.168.200.34 is the IP of my IDNS.
>
>This does not help as well.
>
>Can any one suggest where I am going wrong.
>
Well, the big question is: *why* do you want IDNS to send EDNS external 
queries in the first place? Is it because IDNS doesn't have network 
connectivity to the Internet DNS? In that case, you have no choice but 
to set up IDNS to forward to EDNS (not hints, forwarders, as Barry also 
told you). Use "forward only" mode in this case, which is *not* the 
default forwarding mode (but IMHO should be). When you're forwarding in 
"forward only" mode to a server that has access to the root zone, you 
don't even need a hints file, since you just get the root-zone 
information through your forwarder.

If IDNS *does* have network connectivity to the Internet DNS, then you 
should configure the Internet root servers in your hints file. It would 
also generally be preferable in that case to eliminate the middleman 
(i.e. EDNS) and have IDNS query the Internet nameservers directly to get 
answers to external queries. As an exception to that general rule, 
though, if you have multiple instances of IDNS, or there are other 
organizations besides your own using EDNS recursively, then you *might* 
be able to squeeze out a little performance improvement by forwarding 
IDNS(es)' external queries through EDNS to take advantage of the 
centralized caching. You should make some measurements though to see if 
it really benefits or not. If you choose to forward strictly for 
performance reasons (as opposed to connectivity issues), then set the 
forwarding mode to "forward first" (or just leave the mode out, since 
that's the default mode). That way, if EDNS ever goes down or becomes 
unavailable for whatever reason, IDNS will just fall back to normal 
iterative resolution and you'll still keep on going, albeit more slowly 
than usual.

                                                                         
                                                                     - Kevin




More information about the bind-users mailing list