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