ISC DHCP 3.1.0rc1 is now available for download. This is the first release candidate for DHCP 3.1.0, which includes several major new features compared to DHCP 3.0.x, including: - Failover protocol 'MAC Address Affinity' to reduce pool churn. - Support for the 'reserved' and 'bootp' failover flags, which means in lay terms that static allocations can be made to clients in which 'on events' can be supported. - Several other failover optimizations and changes. - Management of class and subclass statements via OMAPI. - Many new configuration statement functions. - Initial formal support for VIVCO/VIVSO options. A list of changes in this release has been appended to this message. For a full list of changes since any historical version, please consult the RELNOTES file in the software distribution, our our website: http://www.isc.org/sw/dhcp/dhcp_dev2.php This release is available at the following URL: ftp://ftp.isc.org/isc/dhcp/dhcp-3.1.0rc1.tar.gz OpenPGP signatures are available at: ftp://ftp.isc.org/isc/dhcp/dhcp-3.1.0rc1.tar.gz.asc ftp://ftp.isc.org/isc/dhcp/dhcp-3.1.0rc1.tar.gz.sha1.asc ftp://ftp.isc.org/isc/dhcp/dhcp-3.1.0rc1.tar.gz.sha256.asc ftp://ftp.isc.org/isc/dhcp/dhcp-3.1.0rc1.tar.gz.sha512.asc ISC's Release Signing Key can be obtained at: http://www.isc.org/about/openpgp/ Changes since 3.1.0b2 - Silenced compiler warnings on NetBSD - Failover rebalance events no longer play ping pong with round errors (moving leases between free and back to backup where there are an odd number of leases). - The 'pool' log line has been split into two messages, one before the rebalance run, and one after. - Any queued BNDACKs are transmitted before transmitting new BNDUPDs. This enforces the correct sequence of events for the remote server processing these messages. - Fixed a bug in which write_lease() might report a failure incorrectly - supersede_lease() now requeues leases in their respective hardware address hash bucket. This mirrors client identifier behaviour. Changes since 3.1.0b1 - Added -x option to dhclient, which triggers dhclient processes to exit gracefully without releasing leases first. - Fixed a bug that caused OMAPI clients to freeze when opening lease objects. - A new server config option "fqdn-reply" specifies whether the server should send out option 81 (FQDN). Defaults to "on". If set to "off", the FQDN option is not sent, even if the client requested it. This is needed because some clients misbehave otherwise. Thanks to Christof Chen at Allianz. - Allow trace output files (-tf option) to be overwritten, rather than crashing dhcpd if the file already exists - A bug was fixed that caused dhcpd to segfault if a pool was declared outside the scope of a subnet in dhcpd.conf. - Some uninitialized values were repaired in dhcpleasequery.c that caused the server to abort. - A new server config option, 'do-reverse-updates', has been added which causes the server to abstain from performing updates on PTR records. Thanks to a patch from Christof Chen at Allianz. - A bug was repaired in subencapsulation support, where spaces separated by empty spaces would not get included. - Corrected one situation where the column index variable might be used without being initialized, in expression-printing. - Silenced several other compiler warnings. - A bug in dhclient was repaired which caused it to send parameter request lists of 55 bytes in length no matter how long the declared PRL was. - 'dhcp.c(3953): non-null pointer' has been repaired. This fixes a flaw wherein the DHCPv4 server may ignore a configured server-identifier. - A flaw in failover startup sequences was repaired that sometimes left the primary DHCP server's pool rebalance schedules unscheduled. - Corrected a flaw that broke encapsulated spaces included due to presence on the parameter request list. Changes since 3.1.0a3 - The execute() statement has been changed from a "numeric expression" to an "executable statement", so that it can now be used with the syntax "execute(cmd, arg, ...)" rather than "eval(execute(cmd, arg, ...))". - Some spelling fixes. Changes since 3.1.0a2 - A bug was fixed where attempting to permit leasequeries results in a fatal internal error, "Unable to find server option 49". - A bug was fixed in dhclient rendering the textual output form of the domain-search option syntax. Changes since 3.1.0a1 - A bug in the FQDN universe that added FQDN codes to the NWIP universe's hash table was repaired. - The servers now try harder to transmit pending binding updates when entering normal state. - UPDREQ/UPDREQALL handling was optimized - it no longer dequeues and requeues all pending updates. This should reduce the number of spurious 'xid mismatch' log messages. - An option definition referencing leak was fixed, which resulted in early termination of dhclient upon the renewal event. - 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. - A segfault bug in recursive encapsulation support has been corrected. Changes since 3.0 (New Features) - A workaround for certain STSN servers that send a mangled domain-name option was introduced for dhclient. The client will now accept corrupted server responses, if they contain a valid DHCP_MESSAGE_TYPE (OFFER, ACK, or NAK). The server will continue to not accept corrupt client packets. - Support for 'reserved' (psuedo-static) and BOOTP leases via failover was introduced. - Support for adding, removing, and managing class and subclass statements via OMAPI. - The failover implementation was updated to comply with revision 12 of the protocol draft. - 'make install' now creates the initial zero-length dhcpd.leases file if one does not already exist on the system. - RFC3942 compliance, site-local option spaces start at 224 now, not 128. - The Load Balance Algorithm was misimplemented. The current implementation matches RFC 3074. - lcase() and ucase() configuration expressions have been added which adjust their arguments from upper to lower and lower to upper cases respectively. Thanks to a patch from Albert Herranz. - The dhclient 'reject ...;' statement, which rejects leases given by named server-identifiers, now permits address ranges to be specified in CIDR notation. Thanks to a patch from David Boyce. - 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. - 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. - Varying option space code and length bit widths (8/16/32) are now supported. This is a milestone in achieving RFC 3925 "VIVSO" and DHCPv6 support. - 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. - Some patches to improve DHCP Server startup speed from Andrew Matheson have been incorporated. - 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. - The DHCP Relay Agent Information Option / Link Selection Sub-Option is now supported. (See RFC3527 for details). - 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. - 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. - '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. - Support for compressed 'domain name list' style DHCP option contents, and in particular the domain search option (#119) was added. - The DHCP LEASEQUERY protocol as defined in RFC4388 is now implemented. LEASEQUERY lets you query the DHCP server for information about a lease, using either an IP address, MAC address, or client identifier. Thanks to a patch from Justin Haddad. - 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. - 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. - 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. - Encapsulated option spaces within encapsulated option spaces is now formally supported. -- Evan Hunt -- evan_hunt@isc.org Internet Systems Consortium, Inc. ----------------------------------------------------------------------- To unsubscribe from this list, visit http://www.isc.org/dhcp-lists.html or send mail to dhcp-announce-request@isc.org with the subject line of 'unsubscribe'. -----------------------------------------------------------------------