Ubuntu – DNS resolv conf issue – DNS doesn’t resolve for certain internal addresses despite several name servers listed that can resolve

domain-name-systemresolv.confUbuntu

I am running ubuntu 12.10 desktop edition. I am having and issue with my DNS not resolving certain internal names on our network. We run 3 internal DNS servers. Originally the 1st one (192.168.6.1) had the other 2 servers set as upstream, but now we've removed that.

I have set nameservers in /etc/resolv.conf successfully to list all 3 nameservers instead of just the one name server (192.168.6.1) which it had originally.

I can't resolve names that are resolvable on the 2nd and 3rd DNS.

$ cat /etc/resolv.conf
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 192.168.6.1
nameserver 10.10.11.5
nameserver 10.10.11.4
search internal.local

$ cat /etc/network/interfaces
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
    address 192.168.6.180
    netmask 255.255.255.0
    broadcast 192.168.6.255
    gateway 192.168.6.1
    dns-nameservers 192.168.6.1 10.10.11.5 10.10.11.4
    dns-search ontech.local
    mtu 1250

As you can see, the name servers are all setup in the right files.

Now to test out the name servers:

$ nslookup
> server 10.10.11.5
Default server: 10.10.11.5
Address: 10.10.11.5#53
> aws-internal-frontend
Server:     10.10.11.5
Address:    10.10.11.5#53

Name:   aws-internal-frontend.internal.local
Address: 10.10.10.5
> server 192.168.6.1
Default server: 192.168.6.1
Address: 192.168.6.1#53
> aws-internal-frontend
Server:     192.168.6.1
Address:    192.168.6.1#53

** server can't find aws-internal-frontend: NXDOMAIN
> server 127.0.0.1
Default server: 127.0.0.1
Address: 127.0.0.1#53
> aws-internal-frontend
^C
$ ping aws-internal-frontend
ping: unknown host aws-internal-frontend

As you can tell, the 1st DNS can't resolve the name but the second one can. I have this second one setup in my /etc/resolv.conf yet it won't use that name server to attempt to resolve the address.

What settings do i need to change to fix this so that i can ping aws-internal-frontend.

Thank you

Best Answer

192.168.6.1 is returning NXDOMAIN for your query. NXDOMAIN means the domain (internal.local) doesn't exist as far as the server is concerned. The reason you can't resolve aws-internal-frontend.internal.local is due to the NXDOMAIN, which is an authoritative response. Since you're configured to query 192.168.6.1 before 10.10.11.5, you will never successfully resolve for that zone. The only way you will query the secondary (or ternary) name server is if the previous server doesn't respond.

Are you absolutely sure 192.168.6.1 is configured for the zone?