Linux 在長時間停機後會自動恢復 DHCP?

Linux 在長時間停機後會自動恢復 DHCP?

我有一些 CentOS 6/7 系統(非生產、實驗目的),已配置為使用 DHCP 作為其 IP 位址。上週發生了一次嚴重的網路中斷,我發現這些系統遺失了 IP 位址,而 DHCP 用戶端也終止了。我想是在重試次數過多/時間過長之後。

是什麼恰當的讓它嘗試永遠恢復的方法?是否有 dhcp 用戶端設定可以執行此操作?或者我應該添加一個 cron 條目,每小時執行一次類似“ifup eth0”的操作?或者有更好的方法來做到這一點嗎?

我知道 CentOS 6 和 CentOS 7 做這些事情的方式不同,我正在尋找這兩種情況的答案。


更新:

現在我已經創建了這個腳本(我將其放入/etc/cron.hourly/ ),它似乎可以在CentOS 6 的特定情況下工作。上工作」。

#!/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 選項。

# /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.

相關內容