http://qazwsxedc828.blog.163.com/blog/static/10702702009111575552644/

无语了,今天碰到的奇葩事儿,思科的2960和华为S5700对接,把接口打成acc口一直报错然后思科交换机的上行口17w5d: %SPANTREE-7-BLOCK_PORT_TYPE: Blocking GigabitEthernet0/1 on VLAN0001.

在网上查查资料一条命令搞定。spanning-tree bpdufilter enable

详细讲解:

     

与CISCO交换机组网时PVST包导致的故障  

                   2009-12-15 19:55:52|  分类:          CCIE                          |举报        |字号 订阅      

 

一、 故障现象描述

连接后,3560G-2会报错:

*Mar  1 08:12:35: %SPANTREE-7-RECV_1Q_NON_TRUNK: Received 802.1Q BPDU on non trunk GigabitEthernet0/10 VLAN20.

*Mar  1 08:12:35: %SPANTREE-7-BLOCK_PORT_TYPE: Blocking GigabitEthernet0/10 on VLAN0020. Inconsistent port type.

此时3560G-2上联口指示灯变为***,业务不通。

二、 处理方法

察看CISCO的告警定义:3560G-2在non trunk端口收到了一个802.1Q类型的包。CISCO认为两端接口类型不一致可能存在二层环路隐患,所以就将收到这个包的端口block。这是导致端口被block掉的直接原因。

进一步分析为什么access端口会收到802.1Q的包,而且是802.1Q的BPDU包呢?察看各种STP协议的说明发现:能产生802.1Q BPDU包的只有PVST协议。

PVST BPDU的格式和STP/RSTP BPDU格式不一样。标准的BPDU配置消息是以以太网数据帧的格式进行传递的,采用多播MAC地址01-80-C2-00-00-00为目的MAC地 址。而PVST的BPDU包的目的MAC地址为Cisco保留地址01-00-0C-CC-CC-CD,而且在VLAN Trunk的情况下,PVST BPDU会被打上了802.1Q Tag标签。

对于目的MAC地址为01-00-0C-CC-CC-CD的包,普通交换机不识别,会把它当作普通的多播包转发,而不进行任何处理。

由 于CISCO交换机上PVST是默认打开的,当3560G-1发出802.1Q BPDU包后,T64G对它进行直接转发(无论T64G是否启用STP的透传功能)。3560G-2的access上联口收到3560G-1上发送的 802.1Q的BPDU包后,判断可能存在环路,所以将上联口block。

三、 总结

导致以上故障的原因是由于普通交换机不识别CISCO的PVST私有协议包,只是把它当做普通的多播包转发。从而导致CISCO交换机判断可能存在环路,将端口block。

在类似的组网中其他型号的交换机和CISCO交换机一起组网也会产生相同的问题。针对类似的组网中可能存在的问题,建议:

1.     由于CISCO交换机默认PVST协议是启用的,在做网络规划时需要考虑网络是否需要用到STP协议,如果不需要,建议将PVST关闭,或尽量采用标准的STP协议。

2.     在CISCO交换机上不需要参与STP计算的端口启用spanning-tree bpdufilter enable。这样端口可以直接将BPDU包丢弃。比如上图中CISCO交换机作为接入层交换机,它的上联端口可以确认不需要参与STP计算。

3.     由于普通交换机会将目的MAC地址为01-00-0C-CC-CC-CD多播包直接转发,在如上组网中如果可以确认不需要T64G来传递BPDU信息,可以在T64G上配置ACL对01-00-0C-CC-CC-CD进行过滤。

出自:http://qazwsxedc828.blog.163.com/blog/static/10702702009111575552644/

一个兄弟写的,非常感谢!1

你可能感兴趣的:(http://qazwsxedc828.blog.163.com/blog/static/10702702009111575552644/)