扫一扫
关注微信公众号

DHCP服务器设置不当,造成无法连入局域网
2007-10-09   网络

[故障现象]

单位为了资料共享便组建了局域网,由于电脑多而杂,为了减轻工作量,于是便在服务器上开通了DHCP服务。这样一来,我们网管的工作量确实小了不少,可是有一天单位的同事报告说大多数电脑突然无法与局域网连接了,他们不能取得其他电脑上的资料,所以就没法工作。

诊断过程



笔者立即去检查,首先查看电脑的相关属性(见上图),发现能正常工作的电脑无论是使用指定IP还是使用通过DHCP自动获取IP地址,都获得了正确的IP地址。而那些不能正常工作的电脑,是使用DHCP服务自动获得IP地址的,它们的IP地址是169.254开头的地址。这显然不对,正常工作的电脑应使用192开头的C类地址。而这些出问题的电脑用的却是B类地址。由于169与192开头的电脑不处在同一网段,又没有其他跨网段的手段,当然也就无法互通了。

于是,找到出问题的电脑,记下它的计算机名(例如PC1),目前获得的IP地址(例如192.168.0.42)备用。另找一台能正常上网的电脑,从这台电脑ping刚刚我们记下的那个IP地址“ping  192.168.0.42”,发现不通。再试着ping那台电脑的计算机名“ping PC1”,当然也不会通。但是却发现了一个意外的情况——计算机能够被解析成IP地址,但这个地址192.168.0.57显然不是我们刚刚记下的那个IP地址,这又是怎么回事?即便是重启电脑后故障依旧。

这时,突然想起以前也曾经出现过这种情况,但不像今天这样一下子坏了这么多电脑,而且过了两天它自己就好了,所以就没怎么在意。想到这里,笔者感觉可能是DHCP中的某个环节出现问题了。现在就让我们先来看看DHCP的工作原理。

DHCP(动态主机配置协议)是一种动态的机制,它允许客户机在启动引导时向DHCP服务器请求一个地址,并且由DHCP服务器集中管理记录了计算机名和IP地址对应关系的一个库。

DHCP服务器中有一个地址池,里面有多个可供分配的IP地址,每个IP地址被分配给某个客户机之后,DHCP服务器会记录下该客户机的计算机名与IP地址间的一个对应关系,并且指定一个时间间隔,它被称为租用周期。租用周期通常是由网管设定的一个时间间隔,决定IP地址可以持续使用的时间。客户机在启动的过程中会发一个广播消息,相当于大喊了一声:“谁是DHCP服务器?”

DHCP服务器听到(收到这个广播消息)之后,就会给出应答:“我能提供DHCP服务。”由于此时客户机还没获得地址,DHCP也是以广播形式给出这个应答。如果网络里有多个DHCP服务器,客户机就会收到不止一个应答,客户机会从这些应答当中选一个,于是直接向DHCP服务器发一个请求:“你好,给我分配一个IP地址吧。”

于是DHCP服务器会在应答中给出客户机所需的配置信息,并确认IP地址的使用时间,客户机也会把这次与DHCP会话所得的信息保存下来,以后在重启的过程中只需验证一下,客户机就可以直接使用上一次保存在本地的信息了。

那么,为什么现在即便是系统重启之后,客户机仍无法上网呢?而且上次的那些客户机又为什么过几天自己就会好呢?

后来,我们发现这与客户端信息的更新机制有关。客户机会把它从DHCP服务器得到的IP地址和其他相关信息保存在本地硬盘里。这些信息里包括该IP地址的使用周期。当过了使用周期,客户机就必须更新该申请。很显然,由于重启后客户机仍认为拥有“最新”的数据,也就没去与DHCP好好沟通一下,导致了数据的不一致。

那么,为什么某些电脑又获得了形如169.254.*.*之类的IP地址呢?

这说明这些电脑根本未能获得DHCP服务。如DHCP服务器太忙导致无法及时给客房机应答,使客户机认为网络里不存在DHCP服务器。这时,微软的操作系统会自动查找一个形如169.254.*.*的IP地址分配给客户机。

排除心得

经检查,的确是DHCP服务器出问题所致,于是DHCP地址池中删除那些不能上网的电脑的信息,释放这些地址资源,再重启DHCP服务器。重启完成之后通知各客户机用户也重启系统,至此故障排除。

当然,另一种解决办法就是给客户端分配固定的IP地址,在电脑数量较少的情况下,这个办法显得更好一些。

热词搜索:

上一篇:双路由器引起的地址竞争故障
下一篇:CISCO路由器口令遗忘后怎么办?

分享到: 收藏