bootpd , bootpgw - Internet Boot Protocol server/gateway
One host on each network segment is normally configured to run either or bootpgw from inetd(8) by including one of the following lines in the file /etc/inetd.conf
bootps dgram udp wait root /usr/libexec/bootpd bootpd /etc/bootptab
bootps dgram udp wait root /usr/libexec/bootpgw bootpgw server
This mode of operation is referred to as "inetd mode" and causes (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 (or bootpgw in "standalone mode" (without inetd(8)) by simply invoking it from a shell like any other regular command. Standalone mode is particularly useful when 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 from within /etc/rc.local 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).
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 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 receives a hangup signal (SIGHUP) or when it discovers that the configuration file has changed.
When receives a BOOTREQUEST packet, it looks for a database entry matching the client request. If the client is known, 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).
If is compiled with the -DDEBUG option, receipt of a SIGUSR1 signal causes it to dump its internal database to the file /tmp/bootpd.dump or the dumpfile specified as a command line parameter.
During initialization, both programs determine the UDP port numbers to be used by calling getservbyname(3) (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(3) then the values default to bootps=67 and bootpc=68.
The original BOOTP server was created by An Bill Croft at Stanford University in January 1986.
The current version of is primarily the work of An David Kovar , An Drew D. Perkins , and An Walter L. Wimer , at Carnegie Mellon University.
Enhancements and bug-fixes have been contributed by:
(in alphabetical order)
An -split An Danny Backx Aq db@sunbim.be An John Brezak Aq brezak@ch.hp.com An Frank da Cruz Aq fdc@cc.columbia.edu An David R. Linn Aq drl@vuse.vanderbilt.edu An Jim McKim Aq mckim@lerc.nasa.gov An Gordon W. Ross Aq gwr@mc.com An Jason Zions Aq jazz@hal.com .
DARPA Internet Request For Comments:
Закладки на сайте Проследить за страницей |
Created 1996-2024 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |