0

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

  • What is the content of /etc/resolv.conf from one of your clients? – Alessandro Dotti Contra Jan 20 '17 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 – Beach Chicken Jan 20 '17 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). – Alessandro Dotti Contra Jan 20 '17 at 22:15
  • What's in /etc/nsswitch.conf. Does it include hosts: dns? – Barmar Jan 20 '17 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 Jan 20 '17 at 22:32
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).

  • Changed it but still doesn't work unfortunately... – Beach Chicken Jan 20 '17 at 22:15
  • What is the output of host www.acme.local? – Alessandro Dotti Contra Jan 20 '17 at 22:23
  • www.acme.local has address 192.168.178.36 – Beach Chicken Jan 20 '17 at 22:24
  • So your dns server resolves correctly. – Alessandro Dotti Contra Jan 20 '17 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 – Beach Chicken Jan 20 '17 at 22:34

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.