RESOLVER(5) | File Formats Manual | RESOLVER(5) |
resolver
—
resolver configuration file format
resolv.conf |
The resolver(3) is a set of routines in the C library which 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.
macOS supports a DNS search strategy that may involve multiple DNS resolver clients. See the SEARCH STRATEGY section below for an overview of multi-client DNS search.
Each DNS client is configured using the contents of a single configuration file of the format described below, or from a property list supplied from some other system configuration database. Note that the /etc/resolv.conf file, which contains configuration for the default (or "primary") DNS resolver client, is maintained automatically by macOS and should not be edited manually. Changes to the DNS configuration should be made by using the Network Preferences panel.
The different configuration options are:
10.0.0.17.55
specifies that the
nameserver at 10.0.0.17 uses port 55. Up to MAXNS
(currently 3) name servers may be listed, one per keyword. If there are
multiple servers, the resolver library queries them in the order listed.
If no nameserver entries are present, the default is to
use the name server on the local machine. (The algorithm used is to try a
name server, and if the query times out, try the next, until out of name
servers, then repeat trying all the name servers until a maximum number of
retries are made).The search list is currently limited to six domains with a total of 256 characters.
sortlist 10.9.1.0/255.255.240.0
10.9.0.0/255.255.0.0
options option ...
where option is one of the following:
RES_DEBUG
in _res.options.RES_USEVC
to use TCP instead of UDP for
queries.res_query
()
(see resolver(3)) before an
initial
absolute query will be made. The default for
n is
“1”, meaning that if there are any dots in a name, the
name will be tried first as an absolute name before any
search list elements are appended to it.RES_TIMEOUT
, the allowed maximum is
RES_MAXRETRANS
(see
<resolv.h>
).RES_DFLRETRY
, the
allowed maximum is RES_MAXRETRY
(see
<resolv.h>
).Options may also be specified as a space or tab separated list
using the RES_OPTIONS
environment variable.
The domain and search keywords are mutually exclusive. If more than one instance of these keywords is present, the last instance will override.
The keyword and value must appear on a single line, and the keyword (for example, nameserver) must start the line. The value follows the keyword, separated by white space.
macOS uses a DNS search strategy that supports multiple DNS client configurations. Each DNS client has its own set of nameserver addresses and its own set of operational parameters. Each client can perform DNS queries and searches independent of other clients. Each client has a symbolic name which is of the same format as a domain name, e.g. "apple.com". A special meta-client, known as the "Super" DNS client acts as a router for DNS queries. The Super client chooses among all available clients by finding a best match between the domain name given in a query and the names of all known clients.
Queries for qualified names are sent using a client configuration that best matches the domain name given in the query. For example, if there is a client named "apple.com", a search for "www.apple.com" would use the resolver configuration specified for that client. The matching algorithm chooses the client with the maximum number of matching domain components. For example, if there are clients named "a.b.c", and "b.c", a search for "x.a.b.c" would use the "a.b.c" resolver configuration, while a search for "x.y.b.c" would use the "b.c" client. If there are no matches, the configuration settings in the default client, generally corresponding to the /etc/resolv.conf file or to the "primary" DNS configuration on the system are used for the query.
If multiple clients are available for the same domain name, the clients ordered according to a search_order value (see above). Queries are sent to these resolvers in sequence by ascending value of search_order.
The configuration for a particular client may be read from a file having the format described in this man page. These are at present located by the system in the /etc/resolv.conf file and in the files found in the /etc/resolver directory. However, client configurations are not limited to file storage. The implementation of the DNS multi-client search strategy may also locate client configuratins in other data sources, such as the System Configuration Database. Users of the DNS system should make no assumptions about the source of the configuration data.
resolv.conf
resides in
/etc.A basic resolv.conf file could be in the following form.
# The domain directive is only necessary, if your local # router advertises something like localdomain and you have # set up your hostnames via an external domain. domain localdomain.tld # In case you a running a local dns server or caching name server # like local-unbound(8) for example. nameserver 127.0.0.1 # IP address of the local or ISP name service nameserver 192.168.2.1 # Fallback nameservers, in this case these from Google. nameserver 8.8.8.8 nameserver 4.4.4.4 # Attach an OPT pseudo-RR for the EDNS0 extension, # as specified in RFC 2671. options edns0
The resolv.conf
file format appeared in
4.3BSD.
November 23, 2022 | Mac OS X 14 |