Linux – How to fix “No subnet declaration for restart (0.0.0.0)”

dhcpdhcp-serverlinux

I have a DHCP service installed on my distribution, Backtrack 5 R2 (ubuntu 10.04) and it was working fine, but when I began to configure DNS it suddenly stoped working, how can I make it work again??

The dhcp.conf file:

ddns-update-style none;
option domain-name "admin.servers.net";
option domain-name-servers ns1.example.org, ns2.example.org;

default-lease-time 600;
max-lease-time 7200;
authoritative;
log-facility local7;

subnet 192.168.0.0 netmask 255.255.255.0 {
  range 192.168.0.50 192.168.0.100;
  option domain-name-servers 192.168.0.2, 8.8.4.4;
  option routers 192.168.0.254;
  option broadcast-address 192.168.0.255;
  default-lease-time 600;
  max-lease-time 7200;
}

And when I restart the service it shows:

Internet Systems Consortium DHCP Server V3.1.3
Copyright 2004-2009 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/
Wrote 4 leases to leases file.

No subnet declaration for restart (0.0.0.0).
** Ignoring requests on restart.  If this is not what
   you want, please write a subnet declaration
   in your dhcpd.conf file for the network segment
   to which interface restart is attached. **


Not configured to listen on any interfaces!

dhcp3-server has:

INTERFACES="eth0"

ip address:

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN 
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
inet6 ::1/128 scope host 
   valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 04:7d:7b:15:29:6b brd ff:ff:ff:ff:ff:ff
inet 192.168.0.2/24 brd 192.168.0.255 scope global eth0
inet6 fe80::67d:7bff:fe15:296b/64 scope link 
   valid_lft forever preferred_lft forever
3: wlan0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN qlen 1000
link/ether 74:e5:0b:57:b4:82 brd ff:ff:ff:ff:ff:ff

ip route:

default via 192.168.0.254 dev eth0 
192.168.0.0/24 dev eth0  proto kernel  scope link  src 192.168.0.8 

Best Answer

2: eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN qlen 1000
    link/ether 04:7d:7b:15:29:6b brd ff:ff:ff:ff:ff:ff

You have no address currently assigned to eth0. When the DHCP daemon starts it tries to detect all the subnets present. Since you have no addresses assigned it is unable to detect anything and is doing the wrong thing. Assign an address to that interface. You must have a valid IP on an interface that is going to be a DHCP server.