man page fixes
[openresolv] / resolvconf.8.in
1 .\" Copyright 2007-2008 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 Feb 09, 2008
26 .Dt RESOLVCONF 8 SMM
27 .Sh NAME
28 .Nm resolvconf
29 .Nd a framework for managing multiple DNS configurations
30 .Sh SYNOPSIS
31 .Nm
32 .Fl a Ar interface No < Ns Pa file
33 .Nm
34 .Fl d Ar interface
35 .Nm
36 .Fl il Ar pattern
37 .Nm
38 .Fl u
39 .Sh DESCRIPTION
40 .Nm
41 manages
42 .Xr resolv.conf 5
43 files from multiple sources, such as DHCP and VPN clients.
44 Traditionally, the host runs just one client and that updates
45 .Pa /etc/resolv.conf .
46 More modern systems frequently have wired and wireless interfaces and there is
47 no guarantee both are on the same network. With the advent of VPN and other
48 types of networking daemons, many things now contend for the contents of
49 .Pa /etc/resolv.conf .
50 .Pp
51 .Nm
52 solves this by letting the daemon send their
53 .Xr resolv.conf 5
54 file to
55 .Nm
56 via
57 .Xr stdin 3
58 with the argument
59 .Fl a Ar interface
60 instead of the filesystem.
61 .Nm
62 then updates
63 .Pa /etc/resolv.conf
64 as it thinks best.
65 When a local resolver other than libc is installed, such as
66 .Xr dnsmasq 8
67 or
68 .Xr named 8
69 then
70 .Nm
71 will configure
72 .Pa /etc/resolv.conf
73 to use that and supply files that the resolver should be configured to include.
74 This allows
75 .Nm
76 to configure the local resolver such that
77 .Pa resolv.conf
78 files specifiying a domain only query the listed nameservers when resolving
79 for that domain. Otherwise the nameservers are treated as global nameservers.
80 This in turn means, that you can trivially configure nameservers for say
81 VPN domains. Example:-
82 .Bd -literal -offset indent
83 # resolv.conf from bge0
84 search foo.com
85 nameserver 1.2.3.4
86
87 # resolv.conf from tap0
88 domain bar.org
89 nameserver 5.6.7.8
90 .Ed
91 .Pp
92 In this instance, nameserver 5.6.7.8 will only handle requests for bar.org
93 and nameserver 1.2.3.4 will handle everything else.
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 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. If
118 .Ar pattern
119 is specified then we list the files for the interfaces that match it.
120 .It Fl u
121 Force
122 .Nm
123 to update all it's helpers.
124 .El
125 .Pp
126 .Nm
127 also has some options designed to be used by it's helpers:-
128 .Bl -tag -width indent
129 .It Fl s Ar service Ar command ...
130 Try and send the
131 .Ar command
132 to the system
133 .Ar service .
134 Normally this is something like
135 .Ar resolvconf -s named restart .
136 We have this command, so the helpers don't have to know too much about the
137 operating system on the host.
138 .It Fl v
139 Echo variables NEWDOMAIN, NEWSEARCH and NEWNS so that the helper can configure
140 the resolver easily.
141 .El
142 .Sh FILES
143 .Bl -ohang
144 .It Pa @PREFIX@/etc/resolvconf/run
145 Directory that holds the data for
146 .Nm .
147 Normally a symlink to
148 .Pa /var/run/resolvconf .
149 You could symlink
150 .Pa /etc/resolv.conf
151 to
152 .Pa resolvconf/run/resolv.conf
153 to support a read only
154 .Pa /etc .
155 .It Pa @PREFIX@/etc/resolvconf/update.d
156 Directory of the helper scripts which are run every time
157 .Nm
158 adds, deletes or updates.
159 .It Pa @PREFIX@/etc/resolvconf/update-libc.d
160 Directory of helper scripts which are run after the libc helper script is run.
161 .It Pa @PREFIX@/etc/resolvconf/interface-order
162 Determines the order in which nameserver information records are processed
163 by resolvconf -l.
164 .It Pa @PREFIX@/etc/resolvconf/resolv.conf.d/base
165 Contains basic resolver information which is included in
166 .Pa /etc/resolv.conf
167 even when no interfaces are configured.
168 .It Pa @PREFIX@/etc/resolvconf/resolv.conf.d/head
169 File to be prepended to
170 .Pa /etc/resolv.conf .
171 Normally this is just a comment line.
172 .It Pa @PREFIX@/etc/resolvconf/resolv.conf.d/tail
173 File to be appended to
174 .Pa /etc/resolv.conf .
175 .El
176 .Sh HISTORY
177 This implementation of
178 .Nm
179 is called openresolv and is fully command line compatible with Debians
180 resolvconf, as written by Thomas Hood, on which openresolv is based.
181 openresolv also shares a similar directory structure with the Debian version,
182 but the included helpers are not compatible.
183 .Pp
184 The Debian version only works with bash and other GNU userland tools, where-as
185 openresolv works with a POSIX shell and userland tools.
186 .Sh BUGS
187 .Nm
188 does not validate any of the files given to it.
189 .Pp
190 When running a local resolver other than libc, you will need to configure it
191 to include files that
192 .Nm
193 will generate. You should consult the comment section in the helper script
194 for your resolver found in @PREFIX@/etc/resolvconf/update.d for instructions
195 on this.
196 .Sh SEE ALSO
197 .Xr dnsmasq 8 ,
198 .Xr named 8 ,
199 .Xr resolv.conf 5 ,
200 .Xr resolver 3 ,
201 .Xr stdin 3
202 .Sh AUTHORS
203 .An "Roy Marples" Aq roy@marples.name
204 .Sh BUGS
205 Please report them to http://bugs.marples.name