Lion разрешает DNS-имена при прямом запросе к серверу, но не при использовании в команде или приложении

Недавно (как и несколько минут назад) я добавил имя хоста и обратные (A и PTR) записи для имени хоста в моей внутренней сети, используя сервер Bind DNS. По какой-то причине я могу успешно использовать digи это новое имя, но мои приложения с графическим интерфейсом не могут разрешить имя.nslookupping

Я попытался очистить кеш DNS на своем локальном компьютере, но dscacheutil -flushcacheбезрезультатно.

Вот пример моей сессии (имена, IP-адреса изменены в целях безопасности):

$ nslookup newbox.internal
server     10.0.0.2
address    10.0.0.2#53

Name:    newbox.internal
Address: 10.1.1.1

$ ping newbox.internal
ping: cannot resolve newbox.internal: Unknown host

ВТФ? Хорошо, я уверен, что мой DNS настроен правильно:

$ dig newbox.internal

; <<>> DiG 9.8.3-P1 <<>> newbox.internal
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 33812
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 4, ADDITIONAL: 4

;; QUESTION SECTION:
;newbox.internal.   IN  A

;; ANSWER SECTION:
newbox.internal. 21600 IN   A   10.1.1.1

;; AUTHORITY SECTION:
internal.       10800   IN  NS  dns001.internal.
internal.       10800   IN  NS  dss001.internal.
internal.       10800   IN  NS  dhdns001.internal.
internal.       10800   IN  NS  dhdns002.internal.

;; ADDITIONAL SECTION:
dns001.internal. 10800 IN   A   10.0.0.2
dns002.internal. 10800 IN   A   10.0.0.3
dhdns001.internal. 10800 IN A   10.0.0.20
dhdns002.internal. 10800 IN A   10.0.0.21

;; Query time: 1 msec
;; SERVER: 10.0.0.2#53(10.0.0.2)
;; WHEN: Mon Jul  1 14:43:35 2013
;; MSG SIZE  rcvd: 245

Почему моя система демонстрирует такое странное поведение преобразователя DNS?

В качестве примечания, DNS отлично работает в моей системе. На данный момент это новое имя хоста — единственное, с которым у меня возникают проблемы. Моя система настроена на использование DNS-сервера 10.0.0.2 в качестве основного.

РЕДАКТИРОВАТЬ

Уничтожение mDNSResponder устранило эту проблему... но почему?

Ответы (2)

Уничтожение mDNSResponder устранило эту проблему... но почему?

Потому что вы сбросили локальный кеш DNS!

http://support.apple.com/kb/ht5343

Команда прямого поиска будет напрямую запрашивать DNS-сервер, однако механизм разрешения практически для всего остального заключается в том, что вы убили процесс mDNSResponder.

dscacheutil -flushcache устарел согласно базе знаний.

Я не знал, что это официальный метод. Аккуратно, и спасибо за указатель!

От man nslookup и man dig:

ОС Mac X УВЕДОМЛЕНИЕ

Команда nslookup не использует разрешение имени хоста и адреса или механизмы маршрутизации DNS-запросов, используемые другими процессами, работающими в Mac OS X. Результаты запросов имени или адреса, напечатанные nslookup, могут отличаться от результатов, найденных другими процессами, использующими Mac OS X. Собственные механизмы разрешения имен и адресов OS X. Результаты запросов DNS также могут отличаться от результатов запросов, использующих библиотеку маршрутизации DNS Mac OS X.

человек-хост имеет такое же уведомление. пинг однако нет.

Дополнительная информация и возможное решение здесь:

Поиск DNS завершается с ошибкой, например, с `ping`, но работает с `host`