bootpd(ADMN)
bootpd, bootpgw --
Internet Boot Protocol server/gateway
Syntax
bootpd [ -i ]
[ -s ]
[ -t timeout ]
[ -D debug_level ]
[ -c chdir_path ]
[ bootptab [ dumpfile ] ]
bootpgw
[ -i ]
[ -s ]
[ -t timeout ]
[ -D debug_level ]
[ -h hop_cnt ]
[ -w wait_tm ]
server
Description
bootpd implements an Internet Bootstrap Protocol
(BOOTP) server as defined in RFC 951,
RFC 1532, and RFC 1533.
bootpgw implements a simple BOOTP
gateway which can be used to forward requests and responses
between clients on one subnet and a BOOTP server
(that is bootpd) on another subnet. While either
bootpd or bootpgw will forward
BOOTREPLY packets, only bootpgw will
forward BOOTREQUEST packets.
One host on each network segment is normally configured to
run either bootpd or bootpgw from
inetd by including one of the following lines in
the file /etc/inetd.conf:
bootps dgram udp wait root /etc/bootpd bootpd bootptab
bootps dgram udp wait root /etc/bootpgw bootpgw server
This mode of operation is referred to as ``inetd mode'' and
causes bootpd (or bootpgw) to be
started only when a boot request arrives. If it does not
receive another packet within fifteen minutes of the last
one it received, it will exit to conserve system
resources. The -t option controls this timeout
(see ``Options'').
It is also possible to run bootpd (or
bootpgw) in ``standalone mode'' (without
inetd) by simply invoking it from a shell like
any other regular command. Standalone mode is particularly
useful when bootpd is used with a large
configuration database, where the start up delay might
otherwise prevent timely response to client requests.
(Automatic start up in standalone mode can be done by
invoking bootpd from within /etc/tcp,
for example.) Standalone mode is less useful for
bootpgw which has very little start up delay
because it does not read a configuration file.
Either program automatically detects whether it was invoked
from inetd or from a shell and automatically
selects the appropriate mode. The -s or
-i option may be used to force standalone or
inetd mode, respectively (see ``Options'').
Options
-t timeout-
Specifies the timeout value (in minutes) that a
bootpd or bootpgw process will wait for
a BOOTP packet before exiting. If no packets are
received for timeout minutes, then the program
will exit. A timeout value of zero means ``run forever''.
In standalone mode, this option is forced to zero.
-D debug_level-
Sets the debug_level variable that controls the
amount of debugging messages generated. For example,
``-D1'' or ``-D 1'' will set the debugging level to 1.
Recognized values are 0, 1, 2, and 3 or greater. Zero
generates no messages and 1 to 3 generate increasing
amounts of messages. Specifying an integer over 3 has the
same result as specifying 3. For compatibility with older
versions of bootpd, using lower-case ``d''
(without an argument) will simply increment the debug level
by one.
-h hop_cnt-
Sets the maximum number of hops allowed for requests;
bootpgw increments the hop count of the
BOOTREQUEST packet. The packet is dropped if the
hop_cnt limit is reached. The default
hop_cnt is 4.
-w wait_tm-
Sets the minimum number of seconds a client must wait
before bootpgw will forward its
BOOTREQUEST packet. The default
wait_tm value is 3.
-c chdir_path-
Sets the current directory used by bootpd while
checking the existence and size of client boot files. This
option has no effect because this implementation of
bootpd does not do this checking. This option is
equivalent with -p on some older versions of
bootpd.
This option is not recognized by bootpgw.
-i-
Force inetd mode. This option is obsolete, but
remains for compatibility with older versions of
bootpd.
-s-
Force standalone mode. This option is obsolete, but
remains for compatibility with older versions of
bootpd.
bootptab-
Specifies the name of an alternate configuration file from
which bootpd loads its database of known clients
and client options (bootpd only). The default
configuration file is /etc/bootptab.
dumpfile-
Specifies the name of the file into which bootpd
will dump its internal database when it receives a
SIGUSR1 signal (bootpd only).
server-
Specifies the name of a BOOTP server to which
bootpgw will forward all BOOTREQUEST
packets it receives (bootpgw only).
Operation
Both bootpd and bootpgw operate
similarly in that both listen for any packets sent to the
bootps port and both simply forward any
BOOTREPLY packets. They differ in their handling
of BOOTREQUEST packets.
When bootpgw is started, it determines the
address of a BOOTP server whose name is provided
as a command line parameter. When bootpgw
receives a BOOTREQUEST packet, it sets the
``gateway address'' and ``hop count'' fields in the packet
and forwards the packet to the BOOTP server at
the address determined earlier. Requests are forwarded
only if they indicate that the client has been waiting for
at least three seconds.
When bootpd is started, it reads a configuration
file (normally /etc/bootptab) that initializes
the internal database of known clients and client options.
This internal database is reloaded from the configuration
file when bootpd receives a hangup signal
(SIGHUP) or when it discovers that the
configuration file has changed.
When bootpd receives a BOOTREQUEST
packet, it
looks for a database entry matching the client request. If
the client is known, bootpd composes a
BOOTREPLY packet using the database entry found
above and sends the reply to the client (possibly using a
gateway). If the client is unknown, the request is
discarded (with a notice if debug > 0).
The receipt of a SIGUSR1 signal causes
bootpd to dump its internal database to the file
/usr/adm/syslog or the dumpfile specified as
a command line parameter.
During initialization, both programs determine the
UDP port numbers to be used by calling
getservbyname (see
getservent(SLIB))
(which normally uses /etc/services). Two service
names (and port numbers) are used:
bootps BOOTP Server listening port
bootpc BOOTP Client destination port
If the port numbers cannot be determined using
getservbyname, then the values default to
bootps=67 and bootpc=68.
Limitations
Individual host entries must not exceed 1024 characters.
Files
/etc/bootptab-
database file read by
bootpd
/usr/adm/syslog-
debugging dump file created by
bootpd
/etc/services-
internet service numbers
/tftpboot-
current directory typically used by the TFTP server and
bootpd
See also
bootpef(ADMN),
bootptab(SFF),
inetd(ADMN),
tftpd(ADMN)
Standards conformance
bootpd is conformant with:
RFC 951,
RFC 1532,
RFC 1533
© 2003 Caldera International, Inc. All rights reserved.
SCO OpenServer Release 5.0.7 -- 11 February 2003