dhcpd fails to start on eth1

In short: you need to set up an address on interface eth1 before the DHCP can serve requests from it.

Longer story: the DHCP server will read the configuration file, then match the subnet declarations with IP addresses currently assigned to interfaces. Only interfaces whose IP address matches a subnet declaration will serve requests for that subnet. Hence, you need to set up eth1 with an address in the 192.168.0.0/24 range, if you want the ISC DHCP server to serve requests for 192.168.0.0/24 from it.


Below worked for me in Ubuntu 12.04

apt-get remove --purge dhcp3-server
sudo apt-get install isc-dhcp-server

Go to /etc/dhcp. create a new file "dhcp.conf" Before that keep a backup of existing "dhcp.conf" file

Add the below details to new dhcp.conf file

# Sample /etc/dhcpd.conf
default-lease-time 600;
max-lease-time 7200;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.1.255;
option routers 192.168.1.254;
option domain-name-servers 192.168.1.1, 192.168.1.2;
option domain-name "mydomain.example";
subnet 192.168.1.0 netmask 255.255.255.0 {
    range 192.168.1.10 192.168.1.100;
    range 192.168.1.150 192.168.1.200;
} 

Now go to /etc/defaults/isc-dhcp-server and add your interface name to the file isc-dhcp-server

Modify the /etc/network/interfaces file with your server static details as similar to below

auto eth1
iface inet eth1 static
    address 192.168.1.149
    netmask 255.255.255.0
    gateway 192.168.1.255
    dns-nameservers 192.168.1.1

After this run sudo /etc/init.d/isc-dhcp-server restart and sudo /etc/init.d/networking restart

Note: Dont forget to install dhcp client in your client system. Also after installing dhcp-server in your server system, remove the system from the external network so that it will not harm other devices already in the network, other than the particular client you are interested in

Now if you connect your client to the same network where your server is hosted, the client will acquire an ip with in the specified range