MacOS – Network issues since upgrading to Yosemite – Unable to find local systems

macosNetwork

I am on a Windows corporate network. Since I've upgraded my MacBook Pro (2014) to Yosemite from Mavericks, I am unable to find local machines on our network via DNS.

  • I can get onto my corporate network.
  • I can connect to any machine, webpage, server throughout the world via the DNS name. ( I can connect to Google, Yahoo, etc. with no problems)
  • I can find local systems via the IP address.

What I cannot do is find our local systems via DNS names. For example, I can ping 10.1.0.233 but I cannot ping flubert.prod.local even though that machine's IP address is 10.1.0.233.

This is an issue for many of us Macheads. Many haven't upgraded from Mavericks to Yosemite because of this issue.

Best Answer

This is very common problem in split-horizon DNS and heterogenous but Windows-dominated company networks. A lot of Windows sysadmins are used to the .local TLD as a valid private TLD name since at least a decade though it's not RFC-compliant anymore.

When your local area network has been configured with a domain name ending in .local, then all LAN hostname resolutions queried by a Mac will be passed to mDNS first - bypassing unicast DNS!

So hostname resolutions for .local often fail in Mac OS X applications (Safari, Chrome etc and often ping).

In contrary dig and nslookup are unicast DNS utilities, so they will both bypass the system hostname resolution order (files->mDNS->DNS) and query unicast DNS directly.

Some workarounds exist (your mileage will vary):

  • flush DNS cache frequently
  • add prod.local as search domain (to add local additionally is sometimes advised as well)

enter image description here

IMHO the only proper and RFC-compliant way to fix this is changing the local domain names to use a TLD other than .local in your Windows corporate network.