[installer 1370] ISC dhcp-4.0.0

ISC dhcp-4.0.0 出ています。

☆ ISC dhcp-4.0.0

Internet Systems Consortium DHCP Distribution
Version 4.0.0

December 14, 2007

Release Notes


The DHCP server in version 4.0.x of the ISC DHCP Distribution supports
DHCPv6 in addition to DHCP for IPv4.

Several new options have been added to the dhcpd executable, which are
documented in the man page. Several changes have been made to the
configuration file as well, which are also documented in the man

There are a number of DHCPv6 limitations and features missing in this
release, which will be addressed shortly:

- Only Solaris, Linux, FreeBSD, NetBSD, and OpenBSD are supported.

- The Relay Agent (dhcrelay) only supports DHCPv4, not DHCPv6.

- Only a single address is supported per IA.

- IA_TA addresses are not supported.

- IA_PD prefixes are not supported.

- DHCPv6 includes human-readable text in status code messages. These
should be configurable, and probably localized via gettext() or the

- The "host-identifier" option is limited to a simple token.

- Dynamically allocated leases do not respond to Confirm messages.

- The client and server can only operate DHCPv4 or DHCPv6 at a time,
not both. To use both protocols simultaneously, two instances of the
relevant daemon are required, one with the '-6' command line option.

For information on how to install, configure and run this software,
as well as how to find documentation and report bugs, please consult
the README file.

ISC DHCP now uses standard GNU configure for installation. Please
review the output of "./configure --help" to see what options are

The system has only been tested on Linux, FreeBSD, and Solaris, and
may not work on other platforms. Please report any problems and
suggested fixes to <dhcp-users@xxxxx>.

Changes since 4.0.0rc1

- None

Changes since 4.0.0b3

- The reverse dns name for PTR updates on IPv6 addresses has been fixed to
use ip6.arpa. rather than default to in-addr.arpa and require user

- dhc6_lease_destroy() and dhc6_ia_destroy() now set lease and IA pointers
to NULL after freeing, to prevent subsequent accesses to freed memory.

- The DHCPv6 server would not send the preference option unless the
client requested it, via the ORO. This has been fixed, so the DHCPv6
server will always send the preference value if it is configured.

- When addresses were passed as hints to the server in an IA, they were
incorrectly handled, sometimes being treated as an error. Now the
server will treat these as hints and ignore them if it cannot supply
a requested address.

- If the client had multiple addresses, and one expired (was not renewed
by the server), the client would continue to attempt to renew the same
old address over and over. Now, the client will omit any expired
addresses from future Confirm, Renew, or Rebind messages.

- dhclient -6 will now select renew/rebind timers based upon the longest
address expiration time rather than the shortest expiration time, in
order to avoid cascading renewals in the event a server elects not to
extend one of multiple IAADDR leases.

- The server now limits clients that request multiple addresses to one
address per IA by default, which can be adjusted through the
"limit-addrs-per-ia" configuration option.

- The DHCPv6 client now issues fresh transaction IDs on Renew and Rebind
message exchanges, rather than using the most recent ID.

- The DHCPv6 server now replies to Information-Request messages.

- A bug was fixed in the dhclient-script for BSDs to correctly carry error
codes through some conditions.

- The parsing of some options in the dhclient lease file, in particular
the success DHCPv6 status-code, was fixed.

- A bug was fixed that caused the DHCPv6 ORO option to be corrupted with
seemingly random values.

- A reference overleak in DHCPv6 shared network processing was repaired.

- ./configure now autodetects local database locations rather than trying
to put dhcpd.leases and dhclient.leases in /usr/local/var/db, which no
one ever has.

- Regression fix for bug where server advertised a IPv6 address in
response to a SOLICIT but would not return the address in response

- A bug was fixed where the DHCPv6 server puts the NoAddrsAvail status
code in the IA_NA was fixed. The status code now appears in the root

Changes since 4.0.0b2

- Clarified error message when lease limit exceeded

- Relative time may now be used as a qualifier for 'allow' and 'deny' access
control lists. These directives may be used to assist in re-addressing
address pools without having to constantly reconfigure the server. Please
see 'man dhcpd.conf' for more information on allow/deny 'after time' syntax.
Thanks to a patch from Christof Chen.

- The server will now include multiple IA_NA's and multiple IAADDRs within
them, if advertised by the client. It still only seeks to allocate one
new address.

Changes since 4.0.0b1

- Use different paths for PID and lease files when running in DHCPv4
or DHCPv6 mode, so that servers for both protcols can be run
simultaneously on a single interface.

- Fixed a buffer overflow error which could have allowed a denial
of service under unusual server configurations

- Eliminated a spurious error message from the client

- A number of bugs with the internal handling of lease state on the
server have been fixed. Some of these could cause server crashes.

- The peer_wants_leases() changes pulled up from 3.1.0 were corrected,
'never used' leases will no longer consistently shift between servers
on every pool rebalance run.

- sendmsg()/recvmsg() control buffers are now declared in such a way to
ensure they are correctly aligned on all (esp. 64-bit) architectures.

- The client leasing subsystem was streamlined and corrected to account
more closely for changes in client link attachment selection.

Changes since 4.0.0a3

- The DHCP server no longer requires a "ddns-update-style" statement,
and now defaults to "none", which means DNS updates are disabled.

- Log messages when failover peer names mismatch have been improved to
point out the problem.

- Bug where server advertised a IPv6 address in response to a SOLICIT
but would not return the address in response to a REQUEST. Thanks to
Dennis Kou for finding the bug.

- Fixed an error causing the server to lock up on lease expiration,
reported independently by Jothilingam Vasu and Dennis Kou.

- Fixed a ./configure bug where compile tests were failing due to
"-Werror" (unused variable) rather than the actual test failure. Lead
to inconsistent and unworkable auto-configurations.

- Compilation with DLPI and -Werror has been repaired.

- Error in decoding IA_NA option if multiple interfaces are present
fixed by Marcus Goller.

- DHCPv6 server Confirm message processing has been enhanced - it no
longer replies only to clients with host {} records, it now replies
as directed in RFC3315 section 18.2.2 - that is, to all clients
regardless of the existence of bindings.

- A core dump during expired lease cleanup has been repaired.

- DDNS updates state information are now stored in 'binding scopes' that
follow the leases through their lifecycles. This enables DDNS teardowns
on leases that are assigned and expired inbetween a server restart (the
state is recovered from dhcpd.leases). Arbitrary user-specified binding
scopes ('set var = "value";') are not yet supported.

- Additional compilation problems on HP/UX have been repaired.

Changes since 4.0.0a2

- Fix for startup where there are no IPv4 addresses on an interface.
Thanks to Marcus Goller for reporting the bug.

- Fixed file descriptor leak on listen failure. Thanks to Tom Clark.

- Bug in server configuration parser caused server to get stuck on
startup for certain bad pool declarations. Thanks to Guillaume
Knispel for the bug report and fix.

- Code cleaned to remove warnings reported by "gcc -Wall".

- DHCPv6 is now the default. You can disable DHCPv6 support using the
"--disable-dhcpv6" flag when you run the configure script.

- An internal database inconsistency bug was repaired where the server
would segfault if a client attempted to renew a lease that had been
loaded from persistent storage.

- 'request' and 'also request' syntaxes have been added to accommodate
the DHCPv6 client configuration. 'send dhcp6.oro' is no longer

- Bug fixed where configuration file parsing did not work with
zero-length options; this made it impossible to set the
rapid-commit option.

- Bogus messages about host records with IPv4 fixed-addresses being of
non-128-bits in length were removed.

Changes since 4.0.0a1

- Bug in octal parsing fixed. Thanks to Bernd Fuhrmann for the report
and fix.

- Autoconf now supplies proper flags for Solaris DHCPv6 builds.

- Fix for parsing error on some IPv6 addresses.

- Invalid CIDR representation for IPv6 subnets or ranges now checked
for when loading configuration.

- Compilation on HP/UX has been repaired. The changes should generally
apply to any architecture that supplies SIOCGLIFCONF but does not
use 'struct lifconf' structures to pass values.

- Two new operators, ~= and ~~, have been integrated to implement
boolean matches by regular expression (such as may be used in
class matching statements). Thanks to a patch by Alexandr S.
Agranovsky, which underwent slight modification.

- Fix for icmp packets on 64-bit systems (bug introduced in 4.0).

- A bug was fixed in interface discovery wherein an error identifying
a server-configured interface with no IPv4 addresses would SEGV.

- Fixed a bug in which write_lease() might report a failure incorrectly

- Added support for DHCPv6 Release messages

- Added -x option to dhclient, which triggers dhclient processes
to exit gracefully without releasing leases first

- All binaries (client, server, relay) now change directories
to / before going into daemon mode, so as not to hold $CWD open

- Fixed a bug parsing DHCPv6 client-id's in host-identifier statements

- Fixed a bug with the 'ddns-updates' boolean server configuration
parameter, which caused the server to fail.

Changes since 4.0.0-20070413

- Old (expired) leases are now cleaned.

- IPv6 subnets now have support for arbitrary allocation ranges via
a new 'range6' configuration directive.

- An obviated option code hash lookup to find D6O_CLIENTID was removed.

- Corrected some situations where variables might be used without being

- Silenced several other compiler warnings.

- Include the more standard sys/uio.h rather than rely upon other
header files to include it (fixes a BSD 4.2 compile failure).

- Duplicate dhclient-script updates for DHCPv6 to all provided scripts.

- DHCPv4 I/O methods that failed to sense hardware address were corrected.

- DHCPv4 is now the default (as documented) rather than DHCPv6. The default
was set to DHCPv6 to facilitate ease early development, and forgotten.

- Corrected a segmentation violation in DHCPv4 socket processing.

- dhclient will now fork() into the background once it binds to an
IPv6 address, or immediately if the -n flag is supplied.

- -q is now the default behaviour on dhclient, with -d or -v enabling
non-quiet (stderr logging) mode.

- Fix documentation of the domain-search atom (quoted, with commas).

- Document DHCPv6 options presently in the default table.

- Replaced ./configure shellscripting with GNU Autoconf.

Changes since 3.1.0 (NEW FEATURES)

- DHCPv6 Client and Server protocol support. Use '-6' to run the daemons
as v6-only. Use '-4' to run the daemons as v4-only (default. There is
no support currently for both.

- Server support for multiple IA_NA options, containing at most one
IAADDR option.

- Client support for one IA_NA option, containing any number of IAADDR

- Server support for the DHCPv6 Information-request message.

- Inappropriate unicast DHCPv6 messages sent to the server are now
discarded, and this has rearchitected the IO system slightly.

- The DHCPv6 server DUID defaults to type 1, is persistently stored in
the leases database, and can be over-ridden (either completely, or by
specifying type 1 or type 2).

- The server only uses Rapid-Commit if it has been configured with the
Rapid-Commit option and the client requests it.

- DDNS support. We now update AAAA records in the same place we would
update A records, if we have an IPv6 address. We also generate IP6.ARPA
style names for PTR records if we're dealing with an IPv6 address. Both
A and AAAA updates are done using the same 'fqdn.' virtual option space
(although the DHCPv4 FQDN and DHCPv6 FQDN options are formatted
differently, they both use the same code here).

- The Linux dhclient-script attempts to set and remove assigned addresses,
and to configure /etc/resolv.conf from nameserver and domain name
configurations. It can be extended to configure other parameters.

- Initial DHCPv6 lease support.

- The IO system now tracks all local IP addresses, so that the DHCP
applications (particularly the dhcrelay) can discern between what frames
were transmitted to it, and what frames are being carried through it which
it should not intercept.

Changes since 3.1.0 (Maintenance)

- A bug was repaired where MAC Address Affinity for virgin leases always
mapped to the primary. Virgin leases now have an interleaved preference
between primary and secondary.

- A bug was repaired where MAC Address Affinity for clients with no client
identifier was sometimes mishashed to the peer. Load balancing during
runtime and pool rebalancing were opposing.

- An assertion in lease counting relating to reserved leases was repaired.

- The subnet-mask option inclusion now conforms with RFC2132 section 3.3;
it will only appear prior to the routers option if it is present on the
Parameter-Request-List. The subnet-mask option will also only be
included by default (if it is not on the PRL) in response to DISCOVER
or REQUEST messages.

- The FQDN option is only supplied if the client supplied an FQDN option or
if the FQDN option was explicitly requested on the PRL.

- Dynamic BOOTP leases are now load balanced in failover.


投稿者 xml-rpc : 2007年12月25日 12:59
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/67947