В /etc/resolv.conf, что именно делает параметр конфигурации «поиск»?

66

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

Например:

search  localdomain.com
Майк
источник

Ответы:

63

Из man resolv.conf

Список поиска обычно определяется по имени локального домена; по умолчанию он содержит только имя локального домена. Это можно изменить, перечислив желаемый путь поиска домена после ключевого слова поиска с пробелами или вкладками, разделяющими имена. Запросы резольвера, содержащие в себе меньше точек ndots (по умолчанию 1), будут пытаться использовать каждый компонент пути поиска по очереди, пока не будет найдено совпадение. Для сред с несколькими поддоменами, пожалуйста, прочитайте опции ndots: n ниже, чтобы избежать атак «человек посередине» и ненужного трафика для root-dns-серверов. Обратите внимание, что этот процесс может быть медленным и генерировать большой сетевой трафик, если серверы для перечисленных доменов не являются локальными, и эти запросы будут задерживаться, если ни один из доменов недоступен.

Список поиска в настоящее время ограничен шестью доменами, в общей сложности 256 символов.

Подводя итог вышесказанному, при условии отсутствия изменений по умолчанию, упомянутых выше, если что-то попадет в распознаватель, в котором нет точек, распознаватель попытается добавить localdomain.comк нему.

Допустим, вы просто печатаете http://somesite/somedocument.htmlв браузере. Преобразователь поймает это и сначала попытается разрешить somesite.localdomain.com- эквивалентно, если вы на самом деле набрали http://somesite.localdomain.com/somedocument.html- прежде чем пытаться выполнить то, что вы на самом деле запросили.

Это полезно, если вы являетесь частью среды LAN, в которой есть собственный DNS-сервер, чтобы люди могли вводить простые имена для доступа к локальным ресурсам. Если у вас нет домашней или корпоративной локальной сети с собственным DNS-сервером, вам не о чем беспокоиться.

LawrenceC
источник
10
HTTP является плохим примером использования опции поиска. Большое количество людей использует виртуальные хосты на основе имен из-за дефицита IPv6. По моему опыту, очень редко можно видеть виртуальные хосты таким образом, чтобы принимать запрос Host: somesiteв дополнение к Host: somesite.localdomain.com. Или, другими словами, опция поиска позволяет вашему клиенту разрешать сокращенное имя, но это не значит, что вы на самом деле сможете выполнить запрос.
Зоредаче
1
@Zoredache, вы приводите правильную точку, однако нужно предположить, что метод поиска будет реализован локальным системным администратором, который также контролирует все хосты локальных доменных имен, то есть виртуальные хосты на основе имен якобы уже будет настроен, чтобы учесть это поведение.
CNST
1
@cnst - не правда всегда верно в моем опыте. Разработчики собирают полный сервер с tomcat, упакованным с файлом war. Администратор ops / sys беспокоится о конфигурации машины / vms / dns. Есть эта серая линия о том, кто несет ответственность. Хорошо, что zoredache вызвал его на тот случай, если у читателя есть конфигурация, в которой может быть описана проблема.
Пэт