I’m connected via ethernet and DHCP, the DHCP provided nameserver is 10.0.0.111 and running dnsmasq for example.com to resolve to 10.0.0.110 when on the local network, while the ip for example.com on the open internet is 91.65.182.25.
Why would Mac OS X, after resetting the DNS cache first resolve the domain correctly, and then after a few minutes somehow get the public DNS ip?
ping
, Safari, etc. are all affected. There is nothing going on in the 360 seconds wait time.
> sudo killall -HUP mDNSResponder && ping -c 3 example.com && sleep 360 && ping -c 3 example.com
Password:
PING example.com (10.0.0.110): 56 data bytes
64 bytes from 10.0.0.110: icmp_seq=0 ttl=64 time=0.795 ms
64 bytes from 10.0.0.110: icmp_seq=1 ttl=64 time=1.598 ms
64 bytes from 10.0.0.110: icmp_seq=2 ttl=64 time=0.830 ms
--- example.com ping statistics ---
3 packets transmitted, 3 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 0.795/1.074/1.598/0.371 ms
PING home.jan.io (91.65.182.25): 56 data bytes
64 bytes from 91.65.182.25: icmp_seq=0 ttl=64 time=1.180 ms
64 bytes from 91.65.182.25: icmp_seq=1 ttl=64 time=3.704 ms
64 bytes from 91.65.182.25: icmp_seq=2 ttl=64 time=2.567 ms
--- home.jan.io ping statistics ---
3 packets transmitted, 3 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 1.180/2.484/3.704/1.032 ms
There's two probable causes here:
I did some quick searching and can't find many useful ways to discover nat-pmp state from the osx command line. If this is indeed the problem, disabling options like 'port mapping' or 'upnp' on the target device might help.
Thinking about it though, its much more likely that your DNS config is broken. Especially if you are using a name which is also a zone apex, there are more places than you'd expect that A records might exist for it. This is why debugging resolution issues with the right tools is essential. Using 'ping' involves the entire client OS name resolution stack, while using 'dig' focuses on DNS responses.
Are you sure that osx is only using 10.0.0.111 as a resolver? Is that nameserver authoritative for 'example.com'? Do you have it configured with both internal and external views?
what's the response you get for the following commands?
dig example.com ns
dig example.com ns @10.0.0.111