DHCPD(8) DHCPD(8)
NAME
dhcpd, dhcpleases, rarpd, tftpd - Internet booting
SYNOPSIS
ip/dhcpd [-dmnprsSZ] [-f ndb-file] [-M secs] [-x netmtpt]
[-Z secs] [ address n ] ...
ip/dhcpleases
ip/rarpd [-d] [-e etherdev] [-x netmtpt]
ip/tftpd [-dr] [-h homedir] [-x netmtpt]
DESCRIPTION
These programs support booting over the Internet. They
should all be run on the same server to allow other systems
to be booted. Dhcpd and tftpd are used to boot everything;
rarpd is an extra piece just for Suns.
Dhcpd runs the BOOTP and DHCP protocols. Clients use these
protocols to obtain configuration information. This infor-
mation comes from attribute/value pairs in the network data-
base (see ndb(6) and ndb(8)). DHCP requests are honored both
for static addresses found in the NDB and for dynamic
addresses listed in the command line. DHCP requests are
honored if either:
- there exists an NDB entry containing both the ethernet
address of the requester and an IP address on the originat-
ing network or subnetwork.
- a free dynamic address exists on the originating network
or subnetwork.
A BOOTP request is honored if all of the following are true:
- there exists an NDB entry containing both the ethernet
address of the requester and an IP address on the originat-
ing network or subnetwork.
- the entry contains a bootf= attribute
- the file in the bootf= attribute is readable.
Dynamic addresses are specified on the command line as a
list of addresses and number pairs. For example,
ip/dhcpd 10.1.1.12 10 10.2.1.70 12
directs dhcpd to return dynamic addresses 10.1.1.12 through
10.1.1.21 inclusive and 10.2.1.70 through 10.2.1.81 inclu-
sive.
Dhcpd maintains a record of all dynamic addresses in the
directory /lib/ndb/dhcp, one file per address. If multiple
servers have access to this common directory, they will cor-
rectly coordinate their actions.
Page 1 Plan 9 (printed 10/28/25)
DHCPD(8) DHCPD(8)
Attributes come from either the NDB entry for the system,
the entry for its subnet, or the entry for its network. The
system entry has precedence, then the subnet, then the net-
work. The NDB attributes used are:
ip the IP address
ipmask the IP mask
ipgw the default IP gateway
dom the domain name of the system
fs the default Plan 9 name server
auth the default Plan 9 authentication server
dns a domain name server
ntp a network time protocol server
time a time server
wins a NETBIOS name server
www a World Wide Web proxy
pop3 a POP3 mail server
smtp an SMTP mail server
bootf the default boot file; see ndb(6)
Dhcpd will answer BOOTP requests only if it has been specif-
ically targeted or if it has read access to the boot file
for the requester. That means that the requester must spec-
ify a boot file in the request or one has to exist in NDB
for dhcpd to answer. Dhcpd will answer all DHCP requests
for which it can associate an IP address with the requester.
The options are:
d Print debugging to standard output.
f Specify a file other than /lib/ndb/local as the network
database.
m Mute: don't reply to requests, just log them and what
dhcpd would have done.
M Use secs as the minimum lease time for dynamic
addresses.
n Don't answer BOOTP requests.
p Answer DHCP requests from PPTP clients only.
r Mute static addresses: don't reply to requests for
static addresses, just log them and what dhcpd would
have done.
s Sleep roughly 1 to 2 seconds before answering requests
for static addresses. This is used to make a server be
a backup only.
S Sleep roughly 1 to 2 seconds before answering requests
Page 2 Plan 9 (printed 10/28/25)
DHCPD(8) DHCPD(8)
for dynamic addresses.
x The IP stack to use is mounted at netmtpt. The default
is /net.
Z Use secs as the minimum lease time for static
addresses.
Dhcpleases prints out the currently valid DHCP leases found
in the /lib/ndb/dhcp directory.
Rarpd performs the Reverse Address Resolution Protocol,
translating Ethernet addresses into IP addresses. The
options are:
d Print debugging to standard output.
e Use the Ethernet mounted at /net/etherdev.
x The IP stack to use is mounted at netmtpt. The default
is /net.
Tftpd transfers files to systems that are booting. It runs
as user none and can only access files with global read per-
mission. `%C' in a file name is replaced with the name of
the booting system's `/cfg/pxe' file. Similarly, `%E'
becomes the booting system's Ethernet MAC address and `%I'
becomes its IP address. The options are:
d Print debugging to standard output.
x The IP stack to use is mounted at netmtpt. The default
is /net.
h Change directory to homedir. The default is /lib/tftpd.
All requests for files with non-rooted file names are
served starting at this directory with the exception of
files of the form xxxxxxxx.SUNyy. These are Sparc ker-
nel boot files where xxxxxxxx is the hex IP address of
the machine requesting the kernel and yy is an archi-
tecture identifier. Tftpd looks up the file in the
network database using ipinfo (see ndb(2)) and responds
with the boot file specified for that particular
machine. If no boot file is specified, the transfer
fails. Tftpd supports only octet mode.
r Restricts access to only those files rooted in the
homedir.
FILES
/lib/ndb/dhcp directory of dynamic address files
Page 3 Plan 9 (printed 10/28/25)
DHCPD(8) DHCPD(8)
SOURCE
/sys/src/cmd/ip
SEE ALSO
ndb(6), 9boot(8), booting(8)
BUGS
Dhcpd doesn't really understand a single interface having
addresses on multiple subnets, as during renumbering of a
subnet. It will only respond with addresses on the subnet
of its primary IP address on that interface.
Page 4 Plan 9 (printed 10/28/25)