虽然说DHCP服务器没有DNS服务那么复杂,在配置和使用过程中所出现的故障也没有DNS服务那么多,但是在一些网络结构较为复杂(如有多个域控制器、多个DNS服务器和多个DHCP服务)的网络中,一不小心,还是会出现一些问题。本节就针对DHCP服务器和DHCP客户端使用过程中出现的一些典型故障,介绍相应的排除方法。
一 DHCP服务器故障排除
在DHCP服务器上最容易出现的问题就是DHCP服务无法启动,或者所配置的作用域无法为客户端提供自动 IP地址分配服务。下面分别予以介绍。
1.DHCP服务器已停止
出现这种故障现象的原因可能有多种,下面分别予以介绍。
(1)此DHCP服务器未授权在网络上运行
我们知道,DHCP服务器必须授权在一台服务器上运行,可以是本地服务器,也可以是远程服务器。如果没有授权,则DHCP服务器就无法正常工作。DHCP服务器计算机的授权过程取决于该服务器在网络中的安装角色。在Windows Server 2003家族中,每台服务器计算机都可以安装成3种角色(服务器类型)。
域控制器:该计算机为域成员用户和计算机保留和维护Active Directory数据库并提供安全的账户管理。
成员服务器:该计算机不作为域控制器运行,但是它加入了域,在该域中,它具有Active Directory数据库中的成员身份账户。
独立服务器:该计算机不作为域控制器或域中的成员服务器运行。相反,服务器计算机通过可由其他计算机共享的特定工作组名称在网络上公开自己的身份,但该工作组仅用于浏览目的,而不提供对共享域资源的安全登录访问。

如果要直接授权给本地服务器,则直接在DHCP控制台的本地服务器上单击鼠标右键,在弹出菜单中选择【授权】命令即可。
如果想授权给域中其他成员服务器,则需在DHCP控制台的"DHCP"选项上单击鼠标右键,在弹出菜单中选择【管理授权的服务器】命令,打开如图83所示的对话框。

在这里可以添加新的服务器,然后单击【授权】按钮进行授权,也可以对已授权服务器进行授权解除,方法是在列表中选择相应的服务器,然后单击【解除授权】按钮即可。
如果要把授权服务器的任务委派给其他非企业网络管理员,则需要使用"控制委派向导"进行任务委派。具体方法如下。
(1)以域系统管理员账户登录,执行【开始】→【管理工具】→【Active Directory站点和服务】菜单命令,打开如图84所示的"Active Directory站点和服务"控制台。

(2)选择"Active Directory站点和服务"节点,执行【查看】→【显示服务节点】菜单命令。然后在控制台树中选择"Services"节点下的"NetServices"选项。单击鼠标右键,在弹出菜单中选择【委派控制】命令,打开如图85所示的对话框。
(3)单击【下一步】按钮,进入如图86所示的界面。

(4)单击【添加】按钮,打开如图87所示的对话框。在这里可以添加您要对之委派DHCP授权权限的用户,本例为winda。要在一项操作中添加多个用户,请依次键入用户名,并用分号隔开。输入好后单击【确定】按钮返回到如图86所示的界面。

(5)单击图86所示界面中的【下一步】按钮,进入如图88所示的界面。在此选择"创建自定义任务去委派"单选项。
(6)单击【下一步】按钮,进入如图89所示的界面。在此选择"这个文件夹,这个文件夹中的对象,以及创建在这个文件夹中的新对象"单选项。

(7)单击【下一步】按钮,进入如图90所示的界面。在列表中选择"完全控制"复选项。此时系统会自动选择所有选项。这将启用在本过程中委派的用户或组账户的访问控制权限,从而使该用户或组可以在NetServices文件夹中添加、修改或删除DHCP类别类型的新对象。
(8)单击【下一步】按钮,打开如图91所示的向导完成界面。在此界面中显示了以上各步的配置摘要。如果发现某项配置不妥,可通过单击【上一步】按钮返回到相应步骤重新配置。确认无误后单击【完成】按钮完成控制委派向导。

(2)详细配置信息可能不正确或不在服务器上
如果您刚完成了设置或管理DHCP服务器的工作,可能需要审阅提供的清单以查看是否在安装过程中遗漏了关键步骤。
(3)DHCP服务器已停止运行
如果是这方面的原因,可检查系统事件日志和DHCP服务器审核日志文件。当DHCP服务器的服务停止运行或不能启动时,在这些日志中通常可找到有关服务故障或关机的来源等有用信息。
2.DHCP服务器不能为客户端提供服务
出现这种故障的原因也有多个,下面分别予以介绍。
(1)此服务器为多宿主计算机,而且不在一个或多个网络连接上提供服务
解决方案是根据您是否选择了为任何,或所有安装在服务器计算机上的连接静态或动态配置TCP/IP,来检查Windows Server 2003 DHCP对网络连接的默认绑定。同时,审阅多宿主DHCP服务器配置的范例,以查看是否您已经丢失任何关键的详细信息。
(2)要使用的DHCP服务器上的作用域或超级作用域,或者没有配置,或者没有激活
解决方案是,添加作用域,并确保这些作用域已经与指派给客户端使用的任何DHCP作用域选项一起正确配置。
(3)服务器与它的一些客户端在不同的子网上,并且不为远程子网上的客户端提供服务
如果您在路由网络不同子网中使用相同的DHCP服务器,则需要配置DHCP中继代理。
(4)使用的作用域已满,而且不能再将地址租用给请求的客户端
如果DHCP服务器没有可用的IP地址来提供给客户端,则会向客户端返回DHCP否定确认消息(DHCPNAK)。出现此情况时,请考虑下列可能的解决方案。
增大当前作用域的"结束IP地址"来扩大地址范围。
创建新的附加作用域和超级作用域,然后将当前的作用域和新建的作用域添加到超级作用域中。
新建作用域或扩大范围。在非常好的情况下,您可以为当前的IP网络重新编号。根据需要停用旧的作用域,然后配置并激活新的作用域。
缩短租约期限。这可能有助于加速失效作用域地址的回收。
与DHCP相关的其他过程和技术也可能有助于加速或减缓从要停用的现有作用域转换到为取代它在服务器上的作用而创建的新作用域。包括从要停用的作用域中删除客户端租约,而不包括来自该作用域的地址,然后在已激活新的作用域后停用它。这能够确保DHCP客户端从新的作用域获得租约。
(5)由DHCP服务器提供的IP地址范围与由网络上另一个DHCP服务器提供的地址范围冲突
如果DHCP服务器日志仍指出将DHCP否定确认消息(DHCPNAK)返回给请求的客户端,或者您在客户端上手动尝试续订租约未获成功,则您可以确认发生这种情况的可能原因。解决方案是,修改用于每个DHCP服务器上作用域的作用域地址池以确保作用域IP地址不重叠。您可根据需要将排除条件添加到作用域,删除客户端租约,并且临时启用服务器端的冲突检测以帮助解决问题。
3.同一子网上的两台DHCP服务器中有一台不能为客户端服务
出现这种故障的原因一般是该DHCP服务器未在Active Directory中获得授权。解决方案是,如果该DHCP服务器是域成员,必须在Active Directory中授权该服务器。授权的方法参见本小节前面第1个问题中介绍的方法。
有时偶然会在同一子网上存在独立服务器和域成员服务器。当独立服务器检测到域成员服务器时,它会试图验证自己是否已在Active Directory中获得授权。即使在与独立DHCP服务器相同的子网上驻留有域控制器,该DHCP服务器仍无法通过此域控制器验证自己的状态,因为该DHCP服务器不是域的成员。当独立服务器无法访问域控制器来验证自己是否已被授权时,它将停止客户端服务,并在DHCP控制台中显示红色图标以说明自己是未授权的。如果希望该独立服务器能为子网上的客户端提供服务,请删除该子网上已授权的DHCP服务器。
4.DHCP服务器显示有某些数据损坏或丢失
出现这种故障现象的原因一般是DHCP服务器数据库已损坏,或丢失了服务器数据,导致报告JET数据库错误。解决方案是,使用DHCP服务器数据恢复选项来还原数据库,并修正任何报告的错误。也可使用DHCP控制台中的协调功能来验证和协调服务器能找到的任何数据库不一致性情况。
协调作用域可以修复不一致的问题,如存储在作用域租用信息中的客户端IP地址不正确或丢失信息。DHCP服务器服务以两种形式存储作用域的IP地址租用信息,如下所列。
详细的IP地址租用信息,存储在DHCP数据库中。
摘要性的IP地址租用信息,存储在DHCP数据库中。
协调作用域时,会将详细的和摘要性的条目进行对比来查找不一致的地方。
要改正和修复这些不一致的地方,您需要协调执行此操作时发现的任何不一致的作用域。一旦选择并协调了不一致的作用域,DHCP服务即会将这些IP地址交还给其最初的所有者或者创建对这些地址的临时保留。这些保留地址对于指派给作用域的租约时间来说是有效的。当租约时间到期时,地址将被还原以备后用。
要协调DHCP服务器上的DHCP数据库,可在DHCP控制台中的DHCP服务器上单击鼠标右键,在弹出菜单中选择【协调所有作用域】命令,打开如图92所示的对话框。
单击【验证】按钮,如果在状态窗口中报告"发现不一致",则选择所显示的需要协调的地址,然后单击【协调】按钮来修复不一致性;如果数据库一致(如图93所示),请直接单击【确定】按钮。

如果要协调作用域,则在相应作用域上单击鼠标右键,在弹出菜单中选择【协调】命令,打开如图94所示的对话框。如果作用域不一致,请选择所显示的需要协调的地址,然后单击【协调】按钮修复不一致性。如作用域一致,请直接单击【确定】按钮(参见图93)。

二 DHCP客户端故障排除
在DHCP客户端,就DHCP服务而言,所出现的故障通常表现为不能从DHCP服务器获取IP地址,或者所获取的IP地址不正确,或者不能应用其他配置选项,如网关、DNS服务器等。下面对这些典型故障予以具体分析,并介绍相应的解决方案。
1.在测试时显示DHCP客户端没有IP地址,或指出它的IP地址是0.0.0.0
从显示结果可以看出,此客户端没能与DHCP服务器联系,并获得IP地址租约,可能的原因是网络硬件故障,或DHCP服务器不可用。
解决方案是检查客户端是否有有效的网络连接。首先,使用基本网络和硬件故障排除方法,检查相关的客户端硬件(电缆和网络适配器)在客户端是否运转正常。如果客户端硬件显示就绪并运行正常,则从受影响的DHCP客户端所在的同一网络上的另一台计算机使用ping程序检查DHCP服务器在网络上是否可用。
2.DHCP客户端显示出它已被自动指派对于当前网络不正确的IP地址
究其原因是运行Windows 98、Windows Millennium Edition或Windows XP的客户端无法找到DHCP服务器,因而使用了IP自动分配技术(本章前面已有介绍)来配置它的IP地址。它的IP地址范围为169.254.0.1~169.254.255.254。
在一些大型网络中,禁用IP自动配置可能是网络管理所需要的。首先,使用ping命令测试从客户端到服务器的连接性。下一步是检查或手动尝试续订客户端租约。根据网络要求的不同,可能需要在客户端上禁用IP自动配置。在作出这样的决定前,可以多了解一些有关IP自动配置及其工作原理的信息。
要验证、释放或续订客户端地址租约,在运行Windows XP或Windows Server 2003家族的某个产品且启用了DHCP的客户端计算机上,进入命令提示符状态。使用ipconfig命令行实用工具通过DHCP服务器验证、释放或续订客户端的租约,如下所示。
要验证DHCP客户端的租约,请键入ipconfig命令以查看租约状态信息。或者,键入ipconfig/all。
要释放DHCP客户端租约,请键入ipconfig/release命令。
要续订DHCP客户端租约,请键入ipconfig/renew命令。
配置客户端的DHCP自动配置比较简单,只需在如图95所示的对话框中选择"自动获得IP地址"单选项即可,如果在DHCP服务器中配置了DNS等选项,则还可以选择"自动获得DNS服务器地址"单选项,使DNS服务器地址的指派也由DHCP服务器担当。但是如果要禁止自动配置功能,则比较麻烦,需要在注册表中进行配置。具体方法如下。

(1)在相应客户端的"运行"窗口中输入regedt32命令,进入注册表编辑器窗口。找到注册表项:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\ Parameters,如图96所示。
(2)单击鼠标右键,然后在弹出的菜单中选择【编辑】命令。
(3)选择Parameters 文件夹,单击鼠标右键,在弹出菜单中选择【新建】→【DWORD值】命令,在右边窗口中会新添加一个键项。为新键项取名为"IPAutoconfigurationEnabled"(有的系统中已有这个键项,则不用新添加了)。
(4)在新建的键项上单击鼠标右键,在弹出菜单中选择【修改】命令,打开如图97所示的对话框。在"数值数据"文本框中,确保设置为0。

(5)退出注册表编辑器,并重新启动计算机即可生效。
这样就完成了一台客户端禁止使用IP地址自动分配方式的配置,其他需要禁止自动配置方式的客户机按以上同样方法配置即可。
3.DHCP客户端显示正丢失某些详细网络配置信息,或不能执行相关的任务
这种故障现象一般比较少见,从其现象可以看出是因为客户端丢失其租用的配置中的DHCP选项。客户端之所以丢失其租用的配置中的DHCP选项,大多数是因为DHCP服务器没有进行选项配置,或者客户端不支持由服务器分配的选项。
解决方案是对于Microsoft DHCP客户端,检查它是否在选项指派的服务器、作用域、客户端或类别层次上已配置最通用和受支持的选项。参见本章前面8.11节中的相关内容介绍。
4.DHCP客户端有不正确或不完整的选项
这种故障通常表现为客户端为所在的子网而配置的默认网关不正确或丢失。究其原因通常是客户端已指派完整和正确的DHCP选项集,但是其网络配置仍不能正常工作。如果使用不正确的DHCP路由器选项(选项代码3)配置了DHCP服务器的客户端默认网关地址,运行Windows NT、Windows 2000或Windows XP的客户端都能重新自动搜索正确的地址来使用。但是,运行Windows 95的DHCP客户端会使用不正确的地址。
解决方案是针对相应DHCP作用域和服务器上的路由器(默认网关)选项更改IP地址列表。如果您在受影响的DHCP服务器上将该路由器选项配置为"服务器选项"(如图8-98所示),请在此处删除它,并在服务于此客户端的相应DHCP作用域的"作用域选项"节点中设置正确的值(如图99所示)。
在极少数情况下,您必须单独配置DHCP客户端,以使用与其他作用域客户端不同的路由器的专用列表。在这种情况下,您可以添加保留,并配置专用于保留的客户端的路由器选项列表。添加的方法是在相应作用域上添加的保留项上单击鼠标右键,在弹出菜单中选择【配置选项】命令,打开如图100所示的对话框,在这里可以专门为该保留客户端配置单独的路由器(默认网关)选项。

5.许多DHCP客户端不能从DHCP服务器取得IP地址
出现这种故障现象的原因可能有多种,下面分别予以介绍。
(1)DHCP服务器的IP地址更改了,且当前DHCP客户端不能获得该新的IP地址
因为DHCP服务器只能对和它的IP地址具有相同网络ID的作用域请求服务,所以要确保DHCP服务器的IP地址处于和它所服务的作用域相同的网络范围中。例如,除非使用超级作用域,否则192.168.0.0网络中具有IP地址的服务器不能从作用域10.0.0.0中指派地址。
(2)DHCP客户端通过DHCP服务器所在子网的路由器定位,并且不能接收来自该服务器的地址
通过本章前面的学习,我们知道,DHCP服务器只有在以下情况中才能为远程的多个子网上的客户端提供IP地址,那就是在这些子网中用路由器,或者专门DHCP中继代理的Windows网络服务器系统来可充当DHCP中继代理。
执行下列步骤可能会解决该问题。
(1)在客户端子网(即相同的物理网段)上配置BOOTP/DHCP中继代理。中继代理可以位于以下位置:路由器自身;运行Windows NT Server和DHCP中继代理组件的计算机;运行Windows 2000 Server、启用了路由和远程访问服务,以及被配置为DHCP中继代理的计算机;或者运行Windows Server 2003操作系统、启用了路由和远程访问服务,以及被配置为DHCP中继代理的计算机。
(2)在DHCP服务器上,进行下列操作。
配置作用域,地址范围为远程子网地址,以匹配在受影响的客户端所在的路由器的另一端的网络地址。
在此作用域中,确保用于远程子网的子网掩码是正确的。
在DHCP服务器的网络连接上仍使用原来的默认网关,但要不使用担当中继器的路由器IP地址。
通过配置,在DHCP服务器所在的相同本地子网或网段上使用的超级作用域中不包含该作用域(即用于远程子网的那个)。
确保在DHCP服务器和远程子网客户端之间只有一个逻辑路由器。
(3)相同的局域网(LAN)上存在多个DHCP服务器
解决方案是确保您没有在具有重叠作用域的相同局域网上配置多个DHCP服务器。但您可能需要排除这种可能存在的情况:即其中一个有问题的DHCP服务器是Small Business Server(SBS)的计算机。按照设计,DHCP服务器的服务在SBS下运行时,会在局域网上检测到另一台DHCP服务器时自动停止。