web-dev-qa-db-fra.com

Le serveur DHCP ne démarre pas au démarrage en raison d'un ordre de démarrage incorrect

Apparemment, le serveur isc-dhcp-server est démarré trop tôt dans la séquence de démarrage, ce qui indique qu'il n'a rien à faire. Si je me connecte directement en tant que root et le lance à l'aide du script init.d, il démarre normalement.

Ma configuration est fondamentalement un routeur tout à fait standard, avec un eth0 du côté inet et un eth1 du côté lan. Cependant, j'ai défini un pont au lieu de l'eth1 pour le côté réseau local. Ainsi, la partie réseau du réseau n’est pas en place tant que le pont n’est pas en place.

Je pense actuellement que le serveur DHCP est activé avant le pont, probablement parce que le pont est associé à la tâche 'mise en réseau', tandis que les outils eth sont utilisés pour les tâches 'interface réseau', exécutées plus tôt. . (De plus, le pont met un petit âge à se lever comparé à celui de l'eth).

Si je supprime la configuration du pont, en utilisant plutôt eth1 directement pour le côté réseau local, tout fonctionne. (Cependant, à en juger par syslog, la situation est encore difficile.)

Des idées sur la façon de démarrer DHCP plus tard?

(La raison du pont est de pouvoir utiliser KVM avec un réseau ponté ..)

5
stolsvik

Les interfaces réseau ne sont actives que lorsque la tâche networking est exécutée dans la séquence suivante. Vous pouvez voir lors de la configuration de la tâche dans /etc/init/networking.conf que la seule fonction exécutée est ifup -a. J'ai corrigé la séquence de démarrage en supprimant les liens symboliques isc-dhcp-server des dossiers /etc/rc?.d et en ajoutant une nouvelle tâche pour le programme de démarrage. La seule chose à faire est d’ajouter un fichier de configuration /etc/init/dhcp_start.conf et de le modifier comme suit:

démarrer sur réseau arrêté

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

C'est un méchant hack, mais ça marche. Vous pouvez également ajouter une autre tâche pour arrêter doucement dhcpd sur un autre événement, comme pour mon réseau:

démarrer à l’arrêt pont-réseau-interface br0

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

J'ai trouvé quelque part ailleurs que les gens disent de démarrer dhcp sur la mise en réseau commencée au lieu de la mettre en arrêt. Il est essentiellement faux, car les interfaces ne sont configurées qu’après la sortie de la commande ifup -a et non lors de son exécution. Cela n'a fonctionné que par accident, car l'exécution en parallèle de dhcp était assez rapide.

2
Piotr Skibinski

J'ai eu exactement le même problème.

Je l'ai corrigé en éditant /etc/init.d/isc-dhcp-server et en ajoutant un sleep 10 en haut.
J'ai essayé sleep 5 mais cela ne suffisait pas.

Espérons que cela fonctionnera pour vous aussi.

3
David Lomax

Mettez les bonnes interfaces dans /etc/default/isc-dhcp-server. Dans mon cas:

INTERFACES="br0 eth2"
2
Paul B

Rien de ce qui précède n'a fonctionné pour moi, je l'ai enfin obtenu en ajoutant ces lignes à mon script rc.local

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

Sans le sommeil 10, cela n’a eu aucun effet, j’avais également du mal à conserver la route par défaut, aussi j’ai ajouté

route add default gw 192.168.1.1 eth1

(Je n'ai pas d'éth0, je n'ai jamais compris pourquoi)

0
boatcoder

Essayez ceci, cela a fonctionné pour moi:

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

J'ai supprimé le fichier car il est écrit manuel dans le fichier.

0
RLZG