- Setup DNS Resolution With “resolv.conf” in Examples
- How do I edit the “/etc/resolv.conf” file?
- The “nameserver” directive
- The “domain” directive
- How the “domain” directive in the “resolv.conf” file works?
- The “search” directive
- How the “search” directive in the “resolv.conf” file works?
- 7 Replies to “Setup DNS Resolution With “resolv.conf” in Examples”
- ОПИСАНИЕ
- ФАЙЛЫ
Setup DNS Resolution With “resolv.conf” in Examples
The /etc/resolv.conf configuration file contains information that allows a computer to convert alpha-numeric domain names into the numeric IP addresses.
The process of converting domain names to IP addresses is called resolving.
When using DHCP, dhclient usually rewrites resolv.conf with information received from the DHCP server.
How do I edit the “/etc/resolv.conf” file?
Use text editor such as vi or gedit from Linux desktop:
There are three main configuration directives in /etc/resolv.conf :
nameserver # DNS server IP domain # Domain Name of local host search # Which Domain to search
The “nameserver” directive
The nameserver directive points out to the IP address of a Name Server.
It can be your own Name Server, some public Name Server or the Name Server of your’s ISP.
Note: Up to 3 name servers may be listed.
nameserver 192.168.0.100 nameserver 8.8.8.8 nameserver 8.8.4.4
The “domain” directive
domain domain.com nameserver 192.168.0.100 nameserver 8.8.4.4
How the “domain” directive in the “resolv.conf” file works?
You can use domain directive for resolving short host-names – e.g. test .
So if you have the following in your /etc/resolv.conf :
Then your computer will try to resolve test.example.com .
The “search” directive
Search list for hostname lookup. The search list is normally determined from the local domain name but it can be set to a list of domains.
search example.com company.net nameserver 192.168.0.100 nameserver 8.8.8.8
How the “search” directive in the “resolv.conf” file works?
You need to use search directive for resolving short host-names – e.g. test .
So if you have the following in your /etc/resolv.conf :
search example.com company.net
Then your computer will try to resolve test.example.com followed by test.company.net . It will return the first query that was successful.
7 Replies to “Setup DNS Resolution With “resolv.conf” in Examples”
does it matter in which order those name-value pairs are mentioned in the file?
search / domain / nameserver key-value pairs…
Hi, this is very helpful 🙂 One question: As you stated domain is overwriten if DHCP Client is used. I’m having two ethernet interfaces, one with fixed IP and one running on dhcp. Is it possible to force a domain in this configuration?
ОПИСАНИЕ
The resolver is a set of routines in the C library that provide access to the Internet Domain Name System (DNS). The resolver configuration file contains information that is read by the resolver routines the first time they are invoked by a process. The file is designed to be human readable and contains a list of keywords with values that provide various types of resolver information. The configuration file is considered a trusted source of DNS information; see the trust-ad option below for details.
If this file does not exist, only the name server on the local machine will be queried, and the search list contains the local domain name determined from the hostname.
Поддерживаются следующие параметры настройки:
nameserver IP-адрес сервера имён Задает интернет-адрес сервера имён, на который надо переправлять все запросы, или в виде адреса IPv4 (в точечном формате), или в виде адреса IPv6 в формате с двоеточиями (и, возможно, точками), определённом в RFC 2373. Может быть указано до MAXNS (в настоящее время 3, см. ) серверов имён, повторяя каждый раз ключевое слово. Если указано несколько серверов, функции разрешения имён будут обращаться к серверам имен в порядке перечисления. Если в файле нет строк nameserver, то функции разрешения имён используют сервер имён на локальной машине. (Функции разрешения имён работают по следующему алгоритму: попробовать обратиться к первому указанному серверу имён. Если нет ответа в отведённое время, попробовать обратиться к следующему серверу, и т.д. пока не будет исчерпан список серверов.) search список поиска By default, the search list contains one entry, the local domain name. It is determined from the local hostname returned by gethostname(2); the local domain name is taken to be everything after the first ‘.’. Finally, if the hostname does not contain a ‘.’, the root domain is assumed as the local domain name. This may be changed by listing the desired domain search path following the search keyword with spaces or tabs separating the names. Resolver queries having fewer than ndots dots (default is 1) in them will be attempted using each component of the search path in turn until a match is found. For environments with multiple subdomains please read options ndots:n below to avoid man-in-the-middle attacks and unnecessary traffic for the root-dns-servers. Note that this process may be slow and will generate a lot of network traffic if the servers for the listed domains are not local, and that queries will time out if no server is available for one of the domains. If there are multiple search directives, only the search list from the last instance is used. В glibc 2.25 и старее список поиска может содержать не более шести доменов и не может быть длиннее 256 символов. Начиная с glibc 2.26 список поиска безграничен. The domain directive is an obsolete name for the search directive that handles one search list entry only. sortlist Вызывает сортировку адресов, возвращаемых функцией gethostbyname(3). Список сортировки задается в виде пар IP-адрес/маска сети. Маску сети указывать не обязательно — по умолчанию используется естественная маска сети. IP-адрес и необязательная маска сети разделяются косой чертой. В списке можно указывать до 10 пар. Пример:
sortlist 130.155.160.0/255.255.240.0 130.155.0.0
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. Начиная с glibc 2.25 этот параметр считается устаревшим; приложения должны использовать getaddrinfo(3), а не gethostbyname(3). ip6-bytestring (since glibc 2.3.4 to glibc 2.24) Задаёт значение RES_USE_BSTRING в _res.options. Это приводит к поиску обратной записи IPv6 с помощью формата значимых битов, описанного в RFC 2673; если этот параметр не задан (по умолчанию), то используется полубайтовый формат. Данный параметр был удалён в glibc 2.25, так как он полагается на обратно несовместимое расширение DNS, которое никогда не разворачивалось в Интернете. ip6-dotint/no-ip6-dotint (glibc 2.3.4 to glibc 2.24) Clear/set RES_NOIP6DOTINT in _res.options. When this option is clear (ip6-dotint), reverse IPv6 lookups are made in the (deprecated) ip6.int zone; when this option is set (no-ip6-dotint), reverse IPv6 lookups are made in the ip6.arpa zone by default. These options are available up to glibc 2.24, where no-ip6-dotint is the default. Since ip6-dotint support long ago ceased to be available on the Internet, these options were removed in glibc 2.25. edns0 (начиная с glibc 2.6) Задаёт значение RES_USE_EDNS0 в _res.options. Включает поддержку расширений DNS, описанных в RFC 2671. single-request (начиная с glibc 2.10) Sets RES_SNGLKUP in _res.options. By default, glibc performs IPv4 and IPv6 lookups in parallel since glibc 2.9. Some appliance DNS servers cannot handle these queries properly and make the requests time out. This option disables the behavior and makes glibc perform the IPv6 and IPv4 requests sequentially (at the cost of some slowdown of the resolving process). 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. no-reload (начиная с glibc 2.26) Устанавливает RES_NORELOAD в _res.options. Этот параметр выключает автоматическую перезагрузку изменённого файла настройки. trust-ad (начиная с glibc 2.31) Sets RES_TRUSTAD in _res.options. This option controls the AD bit behavior of the stub resolver. If a validating resolver sets the AD bit in a response, it indicates that the data in the response was verified according to the DNSSEC protocol. In order to rely on the AD bit, the local system has to trust both the DNSSEC-validating resolver and the network path to it, which is why an explicit opt-in is required. If the trust-ad option is active, the stub resolver sets the AD bit in outgoing DNS queries (to enable AD bit support), and preserves the AD bit in responses. Without this option, the AD bit is not set in queries, and it is always removed from responses before they are returned to the application. This means that applications can trust the AD bit in responses if the trust-ad option has been set correctly. In glibc 2.30 and earlier, the AD is not set automatically in queries, and is passed through unchanged to applications in responses.
Значение ключевого слова search в системном файле resolv.conf может быть изменено назначением переменной окружения для определённого процесса LOCALDOMAIN списка доменов, разделённых пробелами.
Значение ключевого слова options в системном файле resolv.conf может быть дополнено назначением переменной окружения для определённого процесса RES_OPTIONS списка вышеописанных в options параметров настройки функций определения имён.
Ключевое слово и значение должны быть в одной строке, и кроме того, ключевое слово(например, nameserver), должно быть в начале строки. Значение должно отделяться от ключевого слова пробельным символом.
Строки, в которых в первой колонке содержится точка с запятой (;) или символ решётки (#), считаются комментариями.