网络通信 频道

案例解析,不堪重负DHCP服务器罢工了

  在不少企事业单位,出于节约资源或者便利的需要,往往在一台PC机上部署很多服务,这样这台PC就兼职较多服务器功能。这样的规划确实方便了管理和维护,但也为网络的安全、稳定运行埋下了隐患。一旦网络发生故障,对整个局域网的影响几乎是毁灭性的。和大家共享一个相关案例,以引起大家的重视。

  一、网络状况描述

  这个案例来自某高级中学的中心机房。在该校的中心机房里有不少服务器,有为大多数计算机提供服务的公共服务器,例如DHCP服务器。也有为专业机房和专业软件服务的专用服务器,例如ERP服务器等。其中仅有的一台DHCP服务器为3个机房大约150台客户端提供服务,负责所有机房学生机IP地址的自动分配。通常情况下,该校的机房至少有2个处于使用状态,一直以来DHCP服务器运行良好。

  最近,该校的机房部署了在线考试系统,需要一个数据库服务器以保存考试题库,以及进行评分等。于是,管理员在这台DHCP服务器上同时部署了在线考试系统,以提供考试中的数据交互和存取服务。此外,由于机房没有磁盘存储阵列,该DHCP服务器同时还作为文件服务器。以备份机房各种相关资料,如驱动程序、服务器应用软件、上机练习题、考试题、系统镜像文件等。学生机只有系统分区在硬盘还原卡的保护之下,其他分区没有设定为保护留给学生作为数据盘。为了便于维护,学生机部署完毕之后,在服务器上做了系统的镜像备份,这样一旦系统被学生破坏,可以很方便地通过网络克隆来恢复。于是,这台DHCP服务器还兼职这项功能。

  二、故障现象及诊断

  在网络考试前一天的模拟测试中,发现测试机房中的客户端大部分无法登录,登录后无法获取题库或者速度非常慢。同时,另外一个机房中正在进行上机课,上课的老师也反映学生机大面积网络不通。上课老师马上进行了排错,发现并不是由于链路故障所致。然后,在操作系统的命令提示符中中使用网络命令ipconfig,发现客户端机器无法获得IP地址。因此可以肯定是此原因使得不能访问网络,重新启动计算机故障依旧,证明问题不是出在学生机上。查看交换机指示灯显示状态正常,没有因堵塞产生死机的现象,那么问题只能是出在DHCP服务器上了。接下来查看DHCP服务器上的DHCP服务状态,也显示也正常,但是发现服务器操作反应较慢。那是什么原因导致DHCP服务器相应变慢呢?

  三、故障原因分析

  要理解导致DHCP服务器相应变慢的原因,我们有必要了解一下DHCP服务的工作过程。如果在局域网中部署了DHCP服务器,并且客户端设置为自动获得IP地址。这样当DHCP客户端第一次登录网络的时候,也就是客户端发现本机上没有任何IP数据设定,它会向网络发出一个DHCP discover封包。因为客户端还不知道自己属于哪一个网络,所以封包的来源地址会为

  0.0.0.0,而目的地址则为255.255.255.255,然后再附上DHCP discover的信息,向网络进行广播。在windows的预设默认情况下,DHCP discover的等待时间预设为1秒,也就是当客户端将第一个DHCP discover封包送出去之后,在1秒之内没有得到响应的话,就会进行第二次DHCP discover广播。若一直得不到响应的情况下,客户端一共会有四次DHCP discover广播(包括第一次在内)。除了第一次会等待1秒之外,其余三次的等待时间分别是9、13、16秒。如果都没有得到DHCP服务器的响应,客户端则会显示错误信息,宣告DHCP discover的失败。之后,基于使用者的选择,系统会继续在5分钟之后再重复一次DHCP discover的过程;当DHCP服务器收到DHCP客户机广播的DHCP discover信息后,它会向DHCP客户机发送DHCP offer信息,其中包括一个可租用的IP地址。一旦客户机收到DHCP offer信息,就将使用服务器所提供的IP地址。

  从DHCP的工作过程来分析,学生机无法获得IP地址应该是DHCP服务器没有做出响应,或者是DHCP服务器做出了响但学生机没有收到DHCP服务器的DHCP offer信息造成的。测试网线后首先排除了由于网络硬件原因造成学生机收不到DHCP服务器响应的可能,由此判断就是DHCP服务器没有做出正常响应,但是DHCP服务器为什么没有做出响应呢?

  大家都知道,此时另外一个机房正在进行在线考试的模拟测试,在测试中客户端会与服务器之间有大量的数据交互,这些数据占用了大量的系统资源和网络带宽,因此造成DHCP服务器的相应缓慢。这样就进入了一个恶性循环,不但在线考试系统无法正常工作,学生机无法获得IP地址无法上网,而且在网络中充斥着大量的重复请求(包括DHCP客户端和在线考试系统客户端)。这些垃圾信息占用了大量带宽,形成了网络风暴。更为巧合的是,此时第三个机房内正有几台系统被学生破坏的计算机在进行网络克隆恢复。服务器需要进行大量的数据传输,这样就使得服务器网络端和总线负担过重,不仅操作系统进程无法及时响应学生机发出的DHCP请求,而且三个机房谁都无法正常工作。

  四、故障排除

  很明显,这台不堪重负的DHCP服务器造成了三个机房的系列故障。要从根本上解决问题,只有通过升级服务器或者增加服务器的数量,做到各司其职,从而避免服务器负担过重。即部署专门的DHCP服务器以供机房的IP服务,部署专门的数据库服务器以服务于在线考试系统,部署专门的文件服务器以提供文件服务器和提供网络克隆服务。这样,虽然需要额外的投入,但是这是必须的。不过,购置专门的服务器对于诸如学校这样的事业单位不太现实。在笔者的建议下,该校采取了这样的方案:由于在线考试系统的数据交互频繁,对服务器要求比较高,因此取消这台服务器的DHCP服务和文件共享服务器,专职考试数据库服务。DHCP服务和文件共享服务,对于系统性能要求不是很高可以用一般的PC机代替。在进行上面的重新部署后,类似的故障再也没有出现

  不过,让我们好奇的是,该校的网络管理员为什么在当初的部署和测试中发现这个问题呢?据笔者了解,原来当初他们是在三个机房中分别进行的测试,而没有在三个机房中同时进行针对服务器的压力测试。

  五、小结

  通过这个案例,我要说的是,局域网是个完整的逻辑体系它有其自身的特点。服务器作为网络功能实现的核心必须我们要保证它的正常工作,超过正常的使用极限和范围就会对部分或者整个网络带来意想不到的后果。特别是对于像DHCP这样提供最底层服务的公共服务器,不要使其负载过重。因为,不堪重负它们就会罢工。

0
相关文章