MSTP协议
0x0 why MSTP
RSTP和STP都有以下缺点:
- 树只有一颗,浪费了冗余链路的带宽
- 可能使用次优路径
- 绕远路,走次优的路径
0x1 how MSTP
0x1.1 MSTP的前身———PVST
CISCO ——— no span vlan 1
- 每个vlan一颗独立的生成树,每个vlan都是独立进行破环;所有vlan一起看,每条链路被利用了
- 每个交换机可以用命令指定它再不同vlan内的stp优先级,让它不走次优路径
特点:
每个vlan独立的进行生成树的计算和破环,可以更改优先级
缺陷:
生成树太多
每个根网桥都在持续的发送BPDU,浪费带宽
- 改进方式:不需要一个vlan一棵树,可以将多颗重复的数合在一起,节省选举,维护,收敛的开销
0x1.2 MSTP单区域与多区域
MSTP分为单区域与多区域
单区域:
- 要求:交换机须在同一个域
- 域名、修订号、vlan与实例(数)映射关系 相同才能算在一个mstp域中
- 在单区域内分为 IST、MIST
- IST:实例0
- MSTI 1 : 实例1 额外创的
- MSTI 2 : 实例2 一个MSTI可以包含多个vlan,一个vlan只能属于一个MSTI
- 单区域内会对每个实例进行选举(参考RSTP),为每个实例生成一颗树
- 与PVST的区别:PVST每个vlan一棵树,MSTP一个实例一颗树,一个实例可以包含多个vlan(从而避免了带宽浪费)
多区域:
- 多个单区域MSTP构成多区域MSTP
- 在多区域中存在CST、CIST
- CST:公共生成树,连接整个MSTP网络内所有MST域的一棵单生成树(只有一颗)
- CIST:公共和内部生成树,连接整个MSTP网络内所有交换机的单生成树,由IST和CST共同构成
- CST是连接交换网络中所有MST域的单生成树,而CIST则是连接交换网络内的所有交换机的单生成树
0x1.3 根域与总根
- 在MSTP网络中,每MST域都有一个特殊的IST实例,以及许多MSTI实例,域根分为IST域根和MSTI域根。
- IST域根
- 先选举出一个MST域中的IST的域根(每个交换机的实例树0进行BPDU的比较,比出一个最小ID)
- 将域根的网桥ID作为CST的网桥ID
- 每个区域的CST进行选举,选出一个BPDU最优的CST作为总根
- 每个MST域中距离总根最近的交换机再被选为IST域根
- MSTI的域根
- 每个对应生成树实例的树根,域中不同的MSTI有各自的域根。
- IST域根
- 总根是CIST生成树的根桥,通常是交换网络中最上层的交换机,上图中的总根是A0域中的IST生成树的根,一个MSTP网络只有一个总根
0x1.4 MSTP向量比较规则
- 从上往下,类似BPUD的比较
0x1.5 MSTP拓扑变化处理
- 在MSTP中检测拓扑是否发生了变化的标准是根据–个非边缘端口的状态是否迁移到Forwarding状态,如果是迁移到了Forwarding状态,则会发生拓扑变化。
- 处理过程
- 本交换机
- 为本交换机的所有非边缘指定端口启动一个TC While Timer(该计时器值是Hello Time的两倍),并在这个时间内,清空这些端口上学来的MAC地址。如果是根端口上有状态变化,则启动根端口。
- 发生状态变化的这些端口向外发送TC BPDU,其中的TC置位,直到TC While Timer超时。根端口总是要发送这种TC BPDU。
- 其他交换机接收到TC BPDU
- 清空所有端口学来的MAC地址,收到TC BPDU的端口除外。
- 为所有自己的非边缘指定端口和自己的根端口启动TC While计时器,重复上述过程。
- 本交换机
0x2 what MSTP
- 多生成树协议,向下兼容RSTP,IEEE802.1s