At our site we were using vanilla Red Hat 6.0 on our DHCP servers. No problem at all. We recently upgraded the hardware and upgraded to RH6.2, and suddenly all Win95 clients can't obtain IP addresses anymore. I read the documentation in /usr/doc/dhcp*/README about Linux broadcasts and as it turns out, this is indeed the problem: Red Hat 6.0 sends the DHCPOFFER to the broadcast MAC address (ff:ff:ff:ff:ff:ff) and the broadcast IP address (255.255.255.255), while Red Hat 6.2 sends the DHCPOFFER to the client MAC address and client IP address (but the client doesn't have an IP address yet...!) This is all confirmed by a network trace which I'd rather not include here (pretty big), but I can mail it to someone on request. I have tried setting the following routes, apart and simultaneously, before and after starting the dhcpd daemon, but no luck: route add -host 255.255.255.255 dev eth0 route add -net 255.255.255.0 netmask 255.255.255.0 dev eth0 Windows NT workstation does not give any problems so far.
Created attachment 802 [details] Saved trace from ethereal
After more testing, it turns out that the offending Win95 PC's are all on Token Ring, while the Red Hat servers are on Ethernet. If I move an offending Win95 PC to Ethernet, everything works fine (without any configuration change or software change.) The problem therefore is not in Red Hat Linux, but in Windows or in the Ethernet-to-Token Ring bridge. Careful reading of the DHCP RFC's confirms that the Red Hat 6.2 behaviour of sending the DHCPOFFER to the clients MAC address and proposed clients IP address is correct. I probably need to upload this bug to bugzilla.microsoft.com... :-(