Re-write the man page in mdoc format and clear a few things up. The examples have...
[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 manages
41 .Xr resolv.conf 5
42 files from multiple sources, such as DHCP and VPN clients.
43 Traditionally, the host runs just one client and that updates
44 .Pa /etc/resolv.conf .
45 More modern systems frequently have wired and wireless interfaces and there is
46 no guarantee both are on the same network. With the advent of VPN and other
47 types of networking daemons, many things contend for
48 .Pa /etc/resolv.conf .
49 .Pp
50 .Nm
51 solves this by letting the daemon send their
52 .Xr resolv.conf 5
53 file to
54 .Nm
55 via
56 .Xr stdin 3
57 with the argument
58 .Fl a Ar interface
59 instead of the filesystem.
60 .Nm
61 then updates
62 .Pa /etc/resolv.conf
63 as it thinks best.
64 When a local resolver other than libc is installed, such as
65 .Xr dnsmasq 8
66 or
67 .Xr named 8
68 then
69 .Nm
70 will configure
71 .Pa /etc/resolv.conf
72 to use that and supply files that the resolver should be configured to include.
73 This allows
74 .Nm
75 to configure the local resolver such that
76 .Pa resolv.conf
77 files specifiying a domain only query the listed nameservers when resolving
78 for that domain. Otherwise the nameservers are treated as global nameservers.
79 This in turn means, that you can trivially configure nameservers for say
80 VPN domains.
81 .Pp
82 When an interface goes down, it should then call
83 .Nm
84 with
85 .Fl d Ar interface
86 arguments to delete the
87 .Pa resolv.conf
88 file for the
89 .Ar interface .
90 .Pp
91 Here are some more options that
92 .Nm
93 has:-
94 .Bl -tag -width indent
95 .It Fl i Ar pattern
96 List the interfaces, optionally matching
97 .Ar pattern ,
98 we have
99 .Pa resolv.conf
100 files for.
101 .It Fl l Ar pattern
102 List the
103 .Pa resolv.conf
104 files we have. If
105 .Ar pattern
106 is specified then we list the files for the interfaces that match it.
107 .It Fl u
108 Force
109 .Nm
110 to update all it's helpers.
111 .El
112 .Pp
113 .Nm
114 also has some options designed to be used by it's helpers:-
115 .Bl -tag -width indent
116 .It Fl s Ar service Ar command ...
117 Try and send the
118 .Ar command
119 to the system
120 .Ar service .
121 Normally this is something like
122 .Ar resolvconf -s named restart .
123 We have this command, so the helpers don't have to know too much about the
124 operating system on the host.
125 .It Fl v
126 Echo variables NEWDOMAIN, NEWSEARCH and NEWNS so that the helper can configure
127 the resolver easily.
128 .El
129 .Sh FILES
130 .Bl -ohang
131 .It Pa @PREFIX@/etc/resolvconf/run
132 Directory that holds the data for
133 .Nm .
134 Normally a symlink to
135 .Pa /var/run/resolvconf .
136 You could symlink
137 .Pa /etc/resolv.conf
138 to
139 .Pa resolvconf/run/resolv.conf
140 to support a read only
141 .Pa /etc .
142 .It Pa @PREFIX@/etc/resolvconf/update.d
143 Directory of the helper scripts which are run every time
144 .Nm
145 adds, deletes or updates.
146 .It Pa @PREFIX@/etc/resolvconf/update-libc.d
147 Directory of helper scripts which are run after the libc helper script is run.
148 .It Pa @PREFIX@/etc/resolvconf/interface-order
149 Determines the order in which nameserver information records are processed
150 by resolvconf -l.
151 .It Pa @PREFIX@/etc/resolvconf/resolv.conf.d/base
152 Contains basic resolver information which is included in
153 .Pa /etc/resolv.conf
154 even when no interfaces are configured.
155 .It Pa @PREFIX@/etc/resolvconf/resolv.conf.d/head
156 File to be prepended to
157 .Pa /etc/resolv.conf .
158 Normally this is just a comment line.
159 .It Pa @PREFIX@/etc/resolvconf/resolv.conf.d/tail
160 File to be appended to
161 .Pa /etc/resolv.conf .
162 .El
163 .Sh HISTORY
164 .Nm
165 is fully command line compatible with Debians resolvconf,
166 as written by Thomas Hood.
167 .Nm
168 also shares a similar directory structure with the Debian version,
169 but the included helpers are not compatible.
170 .Pp
171 The Debian version only works with bash and other GNU userland tools, where-as
172 .Nm
173 works with a POSIX shell and userland tools.
174 .Sh BUGS
175 .Nm
176 does not validate any of the files given to it.
177 .Sh LOCAL RESOLVERS
178 When running a local resolver other than libc, you will need to configure it
179 to include files that
180 .Nm
181 will generate. You should consult the comment section in the helper script
182 for your resolver found in @PREFIX@/etc/resolvconf/update.d for instructions
183 on this.
184 .Sh SEE ALSO
185 .Xr dnsmasq 8 ,
186 .Xr named 8 ,
187 .Xr resolv.conf 5 ,
188 .Xr resolver 3 ,
189 .Xr stdin 3
190 .Sh AUTHORS
191 .An "Roy Marples" Aq roy@marples.name
192 .Sh BUGS
193 Please report them to http://bugs.marples.name