mandoc mandates the presence of .Os
[openresolv] / resolvconf.8.in
1 .\" Copyright 2007-2009 Roy Marples
2 .\" All rights reserved
3 .\"
4 .\" Redistribution and use in source and binary forms, with or without
5 .\" modification, are permitted provided that the following conditions
6 .\" are met:
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.
12 .\"
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
23 .\" SUCH DAMAGE.
24 .\"
25 .Dd October 03, 2008
26 .Dt RESOLVCONF 8 SMM
27 .Os
28 .Sh NAME
29 .Nm resolvconf
30 .Nd a framework for managing multiple DNS configurations
31 .Sh SYNOPSIS
32 .Nm
33 .Op Fl m Ar metric
34 .Op Fl p
35 .Fl a Ar interface No < Ns Pa file
36 .Nm
37 .Op Fl f
38 .Fl d Ar interface
39 .Nm
40 .Fl il Ar pattern
41 .Nm
42 .Fl u
43 .Sh DESCRIPTION
44 .Nm
45 manages
46 .Xr resolv.conf 5
47 files from multiple sources, such as DHCP and VPN clients.
48 Traditionally, the host runs just one client and that updates
49 .Pa /etc/resolv.conf .
50 More modern systems frequently have wired and wireless interfaces and there is
51 no guarantee both are on the same network.
52 With the advent of VPN and other
53 types of networking daemons, many things now contend for the contents of
54 .Pa /etc/resolv.conf .
55 .Pp
56 .Nm
57 solves this by letting the daemon send their
58 .Xr resolv.conf 5
59 file to
60 .Nm
61 via
62 .Xr stdin 3
63 with the argument
64 .Fl a Ar interface
65 instead of the filesystem.
66 .Nm
67 then updates
68 .Pa /etc/resolv.conf
69 as it thinks best.
70 When a local resolver other than libc is installed, such as
71 .Xr dnsmasq 8
72 or
73 .Xr named 8
74 then
75 .Nm
76 will supply files that the resolver should be configured to include.
77 .Pp
78 .Nm
79 can mark an interfaces
80 .Pa resolv.conf
81 as private.
82 This means that the nameservers listed in that
83 .Pa resolv.conf
84 are only used for queries against the domain/search listed in the same file.
85 This only works when a local resolver other than libc is installed.
86 Doing this, you would probably want
87 .Nm
88 to always configure
89 .Pa /etc/resolv.conf
90 with the local nameserver.
91 See
92 .Pa @SYSCONFDIR@/resolv.conf.d/base
93 below on how to do this.
94 .Pp
95 When an interface goes down, it should then call
96 .Nm
97 with
98 .Fl d Ar interface
99 arguments to delete the
100 .Pa resolv.conf
101 file for the
102 .Ar interface .
103 .Pp
104 Here are some more options that
105 .Nm
106 has:-
107 .Bl -tag -width indent
108 .It Fl f
109 Ignore non existant interfaces.
110 Only really useful for deleting interfaces.
111 .It Fl i Ar pattern
112 List the interfaces, optionally matching
113 .Ar pattern ,
114 we have
115 .Pa resolv.conf
116 files for.
117 .It Fl l Ar pattern
118 List the
119 .Pa resolv.conf
120 files we have.
121 If
122 .Ar pattern
123 is specified then we list the files for the interfaces that match it.
124 .It Fl m Ar metric
125 Set the metric of the interface when adding it, default of 0.
126 Lower metrics take precedence.
127 This affects the default order of interfaces when listed.
128 .It Fl p
129 Marks the interface
130 .Pa resolv.conf
131 as private.
132 .It Fl u
133 Force
134 .Nm
135 to update all it's helpers.
136 .Nm
137 does not update the helpers when adding a reslov.conf that matches
138 what it already has for that interface.
139 .El
140 .Pp
141 .Nm
142 also has some options designed to be used by it's helpers:-
143 .Bl -tag -width indent
144 .It Fl s Ar service Ar command ...
145 Try and send the
146 .Ar command
147 to the system
148 .Ar service .
149 Normally this is something like
150 .Ar resolvconf -s named restart .
151 We have this command, so the helpers don't have to know too much about the
152 operating system on the host.
153 .It Fl v
154 Echo variables DOMAINS, SEARCH and NAMESERVERS so that the helper can configure
155 the resolver easily.
156 .El
157 .Sh ENVIRONMENT
158 .Bl -ohang
159 .It Va IF_METRIC
160 If the
161 .Fl m
162 option is not present then we use
163 .Va IF_METRIC
164 for the metric.
165 .It Va IF_PRIVATE
166 Marks the interface
167 .Pa resolv.conf
168 as private.
169 .El
170 .Sh FILES
171 .Bl -ohang
172 .It Pa @VARBASE@/run/resolvconf
173 Directory that holds the data for
174 .Nm .
175 .It Pa @SYSCONFDIR@/update.d
176 Directory of the helper scripts which are run every time
177 .Nm
178 adds, deletes or updates.
179 .It Pa @SYSCONFDIR@/update-libc.d
180 Directory of helper scripts which are run after the libc helper script is run.
181 .It Pa @SYSCONFDIR@/interface-order
182 Determines the order in which nameserver information records are processed
183 by resolvconf -l.
184 .It Pa @SYSCONFDIR@/private-interfaces
185 A list of interfaces who should be marked as private by default.
186 .It Pa @SYSCONFDIR@/resolv.conf.d/base
187 Contains basic resolver information which is included in
188 .Pa /etc/resolv.conf
189 even when no interfaces are configured.
190 This is a good place to set libc to always use your local nameserver like so:
191 .Bd -literal -offset indent
192 nameserver 127.0.0.1
193 .Ed
194 .It Pa @SYSCONFDIR@/resolv.conf.d/head
195 File to be prepended to
196 .Pa /etc/resolv.conf .
197 Normally this is just a comment line.
198 .It Pa @SYSCONFDIR@/resolv.conf.d/tail
199 File to be appended to
200 .Pa /etc/resolv.conf .
201 .El
202 .Sh HISTORY
203 This implementation of
204 .Nm
205 is called openresolv and is fully command line compatible with Debians
206 resolvconf, as written by Thomas Hood, on which openresolv is based.
207 openresolv also shares a similar directory structure with the Debian version,
208 but the included helpers are not compatible.
209 .Pp
210 The Debian version only works with bash and other GNU userland tools, whereas
211 openresolv works with a POSIX shell and userland tools.
212 .Sh BUGS
213 .Nm
214 does not validate any of the files given to it.
215 .Pp
216 When running a local resolver other than libc, you will need to configure it
217 to include files that
218 .Nm
219 will generate.
220 You should consult the comment section in the helper script
221 for your resolver found in @SYSCONFDIR@/update.d for instructions
222 on this.
223 .Sh SEE ALSO
224 .Xr dnsmasq 8 ,
225 .Xr named 8 ,
226 .Xr resolv.conf 5 ,
227 .Xr resolver 3 ,
228 .Xr stdin 3
229 .Sh AUTHORS
230 .An Roy Marples Aq roy@marples.name
231 .Sh BUGS
232 Please report them to http://roy.marples.name/projects/openresolv