Internet Software Consortium Dynamic Host Configuration Protocol Server Beta Release 5 Patchlevel 15 March 29, 1997 Release Notes This patchlevel is on the Internet Software Consortium DHCP Server Release 1.0 track. The previous version was Beta Release 5, Patchlevel 14. This patchlevel is strictly a bug-fix patchlevel. The only new feature is Ultrix Packetfilter support, which is sufficiently far from the DHCP protocol engine that its inclusion was felt to be very low-risk. The following bug fixes have been made in this release: - When the server saw a DHCPREQUEST for a client that it knew had a lease on a different network, it would release that lease. This behaviour is incorrect according to the protocol - there is nothing in the protocol that says that a client can't simultaneously hold a lease on two addresses on two different networks. - On little-endian machines (e.g., intel machines and DEC machines), if a client requested that responses to it be broadcast rather than unicast, this request would not be honored because of a byte-swapping error. - The server would print a banner on startup and then go into a background (daemon) mode. If there was a parse error in the dhcpd.conf file, this was not detected until the server had gone into the background, and thus there was no immediate notification. This caused service failures for some users which were difficult to diagnose. Dhcpd now continues to log messages to the console until after it has successfully parsed the config file and lease file. Also, if dhcpd runs into a problem which causes it to exit, it now logs the message ``exited'' at CRITICAL priority, which should show up on the system console. - On Linux, spurious Host Unreachable and Connection Refused errors could delay or foil the DHCP protocol by preventing the transmission of some packets. This is because of a Linux kernel bug whereby bogus ICMP errors can be communicated to the user program. - DHCPNAK behaviour wasn't correct. In some cases, the server would not NAK DHCPREQUEST messages if they were on the wrong network. This has now been fixed. - DHCPACK behaviour was incorrect. If a client sent a DHCPREQUEST for an address that the server was not willing to provide, the server could respond with a DHCPACK for a different address, when it should have ignored the DHCPREQUEST. - DHCPDECLINE processing wasn't being done correctly, with the result that DHCPDECLINEs were effectively being ignored. DHCPDECLINEs are now processed correctly - leases which have been DECLINEed are abandoned and never again offered to clients, at lease until the administrator intervenes. Warning: this bug fix does open up the DHCP server to a denial of service attack that was formerly not possible - a client can successively request and DECLINE every lease in the server's database. - The lease file was being rewritten twice whenever it was time to rewrite it. This no longer happens. - BOOTP clients for which there was a host entry with no fixed-address would not be allowed to boot if the dynamic-bootp flag and the boot-unknown-clients flags were set. - If an address range specified within a subnet declaration was on the wrong network, dhcpd would silently mask off the erroneous network number and mask in the network number from the subnet declaration, resulting in incorrect and potentially harmful behaviour. Dhcpd now flags this as an error. - The vendor-encapsulated-options option was specified as a text string, which was incorrect. It is now specified as an arbitrary string of hexadecimal values, so that a user may mock up vendor tags. This behaviour will eventually be superseded by correct vendor option support. - On Ultrix, the executable was not being installed in the correct directory. - Got rid of change warnings in the configure script - these warnings were instituted in August of 1996, and probably anybody who would be affected by them is already aware of them.