DHCPd problem with PXE/Windows clients - multiple leases

Glenn Satchell Glenn.Satchell at uniq.com.au
Tue May 8 15:43:38 UTC 2007


Hi David

This is a topic that crops up every few weeks on this list these days.
I think the simplest workaround is to detect when a dhcp client is in
PXE mode and offer a short lease for that situation only. Set the lease
times in the global scope for the value you want to use outside PXE
mode.

Here's something I posted about a month ago:

Search the list archives for 'PXEClient' - there are many examples
where a class is defined based on the vendor identifier. Inside the
class you can turn off ddns and do many other useful things. eg set
the lease time to be much shorter.

class "pxe-clients" {
  match if substring (option vendor-class-identifier, 0, 9) = "PXEClient";
  ddns-updates off;
  max-lease-time 120;
}

regards,
-glenn

>Subject: DHCPd problem with PXE/Windows clients - multiple leases
>Date: Tue, 8 May 2007 14:40:42 +0100
>From: "David Rickard" <david.rickard at bcuc.ac.uk>
>To: <dhcp-users at isc.org>
>
>Hi,
>
>We've got three DHCP servers on three sites, running the ISC DHCP daemon
>on SuSE Linux Enterprise Server 10. We also have Zen for Desktops 7 (SP1
>Hotfix 3) on all three sites running on Netware 6.5.
>
>My problem is that when the PC boots, it ends up with two leases - one
>for when the PXE runs, and another for when Windows boots! I've attached
>an example of what happens, and the leases from the log files of the
>server, to show what's happening. In a nutshell, it seems to be related
>to the fact that the PXE session doesn't show a UID to the DHCP server,
>but Windows does. As a result, DHCPD treats them as two different hosts,
>and grants two leases. The only way around this right now is
>ridiculously short leases, which results in very chatty workstations and
>servers.
>
>I tried the "deny duplicates;" setting in the dhcpd.conf, but that
>doesn't seem to have worked. We have just over 50% of the DHCP pool
>used, so as a result most PCs work, apart from the last ones on which
>start showing 'No free leases' in the log file.
>
>I also tried setting one-lease-per-client, but that made no difference. 
>
>I have duplicated the live setup in a test environment. The setup is
>thus (if it matters... it could!)
>
>Two servers, 'core' subnet.
>Netware OES Server, TFTP server, PXE server
>SLES10 Server, DHCPD
>
>Client PC, different subnet. Core switch configured with IP helper
>address of the two servers. The DHCP server will only hand out addresses
>to known hosts. 
>
>I have set the IP range to just two addresses. I have two clients, so in
>theory, that should be OK, they should both have addresses, whether they
>are in PXE mode or Windows. One stays running windows, the other
>(actually a virtual PC) gets rebooted. When in windows, it is fine, then
>the PXE fails as there are no free leases. If I free the windows lease,
>the reverse happens.
>
>Can anybody suggest anything to try and alleviate this problem? I've dug
>around on many, many, *many* forums, mailing lists, and everywhere else,
>but to no avail. There's a few threads on the dhcp-users list which
>kinda go nowhere.
>
>Regards,
>
>(NB: These logs are from an older posting I made some time ago on
>novell.support.zenworks.desktop-management.7x.imaging-server.linux, but
>they illustrate the exact same problem.)
>
>====================== LOG FILES ============================
>
>PXE Boot
>========
>
>Oct 27 11:46:08 ernie dhcpd: DHCPDISCOVER from 00:07:e9:f2:d3:13 via
>192.168.200.2
>Oct 27 11:46:09 ernie dhcpd: DHCPOFFER on 192.168.200.130 to
>00:07:e9:f2:d3:13 via 192.168.200.2
>Oct 27 11:46:10 ernie dhcpd: DHCPREQUEST for 192.168.200.130
>(192.149.238.50) from 00:07:e9:f2:d3:13 via 192.168.200.2
>Oct 27 11:46:10 ernie dhcpd: DHCPACK on 192.168.200.130 to
>00:07:e9:f2:d3:13 via 192.168.200.2
>Oct 27 11:46:10 ernie dhcpd: DHCPREQUEST for 192.168.200.130
>(192.149.238.50) from 00:07:e9:f2:d3:13 via 192.168.200.3
>Oct 27 11:46:10 ernie dhcpd: DHCPACK on 192.168.200.130 to
>00:07:e9:f2:d3:13 via 192.168.200.3
>
>lease 192.168.200.130 {
>  starts 5 2006/10/27 10:46:10;
>  ends 5 2006/10/27 10:56:10;
>  binding state active;
>  next binding state free;
>  hardware ethernet 00:07:e9:f2:d3:13;
>}
>lease 192.168.200.130 {
>  starts 5 2006/10/27 10:46:10;
>  ends 5 2006/10/27 10:56:10;
>  binding state active;
>  next binding state free;
>  hardware ethernet 00:07:e9:f2:d3:13;
>}
>
>Windows Boot
>============
>
>Oct 27 11:47:11 ernie dhcpd: DHCPDISCOVER from 00:07:e9:f2:d3:13 via
>192.168.200.2
>Oct 27 11:47:12 ernie dhcpd: DHCPOFFER on 192.168.200.65 to
>00:07:e9:f2:d3:13 (BCUC-6D8215E8EA) via 192.168.200.2
>Oct 27 11:47:12 ernie dhcpd: DHCPREQUEST for 192.168.200.65
>(192.149.238.50) from 00:07:e9:f2:d3:13 (BCUC-6D8215E8EA) via
>192.168.200.2
>Oct 27 11:47:12 ernie dhcpd: DHCPACK on 192.168.200.65 to
>00:07:e9:f2:d3:13 (BCUC-6D8215E8EA) via 192.168.200.2
>Oct 27 11:47:12 ernie dhcpd: DHCPREQUEST for 192.168.200.65
>(192.149.238.50) from 00:07:e9:f2:d3:13 (BCUC-6D8215E8EA) via
>192.168.200.3
>Oct 27 11:47:12 ernie dhcpd: DHCPACK on 192.168.200.65 to
>00:07:e9:f2:d3:13 (BCUC-6D8215E8EA) via 192.168.200.3
>
>lease 192.168.200.65 {
>  starts 5 2006/10/27 10:47:12;
>  ends 5 2006/10/27 10:57:12;
>  binding state active;
>  next binding state free;
>  hardware ethernet 00:07:e9:f2:d3:13;
>  uid "\001\000\007\351\362\323\023";
>  client-hostname "BCUC-6D8215E8EA";
>}
>lease 192.168.200.65 {
>  starts 5 2006/10/27 10:47:12;
>  ends 5 2006/10/27 10:57:12;
>  binding state active;
>  next binding state free;
>  hardware ethernet 00:07:e9:f2:d3:13;
>  uid "\001\000\007\351\362\323\023";
>  client-hostname "BCUC-6D8215E8EA";
>}
>
>--
>
>--
>
>David Rickard
>ICT Security Officer
>david.rickard at bcuc.ac.uk, 01494 522141 Ext: 3531
>Information & Communication Technologies
>Buckinghamshire Chilterns University College
>Queen Alexandra Road, High Wycombe, BUCKS, HP11 2JZ
>
>
>


More information about the dhcp-users mailing list