
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.