1 MSTP的引入
启用STP/RSTP协议的网桥上所有的VLAN共享一棵生成树,无法实现VLAN的负载分担,造成链路带宽的浪费。
MSTP(多生成树)的提出,很好的解决了网络中VLAN负载分担的问题。
MSTP在IEEE的803.1S标准中定义。
MSTP的基本思想是基于实例计算出多颗生成树,每个实例可以包含一个或多个VLAN,每个VLAN只能映射到一个实例,从而实现不同VLAN组之间的负载分担。
多生成树的前提是:把不同的VLAN映射到不同的实例中去,为了确保多生成树计算的准确性,这些网桥的VLAN和实例映射关系必须完全相同。然而在大型网络中不能保证所有网桥配置相同的VLAN映射关系,MSTP就提出了MST域来解决此问题。
MST域是把拥有相同VLAN映射关系以及其他属性的网桥放在同一个域中,域之间运行标准的RSTP。可以将大型网络划分成多个MST域 。
MST域的组成因素
2.2 CSI、IST、CIST、总根和域根
CIST:公共和内部生成树,是整个网络所有设备经过生成树计算得到的一棵树 。
总根:是整个网络中优先级最高的桥,也是CIST中的根桥 。
CST:公共生成树,是连接网络内MST域的单生成树,总根所处的域为CST的根桥 。
IST:内部生成树,是MST域内的一棵生成树
MST域内的每一颗生成树都会对应一个实例,IST的实例号为0,没有映射到其他实例的VLAN都会默认映射到实例0上,即IST上 。
IST的根桥即CIST的域根,是在MST域内距离总根最近的网桥,也称Master桥。
一个MST域内都可以通过MSTP协议生成多颗生成树,每颗生成树之间是独立的,每颗生成树都称为一个MSTI(多生成实例) 。
每个MSTI映射一个或多个VLAN,并计算出一颗独立的生成树 。
MSTI域根就是每一个MSTI上优先级最高的网桥。可以根据MSTI来配置该MSTI中域根的优先级。
MSTP端口角色比RSTP多出了Master端口和域边界端口。
Master端口:是指Master桥与总根相连的端口。
域边界端口:MST域内网桥和其他MST域或STP/RSTP网桥相连的端口,Master端口也可以是域边界端口。
网桥上的根端口、指定端口、Alternate端口、Backup端口的定义与RSTP中相同。
MSTP计算包括CIST计算和MSTI计算,CIST优先级向量包括Root ID、EPRC、RRoot ID、IRPC、DesignateBridgeID、DesignatePortID、RcvPortID 。优先级向量比较原则为“最小最优”,具体原则比较如下:
经过CIST的计算,最后可以生成一棵贯穿整个网络的生成树 。
MSTI优先级向量包括RRootID、IRPC、DesignateBridgeID、DesignatePortID、RcvPortID 。优先级向量比较原则为“最小最优先”。具体原则比较参考CIST比较原则。
每一个MSTI都进行独立的比较计算,最后在域内生成多颗独立的生成树。
每个BPDU报文中既包括了计算CIST的信息,也包含了计算MSTI的信息,因此在计算MSTI的时候不需要单独发送BPDU报文,当网桥在域内进行IST计算时,域内的每颗MSTI树也同时计算生成。
在进行CST计算时,会把每个MST域做为一个逻辑的网桥,其中网桥ID为IST域根ID 。
当网桥收BPDU并判断来自不同域时,它不会解析MST专有字段的信息,因此,MSTI的计算仅限于区域内。
由于网桥端口在不同的实例中担任不同的角色,所以可能会出现网桥端口既发送BPDU也接收BPDU的情况。
MST域内:在初始状态,每个网桥都会认为自己是总根,从而向外发送自身为总根、域根、指定桥的BPDU报文。各网桥收到BPDU之后开始进行优先级向量的比较并确定总根、域根、指定桥以及端口的角色。
CST的计算时将不同的MST域看作成逻辑的网桥,网桥ID为IST的域根ID,通过比较优先级向量(总根、EPC、域根、指定端口ID、接受端口ID)。
CIST计算完成之后,确认了CIST域根。域内以CIST域根为根桥,结合IRPC确认各网桥端口角色,最终得到IST。
IST计算所需要的优先级向量包含:域根、IPRC、指定桥ID、指定端口ID、接受端口ID。
每个域都进行IST计算,得到每一个域的IST,结合之前域间计算的CST,最终得到整个网络的CIST。
在IST计算过程中,网桥通过交互BPDU中的MST配置信息可以同时确定MST实例的根桥以及端口角色。
可以通过为网桥指定不同实例中的优先级。
当运行MSTP的网桥和运行RSTP/STP的网桥一起工作时,RSTP/STP网桥会将MSTP域看作一个桥ID为域根ID的RSTP桥。
当RSTP/STP网桥收到MST BPDU后,会提取BPDU中的(RootID、EPRC、RRootID、DesignatePortID)作为RSTP/STP计算所需的优先级向量(RootID、RPC、DesignateBrigeID、DesignatePortID)。
当MSTP网桥收到RSTP/STP BPDU后,会将BPDU中的信息(RootID、RPC、DesignateBrigeID、DesignatePortID)对应到MSTP计算所需要的优先级向量中,其中DesignateBrigeID既可以做MSTP优先级向量中的PRoot ID,也可作为DesignateBrigeID,IRPC设置为0 。
在MSTP中,在上游网桥发送的Proposal BPDU中,Proposal和Agreement均置位,下游网桥收到Proposal和Agreement均置位的BPDU后,执行同步操作然后回应agreement置位的BPDU,使得上游指定端口快速进入转发状态。
H3C设备端口可以识别/发送的MSTP BPDU格式如下两种:
默认情况下,端口配置为自动识别方式。
在网络中,由于一些厂商的设备再对MSTP协议的实现上存在差异,即用加密算法计算配置摘要时采用私有的密钥,从而导致即使MST域配置相同,不同厂商的设备之间也不能实现在MSTP域内互通,此时需要在设备上开启摘要侦听特性,从而实现不同厂商设备再MST域内的完全互通。
由于RSPT与MSTP的P/A机制的差别(RSPT只要Proposal置位就会回应,MSTP需要Proposal和Agreement同时置位才会回应),当运行MSTP与RSTP两设备需要快速收敛时,需要在运行MSTP设备的特定端口开启No Agreement Check特性。