1.1 综述本章讨论仅限于STP和PVST+、RSTP和RPVST+的互通,以下对这两种情况不做区分;MSTP的互通没有问题,本章不做分析讨论。
互通的关键在于CISCO交换机端口在什么条件下会发出什么类型的协议报文,以及其链路开销算法和华为比较结果如何。
首先,STP/RSTP的收敛概念和PVST+/RPVST+不同:STP/RSTP的收敛是基于整个端口的,而PVST+/RPVST+的收敛是基于VLAN实例的,理解的角度不一样。
从技术理论上分析,STP和PVST+无论怎么混合组网,都是能收敛的。总的来说收敛结果有两类:
1、block端口在HUAWEI设备上。因为标准stp是基于端口阻塞的,所有数据报文(不区分VLAN)在block端口被丢弃,包括CISCO的PVST报文,所以这时候一个环只有一个阻塞口,在HUAWEI设备上。
基本收敛状态为:
• CISCO设备上:所有端口stp forward状态,所有端口pvst forward状态
• HUAWEI设备上:存在stp block端口、stp forward端口
2、block端口在CISCO设备上。CISCO交换机上认为标准stp报文是vlan1所在的pvst实例发出的,所以stp block端口只会阻塞vlan1实例(不阻塞整个端口),其他pvst报文正常通过该端口处理并转发,并在其所在vlan内计算收敛,所以这时候,一个环上会存在多个block端口(与端口上vlan实例数相等)
基本收敛状态为:
• CISCO设备上:存在vlan1的stp block端口、stp forward端口,其他vlan的pvst block端口、pvst forward端口
• HUAWEI设备上:所有端口forward状态(正常转发pvst报文和数据报文)
1.2 CISCO报文类型分析CISCO设备配置了PVST+后(Rapid-PVST+同理),端口会发出PVST报文也会发出IEEE标准STP报文用以和支持IEEE标准STP的设备互通。
CISCO交换机端口在什么条件下发出哪种协议报文,只和该端口下的vlan配置有关。
从以下表格分析,可知CISCO收发标准STP协议报文的条件为:trunk类型端口加入vlan1,或者access类型端口。
举例总结如下表:
条件 | | | |
端口类型trunk; 端口加入vlan1和其他vlan | interface GigabitEthernet0/1 switchport trunk allowed vlan 1,10,20 switchport mode trunk | vlan1里会发出两种bpdu报文:标准stp报文和pvst报文(由于vlan1为native vlan,vlan tag被剥掉) 其他vlan下发出pvst报文 | 标准stp报文 vlan1的pvst报文(untag) vlan10的pvst报文 vlan20的pvst报文 |
端口类型trunk; 端口加入vlan1和其他vlan; native vlan配置为vlan 10 | interface GigabitEthernet0/1 switchport trunk native vlan 10 switchport trunk allowed vlan 1,10,20 switchport mode trunk | vlan1里会发出两种bpdu报文:标准stp报文和带vlan1的pvst报文 (互通时候标准stp收敛状态在CISCO上体现为vlan1实例的状态) | 标准stp报文 vlan1的pvst报文 vlan10的pvst报文(untag) vlan20的pvst报文 |
端口类型trunk; 端口加入vlan1和其他vlan; 全局配置no spanning-tree vlan 1 | no spanning-tree vlan 1 ! interface GigabitEthernet0/1 switchport trunk allowed vlan 1,10,20 switchport mode trunk | vlan1的pvst功能去使能,所以不再发pvst报文,但仍会发出标准stp报文 | 标准stp报文 vlan10的pvst报文 vlan20的pvst报文 |
| interface GigabitEthernet0/1 switchport trunk allowed vlan 10,20 switchport mode trunk | trunk端口只要不加入vlan1就不会发出标准stp报文——即使这时端口的native vlan还是vlan1 | vlan10的pvst报文 vlan20的pvst报文 |
| interface GigabitEthernet0/1 switchport acces vlan x switchport mode acces | 无论acces vlan是哪个,端口都只发出标准stp报文 | |
CISCO交换机报文类型分析
1.3 链路开销算法对比总结如下表:
CISCO | | | |
| | | | | | |
| | (config)#spanning-tree pathcost method long | | | [S5700]stp pathcost-standard dot1t | 32 bits, 取值1 ~ 200,000,000,GE口每一跳开销20000 |
| | (config)#spanning-tree pathcost method short | | | [S5700]stp pathcost-standard dot1d-1998 | 16 bits, 取值1 ~ 65,535,GE口每一跳开销4 |
路径开销算法对应表
总体来说,如果CISCO和HUAWEI设备都采用默认的路径开销算法,一般block端口都是在HUAWEI设备上。因为HUAWEI默认采用802.1t算法,GE口每一跳开销20000,而CISCO采用short算法,GE口每一跳开销4,CISCO设备上的路径开销远远小于HUAWEI设备。当然,这都是可以通过配置设备的链路开销算法来调整的。
1.4 测试结果根据各STP报文格式及原理总结出下列对接模式:
华为模式 | | | |
| | | 华为交换机连接CISCO的环上端口配置摘要侦听: stp config-digest-snooping |
| | | CISCO设备端口需能收发标准STP协议报文,条件为trunk端口加入vlan1,或者,access模式端口 |
| | | CISCO设备端口需能收发标准STP协议报文,条件为trunk端口加入vlan1,或者,access模式端口 |
| | | |
| | | |
生成树对接表