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.21
My 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?
Solution 1:
For some, check /etc/resolver/ directory and delete any files there.
Solution 2:
Actually 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.