I have found at least on our systems, which are primarily RHES v2, 3 and 4, that dhcpd cannot be used to serve multiple subnets unless each subnet is defined on a seperate network card.

The use of ip alias addresses does not work. So for example if I have the following statements in /etc/dhcpd.conf:

subnet 192.168.0.0 netmask 255.255.255.0 {
range 192.168.0.1 192.168.0.4;
}

subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.1 192.168.1.4;

I must also have eth0 with an address in the 192.168.1/24 network as well as eth1 with an address in the 192.168.2/24 network on the system. The use of eth0:1, for example defined in the 192.168.2/24 network does not work, at least with regard to dhcpd.

If these statements exist on a system with a single network interface, dhcpd fails to start and complains about overlapping subnet ranges or spans of multiple subnets.

I cannot find anywhere in the documentation for dhcpd that multiple newtork cards are required for this use.

The messages posted in the messages file for dhcp on a successful startup would seem to imply that the MAC address of the network card is closely associated with the ip address and so the use of ip aliases would make sense since this could be taken as a conflict.

I have read the statement about the all 1's broadcast route, but don't see how this could help particularly when trying to start dhcpd with multiple subnets configured.

This is the dhcp package installed on our systems:
dhcp-3.0pl2-6.14.1

What have I missed ? Any help greatly appreciated.