生成树协议的常见版本(多生成树协议MSTP)

RSTP在STP基础上进行了改进,实现了网络拓扑快速收敛但RSTP和STP还存在同一个缺陷:由于局域网内所有的VLAN共享一棵生成树,因此被阻塞后链路将不承载任何流量,无法在VLAN间实现数据流量的负载均衡,从而造成带宽浪费,今天小编就来聊一聊关于生成树协议的常见版本?接下来我们就一起去研究一下吧!

生成树协议的常见版本(多生成树协议MSTP)

生成树协议的常见版本

RSTP在STP基础上进行了改进,实现了网络拓扑快速收敛。但RSTP和STP还存在同一个缺陷:由于局域网内所有的VLAN共享一棵生成树,因此被阻塞后链路将不承载任何流量,无法在VLAN间实现数据流量的负载均衡,从而造成带宽浪费。

为了弥补STP和RSTP的缺陷,IEEE于2002年发布的802.1s标准定义了MSTP。MSTP兼容STP和RSTP,既可以快速收敛,又提供了数据转发的多个冗余路径,在数据转发过程中实现VLAN数据的负载均衡。

STP/RSTP的缺陷

部分VLAN路径不通

如下图所示,网络中有SWA、SWB、SWC三台交换机。配置VLAN2通过两条上行链路,配置VLAN3只通过一条上行链路。

为了解决VLAN2的环路问题,需要运行生成树。设备运行STP/RSTP后,SWC与SWB相连的端口成为预备端口(Discarding状态),那么VLAN3的路径就会被断开,无法上行到SWB。

无法实现流量分担

如下图所示,为了实现流量分担,需要配置两条上行链路为Trunk链路,允许通过所有VLAN;SWA和SWB之间的链路也配置为Trunk链路,允许通过所有VLAN。将VLAN2的三层接口配置在SWA上,将VLAN3的三层接口配置在SWB上,希望VLAN2和VLAN3分别使用不同的链路上行到相应的三层接口。

但是设备运行STP/RSTP后,SWC与SWB相连的端口成为预备端口(Alternate Port)并处于Discarding状态,则VLAN2和VLAN3的数据都只能通过一条上行链路上行到SWA,无法实现流量分担。

次优二层路径

如下图所示,SWC与SWA和SWB相连的链路配置为Trunk链路,允许通过所有VLAN;SWA与SWB之间的链路也配置为Trunk链路,允许通过所有VLAN。

设备运行STP/RSTP后,环路被断开,VLAN2和VLAN3都直接上行到SWA。在SWA上配置VLAN2的三层接口,在SWB上配置VLAN3的三层接口,那么,VLAN3到达三层接口的路径就是次优的。

MSTP对STP和RSTP的改进

MST域内可以生成多棵生成树,每棵生成树都称为一个MSTI。MSTI之间彼此独立,且每个MSTI的计算过程基本与RSTP的计算过程相同。

MSTP兼容STP和RSTP,既可以快速收敛,又提供了数据转发的各个冗余路径,在数据转发过程中实现VLAN数据的负载均衡。

MST配置表

为了在交换机上标识VLAN和MST Instance的映射关系,交换机维护一个MST配置表(MST Configuration Table)。

  • MST配置表的结构是4096个连续的两字节元素组,代表4096个VLAN,第一个元素和最后一个元素设置为全0;第二个元素表示VLAN 1映射到的MST Instance的MSTID,第三个元素表示VLAN 2映射到的MST Instance的MSTID,依此类推,倒数第二个元素(第4095个元素)表示VLAN 4094映射到的MST Instance的MSTID。

  • VRP平台支持16个MST Instance,MSTID取值范围是0~15。交换机初始化时,此表格所有字段设置为全0,表示所有VLAN映射到Instance 0。

    由MST配置表可见,一个MSTI可以与一个或多个VLAN对应,但一个VLAN只能与一个MSTI对应。

    MST区域

    MST域是多生成树域(Multiple Spanning Tree Region),由交换网络中的多台交换设备以及它们之间的网段所构成。同一个MST域的设备具有下列特点:

  • 都启动了MSTP。

  • 具有相同的域名。

  • 具有相同的VLAN到生成树实例映射配置。

  • 具有相同的MSTP修订级别配置。

    一个局域网可以存在多个MST域,各MST域之间在物理上直接或间接相连。用户可以通过MSTP配置命令把多台交换设备划分在同一个MST域内。

  • 一个MST域内可以生成多棵生成树,每棵生成树都称为一个MSTI,每个MSTI都使用单独的RSTP算法,计算单独的生成树。

  • 除了Instance 0之外,每个区域的MST Instance都独立计算生成树,不管是否包含相同的VLAN,不管VLAN是否通过区域间链路,区域间的生成树计算互不影响。

    MST配置标识

    MST配置标识被封装在交换机相互发送的BPDU中,交换机通过MST配置标识(MST Configuration Identifier)来标识自己所在的区域。

    如上图所示,MST配置标识的数据结构包括四部分,只有四部分设置都相同的相邻交换机才被认为是在同一个区域中。

  • Configuration Identifier Format Selector:配置标识格式选择符,长度为一个字节,固定设置为0。

  • Configuration Name:配置名称,也就是交换机的MST域名,长度为32字节。每个交换机都配置一个MST域名,默认为交换机的MAC地址。‍

  • Configuration Digest:配置摘要,长度为16字节。相同区域的交换机应当维护相同的VLAN到MST Instance的映射表,可是MST配置表太大(8192字节),不适合在交换机之间相互发送。此字段是使用MD5算法从MST配置表中算出的摘要信息。

  • Revision Level:修订级别,长度为两个字节,默认取值为全0。由于Configuration Digest是MST配置表的摘要信息,因此有很小的可能会出现MST配置表不同但摘要信息却相同的情况,这会导致本来不在同一区域的交换机被认为在同一区域中,此字段是一个额外的标识字段,建议不同的区域使用不同的数值,以消除上述可能产生错误的情况。

    MSTI的计算

    在MST域内,MSTP根据VLAN和生成树实例的映射关系,针对不同的VLAN生成不同的生成树实例。每棵生成树独立进行计算,计算过程与STP计算生成树的过程类似,可参见STP介绍文中拓扑计算选举部分。。

    MSTI具有以下的特点:

  • 每个MSTI独立计算自己的生成树,互不干扰。

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

  • 每个MSTI的生成树可以有不同的根,不同的拓扑。

  • 每个MSTI在自己的生成树内发送BPDU。

  • 每个端口在不同MSTI上的生成树参数可以不同。

  • 每个端口在不同MSTI上的角色、状态可以不同。

    MSTP对拓扑变化的处理

    MSTP拓扑变化处理与RSTP拓扑变化处理过程类似,可参见RSTP文中拓扑变化处理部分。

    配置MSTP功能示例

    如下图所示,SwitchA、SwitchB、SwitchC和SwitchD都运行MSTP。实现VLAN2~VLAN10和VLAN11~VLAN20的流量负载分担,MSTP引入了多实例。MSTP可设置VLAN映射表,把VLAN和生成树实例相关联。

    配置思路

    1. 配置MSTP基本功能

    2. 与PC相连的端口不用参与MSTP计算,将其设置为边缘端口。

    3. 配置保护功能,实现对设备或链路的保护。例如:在各实例的根桥设备指定端口配置根保护功能。

    4. 配置设备的二层转发功能。

    操作步骤

    1.配置MSTP基本功能

    a. 配置SwitchA、SwitchB、SwitchC和SwitchD到域名为RG1的域内,创建实例MSTI1和实例MSTI2

    # 配置SwitchA的MST域。

    [SwitchA] stp region-configuration

    [SwitchA-mst-region] region-name RG1

    [SwitchA-mst-region] instance 1 vlan 2 to 10

    [SwitchA-mst-region] instance 2 vlan 11 to 20

    [SwitchA-mst-region] active region-configuration

    [SwitchA-mst-region] quit

    # 配置SwitchB的MST域。

    [SwitchB] stp region-configuration

    [SwitchB-mst-region] region-name RG1

    [SwitchB-mst-region] instance 1 vlan 2 to 10

    [SwitchB-mst-region] instance 2 vlan 11 to 20

    [SwitchB-mst-region] active region-configuration

    [SwitchB-mst-region] quit

    # 配置SwitchC的MST域。

    [SwitchC] stp region-configuration

    [SwitchC-mst-region] region-name RG1

    [SwitchC-mst-region] instance 1 vlan 2 to 10

    [SwitchC-mst-region] instance 2 vlan 11 to 20

    [SwitchC-mst-region] active region-configuration

    [SwitchC-mst-region] quit

    # 配置SwitchD的MST域。

    [SwitchD] stp region-configuration

    [SwitchD-mst-region] region-name RG1

    [SwitchD-mst-region] instance 1 vlan 2 to 10

    [SwitchD-mst-region] instance 2 vlan 11 to 20

    [SwitchD-mst-region] active region-configuration

    [SwitchD-mst-region] quit

    说明

    当需要两台交换设备属于同一个MST域时,需保证以下信息配置相同:

    1. MST域的域名配置相同。

    2. 多生成树实例和VLAN的映射关系配置相同。

    3. MST域的修订级别配置相同。

    b. 在域RG1内,配置MSTI1与MSTI2的根桥与备份根桥

    # 配置SwitchA为MSTI1的根桥、MSTI2的备份根桥。

    [SwitchA] stp instance 1 root primary

    [SwitchA] stp instance 2 root secondary

    # 配置SwitchB为MSTI1的备份根桥、MSTI2的根桥。

    [SwitchB] stp instance 1 root secondary

    [SwitchB] stp instance 2 root primary

    c. 使能MSTP,实现破除环路

    # 在SwitchA上启动MSTP。

    [SwitchA] stp enable

    # 在SwitchB上启动MSTP。

    [SwitchB] stp enable

    # 在SwitchC上启动MSTP。

    [SwitchC] stp enable

    # 在SwitchD上启动MSTP。

    [SwitchD] stp enable

    2.将与终端相连的端口设置为边缘端口

    # 配置SwitchC端口GE1/0/1为边缘端口。

    [SwitchC] interface gigabitethernet 1/0/1

    [SwitchC-GigabitEthernet1/0/1] stp edged-port enable

    [SwitchC-GigabitEthernet1/0/1] quit

    # 配置SwitchD端口GE1/0/1为边缘端口。

    [SwitchD] interface gigabitethernet 1/0/1

    [SwitchD-GigabitEthernet1/0/1] stp edged-port enable

    [SwitchD-GigabitEthernet1/0/1] quit

    3.配置保护功能,如在各实例的根桥设备的指定端口配置根保护功能

    # 在SwitchA端口GE1/0/1上启动根保护。

    [SwitchA] interface gigabitethernet 1/0/1

    [SwitchA-GigabitEthernet1/0/1] stp root-protection

    [SwitchA-GigabitEthernet1/0/1] quit

    # 在SwitchB端口GE1/0/1上启动根保护。

    [SwitchB] interface gigabitethernet 1/0/1

    [SwitchB-GigabitEthernet1/0/1] stp root-protection

    [SwitchB-GigabitEthernet1/0/1] quit

    4.配置设备的二层转发功能,配置过程略

    5.验证配置结果

    在网络计算稳定后,执行以下操作,验证配置结果。

    # 在SwitchA上执行display stp brief命令,查看端口状态和端口的保护类型,结果如下:

    # 在SwitchB上执行display stp brief命令,结果如下:

    # 在SwitchC上执行display stp interface brief命令,结果如下:

    # 在SwitchD上执行display stp interface brief命令,结果如下:

    说明:

    本配置举例以实例1和实例2为例,因此不用关注实例0中端口的状态。

  • 免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

      分享
      投诉
      首页