You may need to adjust your kernel configuration or other aspects of your network to use a DHCP server. In particular, you must enable the Packet Socket and Socket Filtering options in your kernel configuration, as described in Chapter 1, Kernel Network Configuration. (Version 1 of dhcpd doesn't require Socket Filtering, but more recent versions do.)
Some DHCP clients require responses from the DHCP server addressed to 255.255.255.255. Unfortunately for DHCP server operation, Linux defaults to changing such addresses to your local broadcast address (such as 192.168.1.255). If you have problems with some DHCP clients (particularly Windows systems), you may need to correct this by adding an explicit route to your DHCP server computer's routing table. You can do this with the following command:
# route add -host 255.255.255.255 dev eth0
You may need to change eth0 to whatever value is appropriate for your system. This command may be present in your DHCP startup script. You can check if it's present by typing route -n at a command prompt. This command displays all your system's routing table entries, as described in Chapter 2. You'll see the 255.255.255.255 route at the top of the output, if it's present.