정말 긴 가동 중지 시간 후에 Linux가 DHCP를 자체 복구합니까?

정말 긴 가동 중지 시간 후에 Linux가 DHCP를 자체 복구합니까?

IP 주소로 DHCP를 사용하도록 구성된 몇 가지 CentOS 6/7 시스템(비프로덕션, 실험용)이 있습니다. 지난 주에 큰 네트워크 중단이 발생하여 해당 시스템이 IP 주소를 잃어버리고 DHCP 클라이언트가 종료된 것을 발견했습니다. 재시도 횟수가 너무 많거나 너무 길었던 것 같습니다.

이것은적절한영원히 회복되도록 하는 방법은 무엇입니까? 이를 수행할 수 있는 DHCP 클라이언트 설정이 있습니까? 아니면 매시간 'ifup eth0'과 같은 작업을 수행하는 cron 항목을 추가해야 합니까? 아니면 이 작업을 수행하는 훨씬 더 좋은 방법이 있습니까?

저는 CentOS 6과 CentOS 7이 이러한 작업을 다르게 수행한다는 것을 알고 있으며 이 두 경우에 대한 답변을 찾고 있습니다.


업데이트:

지금은 CentOS 6의 특정 상황에서 작동하는 것으로 보이는 이 스크립트( /etc/cron.hourly/ 에 넣음)를 만들었습니다. 이것은 아마도 최선의 해결책은 아니지만 "내 컴퓨터에서 작동합니다".

#!/bin/bash

IF=eth0

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

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

아직도 이 작업을 수행하는 적절한 방법을 찾고 있으므로 이것이 내 질문에 대한 올바른 대답이라고 생각하지 않습니다.

답변1

CentOS 6과 7 모두 /etc/sysconfig/network-scripts/ifcfg* 파일 내에서 PERSISTENT_DHCLIENT 옵션을 허용해야 합니다.eg

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

이는 ifup-eth 스크립트에 (기본값) 없이 dhclient를 실행하도록 지시합니다.-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"

해당 옵션을 사용하면 dhclient가 한 번 시도합니다. 매뉴얼 페이지에서

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

해당 옵션이 없으면 dhclient는 dhclient.conf 매뉴얼 페이지에서 가끔(기본적으로 5분마다) 다시 시도해야 합니다.

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.

관련 정보