DHCP auto-recuperável do Linux após um longo tempo de inatividade?

DHCP auto-recuperável do Linux após um longo tempo de inatividade?

Tenho alguns sistemas CentOS 6/7 (não produção, para fins experimentais) que foram configurados para usar DHCP como endereço IP. Na semana passada houve uma grande interrupção na rede e descobri que esses sistemas perderam o endereço IP e o cliente DHCP foi encerrado. Acho que depois de muitas/muito longas tentativas.

O que éapropriadomaneira de fazê-lo tentar se recuperar para sempre? Existe uma configuração de cliente DHCP que pode fazer isso? Ou devo adicionar uma entrada cron que faça algo como 'ifup eth0' a cada hora? Ou existe uma maneira muito melhor de fazer isso?

Eu sei que o CentOS 6 e o ​​CentOS 7 fazem essas coisas de maneira diferente e estou procurando respostas para ambos os casos.


Atualizar:

Por enquanto criei este script (que coloquei em /etc/cron.hourly/ ) que parece funcionar na situação específica do CentOS 6. Esta provavelmente não é a melhor solução, mas "Funciona na minha máquina".

#!/bin/bash

IF=eth0

ifconfig ${IF} | fgrep 'inet addr' > /dev/null

if [ $? -ne 0 ];
then
    echo "Network is dead, trying restart"
    ifup ${IF}
fi

Ainda estou procurando a maneira correta de fazer isso, então não acho que essa seja a resposta certa para minha pergunta.

Responder1

Tanto o CentOS 6 quanto o 7 devem aceitar a opção PERSISTENT_DHCLIENT nos arquivos /etc/sysconfig/network-scripts/ifcfg* .eg

# /etc/sysconfig/network-scripts/ifcfg-eth0 
BOOTPROTO=dhcp
PERSISTENT_DHCLIENT=yes
ONTBOOT=yes
DEVICE=eth0

Isso instrui o script ifup-eth a executar o dhclient sem o (padrão)-1opção

if is_true "${PERSISTENT_DHCLIENT}"; then
    ONESHOT="";
else
    ONESHOT="-1";
fi;
...
DHCLIENTARGS="${DHCLIENTARGS} ${ONESHOT} -q ${DHCLIENTCONF} -lf ${LEASEFILE} -pf /var/run/dhclient-${DEVICE}.pid"

Com essa opção, o dhclient tentará uma vez. Da página de manual

-1 Try once to get a lease. One failure, exit with code 2.

Sem essa opção, o dhclient deve tentar novamente ocasionalmente (a cada 5 minutos por padrão) novamente na página de manual dhclient.conf

retry time;

The retry statement determines the time that must pass after the client 
has determined that there is no DHCP server present before it tries 
again to contact a DHCP server. By default, this is five minutes.

informação relacionada