2
0
mirror of https://gitlab.isc.org/isc-projects/dhcp synced 2025-09-01 06:45:27 +00:00

- Partially document new DDNS code.

- Move the DDNS parameters to where all the other parameters are documented,
  and document the new parameters.
This commit is contained in:
Ted Lemon
2000-12-29 05:10:41 +00:00
parent 4bcdb16d41
commit 3c8073547f

View File

@@ -344,7 +344,7 @@ immediately allocated to the client. If the address is available for
allocation but has been previously assigned to a different client, the allocation but has been previously assigned to a different client, the
server will keep looking in hopes of finding an address that has never server will keep looking in hopes of finding an address that has never
before been assigned to a client. before been assigned to a client.
.PP .SH IP ADDRESS CONFLICT PREVENTION
The DHCP server checks IP addresses to see if they are in use before The DHCP server checks IP addresses to see if they are in use before
allocating them to clients. It does this by sending an ICMP Echo allocating them to clients. It does this by sending an ICMP Echo
request message to the IP address being allocated. If no ICMP Echo request message to the IP address being allocated. If no ICMP Echo
@@ -456,58 +456,63 @@ include "/etc/dhcpd.master";
.PP .PP
The statements in the peer declaration are as follows: The statements in the peer declaration are as follows:
.PP .PP
.B The The
.I primary .I primary
.B and and
.I secondary .I secondary
.B statements statements
.RS 0.25i
.PP .PP
[ \fBprimary\fR | \fBsecondary\fR ] [ \fBprimary\fR | \fBsecondary\fR ]\fB;\fR
.PP .PP
This determines whether the server is primary or secondary, as This determines whether the server is primary or secondary, as
described earlier under DHCP FAILOVER. described earlier under DHCP FAILOVER.
.RE
.PP .PP
.B The The
.I address .I address
.B statement statement
.RS 0.25i
.PP .PP
.B address .B address \fIaddress\fR\fB;\fR
.I address
.PP .PP
The \fBaddress\fR statement declares the IP address on which the The \fBaddress\fR statement declares the IP address on which the
server should listen for connections from its failover peer, and also server should listen for connections from its failover peer, and also
the value to use for the DHCP Failover Protocol server identifier. the value to use for the DHCP Failover Protocol server identifier.
Because this value is used as an identifier, it may not be omitted. Because this value is used as an identifier, it may not be omitted.
.RE
.PP .PP
.B The The
.I peer address .I peer address
.B statement statement
.RS 0.25i
.PP .PP
.B peer address .B peer address \fIaddress\fR\fB;\fR
.I address
.PP .PP
The \fBpeer address\fR statement declares the IP address to which the The \fBpeer address\fR statement declares the IP address to which the
server should connect to reach its failover peer for failover server should connect to reach its failover peer for failover
messages. messages.
.RE
.PP .PP
.B The The
.I port .I port
.B statement statement
.RS 0.25i
.PP .PP
.B port .B port \fIport-number\fR\fB;\fR
.I port-number
.PP .PP
The \fBport\fR statement declares the TCP port on which the server The \fBport\fR statement declares the TCP port on which the server
should listen for connections from its failover peer. This statement should listen for connections from its failover peer. This statement
may not currently be omitted, because the failover protocol does not may not currently be omitted, because the failover protocol does not
yet have a reserved TCP port number. yet have a reserved TCP port number.
.RE
.PP .PP
.B The The
.I peer port .I peer port
.B statement statement
.RS 0.25i
.PP .PP
.B peer port .B peer port \fIport-number\fR\fB;\fR
.I port-number
.PP .PP
The \fBpeer port\fR statement declares the TCP port to which the The \fBpeer port\fR statement declares the TCP port to which the
server should connect to reach its failover peer for failover server should connect to reach its failover peer for failover
@@ -515,15 +520,14 @@ messages. This statement may not be omitted because the failover
protocol does not yet have a reserved TCP port number. The port protocol does not yet have a reserved TCP port number. The port
number declared in the \fBpeer port\fR statement may be the same as number declared in the \fBpeer port\fR statement may be the same as
the port number declared in the \fBport\fR statement. the port number declared in the \fBport\fR statement.
.RE
.PP .PP
.B The The
.I max-response-delay .I max-response-delay
.B statement statement
.RS 0.25i
.PP .PP
.nf .B max-response-delay \fIseconds\fR\fB;\fR
.B max-response-delay
.I seconds
.fi
.PP .PP
The \fBmax-response-delay\fR statement tells the DHCP server how The \fBmax-response-delay\fR statement tells the DHCP server how
many seconds may pass without receiving a message from its failover many seconds may pass without receiving a message from its failover
@@ -533,26 +537,28 @@ the connection will not result in the servers being out of
communication for a long time, but large enough that the server isn't communication for a long time, but large enough that the server isn't
constantly making and breaking connections. This parameter must be constantly making and breaking connections. This parameter must be
specified. specified.
.RE
.PP .PP
.B The The
.I max-unacked-updates .I max-unacked-updates
.B statement statement
.RS 0.25i
.PP .PP
.B max-unacked-updates .B max-unacked-updates \fIcount\fR\fB;\fR
.I count
.PP .PP
The \fBmax-unacked-updates\fR statement tells the DHCP server how The \fBmax-unacked-updates\fR statement tells the DHCP server how
many many BINDUPD messages it can send before it receives a BNDACK many many BINDUPD messages it can send before it receives a BNDACK
from the failover peer. We don't have enough operational experience from the failover peer. We don't have enough operational experience
to say what a good value for this is, but 10 seems to work. This to say what a good value for this is, but 10 seems to work. This
parameter must be specified. parameter must be specified.
.RE
.PP .PP
.B The The
.I mclt .I mclt
.B statement statement
.RS 0.25i
.PP .PP
.B mclt .B mclt \fIseconds\fR\fB;\fR
.I seconds
.PP .PP
The \fBmclt\fR statement defines the Maximum Client Lead Time. It The \fBmclt\fR statement defines the Maximum Client Lead Time. It
must be specified on the primary, and may not be specified on the must be specified on the primary, and may not be specified on the
@@ -564,13 +570,14 @@ shorter you set it, the more load your servers will experience when
they are not communicating. A value of something like 3600 is they are not communicating. A value of something like 3600 is
probably reasonable, but again bear in mind that we have no real probably reasonable, but again bear in mind that we have no real
operational experience with this. operational experience with this.
.RE
.PP .PP
.B The The
.I split .I split
.B statement statement
.RS 0.25i
.PP .PP
.B split .B split \fIindex\fR\fB;\fR
.I index
.PP .PP
The split statement specifies the split between the primary and The split statement specifies the split between the primary and
secondary for the purposes of load balancing. Whenever a client secondary for the purposes of load balancing. Whenever a client
@@ -579,13 +586,14 @@ identification. If the hash comes out to less than the split value,
the primary answers. If it comes out to equal to or more than the the primary answers. If it comes out to equal to or more than the
split, the secondary answers. This value should generally be set to split, the secondary answers. This value should generally be set to
128, and can only be configured on the primary. 128, and can only be configured on the primary.
.RE
.PP .PP
.B The The
.I hba .I hba
.B statement statement
.RS 0.25i
.PP .PP
.B hba .B hba \fIcolon-seperated-hex-list\fB;\fR
.I colon-seperated-hex-list
.PP .PP
The hba statement specifies the split between the primary and The hba statement specifies the split between the primary and
secondary as a bitmap rather than a cutoff, which theoretically allows secondary as a bitmap rather than a cutoff, which theoretically allows
@@ -596,13 +604,14 @@ for such fine-grained control, however. An example hba statement:
hba ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff: hba ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:
00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00; 00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00;
.fi .fi
.RE
.PP .PP
.B The The
.I load balance max seconds .I load balance max seconds
.B statement statement
.RS 0.25i
.PP .PP
.B load balance max seconds .B load balance max seconds \fIseconds\fR\fB;\fR
.I seconds
.PP .PP
This statement allows you to configure a cutoff after which load This statement allows you to configure a cutoff after which load
balancing is disabled. The cutoff is based on the number of seconds balancing is disabled. The cutoff is based on the number of seconds
@@ -614,6 +623,7 @@ failover peers gets into a state where it is responding to failover
messages but not responding to some client requests, the other messages but not responding to some client requests, the other
failover peer will take over its client load automatically as the failover peer will take over its client load automatically as the
clients retry. clients retry.
.RE
.SH CLIENT CLASSING .SH CLIENT CLASSING
Clients can be seperated into classes, and treated differently Clients can be seperated into classes, and treated differently
depending on what class they are in. This seperation can be done depending on what class they are in. This seperation can be done
@@ -821,53 +831,48 @@ the Domain Name System to be updated. These updates are RFC 2136
compliant so any DNS server supporting RFC 2136 should be able to compliant so any DNS server supporting RFC 2136 should be able to
accept updates from the DHCP server. accept updates from the DHCP server.
.PP .PP
The Dynamic DNS update scheme implemented in this version of the ISC Two DDNS update schemes are currently implemented, and another is
DHCP server is an interim implementation, which does not implement any planned. The two that are currently available are the ad-hoc DDNS
of the standard update methods that have been discussed in the working update mode and the interim DHCP-DNS interaction draft update mode.
group, but rather implements some very basic, yet useful, update If and when the DHCP-DNS interaction draft and the DHCID draft make it
capabilities. through the IETF standards process, there will be a third mode, which
will be the standard DDNS update method. The DHCP server must be
configured to use one of the two currently-supported methods, or not
to do dns updates. This can be done with the
.I ddns-update-style
configuration parameter.
.SH THE AD HOC DNS UPDATE SCHEME
The Ad Hoc Dynamic DNS update scheme implemented in this version of
the ISC DHCP server is an interim implementation, which does not
have much to do with the standard update method that is being
standardized in the IETF DHC working group, but rather implements some
very basic, yet useful, update capabilities. This mode
.B does not work
with the
.I failover protocol
because it does not account for the possibility of two different DHCP
servers updating the same set of DNS records.
.PP .PP
There are three parameters, which may vary according to the scope, For the ad hoc DNS update method, the client's FQDN is derived in two
that control how DDNS updates will be done. The first two are the parts. First, the hostname is determined. Then, the domain name is
.I ddns-domainname determined, and appended to the hostname.
and use a host-name option sent
.I ddns-rev-domainname by the client. If the client did not send a host-name option, then
statements. The if there is a host declaration that applies to the client, the name
.I ddns-domainname from that declaration will be used. If none of these applies, the
parameter sets the domain name that will be appended to the client's server will not have a hostname for the client, and will not be able
hostname to form a fully-qualified domain-name (FQDN). For example, to do a DDNS update.
if the client's hostname is "hutson" and the
.I ddns-domainname
is set to "sneedville.edu", then the client's FQDN will be
"hutson.sneedville.edu".
.PP .PP
The The client's fully-qualified domain name, derived as we have
.I ddns-rev-domainname described, is used as the name on which an "A" record will be stored.
parameter sets the domain name that will be appended to the client's The A record will contain the IP address that the client was assigned
reversed IP address to produce a name for use in the client's PTR in its lease. If there is already an A record with the same name in
record. Normally, you would set this to "in-addr.arpa", but this is the DNS server, no update of either the A or PTR records will occur -
not required. this prevents a client from claiming that its hostname is the name of
.PP some network server. For example, if you have a fileserver called
A third parameter, "fs.sneedville.edu", and the client claims its hostname is "fs", no
.I ddns-hostname DNS update will be done for that client, and an error message will be
can be used to specify the hostname that will be used as the client's logged.
hostname. If no ddns-hostname is specified in scope, then the server
will use a host-name option sent by the client. If the client did
not send a host-name option, then if there is a host declaration that
applies to the client, the name from that declaration will be used.
If none of these applies, the server will not have a hostname for the
client, and will not be able to do a DDNS update.
.SH HOW DNS UPDATES WORK
.PP
The client's FQDN, derived as we have described, is used as the name
on which an "A" record will be stored. The A record will contain the
IP address that the client was assigned in its lease. If there is
already an A record with the same name in the DNS server, no update of
either the A or PTR records will occur - this prevents a client from
claiming that its hostname is the name of some network server. For
example, if you have a fileserver called "fs.sneedville.edu", and the
client claims its hostname is "fs", no DNS update will be done for
that client, and an error message will be logged.
.PP .PP
If the A record update succeeds, a PTR record update for the assigned If the A record update succeeds, a PTR record update for the assigned
IP address will be done, pointing to the A record. This update is IP address will be done, pointing to the A record. This update is
@@ -896,6 +901,7 @@ at the time, or when next it operates) will remove the client's A and
PTR records from the DNS database. If the client releases its lease PTR records from the DNS database. If the client releases its lease
by sending a DHCPRELEASE message, the server will likewise remove the by sending a DHCPRELEASE message, the server will likewise remove the
A and PTR records. A and PTR records.
.SH THE INTERIM DNS UPDATE SCHEME
.SH DYNAMIC DNS UPDATE SECURITY .SH DYNAMIC DNS UPDATE SECURITY
.PP .PP
When you set your DNS server up to allow updates from the DHCP server, When you set your DNS server up to allow updates from the DHCP server,
@@ -1345,22 +1351,24 @@ force all clients that have been allocated addresses from this pool to
obtain new addresses immediately when they next renew. obtain new addresses immediately when they next renew.
.SH REFERENCE: PARAMETERS .SH REFERENCE: PARAMETERS
.PP .PP
.B The The
.I lease-file-name .I lease-file-name
.B statement statement
.RS 0.25i
.PP .PP
.B lease-file-name .B lease-file-name \fIname\fB;\fR
.I name\fR\fB;\fR
.PP .PP
.I Name .I Name
should be the name of the DHCP server's lease file. By default, this should be the name of the DHCP server's lease file. By default, this
is DBDIR/dhcpd.leases. This statement \fBmust\fR appear in the outer is DBDIR/dhcpd.leases. This statement \fBmust\fR appear in the outer
scope of the configuration file - if it appears in some other scope, scope of the configuration file - if it appears in some other scope,
it will have no effect. it will have no effect.
.RE
.PP .PP
.B The The
.I pid-file-name .I pid-file-name
.B statement statement
.RS 0.25i
.PP .PP
.B pid-file-name .B pid-file-name
.I name\fR\fB;\fR .I name\fR\fB;\fR
@@ -1371,45 +1379,53 @@ file in which the DHCP server's process ID is stored when the server
starts. By default, this is RUNDIR/dhcpd.pid. Like the starts. By default, this is RUNDIR/dhcpd.pid. Like the
lease-file-name statement, this statement must appear in the outer scope lease-file-name statement, this statement must appear in the outer scope
of the configuration file. of the configuration file.
.RE
.PP .PP
.B The The
.I default-lease-time .I default-lease-time
.B statement statement
.RS 0.25i
.PP .PP
\fBdefault-lease-time\fR \fItime\fR\fB;\fR .B default-lease-time \fItime\fR\fB;\fR
.PP .PP
.I Time .I Time
should be the length in seconds that will be assigned to a lease if should be the length in seconds that will be assigned to a lease if
the client requesting the lease does not ask for a specific expiration the client requesting the lease does not ask for a specific expiration
time. time.
.RE
.PP .PP
.B The The
.I max-lease-time .I max-lease-time
.B statement statement
.RS 0.25i
.PP .PP
\fBmax-lease-time\fR \fItime\fR\fB;\fR .B max-lease-time \fItime\fR\fB;\fR
.PP .PP
.I Time .I Time
should be the maximum length in seconds that will be assigned to a should be the maximum length in seconds that will be assigned to a
lease. The only exception to this is that Dynamic BOOTP lease lease. The only exception to this is that Dynamic BOOTP lease
lengths, which are not specified by the client, are not limited by lengths, which are not specified by the client, are not limited by
this maximum. this maximum.
.RE
.PP .PP
.B The The
.I min-lease-time .I min-lease-time
.B statement statement
.RS 0.25i
.PP .PP
\fBmin-lease-time\fR \fItime\fR\fB;\fR .B min-lease-time \fItime\fR\fB;\fR
.PP .PP
.I Time .I Time
should be the minimum length in seconds that will be assigned to a should be the minimum length in seconds that will be assigned to a
lease. lease.
.RE
.PP .PP
.B The The
.I min-secs .I min-secs
.B statement statement
.RS 0.25i
.PP .PP
\fBmin-secs\fR \fIseconds\fR\fB;\fR .B min-secs \fIseconds\fR\fB;\fR
.PP .PP
.I Seconds .I Seconds
should be the minimum number of seconds since a client began trying to should be the minimum number of seconds since a client began trying to
@@ -1426,12 +1442,82 @@ server is down, the client will bind to the secondary server, but otherwise
clients should always bind to the primary. Note that this does not, by clients should always bind to the primary. Note that this does not, by
itself, permit a primary server and a secondary server to share a pool of itself, permit a primary server and a secondary server to share a pool of
dynamically-allocatable addresses. dynamically-allocatable addresses.
.RE
.PP .PP
.B The The \fIddns-update-style\fR parameter
.I hardware .RS 0.25i
.PP
.B ddns-update-style \fIstyle\fB;\fR
.PP
The
.I style
parameter must be one of \fBad-hoc\fR, \fBinterim\fR or \fBnone\fR.
The \fIddns-update-style\fR statement is only meaningful in the outer
scope - it is evaluated once after reading the dhcpd.conf file, rather
than each time a client is assigned an IP address, so there is no way
to use different DDNS update styles for different clients.
.RE
.PP
.B The
.I ddns-updates
.B statement .B statement
.RS 0.25i
.PP .PP
\fBhardware\fR \fIhardware-type\fR \fIhardware-address\fR\fB;\fR \fBddns-updates \fIflag\fR\fB;\fR
.PP
The \fIddns-updates\fR parameter controls whether or not the server will
attempt to do a ddns update when a lease is confirmed. Set this to \fIoff\fR
if the server should not attempt to do updates within a certain scope.
The \fIddns-updates\fR parameter is on by default. To disable DDNS
updates in all scopes, it is preferable to use the
\fIddns-update-style\fR statement, setting the style to \fInone\fR.
.RE
.PP
The \fIddns-domainname\fR statement
.RS 0.25i
.PP
.B ddns-domainname \fIname\fB;\fR
.PP
The \fIname\fR parameter should be the domain name that will be
appended to the client's hostname to form a fully-qualified
domain-name (FQDN).
.RE
.PP
The \fIddns-rev-domainname\fR statement
.RS 0.25i
.PP
.B ddns-rev-domainname \fIname\fB;\fR
The \fIname\fR parameter should be the domain name that will be
appended to the client's reversed IP address to produce a name for use
in the client's PTR record. By default, this is "in-addr.arpa.", but
the default can be overridden here.
.PP
The reversed IP address to which this domain name is appended is
always the IP address of the client, in dotted quad notation, reversed
- for example, if the IP address assigned to the client is
10.17.92.74, then the reversed IP address is 74.92.17.10. So a
client with that IP address would, by default, be given a PTR record
of 10.17.92.74.in-addr.arpa.
.RE
.PP
The \fIddns-hostname\fR statement
.RS 0.25i
.PP
.B ddns-hostname \fIname\fB;\fR
.PP
The \fIname\fR parameter should be the hostname that will be used in
setting up the client's A and PTR records. If no ddns-hostname is
specified in scope, then the server will derive the hostname
automatically, using an algorithm that varies different for each of the
different update methods.
.RE
.PP
The
.I hardware
statement
.RS 0.25i
.PP
.B hardware \fIhardware-type hardware-address\fB;\fR
.PP .PP
In order for a BOOTP client to be recognized, its network hardware In order for a BOOTP client to be recognized, its network hardware
address must be declared using a \fIhardware\fR clause in the address must be declared using a \fIhardware\fR clause in the
@@ -1451,34 +1537,40 @@ The
should be a set of hexadecimal octets (numbers from 0 through ff) should be a set of hexadecimal octets (numbers from 0 through ff)
seperated by colons. The \fIhardware\fR statement may also be used seperated by colons. The \fIhardware\fR statement may also be used
for DHCP clients. for DHCP clients.
.RE
.PP .PP
.B The The
.I filename .I filename
.B statement statement
.RS 0.25i
.PP .PP
\fBfilename\fR \fB"\fR\fIfilename\fR\fB";\fR .B filename\fR \fB"\fR\fIfilename\fR\fB";\fR
.PP .PP
The \fIfilename\fR statement can be used to specify the name of the The \fIfilename\fR statement can be used to specify the name of the
initial boot file which is to be loaded by a client. The initial boot file which is to be loaded by a client. The
.I filename .I filename
should be a filename recognizable to whatever file transfer protocol should be a filename recognizable to whatever file transfer protocol
the client can be expected to use to load the file. the client can be expected to use to load the file.
.RE
.PP .PP
.B The The
.I server-name .I server-name
.B statement statement
.RS 0.25i
.PP .PP
\fBserver-name\fR \fB"\fR\fIname\fR\fB";\fR .B server-name "\fIname\fB";\fR
.PP .PP
The \fIserver-name\fR statement can be used to inform the client of The \fIserver-name\fR statement can be used to inform the client of
the name of the server from which it is booting. \fIName\fR should the name of the server from which it is booting. \fIName\fR should
be the name that will be provided to the client. be the name that will be provided to the client.
.RE
.PP .PP
.B The The
.I next-server .I next-server
.B statement statement
.RS 0.25i
.PP .PP
\fBnext-server\fR \fIserver-name\fR\fB;\fR .B next-server\fR \fIserver-name\fR\fB;\fR
.PP .PP
The \fInext-server\fR statement is used to specify the host address of The \fInext-server\fR statement is used to specify the host address of
the server from which the initial boot file (specified in the the server from which the initial boot file (specified in the
@@ -1486,12 +1578,14 @@ the server from which the initial boot file (specified in the
be a numeric IP address or a domain name. If no \fInext-server\fR be a numeric IP address or a domain name. If no \fInext-server\fR
parameter applies to a given client, the DHCP server's IP address is parameter applies to a given client, the DHCP server's IP address is
used. used.
.RE
.PP .PP
.B The The
.I fixed-address .I fixed-address
.B statement statement
.RS 0.25i
.PP .PP
\fBfixed-address\fR \fIaddress\fR [\fB,\fR \fIaddress\fR ... ]\fB;\fR .B fixed-address address\fR [\fB,\fR \fIaddress\fR ... ]\fB;\fR
.PP .PP
The \fIfixed-address\fR statement is used to assign one or more fixed The \fIfixed-address\fR statement is used to assign one or more fixed
IP addresses to a client. It should only appear in a \fIhost\fR IP addresses to a client. It should only appear in a \fIhost\fR
@@ -1503,12 +1597,14 @@ is booting, that client will not match the \fIhost\fR declaration
containing that \fIfixed-address\fR statement. Each \fIaddress\fR containing that \fIfixed-address\fR statement. Each \fIaddress\fR
should be either an IP address or a domain name which resolves to one should be either an IP address or a domain name which resolves to one
or more IP addresses. or more IP addresses.
.RE
.PP .PP
.B The The
.I dynamic-bootp-lease-cutoff .I dynamic-bootp-lease-cutoff
.B statement statement
.RS 0.25i
.PP .PP
\fBdynamic-bootp-lease-cutoff\fR \fIdate\fR\fB;\fR .B dynamic-bootp-lease-cutoff \fIdate\fB;\fR
.PP .PP
The \fIdynamic-bootp-lease-cutoff\fR statement sets the ending time The \fIdynamic-bootp-lease-cutoff\fR statement sets the ending time
for all leases assigned dynamically to BOOTP clients. Because BOOTP for all leases assigned dynamically to BOOTP clients. Because BOOTP
@@ -1532,12 +1628,14 @@ century. MM is the month expressed as a number from 1 to 12. DD is
the day of the month, counting from 1. HH is the hour, from zero to the day of the month, counting from 1. HH is the hour, from zero to
23. MM is the minute and SS is the second. The time is always in 23. MM is the minute and SS is the second. The time is always in
Coordinated Universal Time (UTC), not local time. Coordinated Universal Time (UTC), not local time.
.RE
.PP .PP
.B The The
.I dynamic-bootp-lease-length .I dynamic-bootp-lease-length
.B statement statement
.RS 0.25i
.PP .PP
\fBdynamic-bootp-lease-length\fR \fIlength\fR\fB;\fR .B dynamic-bootp-lease-length\fR \fIlength\fR\fB;\fR
.PP .PP
The \fIdynamic-bootp-lease-length\fR statement is used to set the The \fIdynamic-bootp-lease-length\fR statement is used to set the
length of leases dynamically assigned to BOOTP clients. At some length of leases dynamically assigned to BOOTP clients. At some
@@ -1549,12 +1647,14 @@ timeout period, the lease duration is reset to \fIlength\fR, so a
BOOTP client that boots frequently enough will never lose its lease. BOOTP client that boots frequently enough will never lose its lease.
Needless to say, this parameter should be adjusted with extreme Needless to say, this parameter should be adjusted with extreme
caution. caution.
.RE
.PP .PP
.B The The
.I get-lease-hostnames .I get-lease-hostnames
.B statement statement
.RS 0.25i
.PP .PP
\fBget-lease-hostnames\fR \fIflag\fR\fB;\fR .B get-lease-hostnames\fR \fIflag\fR\fB;\fR
.PP .PP
The \fIget-lease-hostnames\fR statement is used to tell dhcpd whether The \fIget-lease-hostnames\fR statement is used to tell dhcpd whether
or not to look up the domain name corresponding to the IP address of or not to look up the domain name corresponding to the IP address of
@@ -1562,12 +1662,14 @@ each address in the lease pool and use that address for the DHCP
\fIhostname\fR option. If \fIflag\fR is true, then this lookup is \fIhostname\fR option. If \fIflag\fR is true, then this lookup is
done for all addresses in the current scope. By default, or if done for all addresses in the current scope. By default, or if
\fIflag\fR is false, no lookups are done. \fIflag\fR is false, no lookups are done.
.RE
.PP .PP
.B The The
.I use-host-decl-names .I use-host-decl-names
.B statement statement
.RS 0.25i
.PP .PP
\fBuse-host-decl-names\fR \fIflag\fR\fB;\fR .B use-host-decl-names \fIflag\fB;\fR
.PP .PP
If the \fIuse-host-decl-names\fR parameter is true in a given scope, If the \fIuse-host-decl-names\fR parameter is true in a given scope,
then for every host declaration within that scope, the name provided then for every host declaration within that scope, the name provided
@@ -1596,13 +1698,23 @@ is equivalent to
An \fIoption host-name\fR statement within a host declaration will An \fIoption host-name\fR statement within a host declaration will
override the use of the name in the host declaration. override the use of the name in the host declaration.
.PP .PP
.B The It should be noted here that most DHCP clients completely ignore the
host-name option sent by the DHCP server, and there is no way to
configure them not to do this. So you generally have a choice of
either not having any hostname to client IP address mapping that the
client will recognize, or doing dynamic DNS updates. It is beyond
the scope of this document to describe how to make this
determination.
.RE
.PP
The
.I authoritative .I authoritative
.B statement statement
.RS 0.25i
.PP .PP
\fBauthoritative;\fR .B authoritative;
.PP .PP
\fBnot authoritative;\fR .B not authoritative;
.PP .PP
The DHCP server will normally assume that the configuration The DHCP server will normally assume that the configuration
information about a given network segment is not known to be correct information about a given network segment is not known to be correct
@@ -1633,12 +1745,14 @@ that the server is authoritative for some subnets within a shared
network, but not authoritative for others, nor is it meaningful to network, but not authoritative for others, nor is it meaningful to
specify that the server is authoritative for some host declarations specify that the server is authoritative for some host declarations
and not others. and not others.
.RE
.PP .PP
.B The The
.I always-reply-rfc1048 .I always-reply-rfc1048
.B statement statement
.RS 0.25i
.PP .PP
\fBalways-reply-rfc1048\fR \fIflag\fR\fB;\fR .B always-reply-rfc1048 \fIflag\fR\fB;\fR
.PP .PP
Some BOOTP clients expect RFC1048-style responses, but do not follow Some BOOTP clients expect RFC1048-style responses, but do not follow
RFC1048 when sending their requests. You can tell that a client is RFC1048 when sending their requests. You can tell that a client is
@@ -1652,12 +1766,14 @@ option in that client's host declaration, and the DHCP server will
respond with an RFC-1048-style vendor options field. This flag can respond with an RFC-1048-style vendor options field. This flag can
be set in any scope, and will affect all clients covered by that be set in any scope, and will affect all clients covered by that
scope. scope.
.RE
.PP .PP
.B The The
.I always-broadcast .I always-broadcast
.B statement statement
.RS 0.25i
.PP .PP
\fBalways-broadcast\fR \fIflag\fR\fB;\fR .B always-broadcast \fIflag\fR\fB;\fR
.PP .PP
The DHCP and BOOTP protocols both require DHCP and BOOTP clients to The DHCP and BOOTP protocols both require DHCP and BOOTP clients to
set the broadcast bit in the flags field of the BOOTP message header. set the broadcast bit in the flags field of the BOOTP message header.
@@ -1669,12 +1785,14 @@ excess broadcast traffic on your network, we recommend that you
restrict the use of this option to as few clients as possible. For restrict the use of this option to as few clients as possible. For
example, the Microsoft DHCP client is known not to have this problem, example, the Microsoft DHCP client is known not to have this problem,
as are the OpenTransport and ISC DHCP clients. as are the OpenTransport and ISC DHCP clients.
.RE
.PP .PP
.B The The
.I one-lease-per-client .I one-lease-per-client
.B statement statement
.RS 0.25i
.PP .PP
\fBone-lease-per-client\fR \fIflag\fR\fB;\fR .B one-lease-per-client \fIflag\fR\fB;\fR
.PP .PP
If this flag is enabled, whenever a client sends a DHCPREQUEST for a If this flag is enabled, whenever a client sends a DHCPREQUEST for a
particular lease, the server will automatically free any other leases particular lease, the server will automatically free any other leases
@@ -1685,25 +1803,30 @@ DHCPREQUEST - i.e., the client has only a single network interface
it does not remember leases it's holding on networks to which it is it does not remember leases it's holding on networks to which it is
not currently attached. Neither of these assumptions are guaranteed not currently attached. Neither of these assumptions are guaranteed
or provable, so we urge caution in the use of this statement. or provable, so we urge caution in the use of this statement.
.RE
.PP .PP
.B The The
.I use-lease-addr-for-default-route .I use-lease-addr-for-default-route
.B statement statement
.RS 0.25i
.PP .PP
\fBuse-lease-addr-for-default-route\fR \fIflag\fR\fB;\fR .B use-lease-addr-for-default-route \fIflag\fR\fB;\fR
.PP .PP
If the \fIuse-lease-addr-for-default-route\fR parameter is true in a If the \fIuse-lease-addr-for-default-route\fR parameter is true in a
given scope, then instead of sending the value specified in the given scope, then instead of sending the value specified in the
routers option (or sending no value at all), the IP address of the routers option (or sending no value at all), the IP address of the
lease being assigned is sent to the client. This supposedly causes lease being assigned is sent to the client. This supposedly causes
Win95 machines to ARP for all IP addresses, which can be helpful if Win95 machines to ARP for all IP addresses, which can be helpful if
your router is configured for proxy ARP. your router is configured for proxy ARP. The use of this feature is
not recommended, because it won't work for many DHCP clients.
.RE
.PP .PP
.B The The
.I server-identifier .I server-identifier
.B statement statement
.RS 0.25i
.PP .PP
\fBserver-identifier \fIhostname\fR\fB;\fR .B server-identifier \fIhostname\fR\fB;\fR
.PP .PP
The server-identifier statement can be used to define the value that The server-identifier statement can be used to define the value that
is sent in the DHCP Server Identifier option for a given scope. The is sent in the DHCP Server Identifier option for a given scope. The
@@ -1726,17 +1849,7 @@ that the clients use this IP address when contacting the server.
.PP .PP
Supplying a value for the dhcp-server-identifier option is equivalent Supplying a value for the dhcp-server-identifier option is equivalent
to using the server-identifier statement. to using the server-identifier statement.
.PP .RE
.B The
.I ddns-updates
.B statement
.PP
\fBddns-updates \fIflag\fR\fB;\fR
.PP
The \fIddns-updates\fR parameter controls whether or not the server will
attempt to do a ddns update when a lease is confirmed. Set this to \fIoff\fR
if the server should not attempt to do updates within a certain scope.
The \fIddns-updates\fR parameter is on by default.
.SH SETTING PARAMETER VALUES USING EXPRESSIONS .SH SETTING PARAMETER VALUES USING EXPRESSIONS
Sometimes it's helpful to be able to set the value of a DHCP server Sometimes it's helpful to be able to set the value of a DHCP server
parameter based on some value that the client has sent. To do this, parameter based on some value that the client has sent. To do this,