David Hankins [Tue, 3 Apr 2007 14:57:53 +0000 (14:57 +0000)]
- A bug was fixed where the BOOTP header 'sname' field had a value, the
copy written to persistent storage was actually the contents of the
'file' field. [ISC-Bugs #16784]
David Hankins [Tue, 27 Mar 2007 03:48:06 +0000 (03:48 +0000)]
- In the case where an "L2" DHCP Relay Agent (one that does not set giaddr)
was directly attached to the same broadcast domain as the DHCP server,
the RFC3046 relay agent information option was not being returned to the
relay in the server's replies. This was fixed; the dhcp server no longer
requires the giaddr to reply with relay agent information. Note that
this also improves compatibility with L2 devices that "intercept" DHCP
packets and expect relay agent information even in unicast (renewal)
replies. [ISC-Bugs #16762]
David Hankins [Tue, 7 Nov 2006 23:40:14 +0000 (23:40 +0000)]
- A logic error in omapi interface code was repaired that might result in
incorrectly indicating 'up' state when any flags were set, rather than
specifically the INTERFACE_REQUESTED flag. [ISC-Bugs #16431]
David Hankins [Fri, 27 Oct 2006 22:54:13 +0000 (22:54 +0000)]
- Some default hash table sizes were tweaked, some upwards, some downwards.
3.1.0a1's tables resulted in a reduction in default server memory use.
The new selected values provide more of a zero sum (increasing the size
of tables likely to be populated, decreasing the size of tables unlikely).
- Lease structures appear in three spearate hashes: by IP address, by UID,
and by hardware address. One type of table was used for all three, and
improvements to IP address hashing were applied to all three (so UID and
hardware addresses were treated like 4-byte integers). There are now two
types of tables, and the uid/hw hashes use functions more appropriate
to their needs.
- The max-lease-misbalance percentage no longer causes scheduled rebalance
runs to be skipped: it still governs the schedule, but every scheduled
run will attempt balance.
David Hankins [Wed, 27 Sep 2006 18:27:27 +0000 (18:27 +0000)]
- The servers now try harder to transmit pending binding updates when
entering normal state. [ISC-Bugs #16412]
- UPDREQ/UPDREQALL handling was optimized - it no longer dequeues and
requeues all pending updates. This should reduce the number of spurious
'xid mismatch' log mesasges. [ISC-Bugs #16412]
David Hankins [Mon, 31 Jul 2006 23:17:24 +0000 (23:17 +0000)]
- A new dhcp server option 'adaptive-lease-time-threshold' has been added
which causes the server to substantially reduce lease-times if there are
few (configured percentage) remaining leases. Thanks to a patch submitted
from Christof Chen. [ISC-Bugs #15409]
David Hankins [Mon, 31 Jul 2006 22:19:51 +0000 (22:19 +0000)]
- A new common configuration executable statement, execute(), has been
added. This permits dhcpd or dhclient to execute a named external
program with command line arguments specified from other configuration
language. Thanks to a patch written by Mattias Ronnblom, gotten to us
via Robin Breathe. [ISC-Bugs #13728]
David Hankins [Tue, 25 Jul 2006 17:41:18 +0000 (17:41 +0000)]
- DHCPD is now RFC2131 section 4.1 compliant (broadcast to all-ones ip and
ethernet mac address) on the SCO platform specifically without any strange
ifconfig hacks. Many thanks go to the Kroger Co. for donating the
hardware and funding the development. [V3-0-1-KROGER-WORK-BRANCH] - funded
development.
David Hankins [Thu, 20 Jul 2006 16:04:03 +0000 (16:04 +0000)]
- Host declaration hardware addresses and client identifiers may only be
configured once. dhcpd will now fail to load config files that specify
multiple identifiers (previous versions would silently over-ride the
value with the later configured value). [ISC-Bugs #15533]
David Hankins [Wed, 19 Jul 2006 20:13:57 +0000 (20:13 +0000)]
- 'ignore client-updates;' now has behaviour that is different from
'deny client-updates;'. The client's request is not truly ignored,
rather it is encouraged. Should this value be configured, the server
updates DNS as though client-updates were set to 'deny'. That is, it
enters into DNS whatever it is configured to do already, provided it is
configured to. Then it sends a response to the client that lets the
client believe it is performing client updates (which it will), probably
for a different name. In essence, this lets the client do as it will,
ignoring this aspect of their request. [ISC-Bugs #16185]
David Hankins [Wed, 19 Jul 2006 18:00:36 +0000 (18:00 +0000)]
- In those cases where the DHCP software manufactures an IP header (to
transmit via bpf, lpf, etc), the IP TTL the software selects has been
increased from 16 to 128. This is intended to match Microsoft Windows
DHCP Client behaviour, to increase compatibility. [ISC-Bugs #15583 and
#3226]
David Hankins [Wed, 19 Jul 2006 17:14:55 +0000 (17:14 +0000)]
- A new DDNS related server option, update-conflict-detection, has been
added. If this option is enabled, dhcpd will perform normal DHCID
conflict resolution (the default). If this option is disabled, it will
instead trust the assigned name implicitly (removing any other bindings
on that name). This option has not been made available in dhclient.
[ISC-Bugs #16165]
David Hankins [Wed, 19 Jul 2006 16:44:47 +0000 (16:44 +0000)]
- Attempting to write a new lease file to replace a corrupt (due to
encountering non-retryable errors during writing) lease file should
no longer result in an infinite recursion. [ISC-Bugs #16265]
David Hankins [Mon, 17 Jul 2006 15:33:34 +0000 (15:33 +0000)]
- The log message emitted when the 'leased-address' value was not available
in dhcpd.conf "executable statements" has been updated to be more helpful.
Manpage information for this value has also been updated. [ISC-Bugs #16136]
David Hankins [Mon, 17 Jul 2006 15:21:45 +0000 (15:21 +0000)]
- A few lines of code that were failover-specific were moved within
#if defined() clauses so that compilation without failover could be
made possible. [ISC-Bugs #15987]
David Hankins [Sun, 9 Jul 2006 15:39:48 +0000 (15:39 +0000)]
- If the dhclient were to receive a DHCPNAK while it was in the RENEW
state (and consequently, had an active, 'bound' address and related
configuration options), it would fail to 'tear down' this information
before proceeding into INIT state. dhclient now iterates the dhclient-
script with the 'EXPIRE' action to cause these teardowns prior to entering
INIT state. [ISC-Bugs #16035]
David Hankins [Fri, 16 Jun 2006 19:26:45 +0000 (19:26 +0000)]
- Failover pairs now implement 'MAC Affinity' on leases moving from the
active to free states. Leases that belonged to the failover secondary
are moved to BACKUP state rather than FREE upon exiting EXPIRED state.
If lease rebalancing must move leases, it tries first to move leases
that belong to the peer in need.
- The server no longer sends POOLREQ messages unless the pool is severely
misbalanced in the peer's favor (see 'man dhcpd.conf' for more details).
- Pool rebalance events no longer happen upon successfully allocating a
lease. Instead, they happen on a schedule. See 'man dhcpd.conf' for the
min-balance and max-balance statements for more information.
David Hankins [Thu, 15 Jun 2006 17:52:06 +0000 (17:52 +0000)]
- A bug where leases not in ACTIVE state would get billed to billed classes
(classes with lease limitations) was fixed. Non-active leases OFFERed
to clients are no longer billed (but billing is checked before offering).
[ISC-Bugs #16168]
David Hankins [Tue, 6 Jun 2006 16:35:18 +0000 (16:35 +0000)]
- A new common (server or client) option, 'db-time-format local;', has
been added which prints the local time in /var/db/dhcpd.leases rather
than UTC. Thanks to a patch from Ken Lalonde. [ISC-Bugs #2678]
David Hankins [Thu, 1 Jun 2006 20:23:18 +0000 (20:23 +0000)]
- Varying option space code and length bit widths (8/16/32) are now
supported. This is a milestone in acheiving RFC 3925 "VIVSO" and
DHCPv6 support. [ISC-Bugs #15979]
David Hankins [Tue, 30 May 2006 19:58:14 +0000 (19:58 +0000)]
- The subnet-mask option is now supplied by default, but at lowest
priority. This helps a small minority of clients that provide parameter
request lists, but do not list the subnet-mask option because they were
designed to interoperate with a server that behaves in this manner.
[ISC-Bugs #1196]
- The FQDN option is similarly supplied even if it does not appear on the
parameter request list, but not to the exclusion of options that do
appear at the parameter request list. Up until now it had ultimate
priority over the client's parameter request list. [ISC-Bugs #1196]
David Hankins [Wed, 17 May 2006 20:15:32 +0000 (20:15 +0000)]
- Some time value size fixes in 3.0.4 brought on from FreeBSD /usr/ports were
misapplied to server values rather than client values. The server no longer
advertises 8-byte lease-time options when on 64-bit platforms.
[ISC-Bugs #16036]
David Hankins [Mon, 15 May 2006 15:07:50 +0000 (15:07 +0000)]
- The dhclient 'reject ...;' statement, which rejects leases given by named
server-identifiers, now permits address ranges to be specified in CIDR
notation. [ISC-Bugs #1435]
David Hankins [Thu, 11 May 2006 16:31:29 +0000 (16:31 +0000)]
- lcase() and ucase() configuration expressions have been added which adjust
their arguments from upper to lower and lower to upper cases respectively.
[ISC-Bugs #1597]
David Hankins [Thu, 27 Apr 2006 17:26:42 +0000 (17:26 +0000)]
- Support for 'reserved' (psuedo-static) and BOOTP leases via failover
was introduced. [ISC-Bugs #13672]
- The failover implementation was updated to comply with revision 12 of
the protocol draft. [ISC-Bugs #13672]
David Hankins [Mon, 27 Feb 2006 23:56:13 +0000 (23:56 +0000)]
- The IO system now tracks all local IP addresses, so that the DHCP
applications (particularly the dhcrelay) can discern between what frames
were tranmsitted to it, and what frames are being carried through it which
it should not intercept. [ISC-Bugs #15573]
David Hankins [Fri, 1 Apr 2005 23:41:26 +0000 (23:41 +0000)]
Upon trying to back the www-server documentation down to the
V3-release-branch, I now believe that this was a merge error...the option
is already documented, this duplicates it. Probably confused cvs merging
somehow from the fact that a single word was added...