Problems setting up DHCP server

I'm trying to set up a DHCP server on my Debian Sarge machine for a small local network, but I can't get it working. The service starts OK, but the W*****s client machines always fail to get leases, and the dhcpd.leases files is always empty. Static addressing for the clients always works.

My dhcpd.conf file contains:

ddns-update-style none;
option domain-name-servers 159.134.237.6, 159.134.248.17;
default-lease-time 86400;
max-lease-time 604800;
authoritative;
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.100 192.168.1.199;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.1.255;
option routers 192.168.1.254;
}

I've played around with various settings there, including shortening the lease time to 10 mins, but have had no luck.

The machine has 2 NICs; only eth0 is used. The routing table looks like:

Destination Gateway Genmask Flags Metric Ref Use Iface
255.255.255.255 * 255.255.255.255 UH 0 0 0 eth0
localnet * 255.255.255.0 U 0 0 0 eth0
default dslrouter 0.0.0.0 UG 0 0 0 eth0

Can anybody see what I might be doing wrong?

Thanks a lot.

Tony.

0

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

Is it listening?

First of all, it is convenient to assign a static address to the NIC which listens, and then set the dhcp server to listen at that address. You can also tell the server to listen to 'eth0' (or eth1 as you please) but it is still good to have a static IP for the listening NIC.

I also see your default is to route through something you named 'dslrouter'. Does that device have its own dhcp server - is it interfering? Does it correctly switch packets to the dhcp server during the DHCP negotiation phase?

Is it listening?

Thanks again, pinniped.

During the dhcp3-server configuration, I specified eth0 as the listening device.

eth0 uses the static address 192.168.1.1. dslrouter is at 192.168.1.254; its DHCP server is disabled. The hosts file (for my small home network) contains:
# /etc/hosts

127.0.0.1 localhost localhost.localdomain

# achill
192.168.1.1 debbie debbie.achill
#192.168.1.10 tonyslaptop tonyslaptop.achill # DHCP client
#192.168.1.11 blue blue.achill # DHCP client
#192.168.1.17 formula1 formula1.achill # DHCP client
192.168.1.254 dslrouter dslrouter.achill

# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts

ifconfig on the server machine (debbie) produces:
eth0 Link encap:Ethernet HWaddr 00:D0:B7:8E:E1:72
inet addr:192.168.1.1 Bcast:192.168.1.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1342 errors:0 dropped:0 overruns:0 frame:0
TX packets:400 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:102444 (100.0 KiB) TX bytes:58697 (57.3 KiB)
Interrupt:11 Base address:0xef00 Memory:febff000-febff038

lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:193 errors:0 dropped:0 overruns:0 frame:0
TX packets:193 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:20331 (19.8 KiB) TX bytes:20331 (19.8 KiB)

Tony.

(I don't know why my "pre" content is being double-spaced, but it should still be readable)

$world=~s/war/peace/g;

install 'wireshark'?

You may want to install 'wireshark' (formerly ethereal) or 'etherape' to see what's happening. You may also want to check the logs in /var/log to see if you are even receiving DHCP requests. Are you receiving and processing requests but the other end doesn't seem to get the response? Check the settings of your router very carefully - it might be doing something stupid and causing packets to disappear.

install 'wireshark'?

I discovered the problem. The DHCP Client service on the Windows machine was disabled. It works now.

Duh!

Thanks a lot for all your help. I'll try that setup on the production server on Monday.

Tony.

$world=~s/war/peace/g;

Syndicate content