Недавно (как и несколько минут назад) я добавил имя хоста и обратные (A и PTR) записи для имени хоста в моей внутренней сети, используя сервер Bind DNS. По какой-то причине я могу успешно использовать dig
и это новое имя, но мои приложения с графическим интерфейсом не могут разрешить имя.nslookup
ping
Я попытался очистить кеш 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 устранило эту проблему... но почему?
Уничтожение 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`
Майки ТК