DHCP-server não inicia na inicialização devido à ordem de inicialização incorreta [duplicada]

5

Aparentemente, o isc-dhcp-server é iniciado muito cedo na seqüência de inicialização, ele afirma que não tem nada a ver. Se eu fizer o login diretamente como root e iniciá-lo usando o script init.d, ele será iniciado normalmente.

Minha configuração é basicamente um roteador totalmente padrão, com uma eth0 no lado inet e uma eth1 no lado lan. No entanto, eu defini uma ponte em vez da eth1 para o lado da lan. Assim, a parte lan da rede não está pronta até a ponte acabar.

Atualmente, acredito que o servidor dhcp é criado antes que a ponte seja criada, provavelmente porque a bridge é criada com a tarefa 'networking', enquanto as eth's são executadas com as tarefas 'network-interface' - são executados antes. (também, a bridge leva uma pequena idade para se levantar em comparação com o eth's).

Se eu tirar a configuração da bridge, em vez de usar a eth1 diretamente para o lado da lan, as coisas funcionam. (No entanto, a julgar pelo syslog, as coisas ainda estão apertadas.)

Idéias de como o DHCP pode começar mais tarde?

(O motivo da ponte é poder usar o KVM com rede em ponte ..)

    
por stolsvik 21.08.2011 / 01:42

5 respostas

2

As interfaces de rede são ativadas somente depois que a tarefa networking é executada na sequência inicial. Você pode ver na configuração da tarefa em /etc/init/networking.conf que a única coisa que faz é executar ifup -a . Eu consertei a seqüência de inicialização removendo os links simbólicos isc-dhcp-server das pastas /etc/rc?.d e adicionando uma nova tarefa para o upstart. A única coisa que você precisa fazer é adicionar um arquivo de configuração /etc/init/dhcp_start.conf e editá-lo para algo como isto:

  

iniciar na rede interrompida

     

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

É um truque desagradável, mas funciona. Você também pode adicionar outra tarefa para desligar gentilmente o dhcpd em outro evento, como para minha rede:

  

iniciar na interface bridge-network-br0 interrompida

     

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

Eu encontrei outro lugar que as pessoas dizem para iniciar o dhcp na rede iniciada, em vez de interromper a rede. Está essencialmente errado, já que as interfaces são configuradas somente depois que o comando ifup -a sai e não quando é trazido à vida. Só funcionou para eles acidentalmente, porque executar o ifup em paralelo ao dhcp foi muito rápido para terminar.

    
por Piotr Skibinski 11.09.2011 / 11:53
3

Eu tive exatamente o mesmo problema.

Eu consertei editando /etc/init.d/isc-dhcp-server e adicionando sleep 10 no topo.
Eu tentei sleep 5 mas não foi o suficiente.

Espero que também funcione para você.

    
por David Lomax 02.09.2011 / 00:02
2

Coloque as interfaces corretas em /etc/default/isc-dhcp-server . No meu caso:

INTERFACES="br0 eth2"
    
por Paul B 14.01.2017 / 02:45
0

Nenhuma das opções acima funcionou para mim, finalmente consegui trabalhar adicionando essas linhas ao meu script rc.local

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

Sem o sleep 10, isso não teve efeito, eu também tive problemas para manter a rota padrão, então adicionei

route add default gw 192.168.1.1 eth1

(eu não tenho eth0, nunca entendi porque)

    
por boatcoder 02.07.2012 / 05:21
0

Tente isso, funcionou para mim:

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

Eu removi o arquivo porque ele diz manual dentro do arquivo.

    
por RLZG 12.09.2013 / 07:42

Tags