I have been following this guide to set up a DNS server using bind9 on Ubuntu 12.04, but after all the configuration, when I run host -l home.lan I get the following error:

; Transfer failed.
Host home.lan.home.lan not found: 4(NOTIMP)
; Transfer failed.

The name of my Ubuntu Server is dnsserver and has IP address, and I have another 3 hosts on the network (webserver with IP address, owncloud with IP address and the router,

Following are all my configuration files.

Config files


options {
    directory "/var/cache/bind";

    // If there is a firewall between you and nameservers you want
    // to talk to, you may need to fix the firewall to allow multiple
    // ports to talk.  See http://www.kb.cert.org/vuls/id/800113

    // 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 {;;

    // If BIND logs error messages about the root key being expired,
    // you will need to update your keys.  See https://www.isc.org/bind-keys
    dnssec-validation auto;

    auth-nxdomain no; # conform to RFC1035
    listen-on-v6 { any; };


# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet static
dns-search home.lan
dns-domain home.lan


// Do any local configuration here

// Consider adding the 1918 zones here, if they are not used in your
// organization
//include "/etc/bind/zones.rfc1918";

zone "home.lan" IN {
    type master;
    file "/etc/bind/zones/home.lan.db";

zone "0.168.192.in-addr.arpa" {
    type master;
    file "/etc/bind/zones/rev.0.168.192.in-addr.arpa";


; Use semicolons to add comments.
; Host-to-IP Address DNS Pointers for home.lan
; Note: The extra “.” at the end of the domain names are important.

; The following parameters set when DNS records will expire, etc.
; Importantly, the serial number must always be iterated upward to prevent
; undesirable consequences. A good format to use is YYYYMMDDII where
; the II index is in case you make more that one change in the same day.
$TTL 86400      ; 1 day
home.lan. IN SOA dnsserver.home.lan. hostmaster.home.lan. (
    2008080901 ; serial
    8H ; refresh
    4H ; retry
    4W ; expire
    1D ; minimum

; NS indicates that dnsserver is the name server on home.lan
; MX indicates that dnsserver is (also) the mail server on home.lan
home.lan. IN NS dnsserver.home.lan.
home.lan. IN MX 10 dnsserver.home.lan.

$ORIGIN home.lan.

; Set the address for localhost.home.lan
localhost    IN A

; Set the hostnames in alphabetical order
dnsserver    IN A
owncloud     IN A
router       IN A
webserver    IN A


; IP Address-to-Host DNS Pointers for the 192.168.0 subnet
@ IN SOA dnsserver.home.lan. hostmaster.home.lan. (
    2008080901 ; serial
    8H ; refresh
    4H ; retry
    4W ; expire
    1D ; minimum
; define the authoritative name server
           IN NS dnsserver.home.lan.
; our hosts, in numeric order
1         IN PTR router.home.lan.
12        IN PTR webserver.home.lan.
14        IN PTR owncloud.home.lan.
254       IN PTR dnsserver.home.lan.

Can you spot my mistake?


Reverse DNS seems not to be working either. The output of named-checkzone home.lan /etc/bind/zones/rev.0.168.192.in-addr.arpa is the following:

/etc/bind/zones/rev.0.168.192.in-addr.arpa:2: SOA record not at top of zone (0.168.192.in-addr.arpa.home.lan)
/etc/bind/zones/rev.0.168.192.in-addr.arpa:10: no TTL specified; zone rejected
/etc/bind/zones/rev.0.168.192.in-addr.arpa:12: no TTL specified; zone rejected
/etc/bind/zones/rev.0.168.192.in-addr.arpa:13: no TTL specified; zone rejected
/etc/bind/zones/rev.0.168.192.in-addr.arpa:14: no TTL specified; zone rejected
/etc/bind/zones/rev.0.168.192.in-addr.arpa:15: no TTL specified; zone rejected
zone home.lan/IN: loading from master file /etc/bind/zones/rev.0.168.192.in-addr.arpa failed: not at top of zone
zone home.lan/IN: not loaded due to errors.`

1 Answer 1


I'd add dots to the end of your DNS search domains in your /etc/network/interfaces file.

dns-search home.lan.
dns-domain home.lan.

From the looks of it they're getting applied twice.

Issue with reverse lookups

Here's a sample from my DNS bind server.

$ more db.192.168.1
$TTL 604800 ; 1 week
1.168.192.in-addr.arpa  IN SOA  ns.bubba.net. hostmaster.bubba.net. (
                2000075009 ; serial
                28800      ; refresh (8 hours)
                7200       ; retry (2 hours)
                604800     ; expire (1 week)
                86400      ; minimum (1 day)
            NS  ns.bubba.net.
$ORIGIN 1.168.192.in-addr.arpa.
1           PTR server1.bubba.net.
101         PTR server2.bubba.net.
102         PTR server3.bubba.net.
  • Man you are good. That's the only file I didn't double check XD Thank you for your help :) Apr 19, 2014 at 23:47
  • I have extensive experience with maintaining DNS servers, bind in particular. And I've been burned by that same problem before 8-).
    – slm
    Apr 19, 2014 at 23:49
  • Ahah good to know :D Well, now that you have asked for it, any idea why reverse lookup is not working? host returns Host not found: 2(SERVFAIL) :P Apr 19, 2014 at 23:51
  • @user1301428 - the name of the zone file looks wrong: rev.0.168.192.in-addr.arpa.
    – slm
    Apr 19, 2014 at 23:56
  • Uhm thanks for the hint, but what do you mean by wrong? The subnet looks ok, so I suppose it must be something else? Apr 20, 2014 at 0:02

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .