resolv.conf(5) файл настройки для процедур определения имён (resolver)

ОБЗОР

/etc/resolv.conf

ОПИСАНИЕ

resolver — это набор функций из библиотеки Си, который предоставляет доступ к системе доменных имён интернет (DNS). Файл настройки определителя (resolver) содержит информацию, которая читается функциями разрешения имён при первом их вызове процессом. Файл разрабатывался в понятном человеку формате, и содержит список ключевых слов со значениями, которые предоставляют различного рода информацию для функций разрешения имён. Файл настройки считается надёжным источником информации DNS (например, информация об AD-бите DNSSEC будет возвращаться в неизменном виде из этого источника).

Если этот файл не существует, то будет опрашиваться только служба имён на локальной машине; доменное имя определяется из имени узла, а домен поиска создаётся из имени домена.

Поддерживаются следующие параметры настройки:

nameserver IP-адрес сервера имён
Задает интернет-адрес сервера имён, на который надо переправлять все запросы, или в виде адреса IPv4 (в точечном формате), или в виде адреса IPv6 в формате с двоеточиями (и, возможно, точками), определённом в RFC 2373. Может быть указано до MAXNS (в настоящее время 3, см. <resolv.h>) серверов имён, повторяя каждый раз ключевое слово. Если указано несколько серверов, функции разрешения имён будут обращаться к серверам имен в порядке перечисления. Если в файле нет строк nameserver, то функции разрешения имён используют сервер имён на локальной машине. (Функции разрешения имён работают по следующему алгоритму: попробовать обратиться к первому указанному серверу имён. Если нет ответа в отведённое время, попробовать обратиться к следующему серверу, и т.д. пока не будет исчерпан список серверов.)
domain локальное доменное имя
Для большинства запросов имён с доменом можно использовать короткие имена относительно локального домена. Если значение равно '.', то это считается корневым доменом. Если строки domain в файле настройки нет, домен определяется из локального имени узла, возвращаемого gethostname(2); доменной частью считается всё после первой точки '.'. Наконец, если имя узла не содержит доменной части, то предполагается корневой домен.
search список поиска
Список поиска обычно определяется по имени локального домена; по умолчанию он содержит только имя локального домена. Это можно изменить, перечислив имена доменов, в которых нужно вести поиск, с ключевым полем search через пробел или символ табуляции. При разрешении запросов имён, в которых меньше точек чем указано в ndots (по умолчанию 1), будет использован каждый компонент пути поиска пока не будет найдено соответствующее имя.
Список поиска сейчас может содержать не более шести доменов и не может быть длиннее 256 символов.
sortlist
Вызывает сортировку адресов, возвращаемых функцией gethostbyname(3). Список сортировки задается в виде пар IP-адрес/маска сети. Маску сети указывать не обязательно --- по умолчанию используется естественная маска сети. IP-адрес и необязательная маска сети разделяются косой чертой. В списке можно указывать до 10 пар. Пример:

sortlist 130.155.160.0/255.255.240.0 130.155.0.0

options
С помощью параметров изменяются некоторые внутренние переменные функций определения имён. Синтаксис
options параметр ...

где параметр может иметь следующие значения:

debug
Задаёт RES_DEBUG в _res.options (только, если glibc собрана с поддержкой отладки; смотрите resolver(3)).
ndots:n
Задаёт минимальное количество точек, которые должны обязательно присутствовать в имени, переданном функции res_query(3) (см. resolver(3)) прежде чем будет выполнен начальный абсолютный запрос. По умолчанию n равно 1, поэтому если в имени есть точки, сначала имя пытаются разрешить как абсолютное, прежде чем добавлять к нему элементы из списка поиска. Значение этого параметра внутренне доходит до 15.
timeout:n
Задаёт промежуток времени, который функции определения имён будут ждать ответа от удалённого сервера имён перед тем как повторить запрос другому серверу имён. Измеряется в секундах, по умолчанию RES_TIMEOUT (в настоящее время равно 5, см. <resolv.h>). Значение этого параметра внутренне доходит до 30.
attempts:n
Задаёт количество раз, которое функции определения имён будут посылать запрос серверам имён перед тем как закончить работу и вернуть ошибку вызывавшему их приложению. По умолчанию равно RES_DFLRETRY (в настоящее время 2, см. <resolv.h>). Значение этого параметра внутренне доходит до 5.
rotate
Задаёт значение RES_ROTATE в _res.options, что приводит к циклическому выбору указанных серверов имён. Это приводит к распределению нагрузки среди серверов, чтобы исключить использование каждый раз только первого сервера всеми клиентами.
no-check-names
Задаёт значение RES_NOCHECKNAME в _res.options, что приводит к выключению в современном BIND проверки в поступающих именах узлов и почтовых именах недопустимых символов, таких как символы подчёркивания (_), не-ASCII или управляющие символы.
inet6
Задаёт значение RES_USE_INET6 в _res.options. Это приводит к выполнению запроса AAAA раньше запроса A внутри функции gethostbyname(3), и отображению ответов IPv4 в "туннелированную форму" IPv6, если записи AAAA не были обнаружены, но есть запись типа A.
ip6-bytestring (начиная с glibc 2.3.4)
Задаёт значение RES_USE_BSTRING в _res.options. Это приводит к поиску обратной записи IPv6, используя формат значимых битов, описанный в RFC 2673; если этот параметр не задан, то используется полубайтовый формат.
ip6-dotint/no-ip6-dotint (начиная с glibc 2.3.4)
Устанавливает/сбрасывает значение RES_NOIP6DOTINT в _res.options. Если указан сброс (ip6-dotint), то выполняется поиск обратной записи IPv6 (устарел) в зоне ip6.int; если задана установка (no-ip6-dotint), то по умолчанию выполняется поиск обратной записи IPv6 в зоне ip6.arpa. По умолчанию этот параметр установлен.
edns0 (начиная с glibc 2.6)
Задаёт значение RES_USE_EDNSO в _res.options. Включает поддержку расширений DNS, описанных в RFC 2671.
single-request (начиная с glibc 2.10)
Задаёт значение RES_SNGLKUP в _res.options. По умолчанию, glibc начиная с версии 2.9 выполняет поиск по IPv4 и IPv6 параллельно. Некоторые приложения DNS-серверов не могут обработать такие запросы должным образом и делают паузу между ответами на запрос. Этот параметр отключает данное поведение, что заставляет glibc делать запросы IPv6 и IPv4 последовательно (что замедляет процесс определения имени).
single-request-reopen (начиная с glibc 2.9)
Задаёт RES_SNGLKUPREOP в _res.options. Для разрешения имён используется единый сокет для запросов A а AAAA. Некоторая аппаратура ошибочно посылает обратно только один ответ. Когда это происходит, клиент остаётся ждать второго ответа. Указание этого параметра изменяет такое поведение так, что если два запроса с одного порта не обрабатываются правильно, то сокет будет закрыт и открыт новый перед посылкой второго запроса.
no-tld-query (начиная с glibc 2.14)
Задаёт значение RES_NOTLDQUERY в _res.options. Этот параметр указывает res_nsearch() не пытаться определить неполное имя как если бы это домен верхнего уровня. Данный параметр может привести к проблемам, если сайт указал «localhost» как TLD, но содержит localhost в одном или более элементах списка поиска. Данный параметр не действует, если не установлен RES_DEFNAMES или RES_DNSRCH.
use-vc (начиная с glibc 2.14)
Задаёт RES_USEVC в _res.options. Данный параметр включает принудительное использование TCP для запросов DNS.

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

Значение ключевого слова search в системном файле resolv.conf может быть изменено назначением переменной окружения для определённого процесса LOCALDOMAIN списка доменов, разделённых пробелами.

Значение ключевого слова options в системном файле resolv.conf может быть дополнено назначением переменной окружения для определённого процесса RES_OPTIONS списка вышеописанных в options параметров настройки функций определения имён.

Ключевое слово и значение должны быть в одной строке, и кроме того, ключевое слово(например, nameserver), должно быть в начале строки. Значение должно отделяться от ключевого слова пробельным символом.

Строки, в которых в первой колонке содержится точка с запятой (;) или символ решётки (#), считаются комментариями.

ФАЙЛЫ

/etc/resolv.conf, <resolv.h>