对于DHCP的一些故障问题,你是不是觉得无从下手呢?没关系,本文就将为大家总结一下相关的问题吧。众所周知每台计算机要想正常上网需要有一个地址,这个地址就是我们常说的IP地址。在实际工作中身为网络管理员的我们如何有效的管理这些IP地址呢?为每台计算机设置对应的IP地址,子网掩码,网关地址,DNS地址等网络参数的话固然是可以的,但是非常的烦琐,工作量大不说,在实际应用中很可能经常会出现冲突的现象。
我们如何有效的分配这些网络参数呢?DHCP服务可以帮我们大忙,通过将DHCP服务配置在专业的服务器上,然后为网络中所有普通客户机分配IP等信息是件效率非常高的工作。不过DHCP在为我们网络管理提供便利的同时也带来了一些问题。例如网络带宽受影响,客户机经常无法获得正确的地址信息,甚至是无法获得任何信息。其实这些故障我们都可以按照一定的规律去解决的,今天就由笔者为各位读者全面介绍排查DHCP故障的方法。
一、概念篇:
在介绍排查DHCP故障之前首先为大家阐明几个概念性的东西,只有理论上充实了,才能更好的理解下面介绍的故障排除的思路。
第一:DHCP服务能够提供什么数据?DHCP服务不是万能的,他只能提供网络层相关的参数,例如IP地址,MASK地址,网关地址,WINS与DNS服务器地址等。对于更低层的地址,诸如MAC地址等信息是无法提供的。MAC地址是烧录在计算机网卡中的。
第二:多台DHCP服务器是否可以同时运行?DHCP服务器是通过广播包向客户机发送网络信息的,因此如果同一个网络中确切的说是同一个广播域中存在多台 DHCP服务器的话,就会出现各个服务器提供各自的网络信息,这样就造成网络中广播数据包的冲突。客户机不知道该接受哪台DHCP服务器发来的信息。因此微软公司设置默认情况下同一个广播域网络中只能存在一台DHCP服务器,后设置建立或启用的DHCP将无法工作。
第三:租约是什么?在配置DHCP服务器过程中会设置租约的天数,那么什么是租约呢?在DHCP服务器将网络信息分配数据包发给客户机后会收到客户机发回的答复数据包,接着DHCP服务器会将已经分配出去的IP地址与从客户机接收到的该计算机MAC地址建立一个对应关系,并把这个对应关系保存在DHCP服务器的租约池中。为什么需要这个租约池呢?一方面为下次分配网络参数信息提高了速度。不过如果该MAC地址对应条目的客户计算机被移到其他地方或者MAC 地址发生了改变的话,如果上面建立的对应关系一直保存在DHCP服务器的租约池中就会造成可用的IP地址数量越来越少,很多有效的地址被无效的MAC占用,因此微软引入了租约这个概念。通过租约我们可以强制每隔一段时间将DHCP服务器的租约池中保存的对应条目全部清空,从而防止了非法MAC地址霸占合法IP的现象。
第四:我的客户机可以从DHCP服务器获得169.254.*.*形式的IP信息,这句话是错误的。为什么呢?微软公司在windows2000系统中提供了这样的功能,即如果网络中不存在任何DHCP服务器,客户机本地网络信息又被设置为自动获得IP方式的话,那么windows2000及其以上操作系统将自动为自己分配一个诸如169.254.*.*形式的IP信息。因此如果你发现自己的客户机只能获得169.254.*.*这样的IP地址的话,说明你的DHCP服务器没有正常工作。
二、客户端排障:
DHCP故障主要有两个方面,客户机存在问题以及服务器自身问题。首先我们来介绍下在客户端进行的排除故障方法。
第一步:通过任务栏的“开始->运行->输入CMD”进入命令行模式。
第二步:在命令行模式中输入ipconfig后回车,看是否可以自动获得IP地址。
小提示:在进行前两步操作前首先要保证客户机的IP地址分配方式被设置为自动获得IP地址。
第三步:如果可以获得正确的IP地址说明DHCP正常,如果发现获得错误的地址,其中包括169.254.*.*这样的形式,则执行ipconfig /release命令,该命令是将当前获得的网络参数信息释放。
第四步:释放网络参数后再次执行ipconfig我们会看到当前得到的网络参数已经为空,所有信息变成0.0.0.0。
第五步:释放得到的错误信息后执行ipconfig /renew将自动获得新的信息。
小提示:如果我们不执行释放IP信息的命令直接运行ipconfig /renew的话将无法重新获得IP信息。因此第三步必不可少。
第六步:重新获得IP信息后我们查看当前的地址参数,如果无法获得任何信息的话还是要从本机入手解决问题,如果获得的是错误信息的话则需要找到DHCP服务器,对其进行检查。
第七步:将本地网卡禁用然后再次启用,按照上面介绍的步骤重新做一次。
第八步:如果我们知道DHCP服务器的IP地址的话,可以在客户机上使用ping命令“ping 服务器ip”查看网络连通情况。
第九步:在系统的“事件查看器”中寻找有无关于DHCP服务相关的故障记录。方法是“开始->控制面板->管理工具->事件查看器”。
第十步:通过“开始->控制面板->管理工具->服务”打开服务设置窗口,在服务列表中找到dhcp client service。在其上双击,然后点停止按钮,接着再点启动按钮将其重新启动。如果发现该服务本身没有启用则更说明了故障的根源所在,直接启动并设置启动方式为“自动”即可。
第十一步:打开网络的本地连接进行修复,方法是“网上邻居->属性->本地连接->修复”。系统将自动清除ARP缓存与NETBS信息,接着更新DNS与DHCP服务组件与相关信息。
第十二步:如果上面十一步仍然不能解决问题的话,我们只能先使用静态IP地址与DNS等网络信息配置本机来进行检测了。如果配置了静态IP信息后可以正常上网,连接LAN的话,则说明问题的出在客户机与DHCP服务器的连接或者DHCP服务器自身上。我们就要将问题的起因放到DHCP服务器上。
小提示:有的时候为客户端设置一个其他用户,然后使用该用户登录也可以解决部分DHCP故障,另外用 lspfix.exe或winsockxpfix.exe,修复tcpip的栈区错误,结合“开始->运行->输入sfc /scannow”扫描一遍系统文件也能得到意想不到的结果。
三、服务器排障:
DHCP 服务器的排障方法我们已经介绍过很多了,感兴趣的读者可以查阅以前服务器频道相关文章。主要的手段就是查询服务器上的dhcp server的设置是否正常,如果没有启用将其开启。另外还要时不时的将DHCP服务器关闭查看是否网络中还存在其他DHCP服务器从而产生冲突。另外在网络建立域的情况下,要想开启DHCP服务器是需要由域控制对该DHCP服务器授权的,所以授权工作不要遗忘。
还需要提的一点就是租约的问题,如果发现DHCP工作正常,一部分客户机无法获得IP信息,执行ipconfig /renew提示找不到DHCP服务器,而另外一部分可以正常获得的话,百分之九十是因为租约的原因,要嘛租约里保存的信息过多,需要我们手工清除一次;要嘛租约时间设置的过长,以至于大量非法MAC占用了有效IP地址。
小提示:凡是提供DHCP服务的服务器都必须设置固定IP地址,想在动态获得IP信息的计算机上启用DHCP服务是不可以的。而且虽然微软公司在限制 DHCP服务上做了规定,例如同一个网络中不容许两台DHCP存在。但是目前有很多第三方软件可以建立DHCP服务器,甚至是宽带路由器也将DHCP功能集成于自身配置中,因此在这种情况下就无法清楚的查询出网络中到底存在几个DHCP服务器了,我们只能将怀疑对象一一关闭或者在交换机及路由器上将怀疑对象进行访问控制列表过滤。总之网络中存在非法DHCP服务器引起的网络故障是非常难解决的,需要反复调查循序渐进。
总结:当DHCP 服务出现问题时不要盲目的去服务器上查找结果,大部分时候都是因为客户机故障造成的,另外客户机与服务器之间的媒介也要值得注意,网线是否连接正常,交换机是否工作正常都是需要考虑的,必要时一定要多多替换,换几个网线或几个交换机端口来判断。切记不要想当然去操作,要脚踏实地的去测量才能得到真正的结果。