DNS lookup fails but nslookup works
I have DNS lookup problems on my internal network. I'm using an internal DNS server with the IP 192.168.1.254.
If I use nslookup everything works like it should:
>hawk:~ user$ nslookup publicwebserver.domain.local
>Server: 192.168.1.254
>
>Address: 192.168.1.254#53
>
>Name: publicwebserver.domain.local
>
> Address: 192.168.1.21My problem is that no other program seems to be able to lookup the DNS name:
hawk:~ user$ ping publicwebserver.domain.local
ping: cannot resolve publicwebserver.domain.local: Unknown host
It's like this for all command line programs and e.g. Firefox. If I fire up Network Utility, I get the same problem on the Lookup tab (probably since it uses nslookup or host on the back-end).
Has any of you seen this issue before?
5 Answers
For some, check /etc/resolver/ directory and delete any files there.
2Actually it is probably due to using a .local domain. That conflicts with the mDNS resolution (zero configuration networking) which by default uses .local.
Some versions of OS X can support both name resolution methods, mDNS and normal DNS, but at least Yosemite doesn't seem to support it any more.
This little bit older Apple Support document explains the background. For Yosemite what does work still is adding "domain.local" to the DNS search list in the network settings.
The real solution is not using the .local domain for DNS resolved hosts.
2It seems as if this is due to me pointing to both internal and external dns servers on my client, as mentioned here. After I removed all external DNS servers from my list of servers, everything works as it should.
1Sometimes mDNSResolver stops when connecting with VPN.
Just restart the mDNSResolver:
sudo killall -HUP mDNSResponder
I have the same problem on OS X Yosemite beta, and switching to Google's 8.8.8.8 fixed the problem for me.