在网络中接入一个思科3560交换机(不做配置),不过碰到一个很怪的问题,连到某个交换机,3560的相关端口不会变正常,因为没设备调试,后来就改用trunk可以互连.
交换机提示:
01:48:44: %spantree-7-recv_1q_non_trunk: received 802.1q bpdu on non trunk faste
thernet0/8 vlan1.
01:48:44: %spantree-7-block_port_type: blocking fastethernet0/8 on vlan0001. inc
onsistent port type
根据初步分析,交换机提示:01:48:44: %spantree-7-recv_1q_non_trunk: received 802.1q bpdu on non trunk fastethernet0/8 vlan1.可能是端口受到某些bpdu信息后自行关闭.
后查了好多资料,其实只要开启bpdu端口信息过屡功能,就完全可以正常接入.不需要对上联交换机的端口做任何设置.
(1)解决方案一
设置方法:
interface fastethernet0/8
spanning-tree bpdufilter enable
(2)解决方案二
switch(config)#spanning-tree mode mst
不过我发现虽然可以上网,但是老是会发
*mar 1 02:45:10.796: %spantree-7-recv_1q_non_trunk: received 802.1q bpdu on non
trunk fastethernet0/23 vlan1.
*mar 1 02:45:10.796: %spantree-7-block_port_type: blocking fastethernet0/23 on
mst0. inconsistent port type.
这些信息。
与cisco交换机组网时pvst包导致的故障:
故障现象描述
连接后,3560g-2会报错:
*mar 1 08:12:35: %spantree-7-recv_1q_non_trunk: received 802.1q bpdu on non trunkgigabitethernet0/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进行过滤。