Take the 2-minute tour ×
Ask Ubuntu is a question and answer site for Ubuntu users and developers. It's 100% free, no registration required.

Apparently the isc-dhcp-server is started too early in the boot sequence, it states that it has nothing to do. If I just log directly in as root and start it using the init.d-script, it starts normally.

My setup is basically an utterly standard router, with an eth0 on the inet side, and an eth1 on the lan side. However, I've defined a bridge instead of the eth1 for the lan-side. Thus, the lan-part of the network isn't up until the bridge is up.

I currently believe that the dhcp server is brought up before the bridge is brought up, probably because the bridge is brought up with the 'networking' task, while the eth's are taken up with the 'network-interface' tasks - which are run earlier. (also, the bridge takes a small age to get up compared to the eth's).

If I do take away the bridge config, instead using eth1 directly for the lan side, things work. (However, judging by syslog, things are still tight.)

Ideas of how the get DHCP to start later?

(The reason for the bridge, is to be able to use KVM with bridged networking..)

share|improve this question
2  
    
Did you ever get this fixed? –  Tom Brossman Feb 24 '12 at 8:09
    
Yes, I believe I used something close to this solution in the duplicate question –  stolsvik Apr 9 '13 at 10:54

4 Answers 4

up vote 1 down vote accepted

Network interfaces are up only after the networking task is done in the upstart sequence.You can see at the configuration of the task in /etc/init/networking.conf that the only thing that it does is running ifup -a. I fixed the startup sequence by removing the isc-dhcp-server symlinks from /etc/rc?.d folders and adding a new task for the upstart. The only thing you have to do is to add a config file /etc/init/dhcp_start.conf and edit it to something like this:

start on stopped networking

exec /etc/init.d/isc-dhcp-server start

It is a nasty hack, but works. You can also add another task to gently shutdown the dhcpd on another event, like for my network:

start on stopped bridge-network-interface br0

exec /etc/init.d/isc-dhcp-server stop

I found somewhere else that people say to start dhcp on started networking instead of stopped networking. It is essentially wrong since the interfaces are configured only after ifup -a command exits and not when it is brought to life. It worked for them only accidently because ifup executing in parallel to dhcp was quite fast to finish.

share|improve this answer

Try this, it worked for me:

rm /etc/init/isc-dhcp-server.override

I removed the file because it says manual inside the file.

share|improve this answer

None of the above worked for me, I finally got it working by adding these lines to my rc.local script

sleep 10
/etc/init.d/isc-dhcp-server start

Without the sleep 10, this had no effect, I also had trouble getting the default route to stick as well, so I added

route add default gw 192.168.1.1 eth1

(I don't have an eth0, never have understood why)

share|improve this answer

I had exactly the same problem.

I fixed it by editing /etc/init.d/isc-dhcp-server and adding a sleep 10 at the top.
I tried sleep 5 but it wasn't enough.

Hopefully it will work for you too.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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