forwarding a subdomain

Kevin Darcy kcd at daimlerchrysler.com
Wed Nov 17 01:09:44 UTC 2004


Edward Buck wrote:

>Hi there,
>
>I'm trying to setup a subdomain via forwarding and I'm seeing some 
>unexpected behavior (unexpected for me, not necessarily for bind or 
>you).  Here's the scenario:
>
>I have a public nameserver, i.e. ns1.domain.com, which is authoritative 
>for domain.com.  In the zone file for domain.com, I've delegated a 
>subdomain to another nameserver by doing:
>
>sub      IN NS  ns1-sub.domain.com.
>ns1-sub  IN A   80.80.80.80  ; public ip
>
>Now, on ns1-sub.domain.com, I've configured bind with the following zone:
>
>zone "sub.domain.com" {
>         type forward;
>         forward first;
>         forwarders {
>         10.5.5.1 port 10053; // private ip
>         };
>};
>
>The 10.5.5.1 host above is on a private network accessible to ns1-sub 
>but not to the general public.
>
>The goal is to have ns1-sub resolve all queries for the subdomain 
>sub.domain.com by forwarding each request to the internal server at 
>10.5.5.1.
>
>Now, here's what I don't understand.  If I query ns1-sub directly for a 
>host in sub.domain.com (i.e. host.sub.domain.com), the forwarding works 
>as expected.  If I query ns1-sub using a different nameserver (i.e. from 
>my ISP nameserver), the query works ONLY If ns1-sub has cached the data. 
>  If it's not in the cache, there's no answer.  This suggests that the 
>forwarding doesn't work for recursive queries.
>
>Can anyone explain to me if this is normal behavior?  I'm guessing that 
>it has something to do with authoritative/non-authoritative answers and 
>possibly subdomain delegation issues but I'm stumped.  
>
No, it's more likely that you have recursion turned off globally -- a 
standard configuration for an authoritative-only nameserver. Forwarding 
is a form of recursive resolution, so recursion needs to be enabled in 
order for it work. You can re-enable recursion on a per-zone basis using 
"allow-recursion".

By the way, does this nameserver have any way to retrieve data for 
sub.domain.com names other than by forwarding? If not, then you 
shouldn't specify "forward first". "Forward first" is an opportunistic 
form of forwarding which will fall back to iterative resolution if the 
forwarder is unavailable. It should only be used as a performance 
optimization (which is rarely effective), not in situations like yours, 
presumably, where the answer is *only* available through forwarding.

- Kevin




More information about the bind-users mailing list