最近,单位局域网中不断有用户反映,他们的终端无法登录文件服务器,即使勉强能够登录,上网速度也是十分缓慢。执行“cmd”命令,切换到DOS命令行工作窗口,输入“ipconfig/all”命令并回车,从返回的如图1所示结果中,看到终端计算机无法从局域网的DHCP服务器那里自动获得IP地址,而只能获得Windows系统自动分配的169.254.14.176地址。
图1 终端无法自动获取IP地址
很显然,终端无法从DHCP服务器那里自动获取IP地址,是用户无法上网访问的原因。担心交换机工作时间长了以后,会出现缓存溢出之类的错误,于是赶到交换机现场,重新启动了一下该设备的后台系统,交换机信号灯显示状态正常,那么只有宽带路由器可能有问题了。
既然终端无法自动获得IP地址,那问题肯定与路由器中的DHCP服务器有关。在排查DHCP服务器之前,笔者上网查询了相关资料,弄清楚了DHCP服务器工作原理。当终端初次登录连接单位网络的时候,它会自动向局域网发送一个DHCP Discover封装数据包,由于终端还不清楚自己究竟属于哪一个工作子网,所以DHCP Discover封装数据包的源始地址会被写成“0.0.0.0”,而目的地址会被写成“255.255.255.255”,再附加上DHCP申请信息,以广播形式向整个网络发送。
默认状态下,Windows系统会将DHCP Discover封装数据包的等待响应时间预先设定为1秒,在1秒之内没有接收到响应时,就会向网络继续发送第二次DHCP Discover封装数据包广播信息……终端会持续向网络发送四次DHCP Discover封装数据包广播信息(其中后面三次的等待时间依次是9秒、13秒、16秒),如果没有收到局域网DHCP服务器的响应时,终端就会自动提示出错,证实动态地址申请失败。之后,终端会在5分钟后,继续重复向网络发送DHCP Discover封装数据包。当DHCP服务器接收到终端的申请信息后,会及时向终端发送应答数据包。一旦终端机收到应答数据包后,就能使用DHCP服务器分配的IP地址进行上网访问了。
从原理来看,终端机不能获得动态IP地址,很可能是DHCP服务器没有对申请及时响应,也有可能是DHCP服务器虽然进行了及时响应,但是终端机由于网络连接原因,没有接收到应答数据包。使用网络线缆测试工具,对故障的物理线缆连通性进行了测试,发现连通性很正常,问题应该出在DHCP服务器自身。
以系统管理员权限登录局域网路由器后台系统,发现登录速度异常缓慢。使用笔记本电脑通过Console控制线直接连接到路由器的控制端口上,发现CPU使用率竟然达80%以上,按理来说,该数值应该在20%左右,很明显路由器在超负荷工作,这就造成了DHCP服务器无法及时响应终端机的地址申请。
于是,笔者停用了路由器自带的DHCP服务器功能,另外部署了一台专门的DHCP服务器,让路由器和DHCP服务器各司其职,从而避免了路由器运行负荷过重的现象。