MSTP的工作原理
MSTP的工作原理
MSTP(多生成树实例)是IEEE 802.1S中定义的生成树协议,可以将一个或多个VLAN映射到一个Instance(实例),再基于Instance计算生成树,映射到同一个Instance的VLAN共享同一棵生成树。MSTP通过多生成树解决STP/RSTP的不足,打破二层环路。
STP/RSTP的缺点:
- STP/RSTP是单生成树协议,共享一个根
- 无法基于vlan实现流量的负载分担
- 可能导致次优路径
- 不同的链路放行不同的vlan时,可能导致部分vlan不通
MSTP的概念:
MSTP(多实例生成树实例)是IEEE 802.1S中定义的生成树协议,可以将一个或多个VLAN映射到一个Instance(实例),再基于Instance计算生成树,映射到同一个Instance的VLAN共享同一棵生成树。
注:
1.生成树不是基于VLAN运行的,而是基于Instance运行的。需要将VLAN映射到Instance中
2.MSTP默认存在Instance 0,所有没有和创建的instance映射的VLAN默认都属于instance
MSTP的工作原理:
域内防环:
破环思路:
依据STP/RSTP算法、基于不同的Instance,计算出每个instance对应的生成树,instance内映射绑定的VLAN通过对应的生成树进行报文转发。默认情况下,所有VLAN映射到缺省的instance 0中。
场景如图:
简要描述:
如上图:
- 交换机之间的互联链路配置为Trunk链路,放行vlan1~10,创建实例1和2;
- 将vlan2
5映射到instance 1中,vlan610映射到instance 2中,vlan1缺省映射在实例0中; - 通过修改实例的优先级让不同的交换机成为各实例的主、备根桥。
MSTP基于实例计算生成多棵生成树,每棵生成树都被称为是一个MSTI。
抽象出的MSTI如下图:
vlan25的报文通过MSTI 1转发,vlan610的报文通过MSTI 2转发,vlan1的报文通过MSTI 0转发,实现MSTP域内防环并解决STP/RSTP可能会出现的问题。
域间防环:
破环思路:
- MSTP将每个域抽象成一台交换机,用各自域中instance 0的根桥的BID充当抽象出的交换机的BID;
- 比较抽象出的交换机的BID的大小,小的成为根桥,这台交换机成为总根;
- 总根所在的域成为根域,其他的域称为非根域;
- 非根域选举离总根具有最短域间根路径开销(ERPC)的端口,该端口称为Master端口,即到总根的RP端口;
- 若ERPC相同,则比较自身交换机在instance 0的BID,BID小的成为该域instance 0的根桥,该交换机上到总根的ERPC最近的端口成为Master端口;
- Master端口所在的交换机无条件自动成为非根域中instance 0的根桥;
注:
- instance 0的根桥会经历两次选举确认:第一次:域内参与选举比优先级;第二次:Master端口确认后,Master端口所在交换机无条件成为所在域内instance 0的根桥。
- IRPC只在域内传递,一旦传到遇域外就会被清空;ERPC会被一直携带。
场景如下:
简要描述:
域HCIP和域CCIP通过两条链路连接,放行vlan1,其中LSW1为域HCIP中instance 0的根桥,LSW7为域CCIP中instance 0的根桥。此时,全网放行vlan 1,出现环路。
- 域HCIP抽象成一台交换机,以instance 0的根桥LSW1的BID:0.4c1f-cc74-5786作为BID;
- 域CCIP抽象成一台交换机,以instance 0的根桥LSW7的BID:0.4c1f-cc91-5249作为BID;
- 比较抽象出的交换机的BID大小,域HCIP的BID小,所以交换机LSW1作为总根;
- LSW1所在域HCIP成为根域,域CCIP成为非根域;
- 非根域CCIP有两条到达总根的端口:LSW4的G0/0/2和LSW5的G0/0/1,它两到达域HCIP的域间根路径开销一样
- 域间根路径开销ERPC一样,比较LSW4和LSW5自身的BID,LSW5的BID小,即LSW5的G0/0/1成为Master端口;
- 确定Master端口后,LSW5成为域CCIP的instance 0的根桥,LSW7不再是instance 0的根桥,在instance 0中LSW5以自己为根重新计算生成树
报文解析:
参与CIST计算的优先级向量为:
1.根交换设备ID(RID)
2.外部路径开销(ERPC)
3.域根ID(BID)
4.内部路径开销(IRPC)
5.指定交换设备ID(sender BID)
6.指定端口ID(sender PID)
7.接收端口ID
参与MSTI计算的优先级向量为:
{域根ID,内部路径开销,指定交换设备ID,指定端口ID,接收端口ID}
注:括号中的向量的优先级从左到右依次递减。MSTI计算的向量就是CIST的后六项。
其他补充:
1.域内实例的信息是不会直接被携带到域外的,为什么?那么怎么将这些信息让其他域知道?
在域间携带实例和VLAN的映射关系,会导致报文过大,交换机处理繁琐。但为了让其他域知道本域内实例和VlAN的映射关系,交换机通过将实例和VLAN的映射关系、域名、修订值做Hash运算,通过比较Hash来确定是否是同一个域的BPDU。
实例和VLAN的映射关系、域名做Hash运算有几率出现相同的值,因此版本修订级别是为了预防这些冲突。