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