当动态主机配置协议(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技术提示规则”。
在为客户端分配IP地址之前,您可以选择让DHCP服务器使用互联网控制消息协议(ICMP)回显消息功能(ping实用程序)来确定是否对该地址有响应。如果CNR服务器收到对ping的响应,DHCP服务器会将该地址标记为不可用,并为客户端提供不同的IP地址。使用ping有助于防止两个客户端使用相同的IP地址。要在CNR服务器上启用Ping before,请参阅配置DHCP范围和租用的“在提供地址之前对主机执行Ping操作”部分。
对ping的响应可能是因为客户端上静态配置的IP,或中间设备(路由器、交换机)对其负责的网络上地址的ping响应不当。
要使这些租赁可用,请参阅强制租赁可用。
如果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服务器会将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服务器即可使更改生效。
执行下列步骤:
从“范围属性”对话框的“租用”选项卡中,选择要强制的租用。
双击地址以打开“租用属性”对话框。
单击“强制可用”。
Click OK.
使用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及更高版本中可用。
转到DHCP >范围
对于包含租赁的范围,请单击租赁图标(眼镜)。
在租赁列表中,点击要提供的租赁。
在窗口中显示租用属性后,单击“强制可用”。
确定租赁何时不可用:
使用此命令可确定租用何时不可用:
nrcmd> lease ip-address get start-time-of-state
停用租用:
要将客户端从租用中移出,可以选择停用租用。如果租用可用,请停用它以防止CNR将其提供给客户端。如果租用处于活动状态(由客户端持有),请停用租用。这会阻止客户端续约租约并将其释放给其他客户端。只有在服务器运行时,才能停用租用。CNR立即停用租赁;无需重新加载DHCP服务器。如果租赁可用,则停用租赁时将不可用;如果它处于活动状态,则无法续约或任何初始租用。
可用地址总数:
范围内的地址总数等于以下地址之和:免费+动态租用+保留+不可用+停用+其他可用。