The DHCP server shouldn't care what interface the request came in on, rather it looks at the source network of the request.
I'm no expert on DHCP, but I continued this thread since no one around here was able to help me solve this problem earlier. Hence, having found a solution I'm posting it.
Having said the "not an expert" bit, how the heck is a computer who does not know what network it's on going to provide a source network for the DHCP server? It wakes up, yells out a broadcast request for a DHCP server, and the server has to answer that. The *only* way I see to do that is via the network interface on which the request arrived at the router.
So you server could support many different ranges, provided there was suitable separation (i.e. a router) between the subnets and the server.
But that's precisely the point! We were seeking a way for *one* machine to act as a router/firewall/gateway/dhcpd for four subnets that are directly connected to it. No other routers exist in this scenario. Of *course* if another router existed, it'd be a piece of cake. But the question was: if this is the only router providing Internet access for four separate networks who are currently not connected to anything and don't have routers, how do you manage to assign them separate subnets via DHCP?
Only two solutions appear to exist and be functional: buying $75 Netgear blue boxes to do DHCP for the subnets and masquerading so that all traffic to my server comes from a single IP address, and setting up separate interfaces on my router box. The "blue box" route was discarded due to the expense (why spend $300 if not necessary), the additional points of failure (despite being highly reliable), the additional configuration and maintenance required, and the slightly lower functionality (if one user on those subnets were abusing bandwidth, it'd be hell to find them).
Having chosen to do it all on one box, the challenge appeared to be for DHCPd to issue different addresses based on the interface on which the request arrived. The documentation appeared to offer no easy way to do this, and I interpreted that to mean that it would be a difficult challenge. Turns out, it's automatic!
1. You *should* configure your dhcpd.conf for every subnet on which your server has an interface even if the DHCP server does not assign addresses (i.e. the subnet block does not include a range statement).
2. The server will then automatically assign an address in the correct subnet for every incoming request, assuming that it's been told to assign addresses on that subnet via a range statement. Nothing more to be done.
Too simple. <grin>
Cheers,
-- Rodolfo J. Paiz rpaiz@xxxxxxxxxxxxxx http://www.simpaticus.com