I've installed an isc-dhcp-server on Ubuntu 12.10 and I'm trying to setup a DHCP server on a head node for six worker computers in the local network. The head node itself is a DHCP client receiving the IP-address (on eth0) from an other computer in the network.

IPv4 IP forwarding is enabled on the head node. In /etc/sysctl.conf the following line was added:

net.ipv4.ip_forward = 1

The following rules are set in /etc/rc.local:

/sbin/iptables -P FORWARD ACCEPT
/sbin/iptables --table nat -A POSTROUTING -o eth0 -j MASQUERADE

Furthermore, INTERFACES="eth0" is set in /etc/default/isc-dhcp-server.

The dhcpd.conf file contains (for the moment only one worker computer is in the file):

ddns-update-style none;

default-lease-time 3600;
max-lease-time 7200;


subnet netmask {
  host hostName {
    hardware ethernet macOfHost;
  option subnet-mask;
  option broadcast-address;
  option routers;

The worker node effectively gets the IP address, but it has no internet connection. A ping to is successful, as well as a ping to the computer that serves as a DHCP server for the head node (a ping to The problem doesn't seem to have something to do with DNS as a ping to an IP-address (such as fails.


The network topology is as follows. There is switch connecting a computer (with internet access and running a DHCP server, IP address and 7 other computers. One of these 7 computers gets an IP from the computer. The IP it gets is and the internet on that computer works fine. Now we have a DHCP server running on in order to provide internet access to the other 6 computers, but that fails. They get IP addresses but have no internet access. We are not allowed to modify anything on the node so it should be feasible to make internet work with this setup.

Does someone know what the problem could be?


Everything is working now. It turned out to be a DNS problem; changing the option routers to option routers fixed the issue. Pings must have been blocked somewhere in the network as responses never came through, but surfing in the browser to a specific IP-address was possible, which made me realise that DNS was the problem. Thanks everyone for your help.


Looks like eth0 is your internal interface. If that is the case, what is your external interface? On your "router" server, the external interface, not the internal one (which should forward the packets), needs to MASQUERADE.

  • There is only one interface (eth0) except for the loopback. – user2611216 Jul 23 '13 at 16:08
  • 1
    in that case, how do you get to the internet? the iptables rules indicate that you are forwarding your traffic to somewhere from the internal network, but with only one interface, there is nowhere to forward to. – johnshen64 Jul 23 '13 at 16:10
  • The head node itself is a DHCP client of some other computer which is also in the local network. That other computer is connected to the internet. It looks something like this: (Router and DHCP server) -> (other local router and DHCP server) -> (DHCP client) – user2611216 Jul 23 '13 at 16:32
  • Does the 20.1 computer have internet access? Also, the 20.1 computer MUST have two interfaces, if you're connecting it to the router and to the 20.20 computer. – trpt4him Jul 23 '13 at 16:46
  • The 20.1 computer has internet access. It has only one NIC however, everything is connected via a switch. – user2611216 Jul 23 '13 at 16:56

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.