1 .\" Copyright (c) 2009-2015 Roy Marples
2 .\" All rights reserved
4 .\" Redistribution and use in source and binary forms, with or without
5 .\" modification, are permitted provided that the following conditions
7 .\" 1. Redistributions of source code must retain the above copyright
8 .\" notice, this list of conditions and the following disclaimer.
9 .\" 2. Redistributions in binary form must reproduce the above copyright
10 .\" notice, this list of conditions and the following disclaimer in the
11 .\" documentation and/or other materials provided with the distribution.
13 .\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
14 .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
15 .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
16 .\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
17 .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
18 .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
19 .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
20 .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
21 .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
22 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
30 .Nd resolvconf configuration file
33 is the configuration file for
37 file is a shell script that is sourced by
41 must contain valid shell commands.
42 Listed below are the standard
44 variables that may be set.
45 If the values contain white space for special shell characters,
46 ensure they are quoted and escaped correctly.
48 After updating this file, you may wish to run
50 to apply the new configuration.
52 When a dynamically generated list is appended or prepended to, the whole
53 is made unique where left-most wins.
54 .Sh RESOLVCONF OPTIONS
55 .Bl -tag -width indent
59 from running any subscribers.
61 .It Sy interface_order
62 These interfaces will always be processed first.
63 If unset, defaults to the following:-
66 These interfaces will be processed next, unless they have a metric.
67 If unset, defaults to the following:-
68 .D1 tap[0-9]* tun[0-9]* vpn vpn[0-9]* ppp[0-9]* ippp[0-9]*
69 .It Sy local_nameservers
70 If unset, defaults to the following:-
71 .D1 127.* 0.0.0.0 255.255.255.255 ::1
73 Prepend search domains to the dynamically generated list.
74 .It Sy search_domains_append
75 Append search domains to the dynamically generated list.
76 .It Sy domain_blacklist
77 A list of domains to be removed from consideration.
78 To remove a domain, you can use foo.*
79 To remove a sub domain, you can use *.bar
81 Prepend name servers to the dynamically generated list.
82 You should set this to 127.0.0.1 if you use a local name server other than
84 .It Sy name_servers_append
85 Append name servers to the dynamically generated list.
86 .It Sy name_server_blacklist
87 A list of name servers to be removed from consideration.
88 The default is 0.0.0.0 as some faulty routers send it via DHCP.
89 To remove a block, you can use 192.168.*
90 .It Sy private_interfaces
91 These interfaces name servers will only be queried for the domains listed
93 Useful for VPN domains.
95 .Sy private_interfaces Ns ="*"
96 will stop the forwarding of the root zone and allows the local resolver to
97 recursively query the root servers directly.
98 Requires a local nameserver other than libc.
99 This is equivalent to the
103 Is a space separated list of replacement keywords. The syntax is this:
104 .Va $keyword Ns / Ns Va $match Ns / Ns Va $replacement
106 Example, given this resolv.conf:
108 .D1 search foo.org dead.beef
109 .D1 nameserver 1.2.3.4
110 .D1 nameserver 2.3.4.5
111 and this configuaration:
112 .D1 replace="search/foo*/bar.com nameserver/1.2.3.4/5.6.7.8 nameserver/2.3.4.5/"
113 you would get this resolv.conf instead:
116 .D1 nameserver 5.6.7.8
118 Works the same way as
120 except it works on each space separated value rather than the whole line,
121 so it's useful for the replacing a single domain within the search directive.
122 Using the same example resolv.conf and changing
126 you would get this resolv.conf instead:
128 .D1 search bar.com dead.beef
129 .D1 nameserver 5.6.7.8
131 Override the default state directory of
133 This should not be changed once
135 is in use unless the old directory is copied to the new one.
138 The following variables affect
141 .Bl -tag -width indent
146 .It Sy resolv_conf_options
147 A list of libc resolver options, as specified in
149 .It Sy resolv_conf_passthrough
150 When set to YES the latest resolv.conf is written to
152 without any alteration.
153 When set to /dev/null or NULL,
154 .Sy resolv_conf_local_only
156 .Sy local_nameservers
157 is unset unless overridden and only the information set in
161 .It Sy resolv_conf_sortlist
162 A libc resolver sortlist, as specified in
164 .It Sy resolv_conf_local_only
165 If a local name server is configured then the default is just to specify that
166 and ignore all other entries as they will be configured for the local
168 Set this to NO to also list non-local nameservers.
169 This will give you working DNS even if the local nameserver stops functioning
170 at the expense of duplicated server queries.
171 .It Sy append_nameservers
172 Append name servers to the dynamically generated list.
173 .It Sy prepend_nameservers
174 Prepend name servers to the dynamically generated list.
176 Append search domains to the dynamically generated list.
177 .It Sy prepend_search
178 Prepend search domains to the dynamically generated list.
180 .Sh SUBSCRIBER OPTIONS
181 openresolv ships with subscribers for the name servers
187 Each subscriber can create configuration files which should be included in
188 in the subscribers main configuration file.
190 To disable a subscriber, simply set it's name to NO.
191 For example, to disable the libc subscriber you would set:
193 .Bl -tag -width indent
195 This file tells dnsmasq which name servers to use for specific domains.
196 .It Sy dnsmasq_resolv
197 This file tells dnsmasq which name servers to use for global lookups.
199 Example resolvconf.conf for dnsmasq:
200 .D1 name_servers=127.0.0.1
201 .D1 dnsmasq_conf=/etc/dnsmasq-conf.conf
202 .D1 dnsmasq_resolv=/etc/dnsmasq-resolv.conf
204 Example dnsmasq.conf:
205 .D1 listen-address=127.0.0.1
206 .D1 # If dnsmasq is compiled for DBus then we can take
207 .D1 # advantage of not having to restart dnsmasq.
209 .D1 conf-file=/etc/dnsmasq-conf.conf
210 .D1 resolv-file=/etc/dnsmasq-resolv.conf
212 Include this file in the named options block.
213 This file tells named which name servers to use for global lookups.
215 Include this file in the named global scope, after the options block.
216 This file tells named which name servers to use for specific domains.
218 Example resolvconf.conf for named:
219 .D1 name_servers=127.0.0.1
220 .D1 named_options=/etc/named-options.conf
221 .D1 named_zones=/etc/named-zones.conf
225 .D1 listen-on { 127.0.0.1; };
226 .D1 include "/etc/named-options.conf";
228 .D1 include "/etc/named-zones.conf";
230 This is the main pdnsd configuration file which we modify to add our
232 If this variable is not set then we rely on the pdnsd configuration file
237 This file tells pdnsd about global name servers.
238 If this variable is not set then it's written to
241 Example resolvconf.conf for pdnsd:
242 .D1 name_servers=127.0.0.1
243 .D1 pdnsd_conf=/etc/pdnsd.conf
244 .D1 # pdnsd_resolv=/etc/pdnsd-resolv.conf
248 .D1 server_ip = 127.0.0.1;
252 .D1 # A server definition is required, even if emtpy.
255 .D1 # file="/etc/pdnsd-resolv.conf";
258 This file tells unbound about specific and global name servers.
259 .It Sy unbound_insecure
260 When set to YES, unbound marks the domains as insecure, thus ignoring DNSSEC.
262 Example resolvconf.conf for unbound:
263 .D1 name_servers=127.0.0.1
264 .D1 unbound_conf=/etc/unbound-resolvconf.conf
266 Example unbound.conf:
267 .D1 include: /etc/unbound-resolvconf.conf
269 .Sh SUBSCRIBER INTEGRATION
270 Not all distributions store the files the subscribers need in the same
272 For example, named service scripts have been called named, bind and rc.bind
273 and they could be located in a directory called /etc/rc.d, /etc/init.d or
275 Each subscriber attempts to automatically configure itself, but not every
276 distribution has been catered for.
277 Also, users could equally want to use a different version from the one
278 installed by default, such as bind8 and bind9.
279 To accommodate this, the subscribers have these files in configurable
280 variables, documented below.
282 .Bl -tag -width indent
283 .It Sy dnsmasq_service
284 Location of the dnsmasq service.
285 .It Sy dnsmasq_restart
286 Command to restart the dnsmasq service.
288 Location of the dnsmasq pidfile.
290 Location of the libc service.
292 Command to restart the libc service.
294 Location of the named service.
296 Command to restart the named service.
298 Command to restart the pdnsd service.
299 .It Sy unbound_service
300 Location of the unbound service.
301 .It Sy unbound_restart
302 Command to restart the unbound service.
304 Location of the unbound pidfile.
312 .An Roy Marples Aq Mt roy@marples.name
314 Each distribution is a special snowflake and likes to name the same thing
315 differently, namely the named service script.
317 Please report them to
318 .Lk http://roy.marples.name/projects/openresolv