
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.