• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 470
  • Last Modified:

BIND DNS not allowing transfers thru cisco router?

I've got a setup that consists of a cisco 1602 router & linux box, amongst other things.  I'd like the linux router to host a domain name and have set up the bind zone appropriately.  I have checked the daemon.log file & nslookup/dig internally to make sure that zone is set up correctly.

However, if I try and do a nslookup ls motorsport.co.ug to test transfer the domain, I get an error:

Can't list domain motorsport.co.ug : Unspecified error.  

This means of course that the domain info cannot be transfered elsewhere.

I have checked the router.  I have these couple of lines in the config script:

ip nat inside source static

ip nat inside source static tcp 53 53 extendable
ip nat inside source static udp 53 53 extendable

I have tried to debug ip nat traffic, from an external ip.  I see, as expected:

03:38:30: NAT: o: udp (, 3030) -> (, 53) [49431]


03:38:30: NAT: i: udp (, 53) -> (, 3030) [12231]

The question is, why are zone transfers not working.  DNS queries appear to work fine.

Attached zone file:

; Zone file for motorsport.co.ug
; The full zone file
$TTL 38400
@       IN      SOA     impalasoft.com. domainnames.impalamedia.com. (
                        200204085       ; serial, todays date + todays serial #
                        8H              ; refresh, seconds
                        2H              ; retry, seconds
                        4W              ; expire, seconds
                        1D )            ; minimum, seconds
                IN  A                 ; default address
                NS      ns1.secondary.com.              ; Inet Address of name s
                NS      ns1.impalasoft.com.;
                NS      ns2.secondary.com.;
                NS      apphost01.impalasoft.com.;
                MX      10 mail.impalasoft.com.     ; Primary Mail Exchanger

www.motorsport.co.ug.    IN  CNAME  motorsport.co.ug.
ftp.motorsport.co.ug.  IN  CNAME  motorsport.co.ug.


1 Solution
I don't think you are allowed to create the same question in several topic areas. You have created the same question in:
Do you have an "allow-transfer" directive in your bind configuration file?
Okay, this isn't a router problem. If it were you wouldn't be able to execute queries across the router. It sounds more like a configuration issue. Could I see the contents of your named.conf?
What does it mean to be "Always On"?

Is your cloud always on? With an Always On cloud you won't have to worry about downtime for maintenance or software application code updates, ensuring that your bottom line isn't affected.

ossentooAuthor Commented:
Here you go.

// This is the primary configuration file for the BIND DNS server named.        
// Please read /usr/share/doc/bind/README.Debian for information on the        
// structure of BIND configuration files in Debian for BIND versions 8.2.1      
// and later, *BEFORE* you customize this configuration file.                  
options {                                                                      
        directory "/var/cache/bind";                                            
        // If there is a firewall between you and nameservers you want          
        // to talk to, you might need to uncomment the query-source            
        // directive below.  Previous versions of BIND always asked            
        // questions using port 53, but BIND 8.1 and later use an unprivileged  
        // port by default.                                                    
        // query-source address * port 53;                                      
        // If your ISP provided one or more IP addresses for stable            
        // nameservers, you probably want to use them as forwarders.            
        // Uncomment the following block, and insert the addresses replacing    
        // the all-0's placeholder.                                            
        forwarders {                                                            
// reduce log verbosity on issues outside our control                          
logging {                                                                      
        category lame-servers { null; };                                        
        category cname { null; };                                              
// prime the server with knowledge of the root servers                          
zone "." {                                                                      
        type hint;                                                              
        file "/etc/bind/db.root";                                              
// be authoritative for the localhost forward and reverse zones, and for        
// broadcast zones as per RFC 1912                                              
zone "localhost" {                                                              
        type master;                                                            
        file "/etc/bind/db.local";                                              
zone "127.in-addr.arpa" {                                                      
        type master;                                                            
        file "/etc/bind/db.127";                                                
zone "0.in-addr.arpa" {                                                        
        type master;                                                            
        file "/etc/bind/db.0";                                                  
zone "255.in-addr.arpa" {                                                      
        type master;                                                            
        file "/etc/bind/db.255";                                                
// add entries for other zones below here                                      
zone "motorsport.co.ug" {                                                      
        type master;                                                            
        notify no;                                                              
        file "zones/motorsport.co.ug";                                          
I see two things that need attention. First anytime a DNS server is behind a firewall or NAT box one usually needs 'query-source address * port 53; ' enabled. The second is that you haven't specified the IP of the hosts that are allowed to do a zone transfer from the server, which will cause an nslookup 'ls' or 'host -l' to be refused. From what I see in your zone file the relevant portions of your named.conf file should be:

zone "motorsport.co.ug" {                                                      
       type master;                                                            
       file "zones/motorsport.co.ug";                                          
       allow-transfer {;;
              ; };
As I mentioned in http://www.experts-exchange.com/routerswitch/Q.20286391.html please remember to close this question.

Featured Post

Free Tool: ZipGrep

ZipGrep is a utility that can list and search zip (.war, .ear, .jar, etc) archives for text patterns, without the need to extract the archive's contents.

One of a set of tools we're offering as a way to say thank you for being a part of the community.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now