网工在路上--一文弄懂MSTP协议

对于STP生成树协议,了解的人比较多。经过STP协议,解决了二层网络内的环路问题,在消除环路和链路备份之间达成了平衡。但在现网中,一个二层网路内每每不止一个vlan,而是多个vlan的集合,STP/RSTP只能处理单个vlan的问题,而对于多个vlan的状况一筹莫展。所以,MSTP的出现相当重要。
本文经过查询华为Hex文档,结合自身理解,造成比较清晰而重要的MSTP的文档,多是全网最详细的MSTP文档。网络

1 定义

MSTP(multiple spanning tree protocol)是多生成树协议,经过生成多个生成树,来解决以太网的环路问题。负载均衡

2 目的

  • 在一个局域网内生成多个STP树,解决多个vlan的广播风暴,并实现冗余备份。
  • 多棵STP树在vlan间实现负载均衡,不一样vlan的流量按照不一样的路径转发。解决stp/rstp某一vlan的链路被阻塞后全部vlan均被阻塞的问题。
    网工在路上--一文弄懂MSTP协议
    在此图中,若是在全网内应用stp/rstp,则按协议要求,获得一棵用虚线表示的生成树,其中,S6为根桥,S2和S5之间、S1和S4之间的链路被阻塞。若是该网中只有一种vlan或者vlan的容许经过的链路同样,则stp/rstp已经知足现网要求。可是因为s1和s2之间,s3和s6之间只容许vlan3经过,s4与s5之间只容许vlan2经过,因此hostB和hostA之间没法通讯。
    所以须要MSTP协议的引入来解决这种问题。

    3 原理

    MSTP把一个交换网络划分红多个域,每一个域造成多棵生成树,生成树之间彼此独立,每颗生成树叫作一个多生成树实例MSTI(multiple spanning tree instance),每一个域叫作一个MST域(multiple spanning tree region)。每一个MSTI能够看做是多个vlan的集合,即vlan根据须要捆绑在若干MSTI上(通常而言,这种须要指的是相同的拓扑结构),vlan和MSTI是多对一的关系,这样能够节省通讯开销和资源占用率。
    网工在路上--一文弄懂MSTP协议
    在引入MSTP后,MSTP经过设置vlan映射表,把vlan和msti联系起来,根据现网须要,该网络中,每一个vlan对应了一个msti。能够认为,每一个msti之间容许独立的stp协议。
    通过计算,最终生成了两棵树:ide

  • MSTI1 以 S4为根交换设备,转发VLAN 2 的报文
  • MSTI2 以S6 为根交换设备,转发VLAN 3 的报文
    以往咱们认为,一个交换网络中只会存在一个根桥,可是在引入MSTP后,交换网络中能够存在多个根桥,根桥数量与MSTI的数量一致。

4 基本概念

4.1 网络层次

一个MSTP网络中包含多个MST域,每一个MST域中包含多个MSTI,一个MSTI中包含多个运行STP/RSTP/MSTP的交换设备spa

网工在路上--一文弄懂MSTP协议

4.2 MST域

MST域由交换网络中的多台交换设备以及他们之间的网段所组成。同一MST域的设备具备如下特色:blog

  • 都启用了MSTP
  • 具备相同的域名 (region name)
  • 相同的vlan-MSTI映射关系 (instance xx vlan xx)
  • 相同的MSTP修订级别配置(region level)

MST域之间在物理上直接或者间接相连。ip

4.3 VLAN映射表

描述了vlan和MSTI的映射关系,vlan和MSTI是多对一的关系。资源

4.4 CST

公共生成树,链接交换网络内全部MST域的一棵生成树。若是把MST域看做是一个节点或桥,那么CST就是这些节点经过STP/RSTP计算生成的一棵生成树。文档

4.5 CIST&IST

  • CIST是公共和内部生成树,经过STP/RSTP生成,将交换网内全部交换设备看做是没有vlan区分的设备,由它们生成一棵单生成树。
  • IST是内部生成树,是MST域内的一棵生成树,IST是一个特殊的MSTI,MSTI的ID为0,一般称为MSTI0。能够把IST理解成CIST在MST域内的一个子集。

    4.6 SST

    单生成树,运行STP/RSTP的交换设备只能属于一个生成树。或者MST域中只有一个交换设备,这个交换设备构成单生成树。域名

    4.7 总根&域根

  • 总根是CIST的根桥。
  • 域根分为IST域根和MSTI域根。
  • IST域根是在MST域中IST生成树中距离总根最近的交换设备。
  • MSTI域根是每一个多生成树实例的树根。一个MSTI域内能够有多个生成树实例,也即有多个MSTI域根。

    4.8 主桥

    IST Master,域内距离总根最近的交换设备。it

    5 端口角色

    相比于RSTP,MSTP在根端口,指定端口,alternate端口,backup端口和边缘端口的基础上,新增master端口和域边缘端口。即共有7种端口类型。

    5.1 master端口

    是MST域和总根相连的全部路径种最短路径上的端口,是交换设备上链接MST域到总根的端口。Master端口是域中的报文去往总根的必经之路。master端口是特殊的域边缘端口,他在CIST上的角色是root port ,在其余各实例上的角色都是master端口。

网工在路上--一文弄懂MSTP协议

5.2 域边缘端口

位于MST域的边缘并链接其余MST域或SST的端口。

6 MSTP报文格式

网工在路上--一文弄懂MSTP协议

相比于RST BPDU报文,MSTP的BPDU报文前36字节是相同的。从第37字节开始是其专有字段。
目前MST BPDU存在两种格式。分别是:

  • dot1s
  • legacy
    须要人工识别,手动配置,配错成环。
    华为新增:auto
    实现自动识别,自动适配。初始支持dot1s。

    7 MSTP拓扑计算

    MSTP将二层网络分为多个MST域,域间计算生产CST,域内分为多个生成树实例,每一个实例分别计算独立的STP生成树。
    实例0被称为IST,其余的多生成树实例为MSTI。

    7.1 优先级向量

  • MSTI的优先级向量{域根ID,内部路径开销,指定交换设备ID,指定端口ID,接收端口ID}
  • CIST的优先级向量{根交换设备ID,外部路径开销,域根ID,内部路径开销,指定交换设备ID,指定端口ID,接收端口ID}
    从左至右依次递减。
向量名称 说明
根交换设备ID CIST的根交换设备ID,等于priority(16bit)+MAC(48bit),其中priority为MSTI0的优先级
外部路径开销(ERPC) 从CIST的域根到达总根的路径开销。MST域内全部交换设备上保存的外部路径开销相同。若CIST根交换设备在域中,则域内全部交换设备上保存的外部路径开销为0。
域根ID 域根ID用于选择MSTI中的域根。域根ID = Priority(16bits) + MAC(48bits)。其中Priority为MSTI0的优先级。
内部路径开销(IRPC) 本桥到达域根的路径开销。域边缘端口保存的内部路径开销大于非域边缘端口保存的内部路径开销。
指定交换设备ID CIST或MSTI实例的指定交换设备是本桥通往域根的最邻近的上游桥。若是本桥就是总根或域根,则指定交换设备为本身。
指定端口ID 指定交换设备上同本设备上根端口相连的端口。Port ID = Priority(4位) + 端口号(12位)。端口优先级必须是16的整数倍。
接收端口ID 接收到BPDU报文的端口。Port ID = Priority(4位) + 端口号(12位)。端口优先级必须是16的整数倍。

7.2 比较原则

同一贯量比较,值最小的向量具备最高优先级。

  • 1 比较根交换设备ID。

  • 2 若是根交换设备ID相同,再比较外部路径开销。

  • 3 若是外部路径开销相同,再比较域根ID。

  • 4 若是域根ID仍然相同,再比较内部路径开销。

  • 5 若是内部路径仍然相同,再比较指定交换设备ID。

  • 6 若是指定交换设备ID仍然相同,再比较指定端口ID。

  • 7 若是指定端口ID还相同,再比较接收端口ID。

若是端口接收到的BPDU内包含的配置消息优于端口上保存的配置消息,则端口上原来保存的配置消息被新收到的配置消息替代。端口同时更新交换设备保存的全局配置消息。反之,新收到的BPDU被丢弃。

7.3 CIST的计算

通过比较配置消息后,在整个网络中选择一个优先级最高的交换设备做为CIST的树根。在每一个MST域内MSTP经过计算生成IST;同时MSTP将每一个MST域做为单台交换设备对待,经过计算在MST域间生成CST。CST和IST构成了整个交换设备网络的CIST。

7.4 MSTI的计算

在MST域内,MSTP根据VLAN和生成树实例的映射关系,针对不一样的VLAN生成不一样的生成树实例。每棵生成树独立进行计算,计算过程与STP计算生成树的过程相似

MSTI的特色:

  • 每一个MSTI独立计算本身的生成树,互不干扰。

  • 每一个MSTI的生成树计算方法与STP基本相同。

  • 每一个MSTI的生成树能够有不一样的根,不一样的拓扑。

  • 每一个MSTI在本身的生成树内发送BPDU。

  • 每一个MSTI的拓扑经过命令配置决定。

  • 每一个端口在不一样MSTI上的生成树参数能够不一样。

  • 每一个端口在不一样MSTI上的角色、状态能够不一样。

在运行MSTP协议的网络中,一个VLAN报文将沿着以下路径进行转发:

  • 在MST域内,沿着其对应的MSTI转发。
  • 在MST域间,沿着CST转发。

8 MSTP快速收敛机制(P/A机制)

8.1 普通方式

网工在路上--一文弄懂MSTP协议

-1 p0和p1两个端口立刻都先成为指定端口,发送RST BPDU。
-2 S2的p1口收到更优的RST BPDU,立刻意识到本身将成为根端口,而不是指定端口,中止发送RST BPDU。

  • 3 S1的p0进入Discarding状态,因而发送的RST BPDU中把proposal和Agreement置1。
  • 4 S2收到根桥发送来的携带proposal的RST BPDU,开始将本身的全部端口进入sync变量置位。
  • 5 p2已经阻塞,状态不变;p4是边缘端口,不参与运算;因此只须要阻塞非边缘指定端口p3。
  • 6 各端口的synced变量置位后,p二、p3进入Discarding状态,p1进入Forwarding状态并向S1返回Agreement位置位的回应RST BPDU。
  • 7 当S1判断出这是对刚刚发出的Proposal的回应,因而端口p0立刻进入Forwarding状态。
    下游设备继续执行P/A协商过程。

8.2 加强方式

网工在路上--一文弄懂MSTP协议

  • 1 协商开始时,每一台设备都认为本身是根桥,根桥上的端口是指定端口,端口状态为Discarding,端口的synced变量置位,触发Proposal和Agreement同时置位。上游设备发送Proposal报文,请求进行快速迁移。下游设备接收到后,把与上游设备相连的端口设置为根端口,并阻塞全部非边缘端口。

  • 2 上游设备继续发送Agreement报文。下游设备接收到后,根端口转为Forwarding状态。

  • 3 下游设备回应Agreement报文。上游设备接收到后,把与下游设备相连的端口设置为指定端口,指定端口进入Forwarding状态。

缺省状况下,华为数据通讯设备使用加强的快速迁移机制。

相关文章
相关标签/搜索