Patch Name: PHNE_15196 Patch Description: s700_800 10.[12]0 bootpd(1M)/DHCP cumulative patch Creation Date: 98/08/17 Post Date: 98/08/19 Hardware Platforms - OS Releases: s700: 10.10 10.20 s800: 10.10 10.20 Products: N/A Filesets: InternetSrvcs.INETSVCS-BOOT InternetSrvcs.INET-ENG-A-MAN Automatic Reboot?: No Status: General Superseded Critical: No Path Name: /hp-ux_patches/s700_800/10.X/PHNE_15196 Symptoms: PHNE_15196: /etc/dhcpdb file created with incorrect permissions. Bootpd does not check for parameters. DHCP callback parameters are inconsistent. Bootpd does not create temporary files properly. Bootpd is not killed properly before installing PHNE_12141. Bootpd manpages does not document minimum acceptable values for lease renewal and rebind times. Bootpd manpage does not show lease renewal and rebind times in percentages. PHNE_14472: DHCP server dies unexpectedly PHNE_13648: DHCP server sometimes fails to update the dhcpdb file correctly. DHCP server sometimes gives out duplicate addresses. PHNE_12141: DHCP server sometimes fails to renew an existing lease, especially if client has more than one lease on more than one subnet. DHCP server cannot handle heavy traffic (more than 10 requests per second) due to time spent writing database file /etc/dhcpdb. PHNE_10211: DHCP incorrectly reissues existing leases to new clients DHCP sometimes issues a lease for address 0.0.0.0 bootpd returns incorrect value for bootfile size bootpd dies at debug level 7 PHNE_9139: bootpquery/jetadmin cannot configure a printer. Short leases can get lost if bootpd stays alive a long time (much longer than the lease time). Addresses are not reclaimed properly when the pool group is full. PHNE_7689: If the number of interfaces approaches 10 (or goes over 10), the server will not find some of them. It will then not be able to send boot replies over those unfound interfaces. The auto flag does not work properly with the "to" (time offset) tag. Dynamic bootp clients get a different address for each request, and in the process the /etc/dhcpdb file can get corrupted. (This problem is on 10.10). Defect Description: PHNE_15196: Bad umask when creating /etc/dhcpdb Bootpd does not check for parameters. ER: make DHCP callback parameters consistent Bootpd does not create temporary files properly. Patch PHNE_12141 has errors in postinstall and postremove scripts. Bootpd manpages does not document minimum acceptable values for lease renewal and rebind times. Bootpd manpage does not show lease renewal and rebind times in percentages. PHNE_14472: Server dies on signal 10 PHNE_13648: The database file dhcpdb in the server is not updated when the client id field is used. Because of corrupted lease time entry in the dhcpdb, when bootpd wakes up and reads the dhcpdb, the internal data structure gets corrupted and hence it gives out duplicate ip addresses. PHNE_12141: DHCP server will sometimes calculate an internal table offset incorrectly when a single client has more than one address lease in the table. DHCP server writes the entire database file to /etc/dhcpdb on each transaction. When the number of transactions is large (greater than 10 per second) and the number of clients is large (greater than 2000) and the disk is not the fastest in the world (single-ended SCSI-1) and the clients do not implement the exponential timeout and retry scheme required in RFC1531 (Microsoft Win95) then the clients can time out and give up before the DHCPOFFER gets back to them. PHNE_10211: build_offer.c does not return a proper value when the debug level is 1,2, or 3 PHNE_9139: Jetadmin confirms a printer configuration with bootpd by sending out a bootpquery request. This was broken by changes at transport level in HP-UX 10.20. DHCP clients could have their valid leases disappear before the lease expiration time was over if the DHCP server is very busy and stays alive for a long time. Addresses are not reclaimed properly when a pool group is full, and clients that do not use a client-ID could be offered one of these "recycled" addresses but be rejected because the blank client-ID does not match the (non-blank) client-ID of the previous (now expired) lease holder. PHNE_7689: There was a limit on the number of entries that the bootp server would accept in an ioctl call to discover the interfaces on the system. This ioctl returns info on the interfaces on the system, plus all SLIP connections. If the number of interfaces plus SLIP connections approaches 10, this could cause a problem. The time offset problem was caused because the gettimeofday call did not return the timezone information, so a different call is not used. If the tag "to" is used with a value of "auto", then this patch should be used. The previous patch introduced a problem with the handling of dynamic bootp clients, using a bad hash lookup. If the previous patch (PHNE_7020) was used, this patch should replace it, if dynamic bootp clients are allowed. SR: 5003391193 5003390955 5003401000 5003330167 5003335158 5003338111 5003277400 5000715722 5003318659 Patch Files: /usr/share/man/man1m.Z/bootpd.1m /usr/lbin/bootpd /usr/sbin/dhcptools /usr/lib/libdhcp.1 what(1) Output: /usr/lbin/bootpd: bootpd 2.4 #1.17.112.7: Wed Aug 5 06:30:56 GMT 1998 Copyright (c) 1988 by Carnegie Mellon Copyright (c) 1995-7 by Hewlett-Packard bootpd.c: $Revision: 1.28.112.32 $ $Date: 98/07/29 2 3:53:32 $ build_offer.c: PHNE_15196 $Revision: 1.1.112.37 $ $D ate: 98/08/04 23:18:31 $ readfile.c experimental: $Revision: 1.9.112.18 $ $Da te: 98/06/22 02:57:28 $ /usr/sbin/dhcptools: None /usr/lib/libdhcp.1: None /usr/share/man/man1m.Z/bootpd.1m: None cksum(1) Output: 185788095 167936 /usr/lbin/bootpd 2473878645 65536 /usr/sbin/dhcptools 1120771020 81920 /usr/lib/libdhcp.1 1359574983 42795 /usr/share/man/man1m.Z/bootpd.1m Patch Conflicts: None Patch Dependencies: s700: 10.10: PHNE_13471 s700: 10.20: PHNE_13469 s800: 10.10: PHNE_13470 s800: 10.20: PHNE_13468 Hardware Dependencies: None Other Dependencies: None Supersedes: PHNE_7689 PHNE_9139 PHNE_10211 PHNE_12141 PHNE_13648 PHNE_14472 Equivalent Patches: None Patch Package Size: 410 KBytes Installation Instructions: Please review all instructions and the Hewlett-Packard SupportLine User Guide or your Hewlett-Packard support terms and conditions for precautions, scope of license, restrictions, and, limitation of liability and warranties, before installing this patch. ------------------------------------------------------------ 1. Back up your system before installing a patch. 2. Login as root. 3. Copy the patch to the /tmp directory. 4. Move to the /tmp directory and unshar the patch: cd /tmp sh PHNE_15196 5a. For a standalone system, run swinstall to install the patch: swinstall -x autoreboot=true -x match_target=true \ -s /tmp/PHNE_15196.depot 5b. For a homogeneous NFS Diskless cluster run swcluster on the server to install the patch on the server and the clients: swcluster -i -b This will invoke swcluster in the interactive mode and force all clients to be shut down. WARNING: All cluster clients must be shut down prior to the patch installation. Installing the patch while the clients are booted is unsupported and can lead to serious problems. The swcluster command will invoke an swinstall session in which you must specify: alternate root path - default is /export/shared_root/OS_700 source depot path - /tmp/PHNE_15196.depot To complete the installation, select the patch by choosing "Actions -> Match What Target Has" and then "Actions -> Install" from the Menubar. 5c. For a heterogeneous NFS Diskless cluster: - run swinstall on the server as in step 5a to install the patch on the cluster server. - run swcluster on the server as in step 5b to install the patch on the cluster clients. By default swinstall will archive the original software in /var/adm/sw/patch/PHNE_15196. If you do not wish to retain a copy of the original software, you can create an empty file named /var/adm/sw/patch/PATCH_NOSAVE. Warning: If this file exists when a patch is installed, the patch cannot be deinstalled. Please be careful when using this feature. It is recommended that you move the PHNE_15196.text file to /var/adm/sw/patch for future reference. To put this patch on a magnetic tape and install from the tape drive, use the command: dd if=/tmp/PHNE_15196.depot of=/dev/rmt/0m bs=2k Special Installation Instructions: A new field can now be added to /etc/dhcptab to improve the performance of the DHCP server. Using this new feature will delay the writing of the database by a few seconds, and can be used if clients are timing out after 2 or 4 seconds although the DHCP server does eventually respond. This is very popular with large numbers of Win95 clients. The new tag is: dhcpdb-write-perf=N: where N is an integer between 0 and 600. We recommend setting N=5. This is a system-wide feature, so the top of your /etc/dhcptab might look like this: DHCP_SERVER_SETTINGS:\ dhcpdb-write-perf=10: