如上图所示,在交换机的各个端口网络管理员都设置了严格的端口安全规定。如果192.168.0.2主机发送违规的数据包,违反了端口安全规定,只要交换机启用了Error-Disable特性,那么就能够及时的检测到这种情况。并会在第一时间将这台主机连接的交换机端口设置为Error-Disable状态。就好像禁用了这个接口一样,交换机将不会接受来自这个违规主机的任何数据包,直到这个接口恢复为正常为止。通过这种机制,可以将网络威胁或者故障限制在最小的范围之内,避免影响到其它正常的交换机端口。
在启用这个特性之前,网络管理员需要了解交换机会自动监测哪些错误。这对于后续的维护与故障排除具有很大的帮助。一般来说,型号不同,其检测的错误也有所不同。大部分情况下,思科系列的交换机可以检测到如下几种常见的错误。如单播扩散、风暴控制、端口安全违规、链路翻转、DHCP限速违规、BPDU防护检测、ARP检测等等多到十多种错误。不过由于不同的型号之间有比较大的差异,为此还需要管理员在选购交换机之前根据企业自身的需要进行确认。
2.利用自动恢复机制来恢复交换机端口
①switch#show errdisable detece #查看触发err-disable的可能原因
ErrDisable Reason Detection status
----------------- ----------------
udld Enabled
bpduguard Enabled
rootguard Enabled
pagp-flap Enabled
dtp-flap Enabled
link-flap Enabled
……
当检测上以上任何一种错误代码时,交换机就会将特定的端口设置为error-diable状态。出于这种状态的交换机端口,其工作状态就类似于链路Down状态。当然,这种状态不能够一直持续下去,等到故障解除后需要将这个状态更改回去,让其能够正常工作。这就涉及到端口的恢复问题。
值得庆幸的是,思科系列的交换机正好支持这个自动恢复的策略。通过在交换机中配置合理的时间间隔,交换机就能够自动从error-disable故障状态恢复到正常状态。不过其实现的比我们设想的还有一段距离。交换机的自动恢复策略并不会实时的监测交换机的故障原因是否解除。而是每隔一段时间将端口恢复,而不管连接这个端口的客户端问题是否解决了。如果恢复后发现错误仍然存在,那么这个接口就会马上再一次进入到error-diable状态。只有问题真正的解决了,这个端口才能够正常的工作。可见自动恢复机制也有一定的漏洞。因为端口状态频繁的转换,会造成网络的时断时续。
②配置自动恢复
switch(config)#errdisable recovery cause all #启用所有的errdisable状态自动恢复
switch(config)#errdisable recovery interval times #指定从errdisable状态自动恢复的时间间隔,单位秒。缺省时间为300秒。
3.手工恢复
如果要使用手工恢复策略的话,主要需要用到两个命令。首先是使用shutdown命令,将出现故障的接口关闭掉。然后再使用no shutdown命令启用这个端口,就可以实现从error-diable状态中恢复。不过这里需要注意的是,无论是手工恢复还是自动恢复,只要这个导致交换机处于Error-Disable状态的原因没有真正消除,交换机仍然会将这个端口设置为Error-Disable状态。只有真正找到问题的根本原因才能够避免接口重新进入到这个故障状态。
4.检查errdisable
①switch#show interface [interface_number] #查看接口状态
FastEthernet0/1 is down, line protocol is down (err-disabled)
②switch#show interfaces [interface_number] status #查看接口状态
Port Name Status Vlan Duplex Speed Type
Fa0/47 err-disabled 1 auto auto 10/100BaseTX
③switch#show interfaces [interface_number] status err-disabled #查看触发err-disable的原因
Port Name Status Reason
Fa1/0 err-disabled bpduguard
④switch#show errdisable recovery #查看产生err-disable后是否自动恢复的信息(是否自动恢复、时间间隔等)。缺省是不会自动恢复的。
⑤switch#show errdisable detece #查看触发err-disable的可能原因