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

Как DNS-серверы интернет-провайдера разрешают имя локального хоста?

Для некоторых из вас это может показаться дурацким простым вопросом, но я не смог найти быстрого и точного ответа в Интернете.

Недавно у меня возникла проблема, когда я пытался подключиться к локальному серверу FreeBSD по SSH, но в соединении было отказано. В файле hosts.allow на машине указано, что только локальным машинам должно быть разрешено связываться с демоном ssh (что, по сути, означает, что имя хоста клиента не может содержать точку, согласно странице руководства hosts_access). Я понял (по крайней мере, я так думаю), что причина этой проблемы заключалась в том, что сервер пытался разрешить имя хоста клиента, но запрос был перенаправлен на DNS-серверы моего интернет-провайдера. Следовательно, имя хоста клиента будет преобразовано в localname.ispname.net вместо просто localname, что означает, что он не прошел правило доступа hosts.allow.

Кроме того, когда я проверял IP-адрес клиента с сервера (или наоборот), утилита ping отображала полное доменное имя в виде localname.ispname.net, как и в случае с sshd. После того, как я включил опцию «локальный DNS» на моем маршрутизаторе и очистил кеш DNS на маршрутизаторе, все заработало нормально, предположительно потому, что имена хостов были разрешены локально.

У меня вопрос: как DNS-серверы моего интернет-провайдера узнали имя хоста моей локальной машины, когда они преобразовали IP-адрес машины в полное доменное имя? Похоже, это потребует обратного DNS-запроса к моему шлюзу по умолчанию ... это правильно?

Посмотрите ваш /etc/resolv.conf. Я предполагаю, что в этом есть строка, в которой говорится что-то вроде domain ispname.net. Это значит, что ваш хост является частью этого домена. Когда вы смотрите на свое локальное имя, этот домен добавляется.

Попробуйте использовать dig localname, и вы должны увидеть следующий результат:

;; ANSWER SECTION:
localname.      0   IN  A   192.168.1.135

Dig дает много информации и действительно полезен при отладке вопросов разрешения имен.

Также проверьте /etc/resolv.conf на наличие чего-нибудь вроде search ispname.net. У вас может быть несколько записей, которые можно добавить к имени хоста.