The resolver is a set of routines that provide access to
the Internet Domain Name System. See resolver(3RESOLV).
resolv.conf is a configuration file that contains the 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 resolv.conf file contains the following configuration
directives:
nameserver
Specifies the IPv4 or IPv6 Internet address of a name
server that the resolver is to query. Up to MAXNS name servers may be
listed, one per keyword. See <resolv.h>. If there are multiple
servers, the resolver library queries them in the order listed. If no name
server entries are present, the resolver library queries the name server on
the local machine. The resolver library follows the algorithm to try a name
server until the query times out. It then tries the name servers that follow,
until each query times out. It repeats all the name servers until a maximum
number of retries are made.
domain
Specifies the local domain name. Most queries for names
within this domain can use short names relative to the local domain. If no
domain entry is present, the domain is determined from
sysinfo(2) or
from
gethostname(3C). (Everything after the first `.' is presumed to be
the domain name.) If the host name does not contain a domain part, the root
domain is assumed. You can use the
LOCALDOMAIN environment variable to
override the domain name.
search
The search list for host name lookup. The search list is
normally determined from the local domain name. By default, it contains only
the local domain name. You can change the default behavior by listing the
desired domain search path following the search keyword, with spaces or tabs
separating the names. Most
resolver queries will be attempted using
each component of the search path in turn until a match is found. This process
may be slow and will generate a lot of network traffic if the servers for the
listed domains are not local. Queries will time out if no server is available
for one of the domains.
The search list is currently limited to six domains and a total of
256 characters.
sortlistaddresslist
Allows addresses returned by the libresolv-internal
gethostbyname() to be sorted. A
sortlist is specified by IP
address netmask pairs. The netmask is optional and defaults to the natural
netmask of the net. The IP address and optional network pairs are separated by
slashes. Up to 10 pairs may be specified. For example:
sortlist 130.155.160.0/255.255.240.0 130.155.0.0
options
Allows certain internal resolver variables to be
modified. The syntax is
options option ...
where option is one of the following:
debug
Sets RES_DEBUG in the _res.options
field.
ndots:n
Sets a threshold floor for the number of dots which must
appear in a name given to
res_query() before an initial absolute
(as-is) query is performed. See
resolver(3RESOLV). The default value
for
n is 1, which means that if there are any dots in a name, the name
is tried first as an absolute name before any search list elements are
appended to it.
timeout:n
retrans:n
Sets the amount of time the resolver will wait for a
response from a remote name server before retrying the query by means of a
different name server. Measured in seconds, the default is RES_TIMEOUT.
See <resolv.h>. The timeout and retrans values are
the starting point for an exponential back off procedure where the
timeout is doubled for every retransmit attempt.
attempts:n
retry:n
Sets the number of times the resolver will send a query
to its name servers before giving up and returning an error to the calling
application. The default is RES_DFLRETRY. See
<resolv.h>.
rotate
Sets RES_ROTATE in _res.options. The name
servers are queried round-robin from among those listed. The query load is
spread among all listed servers, rather than having all clients try the first
listed server first every time.
no-check-names
Sets RES_NOCHECKNAME in _res.options. This
disables the modern BIND checking of incoming host names and mail names for
invalid characters such as underscore (_), non-ASCII, or control
characters.
inet6
Sets
RES_USE_INET6 in
_res.options. In the
Solaris BIND port, this has no effect on
gethostbyname(3NSL). To
retrieve IPv6 addresses or IPv4 addresses, use
getaddrinfo(3SOCKET)
instead of setting
inet6.
The domain and search keywords are mutually
exclusive. If more than one instance of these keywords is present, the last
instance takes precedence.
You can override the search keyword of the system
resolv.conf file on a per-process basis by setting the environment
variable LOCALDOMAIN to a space-separated list of search domains.
You can amend the options keyword of the system
resolv.conf file on a per-process basis by setting the environment
variable RES_OPTIONS to a space-separated list of resolver
options.
The keyword and value must appear on a single line. Start the line
with the keyword, for example, nameserver, followed by the value,
separated by white space.