
我有一個在本地電腦上運行的網路伺服器,它自發性地開始每秒發送大約 400 個 DHCP 請求,不斷更改其 IP 位址,直到幾個小時後我殺死了 dhclient。簡單地重新啟動伺服器並沒有幫助,我實際上必須殺死 dhclient 才能停止它。
伺服器配置為使用 DHCP,路由器配置為其提供靜態 IP 位址。
這是(.1,因為我重新啟動了它)前幾秒鐘的輸出grep -i dhc /var/log/syslog.1
(速率後來急劇增加,但不是整體模式):
Sep 11 04:36:01 net-server dhclient: DHCPREQUEST on eth0 to 10.0.0.1 port 67
Sep 11 04:36:01 net-server dhclient: DHCPACK from 10.0.0.1
Sep 11 04:36:01 net-server dhclient: DHCPDECLINE on eth0 to 255.255.255.255 port 67
Sep 11 04:36:01 net-server dhclient: DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 4
Sep 11 04:36:04 net-server dhclient: DHCPREQUEST on eth0 to 255.255.255.255 port 67
Sep 11 04:36:04 net-server dhclient: DHCPOFFER from 10.0.0.1
Sep 11 04:36:04 net-server dhclient: DHCPACK from 10.0.0.1
Sep 11 04:36:04 net-server dhclient: DHCPDECLINE on eth0 to 255.255.255.255 port 67
Sep 11 04:36:04 net-server dhclient: DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 3
Sep 11 04:36:04 net-server dhclient: DHCPREQUEST on eth0 to 255.255.255.255 port 67
Sep 11 04:36:04 net-server dhclient: DHCPOFFER from 10.0.0.1
Sep 11 04:36:05 net-server dhclient: DHCPACK from 10.0.0.1
Sep 11 04:36:05 net-server dhclient: DHCPDECLINE on eth0 to 255.255.255.255 port 67
Sep 11 04:36:05 net-server dhclient: DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 8
後來,類似的線條Sep 11 05:13:01 net-server ifup[436]: /sbin/dhclient-script: 28: .: Can't open /usr/share/sendmail/dynamic
開始出現,但由於它們在一個小時內沒有出現,所以我不認為它們有因果關係。
因為我想我實際上還沒有問任何事情,所以我的問題是:什麼可能導致 Linux 伺服器如此頻繁地更改其 IP,以及如何防止它?
搜尋網路完全沒有效率,因為在大多數情況下,「許多」請求意味著每隔幾分鐘,而不是每秒數百個。如果需要,我可以提供更多信息,但目前我什至對情況了解不夠,無法提出適當的問題。
答案1
DHCP 拒絕訊息用於報告 IP 位址衝突或TCP/IP 設定無效。
請檢查是否與任何其他乙太網路設備甚至電話發生衝突。
arp 10.0.0.xx (server ip)
如果報告沒有其他裝置使用它,則重新啟動路由器,刪除/新增保留,最後嘗試新的 IP。最終想法檢查是否可能是廣播/路由配置錯誤一遍又一遍地看到 DHCP 拒絕,但沒有衝突。
答案2
這是一個較舊的問題,但我剛剛在我的個人伺服器上遇到了這個確切的問題,所以它今天仍然相關。
/sbin/dhclient-script: 28: .: Can't open /usr/share/sendmail/dynamic
不管你信不信,這其實是你問題的根源。我添加set -x
到開頭/sbin/dhclient-script
並發現腳本在出現此錯誤後立即崩潰。結果我在修補時刪除了sendmail。重新安裝後,DHCP 運作正常。
據說這個bug已經修復了這裡,但是,由於這種情況仍在發生,我對此表示懷疑。