1

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.

Details:

DNS SERVER: 192.168.178.46

WEBSERVER (apache2): (A virtualbox machine, bridged) 192.168.178.36
VM HOST MACHINE: 192.168.178.26

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 (192.168.178.46)

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

    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  {
    192.168.178.0/24;
        127.0.0.0/8;
};

// 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";
    };
};

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

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

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 192.168.178.36. but still Chrome tells me:

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

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

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;; acme.local.          IN  A

;; ANSWER SECTION:
acme.local.     604800  IN  A   192.168.178.36

;; AUTHORITY SECTION:
acme.local.     604800  IN  NS  ns1.acme.local.

;; ADDITIONAL SECTION:
ns1.acme.local. 604800  IN  A   192.168.178.46

;; Query time: 3 msec
;; SERVER: 192.168.178.46#53(192.168.178.46)
;; WHEN: Fri Jan 20 23:14:04 CET 2017
;; MSG SIZE  rcvd: 91

Question:

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

Thanks anyway!

EDIT / UPDATE:

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

7
  • What is the content of /etc/resolv.conf from one of your clients? Commented Jan 20, 2017 at 22:04
  • # Generated by NetworkManager nameserver 192.168.178.46 nameserver 2001:b88:1002::10 nameserver 2001:b88:1202::10 should be ok I guess Commented Jan 20, 2017 at 22:09
  • It is ok, but you must use the fully qualified domain name when trying to resolve host names (no search option present in the file). Commented Jan 20, 2017 at 22:15
  • What's in /etc/nsswitch.conf. Does it include hosts: dns?
    – Barmar
    Commented Jan 20, 2017 at 22:31
  • The dig output indicates that BIND is resolving the name fine. The problem seems to be that Chrome isn't asking BIND, which would suggest the problem is with nsswitch.conf.
    – Barmar
    Commented Jan 20, 2017 at 22:32

1 Answer 1

0

I think this line:

ns1             IN      A       127.0.0.1

is the problem.

Replace 127.0.0.1 with the actual address of your dns server (192.168.178.46).

5
  • Changed it but still doesn't work unfortunately... Commented Jan 20, 2017 at 22:15
  • What is the output of host www.acme.local? Commented Jan 20, 2017 at 22:23
  • www.acme.local has address 192.168.178.36 Commented Jan 20, 2017 at 22:24
  • So your dns server resolves correctly. Commented Jan 20, 2017 at 22:25
  • Ok, good to know :) still a deadly silence on the webserver at /var/log/apache2/error.log and /var/log/apache2/access.log when I try to access http://acme.local or http://www.acme.local Commented Jan 20, 2017 at 22:34

You must log in to answer this question.

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