Resolv conf что это
Резолвер — это набор подпрограмм в библиотеке C, которые предоставляют доступ к Internel DNS (Domain Name System) (Системе Доменных Имен Интернет) (прим. пер. — DNS обеспечивает возможность преобразования символьных имен машин в IP-адреса и наоборот, IP-адресов в символьные имена). Файл с настройками для резолвера содержит информацию, которую первым делом читают подпрограммы резолвера, вызванные каким-либо процессом. Данный файл устроен так, чтобы его мог читать человек и содержит список ключевых слов и значений, которые предоставляют резолверу различную информацию.
В нормально настроенной системе данный файл не нужен: запросы будут обрабатываться сервером на локальном хосте, имя домена определяется из имени машины, а путь поиска машины по домену конструируется из имени домена.
Вот разные параметры конфигурации: nameserver адрес сервера имен в Интернет (в нотации xxx.xxx.xxx.xxx), который будет обрабатывать запросы от резолвера. Серверов имен может быть максимум MAXNS (в данный момент — 3), по одному на каждой строке. Если задано несколько серверов, то библиотека резолвера опрашивает их в порядке перечисления. Если записей nameserver нет, то по умолчанию используется сервер имен на локальной машине. (Используемый алгоритм пытается подключиться к серверу имен и, если запрос не был обработан через некоторый промежуток времени, делается попытка подключиться к следующему серверу имен, и так до тех пор пока не будет обработан весь список серверов, затем повторить процедуру, пока не будет достигнуто максимальное количество повторов). domain Локальное имя домена. Большинство запросов на имена машин в этом домене смогут использовать лишь краткие имена, без указания имени домена. Если записей domain нет, то домен определяется из имени локальной машины, которое возвращается функцией gethostname (); доменной частью имени считается все, что следует после первой точки `.’. Наконец, если имя машины не содержит доменной части, назначается корневой домен. search Список для поиска имен машин. Список обычно определяется из локального имени домена; по умолчанию он содержит только имя локального домена. В списке может быть задано несколько доменов, которые должны следовать за ключевым словом search и отделяться друг от друга пробелами или табуляциями. В большинстве случаев, если в запросе к резолверу задано короткое имя машины (без доменной части), то к нему будет поочередно добавляться каждый домен из заданного списка, пока не будет найдено полное совпадающее имя машины. Заметим, что данный процесс может быть медленным, и станет генерировать ощутимый сетевой траффик, если серверы, обслуживающие перечисленные в списке домены, не являются локальными, а также что запросы вернут ошибку тайм-аута, если сервер для одного из доменов недоступен. Список в данный момент ограничен шестью доменами, общая длина имен которых не должна превышать 256 символов. sortlist Разрешает сортировку адресов, которые возвращаются вызовом gethostbyname() . Опция sortlist задается с помощью пары: IP адрес/маска сети. Маска сети является необязательной, по умолчанию используется текущая маска сети. Пары из IP-адреса и необязательной маски сети разделяются прямой косой чертой. Может быть задано до 10 пар. пример: sortlist 130.155.160.0/255.255.240.0 130.155.0.0 options Данная опция разрешает изменение определенных переменных резолвера. Синтаксис такой: options опция . где опция может принимать одно из следующих значений: debug — устанавливает RES_DEBUG в _res.options. ndots: n — устанавливает порог для количества точек, которое должно быть в имени, заданном в res_query (см. resolver (@LIB_NETWORK_EXT@)) перед тем как будет создан начальный абсолютный запрос (initial absolute query) . По умолчанию, n «1», означает, что если в имени есть хоть одна точка, будет попытка считать это имя абсолютным перед добавлением к нему элементов из списка search .
Ключевые слова domain и search являются взаимно исключающими. Если эти слова заданы оба, то будет работать то, которое задано последним.
Ключевое слово search в файле resolv.conf может быть перекрыто, если переменная окружения « LOCALDOMAIN » содержит список доменов, разделенных пробелами.
Ключевое слово options в файле resolv.conf может быть дополнено, если переменная окружения « RES_OPTIONS » будет содержать список вышеописанных опций резолвера.
Ключевое слово и значение должны быть в одной строке, и кроме того, ключевое слово (например, nameserver ), должно быть первым в строке. Значение должно отделяться от ключевого слова пробелом.
ФАЙЛЫ
/etc/resolv.conf
СМОТРИ ТАКЖЕ
gethostbyname (3), hostname (7), named (8),
Name Server Operations Guide for BIND (Руководство по Серверу Имен для BIND)
Служба доменных имен (DNS)
Каждый компьютер, подключенный к сети, работающей по протоколу TCP/IP (например, к Internet), идентифицируется своим IP-адресом. IP-aдрес представляет собой комбинацию четырех чисел, определяющих конкретную сеть и конкретный хост-компьютер в этой сети. IP-адреса очень трудно запоминать, поэтому для идентификации хост-компьютера вместо его 1Р-адрреса можно пользоваться доменным именем. Доменное имя состоит из двух частей — хост-имени и имени домена. Хост-имя — зто собственно имя компьютера, а домен обозначает сеть, частью которой этот компьютер является. Домены, используемые в США, обычно имеют расширения, обозначающие тип сети. Например, для учебных заведений использую расширение .edu , а для коммерческих организаций — расширение .com . Международные домены обычно имеют расширения, которые обозначают страну в которой они расположены, например .du для Германии и .аu для Австралии. Комбинация хост-имени, имени домена и расширения представляет собой уникальное имя, по которому можно обращаться к компьютеру. Домен, в свою очередь, иногда разбивается на поддомены.
Как вы знаете, компьютер в сети можно идентифицировать только по его IP-адресу, даже если он имеет доменное имя. Обратиться к компьютеру в сети по доменному имени можно, но это предполагает поиск соответствующего IP-адреса в базе данных. Сеть использует для доступа к компьютеру не доменное имя, а IP-адрес. До появления очень больших сетей с протоколами TCP/IP, в частности Internet, каждый компьютер сети мог вести файл, перечнем доменных имен и IP-адресов всех компьютеров, включенных в эту сеть. В случае обращения по доменному имени компьютер искал его в этом файле и находил соответствующий IP-адрес. Так можно поступать и сейча в отношении удаленных систем, соединения с которыми устанавливаются чаще всего.
По мере роста сетей ситуация изменилась. Ведение отдельного списка всех доменных имен и IP-адресов на каждом компьютере стало непрактичным, а в случае с Internet — просто невозможным. Чтобы обеспечивать преобразование доменных адресов в IP-адреса, были разработаны и установлены на особые серверы базы данных, содержащие доменные имена и соответствующие им IP-адреса. Для того чтобы найти IP-адрес доменного имени, на сервер имен посылается соответствующий запрос. Сервер имен ищет IP-адрес и посылает его обратно. В крупной сети может быть нескольк серверов имен, обслуживающих различные части сети. Если какой-либо сервер имен не может найти необходимый IP-адрес, он посылает запрос на другой сервер. Серверы имен могут предоставлять и такую информацию, как наименование предприятия, на котором находится искомый компьютер, его адрес и даже фамилию лица, обслуживающего этот компьютер.
Запросы на серверы имен посылают особые программы, которые называют определителями (resolver). Определитель — это программа, предназначенная для получения адресов с серверов имен. Чтобы пользоваться у себя в системе доменными именами, вам придется конфигурировать собственный определитель. Конфигурация локального определителя задается файлами /etc/host.conf и /etc/resolv.conf .
файл host.conf
В файле host.conf содержатся опции программы-определителя (см. следующую таблицу). Каждая опция может иметь несколько полей, отделенных друг от друга пробелами или знаками табуляции. Для ввода комментария в начале строки нужно ставить знак # . Опции указывают определителю, каким сервисом пользоваться. Важное значение имеет порядок следования опций. Определитель начинает обработку с первой из указанных опций и переходит по очереди к следующим. Файл host.conf находится в каталоге /etc вместе с другими файлами конфигурации.
hosts Проверяется наличие имени в локальном файле /etc/host
bind Запрашивается адрес у сервера имен DNS
nis Для получения адреса используется база данных центра сетевой информации (NIS)
alert Проверяет наличие в локальной системе адресов удаленных узлов, пытающихся получить к ней доступ; устанавливается и отменяется ключевыми словами on и off
В следующем примере, где представлен файл host.conf , опция order дает программе-определителю указание искать имена в локальном файле /etc/ hosts , а в случае неудачи направлять запрос на сервер имен. Не допускается использование нескольких адресов системы.
/etc/host.conf # host.conf file # Lookup names in host file and then check DNS order bind host # There are no multiple addresses multi off
Файл /etc/resolv.conf
Для того чтобы программа-определитель могла выполнять свою задачу ей должен быть предоставлен доступ к серверам доменных имен. В фале resolv.conf содержатся адреса серверов имен, к которым имеет доступ данная система. В этом файле можно создавать три типа записей, каждая из которых предваряется одним из трех ключевых слов: domain, nameserver, search . В записи domain вводится доменное имя локальной системы. В записи search приводится список доменов на тот случай, если задается только хост-имя. Если к какой-либо системе пользователь обращается часто, он может ввести имя ее домена в запись search, а затем использовать в качестве адреса только хост-имя. Определитель попытается найти полное доменное имя по имени домена, указанному в записи search.
После записей search идут записи nameserver, если таковые имеются. Для каждого сервера имен, к которому имеет доступ данная система, вводиься ключевое слово nameserver и IP-адрес. Таких серверов может быть несколько, и порядок их следования в списке очень важен. Во многих сетях имеется основной сервер имен и несколько вспомогательных. Основной сервер должен запрашиваться первым. Для этого его IP-адрес должен быть введен в первую запись nameserver.
Ниже приведен пример файла resolv.conf . Домен хост- компьютера berkeley.edu . IP-адреса серверов имен этого домена указаны в записях name server. Запись search позволяет использовать в качестве адреса только xoct-имя для компьютеров в домене unc.edu . Например, чтобы обратиться системе sunsite.unc.edu , пользователь должен ввести в качестве адреса толькй хост-имя, sunsite .
/etc/resolv.conf # resolv.conf file domain berkeley.edu search unc.edu nameserver 204.199.87.2 nameserver 204.199.77.2
Организация собственного сервера имен: демон named
Если, будучи администратором сети, вы решили организовать в ней сервер имен, то можно конфигурировать на работу в качестве такого сервера любую Linux-систему. Для этого необходимо запустить демон named . Этот демон запускается одновременно с системой и ожидает запросов о доменных именах. Демон named пользуется несколькими файлами конфигураци которые позволяют ему отвечать на запросы. В файле named.boot указывается домен, который обслуживает данный сервер, и имя каталога, предназначенного для его рабочих файлов. В файле named.hosts хранится информация об этом домене. Она состоит из Записей, содержащих сведения о хост-компьютерах, находящихся в данном домене. В этих записях используется весьма специфический формат, с кодами в соответствующих полях. Файл named.rev содержит данные о соответствии между IP-адресами и хост-именами. Файл named.ca организует кэширование для сервера имен. Процесс организации собственного сервера имен может быть довольно сложным. Следует обратиться к документам HOW TO, странице диалогового руководства по программе named и литературе по администрированию сети, включающей в свой состав Linux-системы.
Resolv conf что это
resolv.conf(5) файл настройки для процедур определения имён (resolver)
ОБЗОР
/etc/resolv.conf
ОПИСАНИЕ
resolver — это набор функций из библиотеки Си, который предоставляет доступ к системе доменных имён интернет (DNS). Файл настройки определителя (resolver) содержит информацию, которая читается функциями разрешения имён при первом их вызове процессом. Файл разрабатывался в понятном человеку формате, и содержит список ключевых слов со значениями, которые предоставляют различного рода информацию для функций разрешения имён. Файл настройки считается надёжным источником информации DNS (например, информация об AD-бите DNSSEC будет возвращаться в неизменном виде из этого источника). Если этот файл не существует, то будет опрашиваться только служба имён на локальной машине; доменное имя определяется из имени узла, а домен поиска создаётся из имени домена. Поддерживаются следующие параметры настройки: nameserver IP-адрес сервера имён Задает интернет-адрес сервера имён, на который надо переправлять все запросы, или в виде адреса IPv4 (в точечном формате), или в виде адреса IPv6 в формате с двоеточиями (и, возможно, точками), определённом в RFC 2373. Может быть указано до MAXNS (в настоящее время 3, см. ) серверов имён, повторяя каждый раз ключевое слово. Если указано несколько серверов, функции разрешения имён будут обращаться к серверам имен в порядке перечисления. Если в файле нет строк 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, см. ). Значение этого параметра внутренне доходит до 30. attempts:n Задаёт количество раз, которое функции определения имён будут посылать запрос серверам имён перед тем как закончить работу и вернуть ошибку вызывавшему их приложению. По умолчанию равно RES_DFLRETRY (в настоящее время 2, см. ). Значение этого параметра внутренне доходит до 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,
unixforum.org
Всем привет. Немного разобрался с /etc/resolv.conf, но не смог найти в Инете цельной информации, полностью объясняющей схему работы DNS для клиента. Вот моё понимание, а вы поправьте, если где ошибаюсь.
Когда я набираю в строке адреса браузера адрес сайта, то Linux сначала смотрит настройки DNS у меня на компьютере и берёт их из /etc/resolv.conf, где может быть сколько угодно строк, начинающихся с «nameserver». Сначала пробуется первая строка (первый IP), и если по нему получается выяснить IP сайта, то всё пучком, а если нет, то берётся вторая строка «nameserver» и далее по списку. Если после «nameserver» следует «127.0.0.1», то в качестве DNS-сервера будет выступать локальный файл hosts. Если я подключен к Интернету через роутер (или полноценный сервер-маршрутизатор), то строка «nameserver 192.168.0.1» (при условии, что это IP сервера-маршрутизатора в LAN) будет означать, что за настройками DNS нужно обратиться к маршрутизатору. То же означает и отсустсвие каких-либо записей в resolv.conf.
Есть ли в WWW хорошие статьи, которые весь этот порядок подробно разжёвывают?
Спасибо сказали:
Bizdelnick Модератор Сообщения: 20642 Статус: nulla salus bello ОС: Debian GNU/Linux
Re: Понимание /etc/resolv.conf
Сообщение Bizdelnick » 13.06.2015 22:51
13.06.2015 22:15
13.06.2015 22:15
Когда я набираю в строке адреса браузера адрес сайта, то Linux сначала смотрит настройки DNS у меня на компьютере
Для начала, некоторые браузеры пытаются решить вопрос самостоятельно. Firefox, в частности, первым делом проверяет свой собственный кеш.
13.06.2015 22:15
Linux сначала смотрит настройки DNS у меня на компьютере и берёт их из /etc/resolv.conf
Где и в каком порядке будет искаться адрес, зависит от настроек /etv/nsswitch.conf. И занимается этим не linux, а glibc.
13.06.2015 22:15
Если после «nameserver» следует «127.0.0.1», то в качестве DNS-сервера будет выступать локальный файл hosts.
Если прописано 127.0.0.1, то будет использоваться DNS-сервер на 127.0.0.1. А содержимое /etc/hosts как правило проверяется ещё до обращения к DNS.
13.06.2015 22:15
Если я подключен к Интернету через роутер (или полноценный сервер-маршрутизатор), то строка «nameserver 192.168.0.1» (при условии, что это IP сервера-маршрутизатора в LAN) будет означать, что за настройками DNS нужно обратиться к маршрутизатору.
13.06.2015 22:15
То же означает и отсустсвие каких-либо записей в resolv.conf.
(man resolv.conf) писал(а): Если записей nameserver нет, то по умолчанию используется сервер имен на локальной машине.
Пишите правильно:
| в консоли вку́пе (с чем-либо) в общем вообще |
в течение (часа) новичок нюанс по умолчанию |
приемлемо проблема пробовать трафик |