是否有腳本從 DHCP 伺服器接收 IP?
Nagios DHCP 檢查外掛實際上都不能從 DHCP 伺服器獲取 IP 作為真正的測試。他們所做的只是詢問它將為某個mac地址提供哪個IP。
我們的 DHCP 伺服器出現故障,Nagios 沒有發出警報,因為它可以通過 Nagios 測試,但實際上並未將 IP 提供給客戶端。
問題
有沒有辦法讓腳本請求 IP 並讓 DHCP 伺服器提供它?該腳本將每 5 分鐘執行一次,因此每次執行都會丟棄 IP。
更新
理想情況下,腳本應該做的是
# dhclient -r ; dhclient ; ip a|grep valid_lft Killed old client process valid_lft forever preferred_lft forever valid_lft forever preferred_lft forever valid_lft 86459sec preferred_lft 86459sec valid_lft forever preferred_lft forever
如果
preferred_lft
沒有更新,則提醒。這種方法的問題需要一個專用的網卡來解決這個問題。如果可以以某種方式模擬這將是非常好的?
為了測試如果一個全新的設備向您的 DHCP 伺服器請求 IP 地址會發生什麼,您的 Nagios 腳本需要發送帶有欺騙性 MAC 地址的 DHCP Discover 數據包。您需要能夠發送原始 DHCP 數據包,但在嘗試之前,您應該修改這種安排實際需要的內容。
假設我們有 24 小時的 DHCP 租用時間。如果您每 5 分鐘發送一個帶有新 MAC 地址的 DHCP Discover 數據包並從池中獲得 DHCP 提議,那麼僅 Nagios 測試將佔用池中的 288 個 IP 地址。如果您的租用時間更長,例如一周,您將擁有多達 2016 個虛擬預留 IP 地址。您需要有一個
/20
DHCP 池才能為實際設備提供這麼多的備用地址 + 空間。這就是為什麼我建議使用正常測試並在超過 99.9% 的情況下依賴它。時不時出現池耗盡的罕見情況值得手動注意,而不是在測試時實際導致這種情況。
**次要方法。**不要通過發送額外的 DHCP Discover 數據包進行測試,而是監控實際流量。每當您看到以下內容時創建警報:
- 一個 DHCP Discovery 數據包,沒有相應的 DHCP Offer 數據包。
- 沒有對應的 DHCP Ack 數據包的 DHCP 請求數據包。
您應該能夠很快辨識出任何問題。