Can the DHCP server classify dynamic bootp requests?

Brett Hunt skip2planetoid at yahoo.com
Fri Sep 15 23:35:23 UTC 2006


Hopefully someone can enlighten me.

In our environment we have some dynamic-bootp clients
that need to get IP addresses.  We also have others
that we don't want to respond to.  Here is what I've
tried:

class "allowedClient" {
   match if substring(hardware, 1, 3) = 00:e0:4b;
   log(info, "matched hardware 00:e0:4b");
}

class "allowedDynBpClient" {
   match if substring(hardware, 1, 3) = 00:a0:45;
   log(info, "matched hardware 00:a0:45");
}

subnet 192.168.0.0 netmask 255.255.255.0 {
   #authoritative;
   pool {
      log(info, "assigning addr to client");
      allow members of "allowedClient";
      range 192.168.0.1 192.168.0.99;
   }
   pool {
      log(info, "assigning addr to dyn bp client");
      allow members of "allowedDynBpClient";
      range dynamic-bootp 192.168.0.240 192.168.0.245;
   }
}

I rebuilt the DHCP server and ran it in debug mode
with class matching debugging enabled.  When DHCP
requests came through, the class matching output
showed up.  When bootp requests came through, nothing
showed up but a lease was not assigned.  This is
consistent with what happened before enabling
debugging and rebuilding.

I ran a debugger and watched as packets were
dispatched and handled by the server.  During the
processing of DHCP requests, the dhcp function calls
classify_client() on the packet which properly inserts
the class match from the above conf file snippet.  The
bootp request handler does not classify the client
packet and so just ignores the packet - no output from
the server.

Is this behavior by design?

Just as a test, I copied the oc lookup option and
classify_client code from the dhcp packet handler to
the bootp packet handler, and I started getting output
and the client started getting addresses from the
server.

Is there another way to selectively distribute bootp
addresses that the dhcp server can already do without
a patch?  I've tried versions 3.0.1, 3.0.3 and 3.0.4. 
One other thing to note, while 3.0.1 is silent in
debug mode when a BOOTP request comes in, 3.0.3 and
3.0.4 at least say: 

BOOTREQUEST from 00:a0:45:05:24:6e via eth1: BOOTP
from dynamic client and no dynamic leases

Any and all insight is greatly appreciated. 

Thanks,
Skip

__________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 


More information about the dhcp-users mailing list