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
I probably need to upload this bug to bugzilla.microsoft.com... :-(