Go to main content

man pages section 5: File Formats

Exit Print View

Updated: Wednesday, July 27, 2022
 
 

resolv.conf (5)

Name

resolv.conf - resolver configuration

Synopsis

svc:/network/dns/client
/etc/resolv.conf

Description

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 configuration used by the resolver is managed by SMF in the svc:/network/dns/client service. The resolver routines read this configuration the first time they are invoked by a process.

The resolv.conf file is regenerated from the SMF properties when the service is started or refreshed.

The file is designed to be human readable and contains a list of keywords with values based on the SMF configuration.

The following properties are supported and contained in the config property group of the svc:/network/dns/client service.

The following properties are single-valued or multi-valued:

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 property value. 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 property 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 starts with the local domain name and may include additional parent domains. Up to MAXDFLSRCH domains will be used, as long as each contains at least LOCALDOMAINPARTS domain labels. See resolv.h. You can change the default behavior by listing the desired domain search path, one domain per property value.

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.

sortlist

Allows addresses returned by the libresolv-internal gethostbyname() to be sorted. A sortlist is specified by IP address and prefix length pairs. The prefix length is optional and defaults to the natural prefix length of the net. The IP address and optional prefix length pairs are separated by slashes. Up to 10 pairs may be specified. For example:

130.155.160.0/20 130.155.0.0
options

Allows certain internal resolver variables to be modified. The syntax is

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(3C). To retrieve IPv6 addresses or IPv4 addresses, use getaddrinfo(3C) instead of setting inet6.

The domain and search properties are mutually exclusive. If both of these properties are present, the search property takes precedence.

For information about how to enable a DNS client, see DNS and the Service Management Facility in Working With Oracle Solaris 11.4 Directory and Naming Services: DNS and NIS.

For more information on how to use SMF commands to view and set the properties, see the See Also section.

Environment Variables

Several environment variables can override the settings in the resolver configuration. However, these variables are only supported when an application is compiled to directly call APIs from the resolver(3RESOLV) library. Most applications are instead compiled to use higher level interfaces such as getaddrinfo(3C) that use the nsswitch.conf(5) configuration to determine which sources of host name and address information to use for lookups, instead of hardcoding to DNS by calling the DNS resolver directly, so these environment variables will not be effective.

You can override the domain and search properties of the system configuration on a per-process basis by setting the environment variable LOCALDOMAIN to a space-separated list of search domains.

You can amend the options property of the system configuration on a per-process basis by setting the environment variable RES_OPTIONS to a space-separated list of resolver options.

The HOSTALIASES environment variable specifies a file listing additional aliases for hosts, which may be used by the resolver(3RESOLV) library unless the application specifies the RES_NOALIASES option.

Examples

Example 1 Listing Available Configuration Parameters

Use the following command to list the available configuration parameters for svc:/network/dns/client:

$ svccfg -s network/dns/client describe -tv config
Example 2 Configuring a Client

Use the following commands to configure a client in subdomain us.example.com to use two DNS servers, to try a givenname as-is if it has two or more dots, and to only make two attempts to contact each server:

$ svccfg -s svc:/network/dns/client setprop \
    config/nameserver = net_address: \(192.168.0.1 10.0.0.1\)
$ svccfg -s svc:/network/dns/client \
    setprop config/search = astring: \(us.example.com example.com\)
$ svccfg -s svc:/network/dns/client \
    setprop config/options = astring: \"ndots:2 attempts:2\"
$ svcadm refresh svc:/network/dns/client

    A few points to note while executing this example:

  • The attempts option here is overridden by the retries option in nsswitch.conf(5) when standard application interfaces such as getaddrinfo(3C) and getnameinfo(3C) are used.

  • The config/search and config/nameserver properties take multiple values, not a space separated list.

  • The config/options property takes a space separated list of options, not multiple values.

  • refresh is necessary for the requested changes to take effect.

Attributes

See attributes(7) for descriptions of the following attributes:

ATTRIBUTE TYPE
ATTRIBUTE VALUE
Interface Stability
Committed
Standard
BIND 8.3.3

See Also

svcprop(1), sysinfo(2), getaddrinfo(3C), gethostbyname(3C), gethostname(3C), getipnodebyname(3C), getnameinfo(3C), resolver(3RESOLV), nsswitch.conf(5), attributes(7), domainname(8), svcadm(8), svccfg(8)

Managing System Services in Oracle Solaris 11.4

Working With Oracle Solaris 11.4 Directory and Naming Services: DNS and NIS