1       MSTP的引入

启用STP/RSTP协议的网桥上所有的VLAN共享一棵生成树,无法实现VLAN的负载分担,造成链路带宽的浪费。

MSTP(多生成树)的提出,很好的解决了网络中VLAN负载分担的问题。

MSTPIEEE803.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   CSIISTCIST、总根和域根

CIST:公共和内部生成树,是整个网络所有设备经过生成树计算得到的一棵树

总根:是整个网络中优先级最高的桥,也是CIST中的根桥

CST:公共生成树,是连接网络内MST域的单生成树,总根所处的域为CST的根桥

IST:内部生成树,是MST域内的一棵生成树

MST域内的每一颗生成树都会对应一个实例,IST的实例号为0,没有映射到其他实例的VLAN都会默认映射到实例0上,即IST

IST的根桥即CIST的域根,是在MST域内距离总根最近的网桥,也称Master桥。

2.3   MSTIMSTI域根

一个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   MSTPBPDU格式

1.Protocol ID:固定为0x00,表示STP

2. Protocol Version ID:协议号为0x03,表示MSTP

3.BPDU TypeBPDU类型为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 IDMST配置标识,包含四个字段,如下:

  Format Selector:格式选择,固定为0x00

  Name configuration NameMST域名

  Revision Level:修订版本

  Config Digest :配置摘要

3.CIST  IRPCCIST内部路径开销,表示发送此BPDU的网桥到CIST域根的路径开销。

4. CIST Bridge ID:表示发送此PBDU的网桥ID

5. CIST Remainig HopsCIST剩余跳数,用来限制MST的规模,默认值为20

6.MSTI Configuration Message:包含了0个或最多64MSTI信息,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 IDEPRCRRoot IDIRPCDesignateBridgeIDDesignatePortIDRcvPortID 。优先级向量比较原则为“最小最优”,具体原则比较如下:

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优先级向量包括RRootIDIRPCDesignateBridgeIDDesignatePortIDRcvPortID 。优先级向量比较原则为“最小最优先”。具体原则比较参考CIST比较原则。

每一个MSTI都进行独立的比较计算,最后在域内生成多颗独立的生成树。

3.3   MSTP计算方法

每个BPDU报文中既包括了计算CIST的信息,也包含了计算MSTI的信息,因此在计算MSTI的时候不需要单独发送BPDU报文,当网桥在域内进行IST计算时,域内的每颗MSTI树也同时计算生成。

在进行CST计算时,会把每个MST域做为一个逻辑的网桥,其中网桥IDIST域根ID

当网桥收BPDU并判断来自不同域时,它不会解析MST专有字段的信息,因此,MSTI的计算仅限于区域内。

由于网桥端口在不同的实例中担任不同的角色,所以可能会出现网桥端口既发送BPDU也接收BPDU的情况。

3.4   CST计算过程

MST域内:在初始状态,每个网桥都会认为自己是总根,从而向外发送自身为总根、域根、指定桥的BPDU报文。各网桥收到BPDU之后开始进行优先级向量的比较并确定总根、域根、指定桥以及端口的角色。

CST的计算时将不同的MST域看作成逻辑的网桥,网桥IDIST的域根ID,通过比较优先级向量(总根、EPC、域根、指定端口ID、接受端口ID)。

CST计算过程:

1.初始时,每个域“网桥”由域内优先级最高的的网桥表示,此时优先级最高的网桥为初始CIST域根,该域“网桥”向其他域发送以该域根为总根的BPDUEPC0

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   MSTPRSTP的互操作

当运行MSTP的网桥和运行RSTP/STP的网桥一起工作时,RSTP/STP网桥会将MSTP域看作一个桥ID为域根IDRSTP桥。

RSTP/STP网桥收到MST BPDU后,会提取BPDU中的(RootIDEPRCRRootIDDesignatePortID)作为RSTP/STP计算所需的优先级向量RootIDRPCDesignateBrigeIDDesignatePortID

MSTP网桥收到RSTP/STP BPDU后,会将BPDU中的信息(RootIDRPCDesignateBrigeIDDesignatePortID)对应到MSTP计算所需要的优先级向量中,其中DesignateBrigeID既可以做MSTP优先级向量中的PRoot ID,也可作为DesignateBrigeIDIRPC设置为0

3.8   MSTPP/A机制

MSTP中,在上游网桥发送的Proposal BPDU中,ProposalAgreement均置位,下游网桥收到ProposalAgreement均置位的BPDU后,执行同步操作然后回应agreement置位的BPDU,使得上游指定端口快速进入转发状态。

4       MSTP兼容性配置

H3C设备端口可以识别/发送的MSTP BPDU格式如下两种:

1. 符合802.1S协议的标准格式

2.与非标准格式兼容的格式

默认情况下,端口配置为自动识别方式。

在网络中,由于一些厂商的设备再对MSTP协议的实现上存在差异,即用加密算法计算配置摘要时采用私有的密钥,从而导致即使MST域配置相同,不同厂商的设备之间也不能实现在MSTP域内互通,此时需要在设备上开启摘要侦听特性,从而实现不同厂商设备再MST域内的完全互通。

由于RSPTMSTPP/A机制的差别(RSPT只要Proposal置位就会回应,MSTP需要ProposalAgreement同时置位才会回应),当运行MSTPRSTP两设备需要快速收敛时,需要在运行MSTP设备的特定端口开启No Agreement Check特性。