Linux

是否有腳本從 DHCP 伺服器接收 IP?

  • March 7, 2018

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 地址。您需要有一個/20DHCP 池才能為實際設備提供這麼多的備用地址 + 空間。

這就是為什麼我建議使用正常測試並在超過 99.9% 的情況下依賴它。時不時出現池耗盡的罕見情況值得手動注意,而不是在測試時實際導致這種情況。

**次要方法。**不要通過發送額外的 DHCP Discover 數據包進行測試,而是監控實際流量。每當您看到以下內容時創建警報:

  • 一個 DHCP Discovery 數據包,沒有相應的 DHCP Offer 數據包。
  • 沒有對應的 DHCP Ack 數據包的 DHCP 請求數據包。

您應該能夠很快辨識出任何問題。

引用自:https://serverfault.com/questions/900432