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