88440559_p0 1080.jpg

1. Multiple Spanning Tree Protocol(多实例生成树 802.1s)特征


  • 解决网络中单生成树的问题
    • 部分 VLAN 路径链路故障,导致的业务中断
    • 无法流量负载分担
    • 二层次优路径
  • MSTP 兼容 RSTP/STP

    1. MST 域


同一个 MST 域都启动了 MSTP、有相同域名、生成树实例映射(MSTI)、修订级别

image.png

1)VLAN 映射表

VLAN 和 MSTI 之间的映射关系

2)IST(内部生成树)

MST 域内的一棵生成树,由 MSTI 0产生

  • 如图所示:

    • MST Region 1 中的所有设备组成一个 MSTI 0 的 IST
    • MST Region 2 中的所有设备组成一个 MSTI 0 的 IST
    • MST Region 3 中的所有设备组成一个 MSTI 0 的 IST
    • MST Region 4 中的所有设备组成一个 MSTI 0 的 IST

      3)CST(公共生成树)

      连接不同 MST 域,把每个 IST 域看作一个节点。通过 STP 或 RSTP 计算出来的 CST 端口角色通称为「域边缘端口」

  • 如图所示:

    • CE6、CE7、CE10、CE11 相互之间有链路相连,则构成了一个 CST
  • 如图所示 CST 的角色选举:

    • CE6 的为总根,在没有自环的情况下,所有接口都是 DP
    • CE7 与 CE10 和 CE11 相连的接口通过 RPC、Bridge ID 比较后,都成为 DP
    • CE10 与 CE7 和 CE11 相连的接口由于自身 Bridge ID 更大,选举失败则成为 AP
    • CE11 与 CE7 相连的接口由于自身 Bridge ID 更大,选举失败则成为 AP;与 CE10 相连的接口由于 Bridge ID 更优,则成为 AP

      4)CIST(公共和内部生成树)

      CIST 是把所有 MST 域的 IST + CST 的通称,通过 STP 或 RSTP 计算出来的生成树。CIST 用于连接所有的 STT

  • 如图所示:

    • 每个 IST 域中的 MSTI 0 优先级都为0
    • 整个 CIST 中通过 STP 或 RSTP 计算方式,计算出整个 CIST 树

      5)STT(单生成树)

      运行在 STP/RSTP 的交换设备或 MST 域中只有一台交换设备

6)域根

分为 IST 域根[距离总根 Cost 最近的设备]和 MSTI 域根[MSTI 的根桥]

  • MSTI 域域根计算如图所示:

    • MST Region 1 中
      • CE5 成为 MSTI 2 的域根
      • CE6 成为 MSTI 0 和 MSTI 1 的域根
    • MST Region 2 中
      • CE3 成为 MSTI 1 和 MSTI 2 的域根
      • CE8 成为 MSTI 0 的域根
    • MST Region 3 中
      • CE9 成为 MSTI 2 的域根
      • CE10 成为 MSTI 0 和 MSTI 1 的域根
    • MST Region 4 中
      • CE12 成为 MSTI 0 的域根
      • CE15 成为 MSTI 1 和 MSTI 2 的域根

        7)总根

        CIST 的根桥,只有是 CST 之间才会通过系统 ID (「MSTI 0 优先级 + MAC 地址」)选举总根

  • 如图所示:

    • CE6、CE7、CE10、CE11 之间通过 BPDU 报文中的系统 ID 选举总根
    • 根据系统 ID 计算得出 CE8 成为总根

      8)主桥(IST Master,IST 域根)

      每个 MST 域中距离总根 Cost 最近的设备,比较 CST 的「RPC 值」。成为主桥的设备同时是指定交换设备。如果总根在这个域内,那么域根交换设备 ID 就是总根交换设备 ID

  • 如图所示:

    • CE7、CE10、CE11 与总根直连的设备成为主桥(IST 域根)、指定交换设备,并且[直连端口角色变为 Master]

      9)端口角色

  • RP、DP、AP、BP 和 EP 与 RSTP 机制相同

  • Master 端口:MST 域中连接到总根最近的端口(特殊的域边缘端口)
  • 域边缘端口:MST 域的边缘并连接其他的 MST 域或 SST 的端口

    3. MSTP Message


image.png
MSTP Message 格式解析

  • Protocol Identifier:协议标识符
  • Protocol Version Identifier:协议版本
    • 0:STP
    • 2:RSTP
    • 3:MSTP
  • BPDU Type:BPDU 类型
    • 0x00:STP 的配置 BPDU
    • 0x02:STP 的 TCN BPDU
    • 0x08:RSTP/MSTP 的BPDU
  • CIST Flags:CIST 标志
  • CIST Root Identifier:总根设备 ID(MSTI 0 优先级 + MAC 地址)
  • CIST External Path Cost:CIST外部路径开销,本设备的 MST 域到总根 MST 域的路径开销
  • CIST Regional Root Identifier:主桥的设备 ID(MSTI 优先级 + MAC 地址)
  • CIST Port Identifier:本端口在 IST 中的指定端口 ID(优先级 + 端口 ID)
  • Message Age:BPDU 的生存期
  • Max Age:BPDU 的最大生存期,超时则认为到根交换机的链路故障
  • Hello Time:BPDU 的发送时间,缺省为 2s
  • Forward Delay:转发时延,固定 15s
  • Version 1 Length:Version1 BPDU 的长度,值固定为 0
  • Version 3 Length:Version3 BPDU 的长度
  • MST Configuration Identifier:MST 配置标识,只有一下四个字段完全相同的,并且互联的交换机,才属于同一个域
    • Configuration Identifier Format Selector:固定为 0
    • Configuration Name:“域名”,32 字节长字符串
    • Revision Level:2 字节非负整数
    • Configuration Digest:利用 HMAC-MD5 算法将域中 VLAN 和实例的映射关系加密成 16 字节的摘要
  • CIST Internal Root Path Cost:CIST 内部路径开销指从本端口到 IST Master 交换机的路径开销
  • CIST Bridge Identifier:CIST 的指定交换机 ID
  • CIST Remaining Hops:BPDU 报文在 CIST 中的剩余跳数
  • MSTI Configuration Messages:MSTI 配置信息
    • MSTI Flags:MSTI 标志
    • MSTI Regional Root Identifier:MSTI 域根交换机 ID
    • MSTI Internal Root Path Cost:MSTI 内部路径开销指从本端口到MSTI域根交换机的路径开销
    • MSTI Bridge Priority:本交换机在 MSTI 中的指定交换机的优先级
    • MSTI Port Priority:本交换机在 MSTI 中的指定端口的优先级
    • MSTI Remaining Hops:BPDU 在 MSTI 中的剩余跳数

      4. MSTP 的选举原则


参与 CIST 计算的优先级为:交换设备ID,外部路径开销,域根ID,内部路径开销,指定交换设备ID,指定端口ID,接收端口ID 参与 MSTI 计算的优先级为:域根ID,内部路径开销,指定交换设备ID,指定端口ID,接收端口ID

比较原则:

  1. 首先,比较根交换设备 ID
  2. 如果根交换设备 ID 相同,再比较外部路径开销
  3. 如果外部路径开销相同,再比较域根 ID
  4. 如果域根 ID 仍然相同,再比较内部路径开销
  5. 如果内部路径仍然相同,再比较指定交换设备 ID
  6. 如果指定交换设备 ID 仍然相同,再比较指定端口 ID
  7. 如果指定端口 ID 还相同,再比较接收端口 ID

    5. MSTI 的计算


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

  • MSTI 的特点
    • 每个 MSTI 独立计算自己的生成树,互不干扰
    • 每个 MSTI 的生成树计算方法与 STP 基本相同
    • 每个 MSTI 的生成树可以有不同的根,不同的拓扑
    • 每个 MSTI 在自己的生成树内发送 BPDU
    • 每个 MSTI 的拓扑通过命令配置决定
    • 每个端口在不同 MSTI 上的生成树参数可以不同
    • 每个端口在不同 MSTI 上的角色、状态可以不同
  • VLAN 报文的转发路径
    • 在 MST 域内,沿着其对应的 MSTI 转发
    • 在 MST 域间,沿着 CST 转发

      6. 增强 P/A 机制


image.png

  1. 协商开始时,每一台设备都认为自己是根桥,端口是指定端口,状态为 Discarding
  2. 相互发送 Proposal 和 Agreement 同时置位的 BPDU 报文,通过 BPDU 报文选举出根桥,同时下游设备把与上游设备相连的端口设置为根端口,并阻塞所有非边缘端口
  3. 上游设备继续发送 Agreement 报文。下游设备接收到后,根端口转为 Forwarding 状态
  4. 下游设备回应 Agreement 报文。上游设备接收到后,把与下游设备相连的端口设置为指定端口,指定端口进入 Forwarding 状态