内容发布更新时间 : 2024/12/22 1:55:17星期一 下面是文章的全部内容请认真阅读。
龙源期刊网 http://www.qikan.com.cn
华为MSTP设备与CISCO交换机组网时PVST包故障分析
作者:朱庆林 韩圣龙
来源:《中国科技博览》2013年第37期
摘 要
华为MSTP设备的以太网板EFS与CISCO 3560G的GE口对接,开通以太网业务,正式测试时发现业务存在问题。导致故障的原因是CISCO 3560G的GE口默认打开PVST生成树协议,华为的以太网板EFS未启用生成树协议,无法识别CISCO的PVST私有协议包,只是把它当做普通的多播包转发,导致CISCO交换机判断可能存在环路,将该端口BLOCK,从而影响到业务的正常通信。
关键字EPLAN 802.1Q PVST BPDU MSTP 中图分类号:TN916.43 一、PVST技术
PVST(Per-VLAN Spanning Tree)是CISCO为解决在虚拟局域网上处理生成树的特有解决方案。PVST为每个VLAN运行单独的Spanning Tree,通过BPDU包在网络的网桥间进行信息交换。BPDU每隔2秒,以Muiticast的方式,在designate port上被发送。 二、网络实例 1、网络背景
某大客户组网结构为四套MSTP设备组成的环网,网元A为华为MSTP设备
(Metro1000V3),以太网板型号EFS,用户提供的设备为CISCO 3560G交换机,两者之间通过电口对接。网元B、C、D均为用户各分支机构的接入端,经网元A收敛与网关A通信。同时,各分支机构相互之间能够互访。 2、故障现象
根据华为MSTP业务配置要求,在网元A处的EFS处理板上进行以太网LAN业务配置,首先建立一个虚拟网桥VB(virtual bridge),将涉及到的端口挂接在该VB下。配置完成后进行全程测试,结果如下:
1) 终端A与终端C能通信,与D能短暂通信,与B不能通信;
龙源期刊网 http://www.qikan.com.cn
2) 终端C与终端D能一直保持通信,与B不能通信。 3、对接问题一
首先排查终端B的接入问题,网元B是烽火MSTP设备IBAS180,经两端维护人员进行数据配置核查发现,问题在于LCAS的匹配上不一致,将网元B IBAS180的LCAS属性设置为none lcas后, PING测试正常,问题解决。 4、对接问题二
接下來要处理终端A与其他终端之间的问题。经过密集测试,进一步发现存在以下的情况:
1)终端A同一时间能与所有终端相互通信,而后又不能与所有的终端相互通信; 2)终端B与终端C之间相互PING测试始终正常,但PING网关A(10.10.132.1)有时通,不久又不通。 5、故障处理
为了排除因传输系统内的原因导致该互通问题,我们在用户端将终端直接连接至网元A(华为MSTP)的PORT口上,与其他终端进行PING测试,没有再出现前面的情况,一切正常。结果表明,整个传输系统是正常的,尤其是网元A已经实现了二层交换的功能,问题可能在于网元A与网关A的对接上。
为了进一步验证我们的结论,我们在用户端将CISCO 3560G交换机更换为华为的3026C,再进行PING测试,所有节点之间都能互通,一切正常。 6、报错语句分析 1)BPDU包的发现
网关A是由用户提供的CISCO 3560G三层交换机,与运营商提供的MSTP设备通过FE口对接,为了彻底找到问题的原因,经用户的许可,我们登陆到CISCO 3560G,发现该设备的对接口上有如下的报错语句:
%SPANTREE-7-RECV_1Q_NON_TRUNK: Received 802.1Q BPDU on non trunk GigabitEthernet0/3 VLAN30;
%SPANTREE-7-BLOCK_PORT_TYPE: Blocking GigabitEthernet0/3 on VLAN30. Inconsistent port type。
龙源期刊网 http://www.qikan.com.cn
此时3560G上联口指示灯变为黄色,业务是不通的。
第一句话:CISCO 3560G在non trunk端口(GigabitEthernet0/3)收到了一个携带802.1Q标签的BPDU包。
第二句话:3560G认为两端接口类型不一致,可能存在环路,所以将收到这个包的对接端口BLOCK。这是导致该端口被BLOCK掉的直接原因。 2)BPDU包的来源
进一步分析,为什么3560G 的ACCESS端口会收到携带802.1Q的BPDU包呢? 在3560G的配置表里,我们看到了PVST协议是使能的,查看各种STP协议发现,PVST协议产生的BPDU包含有802.1Q标签。
打开华为MSTP设备EFS板的配置单元发现,在EFS板的以太网LAN业务配置里建立的VB(虚拟网桥)类型为802.1Q,而且是必选项。难道3560G收到的含802.1Q的BPDU包是华为的EFS单板产生的?
我们知道,生成树协议启用BPDU包的目的是为了发现网络环路,并打破环路。3560G的端口启用PVST协议,即是为每个VLAN运行单独的Spanning Tree,该端口发出携带802.1Q标签的BPDU包,如果再收到包含802.1Q标签的BPDU包,根据PVST的规定,判断该端口存在环路,并将其阻断。
为了验证我们的推断,我们在3560G的GigabitEthernet0/3端口写上一句:spanning-tree bpdufilter enable,将接收到的BPDU包直接丢弃,效果很明显,问题解决了,所有终端之间均能正常通信。 7、故障详解
CISCO 3560G的GigabitEthernet0/3端口默认启用了PVST协议,在VLAN Trunk的情况下,该协议会每隔2秒以Muiticast的方式发送含802.1Q标签的BPDU包, 而华为MSTP设备的EFS单板在建立EPLAN业务时,启用了类型为802.1Q的虚拟网桥VB,将经过该网桥的以太网包打上802.1Q标签。
这样的话,CISCO 3560G就会收到一个携带802.1Q标签的BPDU包,并根据自身的定义,认为该端口方向存在环路,于是将该端口BLOCK。
因为华为的3026C交换机的端口默认是不启用生成树协议的,所以,当华为MSTP设备与华为的交换机对接时,也就不会出现互通障碍了。