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