Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
RESOLV.CONF(5)		  FreeBSD File Formats Manual		RESOLV.CONF(5)

     resolv.conf, resolv.conf.tail -- resolver configuration files

     The resolv.conf file specifies how	the resolver routines in the C library
     (which provide access to the Internet Domain Name System) should operate.
     The resolver configuration	file contains information that is read by the
     resolver routines the first time they are invoked by a process.  If the
     resolv.conf file does not exist, only the local host file /etc/hosts will
     be	consulted, i.e.	the Domain Name	System will not	be used	to resolve

     The file is designed to be	human readable and contains a list of keywords
     with values that provide various types of resolver	information.  A	re-
     solv.conf file is not required for	some setups, so	this file is optional.
     It	can be created manually, and is	also created as	part of	the OpenBSD
     install process if	use of the DHCP	protocol is specified for any inter-
     face or if	any DNS	nameservers are	configured.

     If	dhclient(8) is used to configure an interface it will overwrite
     resolv.conf whenever the interface	becomes	the default gateway.  The in-
     formation written is generated from the DHCP options domain-name-servers,
     domain-name and domain-search and the contents of the file
     resolv.conf.tail are appended to the generated information.  If dhclient
     has no domain-name-servers, no domain-name	and no domain-search informa-
     tion then it will not overwrite the existing resolv.conf, even if
     resolv.conf.tail exists.  resolv.conf.tail	is normally used to specify
     options that are not available via	DHCP e.g. lookup or family.

     A keyword and its values must appear on a single line, and	the keyword
     (e.g. nameserver) must start the line.  The value follows the keyword,
     separated by whitespace.  A hash mark (#) or semicolon (;)	in the file
     indicates the beginning of	a comment; subsequent characters up to the end
     of	the line are not interpreted by	the routines that read the file.

     The configuration options (which may be placed in either file) are:

     nameserver	 IPv4 address (in dot notation)	or IPv6	address	(in hex-and-
		 colon notation) of a name server that the resolver should
		 query.	 Scoped	IPv6 address notation is accepted as well (see
		 inet6(4) for details).

		 Up to ASR_MAXNS (currently 5) name servers may	be listed, one
		 per line.  If there are multiple servers, the resolver	li-
		 brary queries them in the order listed.  If no	nameserver en-
		 tries 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 name servers until a
		 maximum number	of retries are performed.)

     domain	 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	the
		 local host name returned by gethostname(3) - the domain part
		 is taken to be	everything after the first dot.	 Finally, if
		 the host name does not	contain	a domain part, the root	domain
		 is assumed.

     lookup	 This keyword is used by the library routines gethostbyname(3)
		 and gethostbyaddr(3).	It specifies which databases should be
		 searched, and the order to do so.  The	legal space-separated
		 values	are:

		       bind  Query a domain name server.
		       file  Search for	entries	in /etc/hosts.

		 If the	lookup keyword is not used in the system's resolv.conf
		 file then the assumed order is	bind file.  Furthermore, if
		 the system's resolv.conf file does not	exist, then the	only
		 database used is file.

     search	 Search	list for hostname lookup.  The search list is normally
		 determined from the local domain name;	by default, it begins
		 with the local	domain name, then successive parent domains
		 that have at least two	components in their names.  This may
		 be changed by listing the desired domain search path follow-
		 ing 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.
		 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 avail-
		 able for one of the domains.

		 The search list is currently limited to six domains with a
		 total of 1024 characters.  Only one search line should	ap-
		 pear; if more than one	is present, the	last one found over-
		 writes	any values found in earlier lines.  So if such a line
		 appears in the	resolv.conf.tail file, it should include all
		 the domains that need to be searched.

     sortlist	 Allows	addresses returned by gethostbyname(3) 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 sepa-
		 rated by slashes.  Up to 10 pairs may be specified.  For ex-


     family	 Specify which type of Internet	protocol family	to prefer, if
		 a host	is reachable using different address families.	By de-
		 fault IPv4 addresses are queried first, and then IPv6 ad-
		 dresses.  The syntax is:

		       family family [family]

		 A maximum of two families can be specified, where family can
		 be any	of:

		       inet4	 IPv4 queries.
		       inet6	 IPv6 queries.

		 If only one family is specified, only that family is tried.

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

		       options option ...

		 Where option is one of	the following:

		 debug	    Print debugging messages, if libc is compiled with
			    DEBUG.  By default on OpenBSD this option does

		 edns0	    Attach an OPT pseudo-RR for	the EDNS0 extension,
			    as specified in RFC	2671.  This informs DNS
			    servers of a client's receive buffer size, allow-
			    ing	them to	take advantage of a non-default	re-
			    ceive buffer size, and thus	send larger replies.
			    DNS	query packets with the EDNS0 extension are not
			    compatible with non-EDNS0 DNS servers, so the op-
			    tion must be used only when	all the	servers	listed
			    in nameserver lines	are able to handle the exten-

			    To verify whether a	server supports	EDNS, query it
			    using the dig(1) query option +edns=0: the reply
			    indicates compliance (EDNS version 0) and whether
			    a UDP packet larger	than 512 bytes can be used.
			    Note that EDNS0 can	cause the server to send pack-
			    ets	large enough to	require	fragmentation.	Other
			    factors such as packet filters may impede these,
			    particularly if there is a reduced MTU, as is of-
			    ten	the case with pppoe(4) or with tunnels.

		 inet6	    On OpenBSD this option does	nothing.  On some op-
			    erating systems, this option enables IPv6 support
			    in gethostbyname(3)	by setting RES_USE_INET6 in
			    _res.options (see res_init(3)).

		 insecure1  Do not require IP source address on	the reply
			    packet to be equal to the server's address.

		 insecure2  Do not check if the	query section of the reply
			    packet is equal to that of the query packet.  For
			    testing purposes only.

		 ndots:n    Sets a threshold for the number of dots which must
			    appear in a	name given to res_query(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 abso-
			    lute name before any search	list elements are ap-
			    pended to it.

		 tcp	    Forces the use of TCP for queries.	Normal behav-
			    iour is to query via UDP but fall back to TCP on

     The domain	and search keywords are	mutually exclusive.  If	more than one
     instance of these keywords	is present, the	last instance will override.

     LOCALDOMAIN     A space-separated list of search domains, overriding the
		     search keyword of a system's resolv.conf or
		     resolv.conf.tail file.

     RES_OPTIONS     A space-separated list of resolver	options, overriding
		     the options keyword of a system's resolv.conf or
		     resolv.conf.tail file.


     gethostbyname(3), res_init(3), hosts(5), hostname(7), dhclient(8),
     nsd(8), unbound(8), unwind(8)

     The resolv.conf file format appeared in 4.3BSD.

FreeBSD	13.0			April 25, 2020			  FreeBSD 13.0


Want to link to this manual page? Use this URL:

home | help