in.dhcpd is a daemon that responds to Dynamic Host Configuration Protocol (DHCP) requests and optionally to BOOTP protocol requests. The daemon forks a copy of itself that runs as a background process. It must be run as root. The daemon has two run modes, DHCP server (with optional BOOTP compatibility mode) and BOOTP relay agent mode. The first synopsis illustrates the options available in the DHCP/BOOTP server mode. The second synopsis illustrates the options available when the daemon is run in BOOTP relay agent mode.
The DHCP and BOOTP protocols are used to provide configuration parameters to Internet hosts. Client machines are allocated their IP addresses as well as other host configuration parameters through this mechanism.
The DHCP/BOOTP server manages two types of databases:
The dhcptab database contains macro definitions
defined using a termcap-like syntax which permits network adminis- trators
to define groups of DHCP configuration
parameters to be returned to clients. A DHCP/BOOTP server returns hostname, network broadcast address, network subnet
mask, or IP maximum transfer unit (MTU)
if requested by a client attached to the same network as the server without
having to be explicitly configured in the dhcptab. The dhcptab database is read at startup, upon receipt of a
SIGHUP signal, or periodically as specified
by the -t option. A
SIGHUP causes the DHCP/BOOTP server
to reread the dhcptab within an interval from 0-60 seconds
(depending on where the dhcp server is in its polling
cycle). For busy servers, users should run /etc/init.d/dhcp stop, followed by /etc/init.d/dhcp start to force
the dhcptab to be reread.
The dhcp network databases contain client identifier to IP address mappings. These databases are named after the network they support. For example, 10_0_0_0 is the dhcp network database for the 10.0.0.0 network.
The dhcp network databases are consulted during runtime. A client request received from a network for which no dhcp network database exists is ignored.
Multiple DHCP servers on the same network operate much more efficiently if they share DHCP databases through NIS+ or NFS. Sharing allows DHCP servers to communicate through a common datastore, increasing redundancy and balancing load among cooperating servers.
This command may change in future releases of Solaris software. Scripts, programs, or procedures that use this command might need modification when upgrading to future Solaris software releases.
Default settings for the command line options can be set in /etc/default/dhcp. See dhcp(4) for more details.
This option enables BOOTP compatibility mode, allowing the DHCP server to respond to BOOTP clients. The option argument specifies whether the DHCP server should automatically allocate permanent lease IP addresses to requesting BOOTP clients if the clients are not registered in the server's database (automatic) or respond only to BOOTP clients who have been manually registered in the server's databases ( manual). This option only affects DHCP server mode.
Debugging mode. The daemon remains as a foreground process, and displays verbose messages as it processes DHCP and/or BOOTP datagrams. Messages are displayed on the current TTY. This option can be used in both DHCP/BOOTP server mode and BOOTP relay agent mode.
Specifies the maximum number of relay agent hops that can occur before the daemon drops the DHCP/BOOTP datagram. The default number of relay agent hops is 4. This option affects both DHCP/BOOTP server mode and BOOTP relay agent mode.
Selects the network interfaces that the daemon should monitor for DHCP/BOOTP datagrams. The daemon ignores DHCP/BOOTP datagrams on network interfaces not specified in this list. This option is only useful on machines that have multiple network interfaces. If this option is not specified, then the daemon listens for DHCP/BOOTP datagrams on all network interfaces. The option argument consists of a comma-separated list of interface names. It affects both DHCP/BOOTP server and BOOTP relay agent run modes.
The presence of this option turns on DHCP Server or BOOTP relay agent transaction logging. The value specifies the syslog local facility (an integer from 0 to 7 inclusive) the DHCP daemon should use for tagging the transactions. Using a facility separate from the LOG_DAEMON facility allows the network administrator to capture these transactions separately from other DHCP daemon events for such purposes as generating transaction reports. See syslog(3C), for details about local facilities. Transactions are logged using a record with 9 space-separated fields as follows:
Relay mode: "BOOTP" Server mode: "BOOTP" or "DHCP" based upon client type.
Relay mode: "RELAY-CLNT", "RELAY-SRVR" Server mode: "ASSIGN", "EXTEND", "RELEASE", "DECLINE", "INFORM", "NAK" "ICMP-ECHO."
Transaction time: absolute time in seconds (unix time)
Relay mode: Always 0. Server mode: 0 for ICMP-ECHO events, absolute time in seconds (unix time) otherwise
Source IP address: Dotted Internet form
Relay mode: Relay interface IP on RELAY-CLNT, INADDR_ANY on RELAY-SRVR. Server mode: Client IP.
Destination IP address: Dotted Internet form
Relay mode: Client IP on RELAY-CLNT, Server IP on RELAY-SRVR. Server mode: Server IP.
Client Identifier: Hex representation (0-9, A-F)
Relay mode: MAC address Server mode: BOOTP - MAC address; DHCP - client id
Vendor Class identifier (white space converted to periods (.)).
Relay mode: Always "N/A" Server mode: Vendor class ID tokenized by converting white space characters to periods (.)
MAC address: Hex representation (0-9, A-F)
Relay mode: MAC address Server mode: MAC address
The format of this record is subject to change between releases.
Transactions are logged to the console if daemon is in debug mode (-d).
Logging transactions impact daemon performance.
It is suggested that you manage log file size periodically using a script run by cron(1M) and sending syslogd(1M) a SIGHUP signal. You could, for example, clone /usr/lib/newsyslog and alter it to match your DHCP logging requirements.
Disable automatic duplicate IP address detection. When this option is specified, the DHCP server does not attempt to verify that an IP address it is about to offer a client is not in use. By default, the DHCP server pings an IP address before offering it to a DHCP/BOOTP client, to verify that the address is not in use by another machine.
Specifies the number of seconds the DHCP server should cache the offers it has extended to discovering DHCP clients. The default setting is 10 seconds. On slow network media, this value can be increased to compensate for slow network performance. This option only affects DHCP server mode.
This option enables BOOTP relay agent mode. The option argument specifies a comma-separated list of IP addresses or hostnames of DHCP or BOOTP servers to which the relay agent is to forward BOOTP requests. When the daemon is started in this mode, any DHCP databases are ignored, and the daemon simply acts as a BOOTP relay agent.
A BOOTP relay agent listens to UDP port 68, and forwards BOOTP request packets received on this port to the destinations specified on the command line. It supports the BROADCAST flag described in RFC 1542. A BOOTP relay agent can run on any machine that has knowledge of local routers, and thus does not have to be an Internet gateway machine.
Note that the proper entries must be made to the netmasks database so that the DHCP server being served by the BOOTP relay agents can identify the subnet mask of the foreign BOOTP/DHCP client's network. See netmasks(4) for the format and use of this database.
Specifies the interval in minutes that the DHCP server should use to schedule the automatic rereading of the dhcptab information. Typically, one would use this option if the changes to the dhcptab are relatively frequent. Once the contents of the dhcptab have stabilized, one can turn off this option to avoid needless reinitialization from the dhcptab.
Verbose mode. The daemon displays more messages than in the default mode. Note that verbose mode can reduce daemon efficiency due to the time taken to display messages. Messages are displayed to the current TTY if the debugging option is used; otherwise, messages are logged to the syslogd facility. This option can be used in both DHCP/BOOTP server mode and BOOTP relay agent mode.
The following command starts a DHCP server in BOOTP compatibility mode, permitting the server to automatically allocate permanent IP addresses to BOOTP clients which are not registered in the server's database; limits the server's attention to incoming datagrams on network devices le2 and tr0; drops BOOTP packets whose hop count exceeds 2; configures the DHCP server to cache extended DHCP offers for 15 seconds; and schedules dhcptab rescans to occur every 10 minutes:
# in.dhcpd -i le2,tr0 -h 2 -o 15 -t 10 -b automatic
The following command starts the daemon in BOOTP relay agent mode, registering the hosts bladerunner and 10.0.0.5 as relay destinations, with debugging and verbose modes enabled, and drops BOOTP packets whose hop count exceeds 5:
# in.dhcpd -d -v -h 5 -r bladerunner,10.0.0.5
file or NIS+ table
where NNN_NNN_NNN_NNN are database files(s) or NIS+ table(s) which are named for the network they support. For example, 10_0_0_0 is the dhcp network database which serves the 10.0.0.0 network. See dhcp_network(4) for more details.
file or NIS+ table
configuration file. See dhcp(4) for more details.
See attributes(5) for descriptions of the following attributes:
|ATTRIBUTE TYPE||ATTRIBUTE VALUE|
Alexander, S., and R. Droms, DHCP Options and BOOTP Vendor Extensions, RFC 2132, Silicon Graphics, Inc., Bucknell University, March 1997.
Droms, R., Interoperation Between DHCP and BOOTP, RFC 1534, Bucknell University, October 1993.
Droms, R., Dynamic Host Configuration Protocol, RFC 2131, Bucknell University, March 1997.
Wimer, W., Clarifications and Extensions for the Bootstrap Protocol, RFC 1542, Carnegie Mellon University, October 1993.