目录

简介

先决条件

要求

使用的组件

规则

租赁为什么被标记为不可用的

提供之前 ping

收到来自客户端的 DHCPDECLINE 消息

配置错误或恶意 DHCP 服务器

强制租用可用性

其它 租赁 信息

相关信息

简介

当动态主机配置协议(DHCP)服务器运行时，某些租用显示为不可用。DHCP日志中几乎总是清楚地记录以下原因：

- 在启用优惠前执行ping。

- DHCP服务器从DHCP客户端收到DHCPDECLINE消息，该客户端租用了它认为是良好IP地址的地址。

- Cisco Network Registrar(CNR)DHCP服务器看到一条指向另一DHCP服务器的消息。

快速解决方法是强制租赁生效。不建议这样做，因为需要调查租赁为何标记为不可用。转到CNR日志目录并查找DHCP日志。服务器明确了IP地址标记为不可用的原因。

先决条件

要求

本文档的读者应掌握以下这些主题的相关知识：

- DHCP的工作原理

- CNR命令行界面(nrcmd)

- CNR GUI用户界面

使用的组件

本文档中的信息基于以下软件和硬件版本：

- 思科网络注册器5.0.X

- Windows 2000和Solaris 7

- 所有CNR版本和平台

本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始（默认）配置。如果您使用的是真实网络，请确保您已经了解所有命令的潜在影响。

规则

有关文件规则的更多信息请参见“ Cisco技术提示规则”。

租赁为什么被标记为不可用的

提供之前 ping

在为客户端分配IP地址之前，您可以选择让DHCP服务器使用互联网控制消息协议(ICMP)回显消息功能（ping实用程序）来确定是否对该地址有响应。如果CNR服务器收到对ping的响应，DHCP服务器会将该地址标记为不可用，并为客户端提供不同的IP地址。使用ping有助于防止两个客户端使用相同的IP地址。要在CNR服务器上启用Ping before，请参阅配置DHCP范围和租用的“在提供地址之前对主机执行Ping操作”部分。

对ping的响应可能是因为客户端上静态配置的IP，或中间设备（路由器、交换机）对其负责的网络上地址的ping响应不当。

要使这些租赁可用，请参阅强制租赁可用。

收到来自客户端的 DHCPDECLINE 消息

如果DHCP服务器收到来自其租用了其认为是良好IP地址的客户端的DHCPDECLINE消息，则IP地址可能被标记为不可用。

这是因为某些客户端发送地址解析协议(ARP)请求，请求其本地局域网段上的IP地址。如果有响应，DHCP客户端将IP地址返回给具有DHCPDECLINE的DHCP服务器，然后执行另一DHCPDISCOVER操作以获取新的IP地址。在这种情况下，就像ping before offer情况一样，客户端表示有一个使用IP地址的活动客户端，可能是静态配置的。然后，DHCP服务器将IP地址标记为不可用。

这通常由配置了非唯一客户端标识符的客户端引起。由于DHCP服务器使用此字段来区分客户端，因此可能会发生重复的地址分配。解决方案是将mac-address-only分配为客户端标识符。

CNR能够配置以下任一方法来区分客户端：

- 按客户端ID。客户端ID通常由客户端提供。但是，如果客户端未提供客户端ID，DHCP服务器会使用前置硬件类型= 1的唯一MAC地址的重新格式创建唯一ID。（这是根据RFC指定的默认配置。）

- 仅按MAC地址。默认情况下，在服务器上禁用此功能。（添加MAC地址的校验和，以区分此对象与实际MAC地址）。 您可以使用以下命令启用它：

nrcmd> dhcp enable Mac-address-only

此配置使DHCP服务器将客户端的MAC地址用作唯一的客户端标识符，并忽略客户端提供的客户端ID。您可以使用此参数以单一、一致的方式识别使用DHCP服务器的所有客户端。

注意：必须先配置此功能，然后才能将任何客户端视为在服务器上配置，因为此新客户端ID(仅Mac地址)与默认合成客户端ID不同。如果在生产网络上启用此选项，则在续约过程中不会将现有客户端视为自己，不会确认(NAK)它们，并强制进行新租用。这会将当前视为已租赁（使用中）的租赁捆绑到到期。因此，在启用此功能的周期内，网络上需要的地址数量是网络地址数量的两倍。

要使这些租赁可用，请按照强制租赁可用性中的说明。

配置错误或恶意 DHCP 服务器

如果DHCP服务器发现分配此租用的另一DHCP服务器，则DHCP服务器会将IP地址标记为不可用。

所有DHCPREQUEST 消息都作为初始DISCOVER/OFFER/REQUEST/ACK周期的一部分进行广播。DHCP服务器可以看到指向其他DHCP服务器的消息，并可以通过数据包中server-id选项的内容识别该消息是否指向该消息。

如果CNR DHCP服务器看到一条指向另一DHCP服务器的消息，但此消息引用的IP地址由此DHCP服务器控制，则它会标记该IP地址不可用。此DHCP服务器配置为控制地址空间，但由于它注意到另一个DHCP管理相同的地址空间，因此必须错误配置另一个服务器。

如果从一个控制DHCP服务器迁移到另一个具有不同IP地址的服务器（且未配置为已知和授权这些地址的DHCP故障切换伙伴），则会出现此行为。 在CNR 5.0.x及更高版本中，您可以禁用此行为，以便通过以下命令轻松地将地址空间迁移到另一个控制DHCP服务器：

nrcmd> dhcp set ignore-requests-for-other-servers=true

要使这些租赁可用，请按照强制租赁可用性中的说明。

强制租用可用性

您可以强制提供主机当前持有的租用。请求用户释放租约或允许您释放，然后强制其可用。您无需重新加载DHCP服务器即可使更改生效。

使用GUI（CNR 6.0.x和以下版本）：

执行下列步骤：

1. 从“范围属性”对话框的“租用”选项卡中，选择要强制的租用。

2. 双击地址以打开“租用属性”对话框。

3. 单击“强制可用”。

4. Click OK.

使用CLI:

- 使用lease <ip address> force-available命令强制当前保留的租用可用。

nrcmd> lease 192.168.1.21 force-available

- 您还可以使用scope <scope name> clearUnavailable命令使范围内的所有不可用租用都可用。

nrcmd> scope scope1 clearUnavailable

注意：范围 <scope name > clearUnavailable 命令仅在CNR 5.x及更高版本中可用。

使用WebUI（CNR 6.0.x及更高版本）：

1. 转到DHCP >范围

2. 对于包含租赁的范围，请单击租赁图标（眼镜）。

3. 在租赁列表中，点击要提供的租赁。

4. 在窗口中显示租用属性后，单击“强制可用”。

其它 租赁 信息

- 确定租赁何时不可用：

使用此命令可确定租用何时不可用：

nrcmd> lease ip-address get start-time-of-state

- 停用租用：

要将客户端从租用中移出，可以选择停用租用。如果租用可用，请停用它以防止CNR将其提供给客户端。如果租用处于活动状态（由客户端持有），请停用租用。这会阻止客户端续约租约并将其释放给其他客户端。只有在服务器运行时，才能停用租用。CNR立即停用租赁；无需重新加载DHCP服务器。如果租赁可用，则停用租赁时将不可用；如果它处于活动状态，则无法续约或任何初始租用。

- 可用地址总数：

范围内的地址总数等于以下地址之和：免费+动态租用+保留+不可用+停用+其他可用。

相关信息

- 配置DHCP范围和租用

- 技术支持 - Cisco Systems