DHCP auto recuperando DHCP depois de muito tempo de inatividade?

6

Eu tenho alguns sistemas CentOS 6/7 (não-produção, fins experimentais) que foram configurados para usar o DHCP para seu endereço IP. Na semana passada houve uma grande interrupção na rede e descobri que esses sistemas haviam perdido o endereço IP e o cliente DHCP havia terminado. Eu acho que depois de tentativas demais / longas demais.

Qual é o modo correto de tentar recuperá-lo 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 há 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 esses dois casos.

Atualização:

Por enquanto eu criei este script (que eu 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 procurando a maneira correta de fazer isso, não acho que essa seja a resposta certa para a minha pergunta.

    
por Niels Basjes 04.03.2018 / 11:18

1 resposta

3

Ambos os CentOS 6 e 7 devem aceitar a opção PERSISTENT_DHCLIENT nos arquivos / etc / sysconfig / network-scripts / ifcfg * .e.g.

# /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 a opção (padrão) -1

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 man

-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) a partir da página de manual do 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.
    
por 03.08.2018 / 03:33