Файл настройки ясно документирует настройки DNS-клиента. Администратор может указать до трех серверов имен, два из которых являются резервными - на случай, если не ответит первый сервер. Кроме того, файл содержит имя домена по умолчанию и прочие параметры работы. Файл resolv.conf - важнейшая часть настройки службы имен.

resolv.conf - это простой файл, подходящий для чтения людьми. Существуют некоторые вариации команд файла, зависящие от системы. Ниже перечислены записи, поддерживаемые большинством систем:

nameserver адрес - Записи nameserver указывают IP-адреса серверов, опрашиваемых DNS- клиентом на предмет получения доменной информации. Опрос серверов имен происходит в порядке следования записей nameserver. Если от сервера не получен ответ, DNS-клиент посылает запрос следующему серверу по списку, и так до тех пор, пока не будет достигнут последний из серверов. Если файл resolv.conf не существует либо в файле отсутствуют записи nameserver, все запросы направляются локальному узлу. Однако если файл resolv.conf существует и содержит записи nameserver, обращение к локальному узлу происходит только в том случае, если присутствует соответствующая запись nameserver. Указывайте официальный IP-адрес локального узла (или адрес 0.0.0.0), но не кольцевой адрес. Официальный адрес позволяет избежать проблем, возникающих в некоторых вариантах Unix при использовании кольцевого адреса. Вариант resolv.conf для чистого клиента DNS никогда не содержит записи namerserver, указывающей на локальный узел.

domain имя - Запись domain определяет доменное имя по умолчанию. DNS-клиент добавляет доменное имя по умолчанию к любому имени узла, не содержащему точки. Дополненное таким образом имя узла используется в запросе к серверу имен. Например, если DNS-клиент получает имя crab (не содержащее точки), он добавляет доменное имя по умолчанию в процессе конструирования запроса. Предположим, значение имени в записи domain wrotethebook.com, тогда DNS-клиент создает запрос для crab.wrotethebook.com. Переменная среды LOCALDOMAIN, будучи установленной, имеет приоритет более высокий, чем запись domain, и значение переменной используется для дополнения имени узла.


search домен... - Запись search определяет ряд доменов, в которых производится поиск, если имя узла не содержит точки. Предположим, файл содержит запись search essex.wrotethebook.com butler.wrotethebook.com. Запрос для узла по имени cookbook будет преобразован сначала в запрос для имени cookbook.essex.wrotethebook.com. Если поиск для такого имени не принес положительных результатов, DNS-клиент создает запрос для cookbook.butler.wrotethebook.com. Вновь получив отрицательный результат, клиент DNS прервет процесс поиска для имени узла. Используйте запись search либо запись domain. Предпочтение отдавайте команде search. Никогда не используйте обе команды одновременно. Переменная среды LOCALDOMAIN имеет более высокий приоритет, чем запись search.

sortlist сеть[/маска сети] ... - Адреса, принадлежащие перечисленным в команде sortlist сетям, являются для DNS-клиента предпочтительными. Если DNS-клиент получает несколько адресов в ответ на запрос по многосетевому узлу или маршрутизатору, адреса сортируются таким образом, что адреса сетей sortlist предшествуют адресам всех прочих сетей. В ином случае адреса возвращаются приложению в порядке их получения от сервера имен.

Команда sortlist используется редко, поскольку затрудняет работу таких серверных механизмов, как распределение нагрузки. Основным исключением является ситуация, когда список сортировки настраивается для предпочтения адресов локальной сети всем прочим адресам. В последнем случае, если клиент DNS состоит в сети 172.16.0.0/16 и один из адресов, полученных в многоадресном ответе, также принадлежит этой сети, адрес сети 172.16.0.0 будет предшествовать всем прочим адресам.

options параметр ... - Запись options позволяет устанавливать необязательные параметры настройки клиента DNS. Доступны следующие параметры: debug Включает отладку - печать отладочных сообщений на стандартный вывод, debug работает только в случае, если библиотека DNS-клиента была собрана с ключом -DDEBUG (в большинстве случаев это не так).


ndots:n - Устанавливает число точек в имени узла, наличие которого служит критерием необходимости использования списка поиска перед отправкой запроса серверу имен. По умолчанию имеет значение 1. Таким образом, к имени узла с одной точкой не добавляется доменное имя перед отправкой серверу имен. Если указать параметр ndots:2, к имени узла с одной точкой добавляется домен из списка поиска перед отправкой запроса, но не к имени с двумя или более точками.

Параметр ndots может пригодиться, если одну из составляющих имени домена можно спутать с доменом высшего уровня, и пользователи постоянно усекают имена из этого домена. В таком случае запросы будут передаваться для разрешения прежде всего корневым серверам имен для поиска в домене верхнего уровня, прежде чем, в конечном итоге, вернуться на локальный сервер имен. Беспокоить корневые серверы по пустякам - очень плохой тон. Используйте ndots, чтобы обязать DNS-клиент принудительно дополнять проблемные имена локальным доменным именем, чтобы разрешение происходило без обращения к корневым серверам.

timeout:n - Устанавливает начальный интервал ожидания ответа DNS-клиентом. По умолчанию интервал ожидания равен 5 секундам для первого за- проса к каждому серверу. В пакете BIND для системы Solaris 8 данный параметр имеет синтаксис retrans:n.

attempts:n - Задает число повторных попыток получить ответ на запрос. По умолчанию имеет значение 2, то есть DNS-клиент дважды повторяет попытку получить ответ для каждого из серверов в списке серверов, прежде чем вернуть приложению сообщение об ошибке. В пакете BIND для системы Solaris 8 данный параметр имеет синтаксис retry:n и значение по умолчанию 4.


rotate - Включает циклический механизм «round-robin» выбора серверов имен. В обычной ситуации DNS-клиент посылает запрос первому серверу из списка, а следующему серверу - лишь в том случае, если первый сервер не ответил на запрос. Параметр rotate предписывает DNS-клиенту распределить нагрузку поровну между всеми серверами имен.

no-check-names - Отключает проверку доменных имен на соответствие документу RFC 952 , DOD Internet Host Table Specification (Спецификаци я таблицы узлов сети Интернет Министерства обороны). По умолчанию доменные имена, содержащие подчеркивание (_), символы не из таблицы ASCII либо управляющие символы ASCII, считаются ошибочными. Воспользуйтесь этим параметром, если существует необходимость работать с именами, содержащими подчеркивание.

inet6 - Предписывает DNS-клиенту создавать запросы адресов IPv6. В настоящее время в Интернете применяется четвертая версия протокола Internet (IP) - IPv4. Длина адреса в IPv4 составляет 32 бита. Длина адреса в IPv6 - 128 бит.

Чаще всего файл настройки resolv.conf содержит в списке поиска локальное доменное имя, указывает локальный узел в качестве первого сервера имен, а также один или два резервных сервера имен. Пример такой настройки:

111

Пример основан на воображаемой сети, поэтому по умолчанию для доменного имени указано имя wrotethebook.com. Файл взят с узла rodent, который и обозначен в качестве первого сервера имен. В качестве резервных серверов выступают crab и ога. Настройка не содержит параметров и списка сортировки, поскольку они применяются нечасто. Так выглядит файл настройки обычного DNS-клиента.