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