1 MSTP的引入
启用STP/RSTP协议的网桥上所有的VLAN共享一棵生成树,无法实现VLAN的负载分担,造成链路带宽的浪费。
MSTP(多生成树)的提出,很好的解决了网络中VLAN负载分担的问题。
MSTP在IEEE的803.1S标准中定义。
MSTP的基本思想是基于实例计算出多颗生成树,每个实例可以包含一个或多个VLAN,每个VLAN只能映射到一个实例,从而实现不同VLAN组之间的负载分担。
2 MSTP的基本概念
2.1 MST域
多生成树的前提是:把不同的VLAN映射到不同的实例中去,为了确保多生成树计算的准确性,这些网桥的VLAN和实例映射关系必须完全相同。然而在大型网络中不能保证所有网桥配置相同的VLAN映射关系,MSTP就提出了MST域来解决此问题。
MST域是把拥有相同VLAN映射关系以及其他属性的网桥放在同一个域中,域之间运行标准的RSTP。可以将大型网络划分成多个MST域 。
MST域的组成因素
1.域名(Configuration Name):本域的域名 。
2.修订级别(Vevision level):目前保留,默认为0
3.配置摘要(Configuration Digest):由网桥的VLAN和实例映射关系生成的长度为16字节的HMAC-MD5签名。如果配置摘要不同,表示VLAN和实例映射关系不同,属于不同的MST域。
2.2 CSI、IST、CIST、总根和域根
CIST:公共和内部生成树,是整个网络所有设备经过生成树计算得到的一棵树 。
总根:是整个网络中优先级最高的桥,也是CIST中的根桥 。
CST:公共生成树,是连接网络内MST域的单生成树,总根所处的域为CST的根桥 。
IST:内部生成树,是MST域内的一棵生成树
MST域内的每一颗生成树都会对应一个实例,IST的实例号为0,没有映射到其他实例的VLAN都会默认映射到实例0上,即IST上 。
IST的根桥即CIST的域根,是在MST域内距离总根最近的网桥,也称Master桥。
2.3 MSTI和MSTI域根
一个MST域内都可以通过MSTP协议生成多颗生成树,每颗生成树之间是独立的,每颗生成树都称为一个MSTI(多生成实例) 。
每个MSTI映射一个或多个VLAN,并计算出一颗独立的生成树 。
MSTI域根就是每一个MSTI上优先级最高的网桥。可以根据MSTI来配置该MSTI中域根的优先级。
2.4 MSTP端口角色
MSTP端口角色比RSTP多出了Master端口和域边界端口。
Master端口:是指Master桥与总根相连的端口。
域边界端口:MST域内网桥和其他MST域或STP/RSTP网桥相连的端口,Master端口也可以是域边界端口。
网桥上的根端口、指定端口、Alternate端口、Backup端口的定义与RSTP中相同。
3 MSTP工作原理
3.1 MSTP的BPDU格式
1.Protocol ID:固定为0x00,表示STP
2. Protocol Version ID:协议号为0x03,表示MSTP
3.BPDU Type:BPDU类型为0x02,表示RST/MST BPDU
4.CIST Flags :CIST的标志位
5. CIST Root ID:表示CIST总根ID
6.CIST EPC:表示CIST外部路径开销
7.CIST Region Root ID:表示CIST域根ID
8.CIST port ID:表示CIST指定端口ID
9. Message Age:表示该BPDU到当前时间的存活时间
10.Max Age ;表示该BPDU最大存活时间
11.Hello Time :BPDU的发送周期
12.Forward Delay :BPDU传播到全网的最大延迟
13.Versionl Length=0:表示该BPDU不包含Versionl信息
MST专有字段
1. Version3 Length:表示MST专有字段的长度,该字段用户接收到BPDU后进行校验。
2. MST Configuration ID:MST配置标识,包含四个字段,如下:
Format Selector:格式选择,固定为0x00
Name :configuration Name,MST域名
Revision Level:修订版本
Config Digest :配置摘要
3.CIST IRPC:CIST内部路径开销,表示发送此BPDU的网桥到CIST域根的路径开销。
4. CIST Bridge ID:表示发送此PBDU的网桥ID
5. CIST Remainig Hops:CIST剩余跳数,用来限制MST的规模,默认值为20 。
6.MSTI Configuration Message:包含了0个或最多64个MSTI信息,MSTI配置信息数量由域内MST实例数决定,每一个MSTI配置信息长度为16字节。
MSTI配置信息
1. MSTI Flags:第1位到第7位跟RSTP定义相同,第8位为Master标志位,取代了RSTP中的TCA标志位。
2.MSTI Region Root ID :表示MST实例的域根的ID
3.MSTI IRPC:表示发送此BPDU的网桥到达MSTI域根的路径开销
4.MSTI Bridge Priority:表示发送此BPDU的网桥(指定桥)的优先级
5.MSTI Port Priority:表示发送此BPDU的端口(指定端口)的优先级
6. MSTI Remainig Hops:表示BPDU在该MST实例中的剩余跳数
3.2 CIST/MSTI优先级向量
MSTP计算包括CIST计算和MSTI计算,CIST优先级向量包括Root ID、EPRC、RRoot ID、IRPC、DesignateBridgeID、DesignatePortID、RcvPortID 。优先级向量比较原则为“最小最优”,具体原则比较如下:
1. 先比较CIST的总根ID,小者优先
2. 若总根ID相同,则比较CIST的外部路径开销,小者优先
3.若EPRC相同,则比较CIST域根ID,小者优先
4.若RRoot ID相同,则比较CIST内部路径开销,小者优先
5.若ERPC相同,则比较CIST指定桥ID,小者优先
6.若DesignateBridgeID相同,则比较指定端口ID,小者优先
7.若DesignatePortID相同,则比较接受端口ID,小者优先
经过CIST的计算,最后可以生成一棵贯穿整个网络的生成树 。
MSTI优先级向量
MSTI优先级向量包括RRootID、IRPC、DesignateBridgeID、DesignatePortID、RcvPortID 。优先级向量比较原则为“最小最优先”。具体原则比较参考CIST比较原则。
每一个MSTI都进行独立的比较计算,最后在域内生成多颗独立的生成树。
3.3 MSTP计算方法
每个BPDU报文中既包括了计算CIST的信息,也包含了计算MSTI的信息,因此在计算MSTI的时候不需要单独发送BPDU报文,当网桥在域内进行IST计算时,域内的每颗MSTI树也同时计算生成。
在进行CST计算时,会把每个MST域做为一个逻辑的网桥,其中网桥ID为IST域根ID 。
当网桥收BPDU并判断来自不同域时,它不会解析MST专有字段的信息,因此,MSTI的计算仅限于区域内。
由于网桥端口在不同的实例中担任不同的角色,所以可能会出现网桥端口既发送BPDU也接收BPDU的情况。
3.4 CST计算过程
MST域内:在初始状态,每个网桥都会认为自己是总根,从而向外发送自身为总根、域根、指定桥的BPDU报文。各网桥收到BPDU之后开始进行优先级向量的比较并确定总根、域根、指定桥以及端口的角色。
CST的计算时将不同的MST域看作成逻辑的网桥,网桥ID为IST的域根ID,通过比较优先级向量(总根、EPC、域根、指定端口ID、接受端口ID)。
CST计算过程:
1.初始时,每个域“网桥”由域内优先级最高的的网桥表示,此时优先级最高的网桥为初始CIST域根,该域“网桥”向其他域发送以该域根为总根的BPDU,EPC为0 。
2. 经过RSTP计算可以确定域“根网桥”,该域总包括了整个网络中优先级最高的网桥,即CIST总根。
3. 经过EPC可以确定每个域“网桥”的端口角色,域“网桥”的“根端口”即为域的Master端口,该Master端口所在的网桥即为新的CIST域根。
4. 一个域可能有多个域边界端口,在确定Master端口后,通过比较BPDU的优先级,可以确定域边界端口角色为指定端口、Alternate端口和Backup端口 。
5.阻塞域之间的Alternate端口和Backup端口 。
3.5 IST计算过程
CIST计算完成之后,确认了CIST域根。域内以CIST域根为根桥,结合IRPC确认各网桥端口角色,最终得到IST。
IST计算所需要的优先级向量包含:域根、IPRC、指定桥ID、指定端口ID、接受端口ID。
每个域都进行IST计算,得到每一个域的IST,结合之前域间计算的CST,最终得到整个网络的CIST。
3.6 MSTI的计算
在IST计算过程中,网桥通过交互BPDU中的MST配置信息可以同时确定MST实例的根桥以及端口角色。
可以通过为网桥指定不同实例中的优先级。
3.7 MSTP和RSTP的互操作
当运行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 。
3.8 MSTP的P/A机制
在MSTP中,在上游网桥发送的Proposal BPDU中,Proposal和Agreement均置位,下游网桥收到Proposal和Agreement均置位的BPDU后,执行同步操作然后回应agreement置位的BPDU,使得上游指定端口快速进入转发状态。
4 MSTP兼容性配置
H3C设备端口可以识别/发送的MSTP BPDU格式如下两种:
1. 符合802.1S协议的标准格式
2.与非标准格式兼容的格式
默认情况下,端口配置为自动识别方式。
在网络中,由于一些厂商的设备再对MSTP协议的实现上存在差异,即用加密算法计算配置摘要时采用私有的密钥,从而导致即使MST域配置相同,不同厂商的设备之间也不能实现在MSTP域内互通,此时需要在设备上开启摘要侦听特性,从而实现不同厂商设备再MST域内的完全互通。
由于RSPT与MSTP的P/A机制的差别(RSPT只要Proposal置位就会回应,MSTP需要Proposal和Agreement同时置位才会回应),当运行MSTP与RSTP两设备需要快速收敛时,需要在运行MSTP设备的特定端口开启No Agreement Check特性。