¿Linux se recupera automáticamente con DHCP después de un tiempo de inactividad realmente largo?

¿Linux se recupera automáticamente con DHCP después de un tiempo de inactividad realmente largo?

Tengo algunos sistemas CentOS 6/7 (no de producción, con fines experimentales) que se han configurado para usar DHCP para su dirección IP. La semana pasada hubo una gran interrupción en la red y descubrí que esos sistemas habían perdido su dirección IP y el cliente DHCP había terminado. Supongo que después de demasiados o demasiado largos intentos.

Cuál es eladecuado¿Cómo hacer que intente recuperarse para siempre? ¿Existe alguna configuración de cliente dhcp que pueda hacer esto? ¿O debería agregar una entrada cron que haga algo como 'ifup eth0' cada hora? ¿O hay una manera mucho mejor de hacer esto?

Sé que CentOS 6 y CentOS 7 hacen estas cosas de manera diferente y estoy buscando respuestas para ambos casos.


Actualizar:

Por ahora he creado este script (que puse en /etc/cron.hourly/ ) que parece funcionar en la situación específica de CentOS 6. Probablemente esta no sea la mejor solución, pero "Funciona en mi 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

Sigo buscando la forma correcta de hacer esto, así que no creo que esta sea la respuesta correcta a mi pregunta.

Respuesta1

Tanto CentOS 6 como 7 deberían aceptar la opción PERSISTENT_DHCLIENT dentro de los archivos /etc/sysconfig/network-scripts/ifcfg*.

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

Esto indica al script ifup-eth que ejecute dhclient sin el (predeterminado)-1opción

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

Con esa opción, dhclient lo intentará una vez. Desde la página de manual

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

Sin esa opción, dhclient debería volver a intentarlo ocasionalmente (cada 5 minutos de forma predeterminada) desde la 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.

información relacionada