Debian – BIND9 cannot resolve local domain


I've been struggling for a few days to configure bind9 to resolve my local domain so I can access it from inside my LAN.



WEBSERVER (apache2): (A virtualbox machine, bridged)

LOCAL DOMAIN: acme.local

I can successfully access all the machines by IP. All the clients are configured with my internal DNS. I can access my local website by IP address.

The bind daemon is succesfully running without errors. Also the webserver is running and the virtualhost is configured and enabled.

Goal: access my local webserver by domain name (acme.local) without changing my /etc/hosts file.

On my DNS server (

Content of /etc/bind/named.conf.options:

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

    // 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.

    // I dont need to forward to other name server. so dont use this.
    // forwarders {
    // };

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

Content of /etc/bind/named.conf.local:

// Just to be sure, internal network only.
acl internals  {;;

// Create a view for the internal ACL.
view "internals" {
    // Match the ACL
    match-clients { internals; };
    // Configure the domain:
    zone "acme.local" {
        type master;
        // point out to the zone file.
        file "/etc/bind/zones/db.acme.local";


@   IN      SOA     ns1.acme.local. admin.acme.local. (
                              5         ; Serial
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                         604800 )       ; Negative Cache TTL

; Name servers
; create a name for the DNS.
acme.local.    IN      NS      ns1.acme.local.

; A records for name servers
; Point the created name for the DNS to the machine itself.
ns1             IN      A

; Other A records
; Point to the web-server:
@               IN      A
www             IN      A

DiG information (done on one of the internal clients)

This is what dig tells me, I am new to this DNS thing, but it seems to me it finds acme.local on but still Chrome tells me:

acme.local’s server DNS address could not be found.

Dig info:

; <<>> DiG 9.9.5-9+deb8u9-Debian <<>> acme.local
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 44847
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2

; EDNS: version: 0, flags:; udp: 4096
;; acme.local.          IN  A

acme.local.     604800  IN  A

acme.local.     604800  IN  NS  ns1.acme.local.

ns1.acme.local. 604800  IN  A

;; Query time: 3 msec
;; WHEN: Fri Jan 20 23:14:04 CET 2017
;; MSG SIZE  rcvd: 91


Can you see what I am doing wrong or give me some advice on how to achieve my goal by using bind9?

Thanks anyway!


One part is solved, thanks to @Barmar I was pointed out it the right direction. DNS seemed fine. for my debian laptop I had the change the order of values in /etc/nsswitch.conf from hosts: files myhostname mdns4_minimal [NOTFOUND=return] dns to hosts: dns files myhostname mdns4_minimal [NOTFOUND=return]. I am not sure why this worked but it worked. But…

I would also like to access my local domain with my mobile devices (android) connected to my WiFi. And that still doesn't work. However I configured the wifi connection with the DNS on each device…

Best Answer

I think this line:

ns1             IN      A

is the problem.

Replace with the actual address of your dns server (

Related Question