MSTP的工作方式

今天让我们谈谈MSTP。 在处理MSTP之前,您需要熟悉STPRSTP协议。 MSTP是RSTP(因此是STP)的修改。 如果RSTP是相同的STP,通常只有更优化的BPDU发送和STP才能正常工作,那么为什么我们要提出一个基于RSTP的MSTP呢? MSTP的主要功能是可以使用VLAN。 一些读者可能会说:“等等,Cisco pvst +和rpvst +不能与vlan一起使用吗?” RPVST +和PVST +只需在单个VLAN限制内运行独立的RSTP或STP实例。 但是这里有问题:

  • RPVST +和PVST +仅在Cisco设备上可用,而在Cisco上没有经典的STP和RSTP。 如果其他供应商参与拓扑,我们该怎么办?
  • STP和RSTP的每个实例每两秒钟发送一次BPDU。 如果将100个VLAN跳过到中继端口,则表示将在2秒内发送100条消息。 哪个不太好。
  • 思科对单个交换机上STP或RSTP实例的数量有限制,具体取决于型号。 也就是说,在某些交换机上添加128个VLAN,我们将面临这样的限制。 连结这里

通过多供应商协议MSTP成功解决了所有这些问题。 我们将尝试处理他的工作。 在RSTP中构造无环拓扑的方案是,在不考虑逻辑拓扑的情况下,构建无相交的图,而不考虑在何处以及如何配置VLAN。 在MSTP中,我们有机会将某些VLAN组合为一个组,并为每个组构建单独的拓扑。 例如,看一下这样的拓扑:

我的形象

PC充当网段。 PC1和PC3是一个网段,其中使用的VLAN是从10到50,而PC2和PC4是使用的VLAN是从50到100。在Sw1-4交换机本身上,创建的VLAN是从10到100。如果我们使用RSTP协议,则要分别到达PC3和PC4段,您必须使用一条公共路径,并从两种可能的路径中选择它: Sw1-Sw2-Sw4Sw1-Sw3-Sw4 。 不幸的是,建立带有负载分配的电路是行不通的,这些路径之一将被阻塞并排空。 借助PVST +和RPVST +,可以实现此目的,但是存在上述问题。 MSTP在这方面为我们提供了帮助,为一组10-50和50-100的VLAN创建了RSTP实例。 可以将Vlan 10-50的Root开关配置为Sw3,将50-100的Root开关配置为Sw2。 Sw1-Sw3-Sw4路径将由VLAN 10-50使用, Sw1-Sw2-Sw4路径将由VLAN 50-100使用。 这个想法是创建将结合VLAN的实例,并为每个实例分别构建一个RSTP树。 因此,在不同实例中组合VLAN 10-50和51-100,MSTP协议将允许您为每个实例构建独立的树。 配置将如下所示:
生成树MST配置
名称说明
实例1 VLAN 10-50
实例2 VLAN 51-100
在所有4个交换机上都将是相同的。 这些参数具有相同配置的开关将创建一个区域。 关于区域,我们将在下面更详细地讲,同时我们考虑一个区域内的拓扑。 对于每个实例,都会选择其自己的根桥。 在Sw3上,我们输入spanning-tree mst 1 root primary命令,以便Sw3是10-50个vlan的根网桥,在Sw2 生成树mst 2根primary中 ,输入51-100 vlan。 总而言之,每个实例- 多个生成树实例(MSTI) -结合了VLAN。 每个区域组合具有相同MSTI的交换机。 严格来说,该区域中的交换机应具有以下参数:

  • 区域名称-区域名称。 由name命令定义。
  • 修订级别-配置更改参数。
  • MSTI。

每个区域中都有一个实例MSTI 0(实例0),默认情况下会创建该实例,它包含其他实例中未包含的所有VLAN。 实例0称为IST:
内部生成树(IST)生成树的特殊副本,默认情况下,它在每个MST区域中都存在。 IST分配的编号为0(实例0)。 它可以发送和接收BPDU帧,并用于管理区域内的拓扑。 默认情况下,在此MST区域中的交换机上配置的所有VLAN都绑定到IST。
IST的根桥称为区域根桥。 通过IST​​传输BPDU帧,通过该BPDU帧安装每个实例的树。 让我们看一下该区域中的BDPU:

我的形象

在开始MST扩展之前,很难将BPDU MSTP与BPDU RSTP分开,并且大致来说,IST是经典的RSTP。 MSTP仅在MSTI上添加数据。 BPDU存储实例0-2的根网桥信息。 因此,对于所有VLAN和授权机构,仅发送一个BPDU,其中包含所有必要的信息。 与PVST +和RPVST +相比,这是一个巨大的节省。 让我们看一下Sw2开关上的show spanning-tree mst命令的输出:

我的形象

例如0,有一个特殊字段-区域根。 区域根,我们使用spanning-tree mst 0 root primary命令选择Sw3。 区域根是同一区域内MSTI 0的根交换机。 对于MSTI1,根也是Sw3,对于MSTI2,根也是Sw2。 在端口阻塞和收敛方面,MSTP在其工作原理的基础上重复了RSTP的原理,因此我认为MSTP在一个区域内的工作是可以理解的。 考虑具有两个区域的拓扑:

我的形象

上面说过,关于区域A,现在让我们尝试找出区域之间如何相互作用。 在区域B中,交换机具有以下配置:
生成树MST配置
名称RegionB
实例1 VLAN 10-30
实例2 VLAN 31-60
同时,Sw9是生成树的mst 1根主节点是Vlan 10-30的根交换机,而Sw10是生成树的mst 2根主节点是Vlan 31-60的根交换机。

区域B中STP树的构建类似于区域A,并且已在上面进行了描述。 只是说,由于我们没有在区域B中为MSTI 0设置根桥,它将由Sw9-12中最低的MAC地址选择它。 最小的MAC地址是Sw9。 Sw10的命令输出:

我的形象

对于MSTI 0区域根5000.0009.0000(Sw9)。 下面我们将讨论为什么Sw9以及为什么优先级或罂粟地址与它无关。 现在,我们对边界将发生什么的问题更加感兴趣。 为了在区域之间正确构建STP树,请使用MST0(IST)为所有区域创建一个通用树。 这样的树称为CIST。 让我们还介绍CST的概念。 因此,首先回想一下IST:

  • 内部生成树(IST)是默认情况下在每个MST区域中都存在的生成树的特殊副本。 IST分配的编号为0(实例0)。 IST可以发送和接收BPDU帧,并用于管理区域内的拓扑。 缺省情况下,同一区域内的所有VLAN都绑定到IST。 如果在一个区域中创建了多个MSTI,则与其无关的VLAN仍将与IST绑定。 在我们的区域A和B中,正在为未属于权威1和2的VLAN建立独立的STP树。IST中的根桥称为区域根。
  • 通用生成树(CST) -连接区域和所有交换机STP,RSTP,PVST +,RPVST +(不是MST交换机)的树。
  • 通用和内部生成树(CIST) -单个生成树,它将每个MST区域的CST和IST组合在一起。

为了理解每棵树的边界,我建议以下文章

IST是一个区域内的树,CIST是区域之间的树,CST是将区域内的树和用于连接区域的树结合在一起的树。

由于我们在Sw3上引入了spanning-tree mst 0 root primary命令,因此两个区域的CIST根网桥都是Sw3。 如果整个拓扑中只有一个区域,则区域根网桥和CIST根网桥重合。 如果有很多区域,则选择所有区域中最佳的区域根。 此外,可以使用使用MSTP以外的协议的交换机来选举CIST根桥的角色。 如果尝试构建整体图,则可以按以下说明区域的交互作用:每个区域似乎是多个交换机的组合,并作为一个大型虚拟交换机呈现给其他交换机。 也就是说,如果我们从区域B的角度考虑拓扑,那么可以得到以下图片:

我的形象

对于区域A,这将是相似的,区域B将由一个开关表示。 在每个区域中,每个交换机都有一个根端口,将其连接到区域根。 每个区域还为MSTI 0选择一个根端口,该根端口通向一个公共CIST根桥。 这些端口可以连接Sw9和Sw10上的Gi1 / 1端口。 在我们的拓扑中,Sw9具有最佳的网桥ID,然后在其中选择了根端口,而在Sw10上,Gi1 / 1端口被阻止。 在Sw9上,对于MSTI 0,Gi1 / 1端口是Root端口,但是,例如,对于MSTI 1和2,实例根网桥有一个Root端口,通向CIST Root Bridge的端口将收到一个新角色-Master。 从一个区域到另一个区域,只能有一个工作通道,换句话说,只有一个主端口和一个交换机。 这是关于Sw9交换机上的MST的信息,将在其中选择主端口,请注意Gi1 / 1端口:

我的形象

正如我们所说的,用于MSTI 0的端口具有Root角色,并且用于MSTI 1-2主端口。 还引入了一种新型的通道-P2p绑定(RSTP)。 边界类型被分配给与另一个区域或STP协议的另一个变体为边界的那些端口。 有关CIST根网桥的信息是通过主端口传输到该区域的,其独特之处在于,该端口自身不发送BPDU,而仅接收,这与RSTP中的P2P端口类型不同。 只有带有TC标志(拓扑更改)的BPDU例外。 让我们看看一个区域中的交换机如何处理来自另一区域的BPDU。 正如我们在主端口Gi1 / 1 Sw9上所说的那样,将接收来自Sw1的BPDU,而不会发送Sw9本身,请再次考虑:

我的形象

Sw1发送相同的BPDU,而不管交换机是在区域内还是在区域外发送BPDU。 接受此BPDU后,Sw9将仅在MST扩展字段开始之前处理信息,仅此信息用于在实例0中构建树。在这里您可以注意到一个有趣的事实-根标识符(50:00:00:03:00:00)与网桥标识符匹配(50:00:00:03:00:00),尽管它发送带有网桥标识符的Sw1数据包-50:00:00:11:00:00。 这证实了我们的理论,即另一个区域的每个区域都由一个大型虚拟交换机表示。 您也可以说,在区域之间,我们拥有经典的RSTP。 但是,让我们谈谈根路径成本。 路径成本有两种类型-内部和外部。 指向MSTI 0的根路径成本是外部的。 尽管事实上有一个从Sw1到根网桥(Sw3)的通道,但仍表示为零。 好像根桥本人已经发送了它。 MST扩展下方的字段中列出了内部根路径成本。 CIST内部根路径成本表示MSTI 0到区域根桥的路径成本,MSTID 1和2下面的字段分别表示每个实例到根桥的内部根路径成本。 外部根路径成本具有特殊且非常重要的作用,它将决定区域根桥,而不是优先级和罂粟地址,我们在上面对此进行了说明。 根路径成本最小(直到CIST根桥)的交换机将成为区域根桥! 例如,Sw9和Sw10的根路径成本为20,000,等于Gi1 / 1端口的成本。 然后,他们才开始比较其网桥ID。 让我们检查一下,将链接成本更改为Sw10,同时将其优先级提高到最大值,以排除按优先级选择“区域根”的选项。 我们引入以下命令:
SW10(config-if)#生成树MST 0优先级61440
SW10(Config-if)#接口GigabitEthernet 1/1
SW10(config-if)#生成树MST 0成本10000
尽管优先级很差,但我们却知道Sw10已成为区域根桥:

我的形象

因此,按以下顺序进行区域根网桥的选择,并且区域根网桥永远不会是没有边界端口的交换机:

  • 到CIST根网桥的外部路径成本最低。
  • 最低的区域网桥标识符。
  • 来自具有CIST根网桥的区域中BPDU的CIST网桥标识符。

例如,如果我们在Sw9和Sw4之间添加链接,并考虑哪个链接将成为主链接,则在所有参数相等的情况下,低于MST扩展名的CIST桥标识符字段将成为确定字段。 当我们说Sw9不在MST扩展下面的数据时,我们撒了谎。 在这种情况下,将计算MST扩展中的CIST桥标识符。
现在让我们看看添加RPVST开关时MST的行为:

我的形象

有两种情况:

  1. 根桥由RPVST拥有。
  2. 根桥由MSTP拥有。

首先考虑Sw3仍然是CIST根网桥的情况(即情况2)。 在这种情况下,Sw10和Sw12一旦收到来自每个VLAN的RSTP1和RSTP2的BPDU,就会将端口类型Gi1 / 0更改为P2p绑定(PVST) 。 此类型表示此端口上的Sw10和Sw12已连接到RPVST交换机,并将开始向该端口允许的所有VLAN发送MSTI0的BPDU副本(即,没有MST扩展名以下的字段)。 因此,RSTP1和RSTP2不会注意到Sw10和Sw12使用不同的协议。 MSTP中的这项技术称为PVST仿真,通过它我们可以在不同的交换机之间进行协调。

根网桥位于RPVST交换机之间的情况更复杂,不建议这样做。 假设我们拥有RSTP1是所有VLAN的根网桥。 为简单起见,我们假设创建了VLAN 1-3,并引入了生成树vlan 1-3优先级12288命令,这是RSTP和MSTP交换机中最低的优先级。 Sw10将开始为每个vlana接收BPDU。 理解MSTP交换机仅处理Vlan 1的BPDU非常重要,这是如何发生的?

我的形象

根据配置的VLAN数量,将发送许多RPVST + BPDU数据包,但此外,它还将通过具有目标MAC地址-01:80:c2:00:00:00:00的本地vlan BPDU发送。 MSTP使用的是此罂粟地址,PVST和RPVST交换机使用不同的罂粟地址-01:00:0c:cc:cc:cd。 无论哪个VLAN配置为本地VLAN,第一个VLAN的信息都将在此BPDU中传输。 MSTP交换机将仅处理此程序包以构建树。 某些VLAN的其余BPDU将用于在PVST模拟(PVST模拟基于根防护的一致性检查)期间验证根节点保护。 什么样的检查? 一旦我们使用生成树vlan 1-3优先级12288命令配置RSTP1,那么在Sw10上,我们将立即收到错误消息:

我的形象

让我们尝试解释一下。 Sw10为vlan 1采用了本地vlan BPDU,优先级为12288 + 1。 处理并确定Gi1 / 0是其根端口。 然后是其余VLAN(1-3)的PVST BPDU,他研究了它们以检查根交换机的完整性,VLAN 2-3的优先级为12288 + 2,12288 + 3,大于12288 + 1。 完整性崩溃-一方面,它必须是根端口,而获得更高的其他优先级将迫使该端口切换到指定角色。 对于此类协议,这种歧义是不允许的,并且MST阻塞了该端口,使其变为BKN状态,从而报告错误- 阻塞根端口Gi1 / 0:接收到的下等PVST BPDU不一致 。 为避免这种情况,有必要在其端口上传输BPDU的单个vlan的优先级(比)低,而不是vlan1。也就是说,如果我们将vlan 2-3的优先级降低到4096,则明显小于VLAN 1,然后解决此问题。

我的形象

如您所见,出现一条消息,恢复了端口的正确操作- 在端口GigabitEhternet 0/1上清除的PVST模拟不一致

我想以此为基础,完成有关MSTP的讨论。 以下有用的链接:

  1. www.cisco.com/c/en/us/support/docs/lan-switching/multiple-instance-stp-mistp-8021s/116464-configure-pvst-00.html
  2. habrahabr.ru/post/128172
  3. www.cisco.com/c/ru_s/support/docs/lan-switching/multiple-instance-stp-mistp-8021s/116464-configure-pvst-00.pdf
  4. www.cisco.com/c/en/us/td/docs/switches/datacenter/nexus5000/sw/configuration/guide/cli_rel_4_0_1a/CLIConfigurationGuide/MST.html
  5. networkengineering.stackexchange.com/questions/28716/multiple-spanning-tree-terminology-cst-ist-cist-and-exact-behaveor
  6. blog.sbolshakov.ru/11-3-mstp
  7. blog.ine.com/2010/02/22/understanding-mstp
  8. networklessons.com/spanning-tree/multiple-spanning-tree-mst

Source: https://habr.com/ru/post/zh-CN419785/


All Articles