fc3c16f3

Конфигурация Разрешителя


Файл конфигурации называется /etc/resolv.conf. Этот файл обозначает сервера имен в сети, к которым нужно послать запросы. Разрешитель будет пробовать установить контакт с сервером имен на localhost, если он не сможет найти файл конфигурации. В любом случае вы должны установить файл конфигурации на каждом хосте, так как это - единственный рекомендуемый способ определить домен по умолчанию на системном уровне, и вы можете записать в него адрес локального хоста, если на нем работает сервер имен. Будет вполне резонно создать этот файл в случае если у вас работает локальный сервер, так как его содержимое будет кэшироваться каждым клиентом разрешителя, когда клиент делает первый вызов программы разрешителя.

Файл resolv.conf содержит директивы, по одной в каждой строчке, в следующей форме:

; комментарий # другой комментарий domain local-domain search search-list nameserver server-address sortlist sort-list options option-list

Хотя бы одна из директив domain или search должна быть дана, хотя бы один раз. Если дана директива search, то первый элемент в заданном списке поиска (search-list) перевесит любой ранее определенный local-domain. Директива nameserver может быть дана до трех раз; все дополнительные директивы nameserver будут игнорированы. Если строка будет начинаться с ";" или "#", то эта строка будет считаться комментарием; нужно отметить, что комментарии не были позволены в ранних версиях разрешителя (тех что были включены в BIND версий младше 4.9) - так что если версия разрешителя вашего продавца поддерживает комментарии, то он в самом деле очень расторопен.

Local-domain будет добавлен к любому запросу, не содержащему ".". local-domain может быть обойден на уровне процессов установкой переменной окружения LOCALDOMAIN. Нужно отметить, что обработка local-domain может быть отключена установкой опции в разрешителе.

Search-list - это список доменов, которые пробуются, по порядку, для имен, не содержащих ".". Обработка search-list может быть отключена установкой опции в разрешителе.
Также отметьте, что переменная окружения "LOCALDOMAIN" может подавить search-list на уровне процессов.

Адреса серверов (server-address) собираются вместе и затем используются как назначение по умолчанию запросов, генерируемых через разрешитель. Другими словами, таким образом вы можете сказать разрешителю, какие сервера имен он должен использовать. Для определенных клиентских приложений существует возможность обойти этот список, и она обычно осуществляется внутри сервера имен (который в то же самое время и есть клиент разрешителя) и в тестовых программах типа nslookup. Нужно отметить, что если вы хотите перечислить локальный хост в файле конфигурации разрешителя, вы лучше всего должны использовать его первичный адрес в Internet, чем псевдоимя локального хоста типа 127.0.0.1 или 0.0.0.0. Это необходимо из-за ошибки в сетевом коде некоторых версий BSD при обработке соединенных сокетов SOCK_DGRAM. Если вы должны использовать псевдоадрес, то лучше всего вместо 127.0.0.1 использовать 0.0.0.0 (или просто "0"), впрочем, вы предупреждены, что в зависимости от типа вашего сетевого кода BSD, оба из них способны на ошибку, какждый по-своему. Если реализация IP на вашем хосте не создает короткозамкнутый маршрут между интерфейсом по умолчанию и петлевым (loopback) интерфейсом, то вы можете добавить статический маршрут (например в /etc/rc.local) это делается так:

route add myhost.domain.name localhost 1

Sort-list - это список пар IP адресов и сетевых масок. Адреса возвращаемые процедурой gethostbyname сортируются в порядке определенном этим списком. Любые адреса, которые не соответствуют парам адресов и сетевых масок будут возвращены после всего. Сетевая маска опциональна, и если она не определена, будет использована натуральная сетевая маска.

Option-list - это список опций, каждая из которых подавляет какую-либо из внутренних переменных разрешителя. В настоящее время поддерживаются следующие опции:

debug

выставляет бит RES_DEBUG в _res.options.

ndots:n

выставляет более низкий порог (измеряемый в "количестве точек") в именах заданных res query(), так что имена с как минимум этим количеством точек будут опробованы как абсолютные имена, прежде чем будет произведена обработка local-domain или search-list. По умолчанию эта внутренняя переменная равна "1".


Содержание раздела