當動態主機配置協定(DHCP)伺服器運行時,某些租用顯示為不可用。有幾個原因,DHCP日誌中幾乎總是清楚地註明這些原因:
啟用優惠之前執行ping。
DHCP伺服器收到一個DHCPDECLINE消息,消息來自它租借給的DHCP客戶端,它認為該客戶端是一個好的IP地址。
Cisco Network Registrar(CNR)DHCP伺服器看到一條定向到其他DHCP伺服器的消息。
快速解決方法是強制提供租約。不建議這樣做,因為需要調查為什麼租賃被標籤為不可用。轉到CNR日誌目錄並查詢DHCP日誌。伺服器明確說明IP地址標籤為不可用的原因。
本文檔的讀者應瞭解以下主題:
DHCP的工作原理
CNR命令列介面(nrcmd)
CNR GUI使用者介面
本文中的資訊係根據以下軟體和硬體版本:
Cisco網路註冊器5.0.X
Windows 2000和Solaris 7
所有CNR版本和平台
本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除(預設)的組態來啟動。如果您的網路正在作用,請確保您已瞭解任何指令可能造成的影響。
如需文件慣例的詳細資訊,請參閱思科技術提示慣例。
將IP地址分配給客戶端之前,您可以選擇讓DHCP伺服器使用網際網路控制消息協定(ICMP)回應消息功能(ping實用程式)來確定是否有對該地址的響應。如果CNR伺服器收到對ping的響應,則DHCP伺服器將該地址標籤為不可用,並向客戶端提供不同的IP地址。使用ping有助於防止兩個使用者端使用相同的IP位址。要在CNR服務器上啟用Ping before offer,請參閱配置DHCP範圍和租用中的「在提供地址之前對主機執行ping」部分。
對ping的響應可能是由於客戶端上靜態配置的IP或中間裝置(路由器、交換機)對其負責的網路上的地址的ping響應不當。
要使這些租賃可用,請參閱強制租賃可用性。
如果DHCP伺服器收到來自其租用的客戶端的DHCPDECLINE消息,則該IP地址可能會被標籤為不可用。
之所以會出現這種情況,是因為某些使用者端會針對其本地lan區段上的IP位址傳送位址解析通訊協定(ARP)要求。如果有響應,則DHCP客戶端使用DHCPDCDEND將IP地址返回DHCP伺服器,然後執行另一個DHCPDISCOVER操作以獲取新的IP地址。在此案例中,與ping before offer案例一樣,客戶端指示存在使用IP地址的活動客戶端(可能是靜態配置的)。然後DHCP伺服器將IP地址標籤為不可用。
這通常是由已配置非唯一客戶端識別符號的客戶端引起的。因為DHCP伺服器使用此欄位來區分客戶端,所以可能會發生重複的地址分配。解決方案是將mac-address-only分配為客戶端識別符號。
CNR可以配置以下兩種方法之一來區分客戶端:
按客戶端ID。客戶端ID通常由客戶端提供。但是,如果客戶端未提供客戶端ID,則DHCP伺服器會使用預置的Hardware Type = 1的唯一MAC地址重新格式來建立唯一的ID。(這是根據RFC指定的預設配置。)
僅按MAC地址。預設情況下在伺服器上禁用此功能。(新增MAC地址的校驗和,以便將此對象與實際MAC地址區分開來)。 您可以使用以下命令啟用它:
nrcmd> dhcp enable Mac-address-only
此配置使DHCP伺服器將客戶機的MAC地址用作唯一的客戶機識別符號,並忽略客戶機提供的客戶機ID。您可以使用此引數以單一、一致的方式標識使用DHCP伺服器的所有客戶端。
注意:在考慮在伺服器上配置任何客戶端之前,必須配置此功能,因為此僅Mac-address-only的新客戶端ID不同於預設的合成客戶端ID。如果在生產網路上啟用此選項,在續訂過程中,不會將任何現有客戶端視為自己,不會確認它們(NAK),並強制實施新租約。此條款與當前所考慮之租賃(使用)租賃掛鉤,直至其到期。因此,在啟用此功能的週期內,網路上需要的地址數量是原來的兩倍。
要使這些租賃可用,請遵循強制租賃可用性中的說明。
如果DHCP伺服器發現另一個DHCP伺服器分發此租約,則它將IP地址標籤為不可用。
所有DHCPREQUEST消息都作為初始DISCOVER/OFFER/REQUEST/ACK週期的一部分廣播。DHCP伺服器可以檢視指向其他DHCP伺服器的消息,並且可以識別消息是通過server-id選項的內容定向到它的。
如果CNR DHCP伺服器看到一條指向另一個DHCP伺服器的消息,但此消息所引用的IP地址由此DHCP伺服器控制,則它會標籤該IP地址不可用。此DHCP伺服器配置為控制地址空間,但由於它發現另一個DHCP管理著相同的地址空間,因此另一個伺服器必須配置錯誤。
如果從一台控制DHCP伺服器遷移到另一台具有不同IP地址的DHCP伺服器(並且未配置為已知和授權這些地址的DHCP故障轉移合作夥伴),則會出現此行為。 在CNR 5.0.x及更高版本中,您可以禁用此行為,以便使用命令輕鬆將地址空間遷移到另一個控制DHCP伺服器:
nrcmd> dhcp set ignore-requests-for-other-servers=true
要使這些租賃可用,請遵循強制租賃可用性中的說明。
可以強制主機當前持有的租賃的可用性。請求使用者釋放租賃或允許您,然後強制其可用。您無需重新載入DHCP伺服器即可使更改生效。
請遵循以下步驟:
在範圍屬性對話方塊的Leases頁籤中,選擇要強制使用的租用。
按兩下該地址以開啟「租用屬性」對話方塊。
按一下Force available。
按一下「OK」(確定)。
使用lease <ip address> force-available命令強制當前持有的租用可用。
nrcmd> lease 192.168.1.21 force-available
您也可以使用scope <scope name> clearUnavailable命令,使作用域中所有不可用的租用可用。
nrcmd> scope scope1 clearUnavailable
注意:scope <scope name> clearUnavailable命令僅在CNR 5.x及更高版本中可用。
轉到DHCP > Scope
對於包含租約的範圍,按一下leases圖示(眼鏡)。
在租賃清單中,按一下要提供的租賃。
在視窗顯示租約屬性後,按一下強制可用。
確定租賃何時不可用:
使用此命令可確定租用何時不可用:
nrcmd> lease ip-address get start-time-of-state
停用租賃:
要將客戶端移出租約,您可以選擇停用租約。如果租期可用,請停用該租期以防止CNR將其提供給客戶端。如果租賃處於活動狀態(由客戶端持有),請停用租賃。這會阻止客戶端續訂租期並將其釋放給其他客戶端。只有在伺服器運行時才能停用租用。CNR立即停用租約;您無需重新載入DHCP伺服器。如果租期可用,則在停用租期時,該租期將不可用;如果它處於活動狀態,它將無法續訂或任何初始租約。
可用地址總數:
作用域範圍內的地址總數等於以下地址的總和:免費+動態租用+保留+不可用+停用+其他可用。