由于交换机端口数量有限,且重启交换机会对数字电视播出造成严重影响,因此我们迫切需要在不重启交换机的情况下,找到将端口恢复正常的解决方案。
首先,我们需要确定端口的状态。登录交换机后,执行show log命令,可以查看日志信息。如果发现如下提示:
21w6d: %ETHCNTR-3-LOOP_BACK_DETECTED: Keepalive packet loop-back detected on FastEthernet0/20. 21w6d: %PM-4-ERR_DISABLE: loopback error detected on Fa0/20, putting Fa0/20 in err-disabled state
这就明确表明,第20端口因检测到环路而被置于err-disabled状态。接下来,查看端口的状态:
Switch# show inter fa0/20 status
Port Name Status VLAN DuPlex Speed Type Fa0/20 link to databackup err-disabled 562 auto auto 10/100BaseTX
这条信息进一步确认了端口处于不正确的状态。
既然找到了问题所在,接下来就需要将端口从不正确的状态中恢复。进入交换机的全局配置模式,执行errdisable recovery cause ?命令,可以看到如下选项:
Switch(config)#errdisable recovery cause ? all Enable timer to recover from all causes BPDUguard Enable timer to recover from BPDU Guard error disable state channel-misconfig Enable timer to recover from channel misconfig disable state dhcp-rate-limit Enable timer to recover from dhcp-rate-limit error disable state dtp-flap Enable timer to recover from dtp-flap error disable state GBIC-invalid Enable timer to recover from invalid GBIC error disable state l2ptguard Enable timer to recover from l2protocol-tunnel error disable state link-flap Enable timer to recover from link-flap error disable state loopback Enable timer to recover from loopback detected disable state pagp-flap Enable timer to recover from pagp-flap error disable state psecure-violation Enable timer to recover from psecure violation disable state security-violation Enable timer to recover from 802.1x violation disable state udld Enable timer to recover from udld error disable state unicast-flood Enable timer to recover from unicast flood disable state vmps Enable timer to recover from vmps shutdown error disable state
在这些选项中,我们需要根据端口的问题原因选择相应的恢复方式。例如,如果是由于环路导致的假死,我们应该选择loopback选项:
Switch(config)#errdisable recovery cause loopback
设置好恢复原因后,系统会在一定时间内自动尝试恢复端口。在此期间,我们可以定期检查端口状态,确认是否已恢复。
总之,在遇到交换机端口“假死”的现象时,我们需要首先确定端口状态,然后选择合适的恢复方式,尽量避免重启交换机,确保数字电视播出不受影响。
“假死”现象蔓延 不得不根治?
但是最近几天单位那台连接数字电视前端系统的交换机上也出现了端口“假死”的现象,故障原由很快查清了:是因为该端口下面连接的一台交换机出现了环路,这台Cisco交换机上相应的端口就被系统自动关上了,这种措势是必要的,因为可以防止 环路的扩散,但是当下面的交换机环路故障解除后,该端口并没有又还原到正常工作状态,更要命的是:一、更换端口; 二、重启交换机都不能实现,因为一来这台交换机上空闲端口很少了,二来这台交换机须要始终处于工作状态,如果一旦重新启动,这几分钟的网络中断就会影响到数字电视的播出,所以是绝对不能 重启的。
出现了这个疑问,我们不得不重视起交换机端口“假死”的现象,寻求在交换机不重启的状态下将该端口“拯救”回来的要领。
拯救步骤1:查看日志/端口的状态
登录进入交换机后,执行show log,会看到如下的提示:
21w6d: %ETHCNTR-3-LOOP_BACK_DETECTED: Keepalive packet loop-back detected on FastEthernet0/20.
21w6d: %PM-4-ERR_DISABLE: loopback error detected on Fa0/20, putting Fa0/20 in err-disable state
以上信息就明确表示由于检测到第20端口出现了环路,所以将该端口置于了err-disable状态。
查看端口的状态
Switch# show inter fa0/20 status
Port Name Status Vlan Duplex Speed Type
Fa0/20 link to databackup err-disabled 562 auto auto 10/100BaseTX
这条信息更加明确的表示了该端口处于err-disabled状态。
既然看到了该端口是被置于了不正确的状态了,我们就应该有方法将其再还原成正常的状态。拯救步骤2:将端口从不正确状态中还原回来
进入交换机全局配置模式,执行errdisable recovery cause ?,会看到如下信息:
Switch(config)#errdisable recovery cause ?
all Enable timer to recover from all causes
bpduguard Enable timer to recover from BPDU Guard error disable state
channel-misconfig Enable timer to recover from channel misconfig disable state
dhcp-rate-limit Enable timer to recover from dhcp-rate-limit error disable state
dtp-flap Enable timer to recover from dtp-flap error disable state
gbic-invalid Enable timer to recover from invalid GBIC error disable state
l2ptguard Enable timer to recover from l2protocol-tunnel error disable state
link-flap Enable timer to recover from link-flap error disable state
loopback Enable timer to recover from loopback detected disable state
pagp-flap Enable timer to recover from pagp-flap error disable state
psecure-violation Enable timer to recover from psecure violation disable state
security-violation Enable timer to recover from 802.1x violation disable state
udld Enable timer to recover from udld error disable state
unicast-flood Enable timer to recover from unicast flood disable state
vmps Enable timer to recover from vmps shutdown error disable state