ISC DHCP 4.3.0 is now available
sar at isc.org
Tue Feb 4 01:10:47 UTC 2014
ISC DHCP 4.3.0 is now available for download.
This is the release of ISC DHCP 4.3.0, a feature release which
contains many new features, as well as a number of bug fixes. The
theme for this release is "IPv6 Uplift" in which we extend many of
the features you may be using in DHCPv4 to be available in DHCPv6.
Many of them, such as class support for v6, follow the same style
as for use in v4 and should be familiar to current users.
During the configuration step you may see the following messages:
./configure: break: cannot break
./configure: -c: not found
These should not affect the DHCP code.
In order to use libraries from BIND, the ISC DHCP 4.3 distribution
contains an entire copy of the BIND source tree. ISC is aware of
an issue with the included version of BIND that may affect customers
using mixed-case zone data if they have clients that do not conform
to standard DNS query practices. However, the functions used by the
DHCP server are not affected by these potential issues. Some customers
may choose to build BIND from the source included with DHCP for use as
a nameserver. If you intend to do so, please review
more info on the case compression issue.
A list of the changes in this release has been appended to the end
of this message. For a complete list of changes from any previous
release, please consult the RELNOTES file within the source distribution.
They can also be found at:
We plan to add some knowledge base articles about using some of
the new features in the near future. These can be found starting from:
You can also consult the webinar we presented recently:
For more webinars please see:
This release, and its OpenPGP-signatures are available now from:
ISC's Release Signing Key can be obtained at:
Changes since 4.2.0 (new features)
- If a client renews before 'dhcp-cache-threshold' percent of its lease
has elapsed (default 25%), the server will reuse the allocated lease
(provide a lease within the currently allocated lease-time) rather
than extend or renew the lease. This absolves the server of needing
to perform an fsync() operation on the lease database before reply,
which improves performance. [ISC-Bugs #22228]
Updated this patch to support asynchronous DDNS. If the server is
attempting to do DDNS on a lease it should be udpated and written to
disk even if that wouldn't be necessary due to the thresholding.
- The 'no available billing' log line now also logs the name of the last
matching billing class tried before failing to provide a billing.
- A problem with missing get_hw_addr function when --enable-use-sockets
was used is now solved on GNU/Linux, BSD and GNU/Hurd systems. Note
that use-sockets feature was not tested on those systems. Client and
server code no longer use MAX_PATH constant that is not defined on
GNU/Hurd systems. [ISC-Bugs #25979]
- Add a perl script in the contrib directory, dhcp-lease-list.pl, which
can parse v4 lease files and output the lease information in a more
human friendly manner. This was written by Christian Hammers with
some updates by vom and ISC. This is contributed code and is not
supported by ISC; however it may be useful to some users.
- Add support in v6 for on-commit, on-expire and on-release.
- Add support for using classes with v6.
- Update the DDNS code to current standards and allow for sharing
of DDNS entries between v4 and v6 clients. The new code is used
if the ddns-update-style is set to "standard", the older code is
still available if ddns-update-style is set to "interim". The
oldest DDNS code "ad-hoc" has been removed. Thanks to Thomas Pegeot
who submitted a patch for this issue. This patch is based on
that work with some modifications.
- Add a configuration option to the server to suppress using fsync().
Enabling this option will mean that fsync() is never called. This
may provide better performance but there is also a risk that a lease
will not be properly written to the disk after it has been issued
to a client and before the server stops. Using this option is
- Add some logging statements to indicate when the server is ready
to serve. One statement is emitted after the server has finished
reading its files and is about to enter the dispatch loop.
This is "Server starting service.".
The second is emitted when a server determines that both it and
its failover peer are in the normal state.
This is "failover peer <name>: Both servers normal."
- Add support for accessing options from v6 relays. The v6relay
statement allows the administrator to choose which relay to
use when searching for an option, see the dhcp-options man page
for a description. The host-identifier option has also been
updated to support the use of relay options, see the dhcpd.conf
man page for a description.
- When doing DDNS if there isn't an appropriate zone statement attempt
to find a reasonable nameserver via a DNS resolver. This restores
some functionality that was lost in the transition to asynchronous
DDNS. Due to the lack of security and increase in fragility of the
system when using this feature we strongly recommend the use of
appropriate zone statements rather than using this functionality.
- Add support for specifying the address from which to send
DDNS updates on the DHCP server. There are two new options
"ddns-local-address4" and "ddns-local-address6" that each take
one instance of their respective address types.
- Add ignore-client-uids option in the server. This option causes
the server to not record a client's uid in its lease. This
violates the specification but may also be useful when a client
can dual boot using different client ids but the same mac address.
Thank you to Brian De Wolf at Cal Poly Pomona for the patch.
- Extend the DHCPINFORM processing to honor the subnet selection option
and take host declarations into account.
Thanks to Christof Chen for testing and submitting the patch.
- Extend the hardware expression to look into the lease structure
for a hardware address if there is no packet. This allows the
server to find the hardware address during on-expiry processing.
- Add definitions for some options that have been specified by the IETF.
Changes since 4.3.0rc1
Changes since 4.3.0b1
- Tidy up receive packet processing.
Thanks to Brad Plank of GTA for reporting the issue and suggesting
a possible patch.
Changes since 4.3.0a1
- Modify the message displayed when a process hits a fatal error.
The new message is much shorter and simply points to the README
and our website for directions on bug submissions.
- Handle an absent resolv.conf file better.
Changes since 4.2.5
- Address static analysis warnings.
[ISC-Bugs #33510] [ISC-Bugs #33511]
- Silence benign static analysis warnings.
- Add check for 64-bit package for atf.
- Use newer auto* tool packages and turn on RFC_3542 support on Mac OS.
- Remove a variable when it isn't being used due to #ifdefs to avoid
a compiler warning on Solaris using GCC.
- Add a check for too much whitespace in a config or lease file.
Thanks to Paolo Pellegrino for finding the issue and a suggestion
for the patch.
- Fix several problems with using OMAPI to manipulate class and subclass
- Added a sleep call after killing the old client to allow time
for the sockets to be cleaned. This should allow the -r option
to work more consistently.
- Missing files for ISC DHCP Developer's Guide are now included in
the release tarballs. To generate this documentation, please use
make devel command in doc directory. [ISC-Bugs #32767]
- Update client script for use with openwrt.
- Fix the socket handling for DHCPv6 clients to allow multiple instances
of a client on a single machine to work properly. Previously only
one client would receive the packets. Thanks to Jiri Popelka at Red Hat
for the bug report and a potential patch.
- Added support for gentle shutdown after signal is received.
[ISC-Bugs #32692] [ISC-Bugs 34945]
- Enhance the DHCPv6 server logging to include the addresses that are assigned
to the clients.
- Fix an operation in the DDNS code to be a bitwise instead of logical or.
More information about the dhcp-announce