经过对这几天的故障分析及查找有关资料,逐步搞清楚了原因,现将整个过程做个总结:
1、连接关系:思科6506交换机千兆光口(GIG3/7)TRUNK连接锐捷1926G+千兆光口(端口号25),1926G+的第2端口设置为UNTAG模式,VLAN ID为166(相当于思科交换机的switchport mode access模式,switchport access vlan 166),下连思科2950交换机第1端口(2950为初始配置),1926G+的22,23,24端口分别级联了三台1924F+交换机(级联口做TRUNK);
2、故障现象、原因及解决方法:
   (1)故障现象:链路连接并配置好后,连接到思科2950交换机上的电脑均PING不通网关,2950上的级联端口1指示灯为红色;连接到1926G+及1924F+交换机上的电脑访问网络正常。
   故障原因:开始以为是网线问题,更换后故障依旧;该交换机本身经检查也无故障;登录到2950,show logging和SHOW SPAN后发现提示生成树协议使端口1处于BLOCKING状态;分析可能是由于2950默认开启了生成树协议,1926G+未开启从而造成生成树协议在重新计算指定端口时将端口1 BLOCKING;
   解决方法:在2950上关掉生成树协议(no spanning-tree vlan 1),问题解决,指示灯变绿,2950所连电脑访问网络正常。
   (2)故障现象:本以为从此OK,结果第二天上班就接到电话,五台交换机上所连接的用户全部无法访问网络;到现场后,均PING不通网关,当时也不清楚具体怎么回事,因为所连接用户及服务器比较重要,于是重启交换机网络恢复正常;可过了半天左右再次出现同样故障,随后每隔几个小时就会出现同样故障;重启1926G+交换机或者拔掉第24口级联线均可恢复网络正常,但不久同样问题又会出现;
   故障原因:经过几天的分析研究及查阅有关资料发现,思科交换机默认开启的生成树协议为PVST(Per-VLAN Spanning Tree),是在每个VLAN上运行一个STP实例,交换机之间的PVST要求使用ISL(Inter-Switch Link)TRUNKING,这是思科的专有协议,其他厂家的交换机无法识别此协议。网络中的根网桥是6506交换机,6506上的根端口默认是GIG1/1(上连路由器),其连接1926G+的GIG3/7光口为指定端口,平时这些端口正常时均处于FORDWARDING(转发)状态;但当网络拓扑发生改变时,交换机端口在重新接收生成树协议数据时会根据收到的信息而转入相应的一系列的状态:
1、Disabled(为了管理目的或者因为发生故障将端口关闭);
2、Blocking(在初始启用端口之后的状态。端口不能接收或者传输数据,不能把MAC地址加入地址表,只能接收BPDU(bridge protocol data unit)。如果检测到有一个桥接环,或者端口失去了它的根端口或者指定端口的状态,那么就会返回到Blocking状态);
3、Listening(如果一个端口可以成为一个根端口或者指定端口,那么它就转入监听状态。此时端口不能接收或者传输数据,也不能把MAC地址加入地址表,但可以接收和发送BPDU);
4、Learning(在Forward Delay计时时间到(默认15秒)后,端口进入学习状态,此时端口不能传输数据,但可以发送和接收BPDU,也可以学习MAC地址,并加入地址表);
5、Forwarding(在下一次转发延时计时时间到后,端口进入转发状态,此时端口能够发送和接收数据、学习MAC地址、发送和接收BPDU)。
这些状态过程中,会引发网络拓扑结构发生改变。此时,发生变化的交换机会在它的根端口上每隔hello time时间就发送TCN BPDU,直到上级的指定网桥邻居确认了该TCN(拓扑结构变化通知)为止。当根网桥收到后,会发送设置了TC(topology change,拓扑改变)位的BPDU,通知整个生成树拓扑结构发生了变化。这会让所有的下级交换机把它们的Address Table Aging(地址表老化)计时器从默认值(300秒)降为Fordwarding Delay(默认为15秒),从而让不活动的MAC地址比正常情况下更快地从地址表更新掉。
 
从以上可以得出:当2950上的交换机的VLAN 1上开启生成树协议时,因为2950所有端口默认属于VLAN 1,它要向所有端口发送TCN BPDU,但由于它的上连口fa0/1为接入模式未做TRUNK,因此交换机无法接收到返回的TCN BPDU或者1926G+的端口无法识别TCN BPDU(因为PVST是思科私有的改进的STP协议,锐捷1900系列交换机只支持标准的STP生成树协议),因而造成FA0/1既不是根端口也不是指定端口,所以被转为Blocking状态。当在VLAN1上关闭了生成树协议后,端口自动转为Forwarding状态,网络连通。
 
但后来每隔一定时间会出现五台交换机都无法PING通网关的情况,在拔掉1926G+的24级联口线后除第四台1924F+交换机外其他全部恢复正常,分析可能是24口级联的1924F+交换机下的用户也接入了思科交换机或者病毒或者某类软件造成的(根网桥变化。。。)。具体原因还在查找中。
 
解决方法:(1)如果所有交换机均未做冗余链路,可以全部关闭生成树协议,使所有端口自动成为Forwarding状态;(2)、分别在思科6506、2950交换机上的GIG3/7端口、FA0/1上关闭生成树协议,或者设置BPDU过滤(spanning-tree bpdufilter enable),或者在思科6506交换机GIG3/7口上开启根保护(spanning-tree guard root)。