Linux – Multiple DHCP Server on same subnet and range assignement

dhcpdhcp-serverlinuxpxe-boot

Is it possible to have two DHCP Server on the same subnet for address two range of IP?
Is it possible to configure one of this DHCP server to serve only a certain range of mac address ?

for example wanna to have the main DHCP Server that serve the range 192.168.1.50 –> 100, and another DHCP with also a TFTP and PXE that server range 192.168.1.220 —> 250 that accept request only from a given list of range of mac addres …
Cani do this?

Is better to have only one DHCP Server on subnet and another TFTP/PXE Server, and then address the request from a list of given MAc address to this TFTP/PXE Server?

What's the best solution for assigning a range of IP and eventually a TFTP/PXE based on list of mac address ? Is it possible?

I use Linux and dhcp3-server…

Thanks.

Best Answer

You can do that in isc dhcpd using subclasses and pools. The man page has detailed examples.

   class "allocation-class-1" {
     match pick-first-value (option dhcp-client-identifier, hardware);
   }

   class "allocation-class-2" {
     match pick-first-value (option dhcp-client-identifier, hardware);
     option root-path "samsara:/var/diskless/alphapc";
     filename "/tftpboot/netbsd.alphapc-diskless";
   }

   subclass "allocation-class-1" 1:8:0:2b:4c:39:ad;
   subclass "allocation-class-2" 1:8:0:2b:a9:cc:e3;
   subclass "allocation-class-1" 1:0:0:c4:aa:29:44;

   subnet 10.0.0.0 netmask 255.255.255.0 {
     pool {
       allow members of "allocation-class-1";
       range 10.0.0.11 10.0.0.50;
     }
     pool {
       allow members of "allocation-class-2";
       range 10.0.0.51 10.0.0.100;
     }
   }