Patrick Welche <prlw1@cam.ac.uk>
[netbsd-mini2440.git] / usr.sbin / bootp / bootpd / bootpd.8
blob2e9da432992eb0d3442d138782f9b64202f387b6
1 .\" Copyright (c) 1988, 1989, 1991 Carnegie Mellon University
2 .\"
3 .\"     $NetBSD: bootpd.8,v 1.9 2002/10/29 16:12:25 wiz Exp $
4 .\"
5 .TH BOOTPD 8 "November 06, 1993" "Carnegie Mellon University"
6 .SH NAME
7 bootpd, bootpgw \- Internet Boot Protocol server/gateway
8 .SH SYNOPSIS
9 .B bootpd
11 .B \-i
12 .B \-s
13 .B \-t
14 timeout
15 .B \-d
16 level
17 .B \-c
18 chdir\-path
21 .I bootptab
23 .I dumpfile
24 ] ]
25 .br
26 .B bootpgw
28 .B \-i
29 .B \-s
30 .B \-t
31 timeout
32 .B \-d
33 level
34 ] server
35 .SH DESCRIPTION
36 .I Bootpd
37 implements an Internet Bootstrap Protocol (BOOTP) server as defined in
38 RFC951, RFC1532, and RFC1533.
39 .I Bootpgw
40 implements a simple BOOTP gateway which can be used to forward
41 requests and responses between clients on one subnet and a
42 BOOTP server (i.e.
43 .IR bootpd )
44 on another subnet. While either
45 .I bootpd
47 .I bootpgw
48 will forward BOOTREPLY packets, only
49 .I bootpgw
50 will forward BOOTREQUEST packets.
51 .PP
52 One host on each network segment is normally configured to run either
53 .I bootpd
55 .I bootpgw
56 from
57 .I inetd
58 by including one of the following lines in the file
59 .IR /etc/inetd.conf :
60 .IP
61 bootps dgram udp wait root /usr/sbin/bootpd bootpd bootptab
62 .br
63 bootps dgram udp wait root /usr/sbin/bootpgw bootpgw server
64 .PP
65 This mode of operation is referred to as "inetd mode" and causes
66 .I bootpd
67 (or
68 .IR bootpgw )
69 to be started only when a boot request arrives.  If it does not
70 receive another packet within fifteen minutes of the last one
71 it received, it will exit to conserve system resources.  The
72 .B \-t
73 option controls this timeout (see OPTIONS).
74 .PP
75 It is also possible to run
76 .I bootpd
77 (or
78 .IR bootpgw )
79 in "standalone mode" (without
80 .IR inetd )
81 by simply invoking it from a shell like any other regular command.
82 Standalone mode is particularly useful when
83 .I bootpd
84 is used with a large configuration database, where the start up
85 delay might otherwise prevent timely response to client requests.
86 (Automatic start up in standalone mode can be done by invoking
87 .I bootpd
88 from within
89 .IR /etc/rc.local ,
90 for example.)
91 Standalone mode is less useful for
92 .I bootpgw
93 which
94 has very little start up delay because
95 it does not read a configuration file.
96 .PP
97 Either program automatically detects whether it was invoked from inetd
98 or from a shell and automatically selects the appropriate mode.
99 The
100 .B \-s
102 .B \-i
103 option may be used to force standalone or inetd mode respectively
104 (see OPTIONS).
105 .SH OPTIONS
107 .BI \-t \ timeout
108 Specifies the
109 .I timeout
110 value (in minutes) that a
111 .I bootpd
113 .I bootpgw
114 process will wait for a BOOTP packet before exiting.
115 If no packets are received for
116 .I timeout
117 minutes, then the program will exit.
118 A timeout value of zero means "run forever".
119 In standalone mode, this option is forced to zero.
121 .BI \-d \ debug\-level
122 Sets the
123 .I debug\-level
124 variable that controls the amount of debugging messages generated.
125 For example, -d4 or -d 4 will set the debugging level to 4.
126 For compatibility with older versions of
127 .IR bootpd ,
128 omitting the numeric parameter (i.e. just -d) will
129 simply increment the debug level by one.
131 .BI \-c \ chdir\-path
132 Sets the current directory used by
133 .I bootpd
134 while checking the existence and size of client boot files.  This is
135 useful when client boot files are specified as relative pathnames, and
136 .I bootpd
137 needs to use the same current directory as the TFTP server
138 (typically /tftpboot).  This option is not recognized by
139 .IR bootpgw .
141 .B \-i
142 Force inetd mode.  This option is obsolete, but remains for
143 compatibility with older versions of
144 .IR bootpd .
146 .B \-s
147 Force standalone mode.  This option is obsolete, but remains for
148 compatibility with older versions of
149 .IR bootpd .
151 .I bootptab
152 Specifies the name of the configuration file from which
153 .I bootpd
154 loads its database of known clients and client options
155 .RI ( bootpd
156 only).
158 .I dumpfile
159 Specifies the name of the file that
160 .I bootpd
161 will dump its internal database into when it receives a
162 SIGUSR1 signal
163 .RI ( bootpd
164 only).  This option is only recognized if
165 .I bootpd
166 was compiled with the -DDEBUG flag.
168 .I server
169 Specifies the name of a BOOTP server to which
170 .I bootpgw
171 will forward all BOOTREQUEST packets it receives
172 .RI ( bootpgw
173 only).
174 .SH OPERATION
176 Both
177 .I bootpd
179 .I bootpgw
180 operate similarly in that both listen for any packets sent to the
181 .I bootps
182 port, and both simply forward any BOOTREPLY packets.
183 They differ in their handling of BOOTREQUEST packets.
185 When
186 .I bootpgw
187 is started, it determines the address of a BOOTP server
188 whose name is provided as a command line parameter.  When
189 .I bootpgw
190 receives a BOOTREQUEST packet, it sets the "gateway address"
191 and "hop count" fields in the packet and forwards the packet
192 to the BOOTP server at the address determined earlier.
193 Requests are forwarded only if they indicate that
194 the client has been waiting for at least three seconds.
196 When
197 .I bootpd
198 is started it reads a configuration file, (normally
199 .IR /etc/bootptab )
200 that initializes the internal database of known clients and client
201 options.  This internal database is reloaded
202 from the configuration file when
203 .I bootpd
204 receives a hangup signal (SIGHUP) or when it discovers that the
205 configuration file has changed.
207 When
208 .I bootpd
209 receives a BOOTREQUEST packet, it
210 .\" checks the modification time of the
211 .\" configuration file and reloads the database if necessary.  Then it
212 looks for a database entry matching the client request.
213 If the client is known,
214 .I bootpd
215 composes a BOOTREPLY packet using the database entry found above,
216 and sends the reply to the client (possibly using a gateway).
217 If the client is unknown, the request is discarded
218 (with a notice if debug \*[Gt] 0).
221 .I bootpd
222 is compiled with the -DDEBUG option, receipt of a SIGUSR1 signal causes
223 it to dump its internal database to the file
224 .I /etc/bootpd.dump
225 or the dumpfile specified as a command line parameter.
227 During initialization, both programs
228 determine the UDP port numbers to be used by calling
229 .I getservbyname
230 (which normally uses
231 .IR /etc/services).
232 Two service names (and port numbers) are used:
234 bootps \- BOOTP Server listening port
236 bootpc \- BOOTP Client destination port
238 If the port numbers cannot
239 be determined using
240 .I getservbyname
241 then the values default to bootps=67 and bootpc=68.
242 .SH FILES
243 .TP 20
244 /etc/bootptab
245 Database file read by
246 .IR bootpd .
248 /etc/bootpd.dump
249 Debugging dump file created by
250 .IR bootpd .
252 /etc/services
253 Internet service numbers.
255 /tftpboot
256 Current directory typically used by the TFTP server and
257 .IR bootpd .
259 .SH BUGS
260 Individual host entries must not exceed 1024 characters.
262 .SH CREDITS
264 This distribution is currently maintained by
265 Walter L. Wimer \*[Lt]walt+@cmu.edu\*[Gt].
267 The original BOOTP server was created by
268 Bill Croft at Stanford University in January 1986.
270 The current version of
271 .I bootpd
272 is primarily the work of David Kovar,
273 Drew D. Perkins, and Walter L. Wimer,
274 at Carnegie Mellon University.
276 Enhancements and bug\-fixes have been contributed by:
277 (in alphabetical order)
279 Danny Backx \*[Lt]db@sunbim.be\*[Gt]
281 John Brezak \*[Lt]brezak@ch.hp.com\*[Gt]
283 Frank da Cruz \*[Lt]fdc@cc.columbia.edu\*[Gt]
285 David R. Linn \*[Lt]drl@vuse.vanderbilt.edu\*[Gt]
287 Jim McKim \*[Lt]mckim@lerc.nasa.gov\*[Gt]
289 Gordon W. Ross \*[Lt]gwr@mc.com\*[Gt]
291 Jason Zions \*[Lt]jazz@hal.com\*[Gt]
292 .SH "SEE ALSO"
294 bootptab(5), inetd(8), tftpd(8)
296 DARPA Internet Request For Comments:
297 .TP 10
298 RFC951
299 Bootstrap Protocol
300 .TP 10
301 RFC1532
302 Clarifications and Extensions for the Bootstrap Protocol
303 .TP 10
304 RFC1533
305 DHCP Options and BOOTP Vendor Extensions