Назад | Перейти на главную страницу

dig получает правильный результат от DNS-сервера, но имя все еще не удается разрешить

При каких условиях могло бы произойти следующее? С данной машины OSX во внутренней сети:

$~ cat /etc/resolv.conf
nameserver 10.102.120.7
nameserver 10.102.120.2

С той же машины:

$~ dig @10.102.120.7 in.local
<snip> ...
;; QUESTION SECTION:
;in.local.                      IN      A

;; ANSWER SECTION:
in.local.               43200   IN      A       10.102.123.30
<snip> ...

И все же эта рабочая станция не может пинговать in.local или загружать страницы, размещенные на этом компьютере с помощью apache. 10.102.123.30 определенно запущен (2 машины OSX, которые я знаю, не могут разрешить in.local, но другие машины в сети могут). Я также проверил их / etc / hosts, чтобы увидеть, может ли что-нибудь мешать ... Не уверен, что еще проверить ...

В .local tld сначала разрешается в MacOS X с помощью Multicast DNS Bonjour / Rendezvous. Это означает, что если вы пытаетесь использовать DNS-сервер с .local tld, он не будет разрешен с помощью DNS-сервера.

Некоторые частные сети также используют домены ".local" для хостов, зарегистрированных на их внутреннем DNS-сервере, даже если это не действительный домен верхнего уровня в общедоступном Интернете. Если ваш Mac подключен к такой сети, вы можете захотеть, чтобы он выполнял поиск имен хостов, заканчивающихся на «.local», используя Unicast DNS для связи с DNS-сервером, точно так же, как он ищет имена хостов, такие как «www. .apple.com "в Интернете.

Видеть: http://support.apple.com/kb/HT3473 и: http://support.apple.com/kb/TA20999

В OS X есть DNS-кеш на уровне ОС, который вам может потребоваться очистить - например, nscd на solaris / linux / bsd.

Пытаться dscacheutil -flushcache (на Leopard) или lookupd -flushcache (в 10.5.1 и ранее).

Вы только что узнали, почему использование .LOCAL - плохая идея.

Единственное, о чем я могу думать, это то, что вы не используете DNS для службы имен или имя кешируется.

Я больше знаком с Linux, но вы, возможно, ищете файл nsswitch.conf (или аналогичный) в эквиваленте / etc / для OSX, или конфигурацию демона кэширования (nscd в Linux) (nscd.conf) или состояние.

nsswitch.conf контролирует, как разрешаются имена. DNS - это только один механизм. Другие включают файлы (/ etc / host), LDAP и (я думаю) NIS.

nscd - это кеш имен, который помогает быстрее разрешать имена, когда вы получаете повторяющиеся запросы для одного и того же имени (например, вы загружаете 300 страниц с веб-сервера), кэшируя ответ на соответствующий промежуток времени (например, 43200 секунд из вашего примера вывода dig)