Настройка распознавателя


Распознаватель отвечает за доставку информации DNS клиентским программам. Настройка распознавателя — это важная часть администрирования системы, необходимая для работы даже самого сервера DNS, потому что компьютер ничего не знает о других серверах имен. Всем операциям, выполняемым в сети, требуется работоспособный распознаватель. Настройка распознавателя связана с получением ответов на следующие вопросы:

  • Где сервер сможет получить информацию DNS?
  • Какие имена используются для локальных доменов?
  • К каким серверам имен будет выполняться обращение?

Ответы на эти вопросы определяются настройками в файлах /etc/nsswitch.conf и /etc/resolv.conf.

Источники информации DNS

Похоже, все должно быть просто; сервер получает информацию о своем хосте у сервера имен, так? Собственно, об этом и глава?

В реальном мире все не так просто, как кажется. Возможно, у вас есть небольшая домашняя сеть всего из трех машин, поэтому вы считаете запуск сервера DNS бессмысленным. А может, вы пользуетесь локальной сетью крупной компании, где полная замена DNS может занимать недели. Операционная система FreeBSD (и другие UNIX-подобные операционные системы) поддерживает возможность разрешения имен как с помощью DNS, так и с помощью файла /etc/hosts, и вам решать, с какого источника информации начать.

Если системе FreeBSD требуется узнать адрес по имени хоста (или наоборот), по умолчанию в первую очередь проверяется файл hosts, а затем выполняются запросы к указанным серверам имен. Это означает, что вы можете переопределить информацию, получаемую от сервера имен для локальных машин, что бывает очень полезно для работы с хостами за брандмауэром или в крупных корпоративных сетях с необычными требованиями.* В некоторых ситуациях бывает предпочтительнее изменить такой порядок вещей и сначала попробовать обратиться к службе DNS, а затем уже к файлу hosts. В современных версиях FreeBSD этот порядок устанавливается в файле /etc/nsswitch.conf. (В старых версиях для этих целей использовался файл /etc/host.conf, упоминания о котором до сих пор можно встретить в документации.)

Вот пример настройки службы поиска имен хостов в файле /etc/nsswitch.conf:

hosts: files dns

Распознаватель обращается к источникам информации в указанном здесь порядке. Если у вас есть дополнительные источники информации, например cached (глава 15), добавьте их сюда. Чтобы определить обратный порядок поиска имен — в первую очередь обращаться к DNS и только потом к файлу hosts, — поменяйте порядок их следования в файле конфигурации.

Второй источник информации будет задействован только в том случае, если первый источник не нашел нужную запись. Если информация в /etc/hosts и DNS отличается, используется информация из первого источника.

Выбор службы имен

Файл /etc/nsswitch нужен не только для поиска имен хостов или IP-адресов; это общий файл конфигурации выбора службы имен. В сетевой операционной системе много служб имен. Например, в главе 6 рассматривались имена сетевых служб и номера портов в файле /etc/services, а также имена протоколов и их номера. Поиск имени протокола выполняет отдельная служба имен, которая может обрабатывать запросы разными способами. Для определения числовых идентификаторов пользователя UID и GID (глава 7) требуется служба имен иного рода. Порядок выполнения всех этих запросов и многое другое определяется в файле /etc/nsswitch.conf. Но здесь мы рассматриваем только службу поиска имен хостов.

Настройка локальных доменных имен

Работая на машинах в своей локальной сети, едва ли кто-то захочет вводить полные имена хостов. Если у вас 30 веб-серверов, то, набирая ssh www19.mycompany.com, можно состариться. Чтобы указать распознавателю, какие домены проверять по умолчанию, можно перечислить их в первой строке файла /etc/resolv.conf.

Задание локального домена

Ключевое слово domain говорит распознавателю, в каком домене по умолчанию искать хосты. Например, чтобы задать absolutefreebsd.com в качестве локального домена, начните файл /etc/resolv.conf с такой строки:

domain absolutefreebsd.com

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

Задание списка доменов

В качестве альтернативы можно применить ключевое слово search и указать список доменов. Допустим, моей компании принадлежит несколько доменов, в которых мне нужно выполнить поиск. Значит, я могу начать файл /etc/resolv.conf со следующей строки:

search absolutefreebsd.com blackhelicopters.org stenchmaster.org

Распознаватель будет проверять эти три домена в порядке их указания, пока не найдет совпадение. Например, если я выполняю ping petulance, распознаватель попытается найти petulance.absolutefreebsd.com. Если не удастся, он проверит petulance.blackhelicopters.org и затем petulance.stenchmaster.com. Если такого хоста нет ни в одном из этих доменов, команда не будет выполнена.

Домен по умолчанию

Если не указать ни одно из ключевых слов domain или search, распознаватель будет использовать доменное имя локальной машины.

Список серверов имен

Итак, распознаватель знает, в каких доменах искать по умолчанию, и надо сообщить ему, к каким серверам имен обращаться. Перечислите все серверы имен в отдельных строках файла /etc/resolv.conf — в порядке предпочтения. Распознаватель будет обращаться к серверам имен в этом порядке. Список в файле /etc/resolv.conf выглядит примерно так:

domain absolutefreebsd.com
nameserver 127.0.0.1
nameserver 192.168.8.3
nameserver 172.18.33.4

Обратите внимание: первая запись в списке — это IP-адрес 127.0.0.1, принадлежащий «обратной петле» (loopback). Данная запись нужна на машине, выполняющей функции сервера имен, поскольку она предписывает распознавателю обращаться к серверу имен локального хоста. Иногда (довольно редко) возникает желание не применять локальный сервер. Можно поступить и так, но в большинстве случаев это напрасная трата сетевой полосы пропускания.

Если в /etc/resolv.conf есть записи nameserver, а также ключевые слова domain или search, ваш распознаватель сконфигурирован. Теперь нужно настроить эти источники информации, чтобы распознаватель мог их использовать.

Комментарии запрещены.