交换机等网络设备的某些问题不仅仅会影响到某个端口的工作,而且还会影响到整台交换机的正常运行。如下图所示,如果IP地址为192.168.0.2的主机中了病毒,不断的向所在的广播域发送广播风暴或者进行多次ARP检测,此时连接这台PC的交换机端口工作指示灯会不断的闪烁,表明传输的数据量非常的大。如果不对这种情况进行抑制的话,则这个问题会影响到整台交换机,甚至整个网络,最终导致网络性能下降或者瘫痪。
一、利用Error-Disable特性避免问题扩大
那么是否有有效的机制能够将问题锁定在最小的范围之内呢,避免问题无限扩大涉及到无辜?在思科系列的交换机中,就是采用Error-Disable特性来解决这个问题。通过error-disable特性,可以实现在错误状态影响到整台交换机或者其余网络之间,让交换机及时的检测到特定接口的错误情况并自动将这个端口设置为Error-Disable状态,禁止任何数据的转发。
如上图所示,在交换机的各个端口网络管理员都设置了严格的端口安全规定。此时如果192.168.0.2主机发送违规的数据包,违反了端口安全规定,此时只要交换机启用了Error-Disable特性,那么交换机就能够及时的检测到这种情况。并会在第一时间将这台主机连接的交换机端口设置为Error-Disable状态。此时就好像禁用了这个接口一样,交换机将不会接受来自这个违规主机的任何数据包,直到这个接口恢复为正常为止。通过这种机制,可以将网络威胁或者故障限制在最小的范围之内,避免影响到其它正常的交换机端口。
在启用这个特性之前,网络管理员需要了解交换机会自动监测哪些错误。这对于后续的维护与故障排除具有很大的帮助。一般来说,型号不同,其检测的错误也有所不同。大部分情况下,思科系列的交换机可以检测到如下几种常见的错误。如单播扩善、风暴控制、端口安全违规、链路翻动、DHCP限速违规、BPDU防护检测、ARP检测等等多到十多种错误。不过由于不同的型号之间有比较大的差异,为此还需要管理员在选购交换机之前根据企业自身的需要进行确认。 #p#
二、利用自动恢复机制来恢复交换机端口
当检测上以上任何一种错误代码时,交换机就会将特定的端口设置为error-diable状态。出于这种状态的交换机端口,其工作状态就类似于链路Down状态。当然,这种状态不能够一直持续下去,等到故障解除后需要将这个状态再改回去,让其能够正常工作。这就涉及到端口的恢复问题。
其实我们都知道,不少的网络错误可能是突发的。如过多的广播风暴等等,其可能是由于企业外来人员的电脑临时接到企业网络所造成的。因为大部分企业都有比较全面的防火墙与企业级别的防病毒软件。病毒想从企业外界侵入的话比较困难。所以很多病毒都是从企业内部突破的。当外来人员的电脑离开企业网络之后,这种情况就会解除。那么此时交换机的端口也要能够自动恢复。如果过长的将交换机端口处于Error-Disable状态,会影响到企业用户的正常网络通信。为了减少这个负面影响,我们就想到交换机能否有自动恢复的机制。即每隔一段时间去检测交换机故障端口,看看故障的原因还是否存在。如果故障已经消除了,那么就自动恢复这个端口。如此的话,当终端故障消除后,就不用在手工的对交换机的端口进行恢复操作。
值得庆幸的是,思科系列的交换机正好支持这个自动恢复的策略。通过在交换机中配置合理的时间间隔,交换机就能够自动从error-disable故障状态恢复到正常状态。不过其实现的比我们设想的还有一段距离。交换机的自动恢复策略并不会实时的监测交换机的故障原因是否解除。而是每隔一段时间将端口恢复,而不管连接这个端口的客户端问题是否解决了。如果恢复后发现错误仍然存在,那么这个接口就会马上再一次进入到error-diable状态。只有问题真正的解决了,这个端口才能够正常的工作。可见自动恢复机制也有一定的漏洞。因为端口状态频繁的转换,会造成网络的时端时续。为此笔者对思科厂商有一个建议。最好能够有一个机制能够对Error-Disable状态的端口进行侦测,如果在一段时间内问题流量没有再出现的话,那么就将这个端口进行恢复。否则的话,就一直处于Error-Disable状态。而不是不管三七二十一,先恢复再说。
不过到目前为止,这个自动恢复机制的效果还是可以的。毕竟等到客户端问题解决了,不需要重新维护交换机。如果要启用这个特性的话,可以使用如下的命令实现。
Errdisable recovery interval int1.其中参数int1就是自动恢复的时间间隔。最后笔者在此强调一次,自动恢复机制并不会判断问题是否已经解决了。也就是说,其是被动的。等到设置的间隔时间到了之后,交换机会自动恢复端口,让其处于工作状态。当发现故障原因还依旧时,再将端口设置为error-disable状态。周而复始,直到故障原因真正消除为此。这一点网络工程师在启用这个方案时需要引起足够的重视。 #p#
三、利用手工恢复来解决复杂的问题
如果故障的原因比较复杂,不能够在短时间内解决,那么笔者建议最好采用手工恢复的措施。等到问题原因查明并解决之后,再将端口进行手工恢复。如此虽然可能会延长端口当机的时间,但是却可以避免交换机由于端口状态频繁转换而造成的一系列比必要的麻烦。正如上面所说的,采用自动恢复策略交换机并不能够判断问题是否真正消除了。
如果要使用手工恢复策略的话,主要需要用到两个命令。首先是使用shutdown命令,将出现故障的接口关闭掉。然后再使用no shutdown命令启用这个端口,就可以实现从error-diable状态中恢复。不过这里需要注意的是,无论是手工恢复还是自动恢复,只要这个导致交换机处于Error-Disable状态的原因没有真正消除,交换机仍然会将这个端口设置为Error-Disable状态。只有真正找到问题的根本原因才能够避免接口重新进入到这个故障状态。采用手工恢复明显会延长故障的时间。
为了解决这个问题,笔者的建议是可以先查找问题的主机。如有可能在交换机的同一个接口上通过集线器等中间设备连接了多台主机。此时可以通过其他的一些手段先查找故障的主机。找到之后先将其与企业的网络断掉,然后恢复交换机端口。此时由于故障主机已经与网络断离,就相当于故障原因已经解决了。交换机的端口就可以正常工作。然后再花时间来查明故障主机的原因。等原因查明了再连接到企业网络中。有时候如果交换机端口连接了多个集线器等网络设备,我们可以先一个个的断掉集线器,以判断是哪一部分出现问题。然后将出现问题的部分与交换机之间的连接断掉,减少对其他正常部分网络的影响。
可见,让交换机的端口从eroor-disable状态中恢复过来,解决故障的原因是一个措施。不过有时候为了减少故障的时候,即使不解决问题只要将有问题的网络部分的隔离也行。
总之,采用error-disable特性能够避免单个或者多个端口所发生的错误状态影响到其他的交换机端口或者其他正常的网络。为了提高网络的稳定性,笔者建议在企业网络部署中开启这个特性。不过需要注意的是,这只是一个被动的措施。其只是发现问题,而不会自动的查找原因、解决问题。网络管理员仍然需要积极的查找问题的原因,尽量减少故障的时间。