Simpifly logic and fix a typo.
[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 March 18, 2009
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 name servers 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 See
87 .Xr resolvconf.conf 5
88 for how to configure
89 .Nm
90 to use a local name server.
91 .Pp
92 When an interface goes down, it should then call
93 .Nm
94 with
95 .Fl d Ar interface
96 arguments to delete the
97 .Pa resolv.conf
98 file for the
99 .Ar interface .
100 .Pp
101 Here are some more options that
102 .Nm
103 has:-
104 .Bl -tag -width indent
105 .It Fl f
106 Ignore non existant interfaces.
107 Only really useful for deleting interfaces.
108 .It Fl i Ar pattern
109 List the interfaces, optionally matching
110 .Ar pattern ,
111 we have
112 .Pa resolv.conf
113 files for.
114 .It Fl l Ar pattern
115 List the
116 .Pa resolv.conf
117 files we have.
118 If
119 .Ar pattern
120 is specified then we list the files for the interfaces that match it.
121 .It Fl m Ar metric
122 Set the metric of the interface when adding it, default of 0.
123 Lower metrics take precedence.
124 This affects the default order of interfaces when listed.
125 .It Fl p
126 Marks the interface
127 .Pa resolv.conf
128 as private.
129 .It Fl u
130 Force
131 .Nm
132 to update all it's subscribers.
133 .Nm
134 does not update the subscribers when adding a resolv.conf that matches
135 what it already has for that interface.
136 .El
137 .Pp
138 .Nm
139 also has some options designed to be used by it's subscribers:-
140 .Bl -tag -width indent
141 .It Fl s Ar service Ar command ...
142 Try and send the
143 .Ar command
144 to the system
145 .Ar service .
146 Normally this is something like
147 .Ar resolvconf -s named restart .
148 We have this command, so the subscribers don't have to know too much about the
149 operating system on the host.
150 .It Fl v
151 Echo variables DOMAINS, SEARCH and NAMESERVERS so that the subscriber can
152 configure the resolver easily.
153 .El
154 .Sh INTERFACE ORDERING
155 For
156 .Nm
157 to work effectively, it has to process the resolv.confs for the interfaces
158 in the correct order.
159 .Nm
160 first processes interfaces from the
161 .Sy interface_order
162 list, then interfaces without a metic and that match the
163 .Sy dynamic_order
164 list, then interfaces with a metric in order and finally the rest in
165 the operating systems lexical order.
166 See
167 .Xr resolvconf.conf 5
168 for details on these lists.
169 .Sh ENVIRONMENT
170 .Bl -ohang
171 .It Va IF_METRIC
172 If the
173 .Fl m
174 option is not present then we use
175 .Va IF_METRIC
176 for the metric.
177 .It Va IF_PRIVATE
178 Marks the interface
179 .Pa resolv.conf
180 as private.
181 .El
182 .Sh FILES
183 .Bl -ohang
184 .It Pa @SYSCONFDIR@/resolvconf.conf
185 Configuration file for
186 .Nm .
187 .It Pa @LIBEXECDIR@
188 Directory of subscribers which are run every time
189 .Nm
190 adds, deletes or updates.
191 .It Pa @LIBEXECDIR@/libc.d
192 Directory of subscribers which are run after the libc subscriber is run.
193 .It Pa @VARBASE@/run/resolvconf
194 State directory for
195 .Nm .
196 .El
197 .Sh HISTORY
198 This implementation of
199 .Nm
200 is called openresolv and is fully command line compatible with Debian's
201 resolvconf, as written by Thomas Hood.
202 .Sh BUGS
203 .Nm
204 does not validate any of the files given to it.
205 .Pp
206 When running a local resolver other than libc, you will need to configure it
207 to include files that
208 .Nm
209 will generate.
210 You should consult
211 .Xr resolvconf.conf 5
212 for instructions on how to configure your resolver.
213 .Sh SEE ALSO
214 .Xr dnsmasq 8 ,
215 .Xr named 8 ,
216 .Xr resolv.conf 5 ,
217 .Xr resolver 3 ,
218 .Xr stdin 3
219 .Sh AUTHORS
220 .An Roy Marples Aq roy@marples.name
221 .Sh BUGS
222 Please report them to http://roy.marples.name/projects/openresolv