Я столкнулся с точно такой же проблемой и обнаружил, что тема Mac mini, в которой проблемы с DNS в обсуждениях Apple чрезвычайно полезны.
Суть проблемы: mDNSResponder, кажется, иногда меняет порядок DNS-серверов, которые он запрашивает, и поэтому, если он сначала запрашивает DNS-серверы вашего провайдера, он не получит правильную запись (или, если вы используете раздельный DNS, вы получите ваш публичный IP).
Лучшее решение для этого - убедиться (как вы это сделали), что в настройках DNS указаны только необходимые DNS-серверы. Это может потребовать удаления DNS-серверов ISP из вашего DHCP (как я должен был это сделать - все запросы перенаправляются через локальный DNS-сервер в любом случае).
Причина, по которой утилиты любят dig
и nslookup
будут работать как обычно, заключается в том, что они используют BIND и /etc/resolv.conf
напрямую отличаются от остальной операционной системы.
Для справки в Snow Leopard кэш DNS теперь хранится в mDNSResponder, и для его очистки необходимо перезапустить процесс, используя sudo killall -HUP mDNSResponder
. Вы можете получить больше информации (ведение журнала, внутреннее состояние дампа и т. Д.), Используя различные флаги для killall
команды.
"sudo killall -USR1 mDNSResponder" to enable operation logging.
"sudo killall -USR2 mDNSResponder" to enable packet logging.
"sudo killall -HUP mDNSResponder" to clear the DNS cache.
"sudo killall -INFO mDNSResponder" to dump mDNSRepsonder's internal state.
Источник: Снуп Догг в той же теме.