您的位置:首页 > 其它

由portfast谈生成树防护!

2010-01-18 22:13 253 查看
传统的802.1d标准的STP,有一些缺陷,比如当一个交换机检测到链路发生故障,再到网络重新收敛的时候,至少要等50秒的时间(转发延迟+BPDU最大生存周期)。而在RSTP上由于减少了交换机端口的状态,端口状态只有丢弃、学习和转发,当链路出现故障时能在大大的缩短故障时间。
而当一个端工作站,比如PC或服务器,插到交换机某个端口后,该端口同样会经历STP的一些状态,比如监听和学习。但是端工作站不会引起层二层的环路,因此,对于接端工做站的端口,没必要经历这相对漫长的STP收敛时间。因此提出了Port Fast这一特性。启用该特性的端口无需
经历转发延迟可以直接进入转发状态,减少收敛时间。交换机配置portfast有两种方式,当然起的作用范围也不同了:
1、端口模式下:(仅对当前端口有效)
SNC(config)#int f0/1   		//进入端口模式
SNC(config-if)#spanning-tree portfast 		//开启portfast
SNC(config-if)#spanning-tree portfast disabled	//关闭portfast属性
2、全局模式下:(对当前所有端口有效,常用于连接服务器区主机)
SNC(config)#spanning-tree portfast default   	//全局模式下开启portfast
SNC(config)#no spanning-tree portfast default 	//全局模式下关闭portfast
但是这样处理的话又出现这样一个问题:当交换机的端口连接一个小HUB时该端口还可以设置成为portfast模式吗?要是设置了的话那么同个HUB上出现了环路又该怎么办呢?比如在我们的宿舍中,只有一个信息插座,要想集体上网的话只能选用HUB。
一般而言,因为小HUB不支持STP所以其不算真正的交换机,这个时候我们仍然可以设置交换机连接HUB的口为portfast接口。但是此时我们要使用Bpduguard这一属性来防止宿舍内出现环路。Bpduguard的功能是当这个端口收到任何的BPDU就马上设为Error-Disabled状态。
我们知道,当交换机STP功能启用的时候,默认所有端口都会参与STP,并发送和接受BPDU。 当Bpduguard开启后,在正常情况下,一个下联寝室的端口是不会收到任何BPDU的,因为PC和小交换机都不支持STP,所以不会收发BPDU。当这个端口下如果有自回环的环路,那么它发出
去的BPDU在小交换机上回环后就会被自己接收到,这个时候BPDU GUARD就会把它立刻设为Error-Disabled状态,这个端口就相当于被关闭了,不会转发任何数据,也就切断了环路,保护了整个网络。
SNC(config)#int f0/1					//进入端口模式
SNC(config-if)#spanning-tree bpduguard enabled 		//开启bpduguard
SNC(config-if)#spanning-tree bpduguard disabled 	//关闭bpduguard
因此在宿舍楼对交换机进行配置时要特别注意为所有的端口开启bpduguard保护特性,以防宿舍内不小心出现环路而对整个网络产生破坏。
同时在处理宿舍连网故障过程中要特别注意是不是宿舍环路故障引起的问题。此时的现象就是交换机连接相应宿舍端口的灯不亮,这可以算是在线路故障排除后的最重要一个环节。话说回来了,排除故障时要灵活,尤其是要注意查看日志,对于由于出现环路而产生的端口假死不能产生的
故障通过日志是很容易发现的。当确定是环路故障后,首先要将环路清除掉,然后在全局模式下执行下述命令即可解决:
在锐捷交换机上是:
SNC#conf t
SNC(config)#errdisable recovery
而在cisco3550的交换机上是:
SNC#conf t
SNC(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
SNC(config)#errdisable recovery cause  loopback
各种交换机随着IOS不同命令也不同,原理清楚了就一切好办了!
*注意:记得要在全局模式下开启生成树啊(有些交换机默认已经开启了生成树功能)
本文出自 “艳阳天的小窝” 博客,请务必保留此出处http://yytian.blog.51cto.com/535845/267853
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: