Я зіткнувся з точно такою ж проблемою і виявив тему про Mac mini, що має проблеми з DNS в дискусіях Apple, дуже корисними.
Суть проблеми: mDNSResponder, здається, періодично змінює порядок DNS-серверів, які він запитує, тому, якщо він спочатку запитує DNS-сервери вашого провайдера, він не отримає належного запису (або якщо ви використовуєте розділений DNS, ви отримаєте ваш загальнодоступний IP).
Найкраще виправити це - забезпечити (як і раніше), щоб у ваших налаштуваннях DNS були вказані лише необхідні сервери DNS. Це може зажадати видалення DNS-серверів провайдера з вашого 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.
Джерело: Snoop Dogg на тій самій нитці.