目标

本文档旨在为您提供迁移到多生成树(MSTP)时的最佳实践。 在其他生成树变体上使用MSTP可提高网络效率和可靠性。

要求

- 需要在混合硬件环境中优化第2层

- 思科S系列交换机

- Sx250系列(管理指南)

- Sx300系列(管理指南)

- Sx350系列(管理指南)

- SG350X系列(管理指南)

- Sx550X系列(管理指南)

- 思科Catalyst交换机

- 对生成树的有效理解(了解详情)

- Wireshark（可选）

目录

1. MSTP术语

2. 最佳实践#1 — 验证迁移到MSTP的需要

3. 最佳实践#2 — 为迁移制定战略

4. 最佳实践#3 — 最佳实践#3 — 使点对点端口能够使用PortFast

5. 最佳实践#4 — 在边缘端口上启用BPDU防护

6. 最佳实践#5 — 将VLAN映射到MSTI，而不是IST(MST0)

7. 最佳实践#6 — 将所有启用MSTP的交换机放在同一区域

8. 最佳实践#7 — 在主MST区域内嵌套CIST的根网桥

9. 迁移验证 — 此事是否已打开？

10. 结论

本指南的结构

本指南将省略通过SSH或管理接口登录设备等步骤，而是突出显示核心命令。每个最佳实践都将包含一个子任务，其中概述了混合思科硬件（企业和中小企业）的适当步骤。 有关配置指南，请参阅以下两个链接：

- 在SMB交换机上配置MSTP

- 在Catalyst交换机上配置MSTP

MSTP术语

本部分旨在为您提供一个易于理解的精神模型，以了解当前所运行的协议。定义是MSTP协议的互锁组件。子项目符号中包含更多详细信息。

- BPDU — 网桥协议数据单元 — 这些是包含交换机继续运行所需的所有信息的组播帧。

- 注意：实例映射本身不在BPDU中。

- 区域 — (特定于MSTP) — 区域可解决其他STP类型遇到的问题，这些类型为每个VLAN发送一个BPDU。与每VLAN生成树一样，发送如此多的BPDU会给CPU负载带来压力，从而妨碍网络性能。相反，使用MSTP时，所有VLAN都映射到单个区域。

- 实例 — 实例是特定区域的VLAN或许多VLAN的逻辑表。然后，此实例映射到区域。您将在迁移过程中完成这些步骤。

默认实例0（零）与以下术语MST0、内部生成树(IST)同义。

- 由您创建的任何实例都将作为多生成树实例或MSTI引用。

- 这样，良好的网络VLAN文档将为您省去麻烦。

- 如果实例失败，则不会影响其他实例。

- MSTI — 多生成树实例 — 包含管理性创建的实例。这些映射包含在通过Wireshark可见的称为“MRecord”的映射中。这些记录包含管理实例拓扑所需的详细信息。

- IST — 内部生成树 — 是参与MSTP区域的交换机的记录。一个区域内包含的交换机（无论多少台）都作为单个交换机表示给区域外的区域。

- CST — 通用生成树 — 由运行其自己的传统生成树的MSTP区域组成。CST在MSTP区域边界的交换机之间使用链路。

- CIST — 通用和内部生成树 — 由CST和IST组成，根据VLAN到实例的共享映射遍历多个实例。

公共生成树和内部生成树不是公共生成树。

现在，我们已经确定了本文的对象和相关定义，让我们来了解最佳实践。

最佳实践#1 — 验证迁移到MSTP的需要

第一种最佳实践是确认您需要迁移到MSTP。了解网络现有生成树性能是此决策的关键因素。迁移到MSTP将是一个很好的选择，原因有几：引入负载分担，这对网络效率产生了最大影响。如果第2层流量比预测值高，则转到MSTP可通过提高性能来提高设备的有用性/寿命。其他考虑因素可能包括：

- 现有STP性能不理想 — 收敛时间或传输的BPDU数量导致问题

- 网段生成树 — 减少MSTP区域所包含交换机上的资源负载。

- 混合硬件环境 — MSTP是一种开放标准，这意味着它非常适合于混合供应商环境。它得到广泛支持。

注意：迁移到多生成树时，每个实例必须映射一个VLAN，这是一个常见的误解。

生成树的风格已经涌现，以前的版本也有变化和扭曲。与每VLAN生成树(PVST+)相比，MSTP通过维护生成树实例或生成树的逻辑版本来减少资源（BPDU、CPU周期、传输时间）的使用。VLAN流量可以流经网络的第2层网段。一个端口（和VLAN）的转发也可以阻塞不同VLAN。此外，如果一个实例中形成了循环，则不会影响另一个实例。

最佳实践#2 — 为迁移制定战略

在您验证迁移需求后，理想情况下，在最短的停机时间内实现迁移并保留现有连接。解决移民问题的小战略将大大有助于确保顺利实施。为了帮助完成此过程，我们建议采取以下战术步骤。

1. 文档、文档、文档 — 保存详细注释将减少迁移时间并减少出错的可能性。

- 识别并记录通向另一台交换机或路由器的所有点对点端口或端口。

- 识别并记录通向终端（如PC或打印机）的所有边缘端口或端口。

- 定义参与迁移的VLAN

- 实习生在这一步上真的很出色！

2. 确定网络的运行顺序。

请注意，一台交换机上的更改会如何影响不同的VLAN。

- 安排网络停机时间，或在周末迁移。

- 从网络核心开始迁移，然后向下到分布层，再到接入层。

最佳实践#3 — 启用点对点端口以使用PortFast

此最佳实践和以下操作规范充分利用所有端口文档。管理员通过PortFast功能在边缘端口上定义可选参数。PortFast可防止生成树在该端口上运行。面向交换机到设备的端口可能包括服务器、工作站和路由器。其目的是使该端口永远不将网络桥接到另一组开放端口。如果交换机收到上级BPDU，这可能会导致环路。如果网络上的端口在端口上进行STP计算，您可以提前分配阻塞状态来节省时间和CPU负载。它允许端口快速转换到BPDU发送 — 转发状态。因为它已提前分配了状态。

注意：确保交换机上的端口配置为全双工传输。

以下步骤将分为SMB交换机(CLI + GUI)和企业Catalyst交换机(CLI)。

在Catalyst交换机上启用Portfast - CLI

CLI命令首先显示语法，然后显示一个实时命令示例。在#后添加了额外的空格，以便更轻松地为复制>粘贴加亮。蓝色突出显示的文本表示变量，替换为来自网络的情景详细信息。另请注意，为简单起见，我们使用的唯一特权提升命令是MSTP配置。

Catalyst(config)#接口[范围(可选)] [port-id]

Catalyst(config-if)# spanning-tree portfast [auto]

Catalyst(config)#接口范围fa0/1 - 24

Catalyst(config-if)# spanning-tree portfast auto

在SMB交换机上启用Portfast - CLI

SMBswitch(config)#接口[范围(可选)] [port-id]

SMBswitch(config-if)#spanning-tree portfast

SMBswitch(config)# 接口范围gi1-15

SMBswitch(config-if)# spanning-tree portfast

在SMB交换机上启用Portfast - GUI

请注意，SMB交换机GUI使用PortFast的同义词，即称为快速链路。

步骤1.单击Spanning Tree > STP Interface Settings。

步骤2.选择接口，然后单击“编辑”按钮。

步骤3.单击“启用快速链接”。

注意：切记应用更改并将运行配置写入启动配置。

最佳实践#4 — 在边缘端口上启用BPDU防护

此最佳实践是前一个实践的扩展。如果启用BPDU防护的端口发现接收任何上级的拓扑更改BPDU的端口，它会立即通过err-disable状态关闭该端口。这需要您访问交换机并解决问题。

注意：这似乎是您可以跳过的最佳实践之一。你能逃过这一劫吗？也许吧，但为了你的未来自我，就这样吧。一台错误的交换机进入网络并输出错误的BPDU，可能会使您的网络崩溃。

在Catalyst交换机上启用BPDU防护 — CLI

Catalyst(config)#接口[范围(可选)] [port-id]

Catalyst(config-if)# spanning-tree bpduguard enable

Catalyst(config)#接口范围fa0/1 - 24

Catalyst(config-if)# spanning-tree bpduguard enable

在SMB交换机上启用BPDU防护 — CLI

SMBswitch(config)#接口[范围(可选)] [port-id]

SMBswitch(config-if)# spanning-tree bpduguard enable

SMBswitch(config)#接口范围fa0/1 - 24

SMBswitch(config-if)# spanning-tree bpduguard enable

在SMB交换机上启用BPDU防护 — GUI

步骤1.登录Web配置实用程序以选择生成树> STP接口设置。STP Interface Settings页面打开。

步骤2.从Interface Type下拉列表中选择要编辑的接口类型。

步骤3.单击Go ，在页面上仅显示端口或LAG。

步骤4.单击与另一台交换机连接的端口或LAG的单选按钮，然后单击“编辑”。系统将显示Edit STP Interface窗口。

步骤5.单击与“接口”字段中所需接口类型对应的“BPDU防护启用”复选框。

最佳实践#5 — 将VLAN映射到MSTI，而不是IST(MST0)

现在，端口已知其适当角色，让我们继续执行实例映射。为了获得最佳结果，请限制您创建的实例数量 — 请注意，有一些细微差别。这与最佳实践相悖，可能会阻止工程师将MSTP作为解决方案。对于多个实例，您可能有有效的网络设计注意事项，但请注意，最佳实践是使用单个实例。确定要映射到实例的VLAN。 然后，选择网络中所有交换机通用的配置名称和修订号。

注意：编辑MSTI VLAN映射时，MSTP将重新启动。

映射Catalyst交换机上的VLAN - CLI

Catalyst(config)#生成树MST配置

Catalyst(config-mst)#实例[instance-id] vlan [vlan-range]

Catalyst(config)#生成树MST配置

Catalyst(config-mst)#实例1 vlan 1-11

在SMB交换机上映射VLAN - CLI

SMBswitch(config)#生成树MST配置

SMBswitch(config-mst)#实例[实例 — id] vlan [vlan-range]

SMBswitch(config)#生成树MST配置

SMBswitch(config-mst)#实例1 vlan 1-11

将VLAN映射到MSTI - GUI

步骤1.单击Spanning Tree > VLAN to MSTP Instance。

“VLAN到MSTP实例”页包含以下字段：

- MST实例ID — 显示所有MSTP实例。

- VLAN — 显示属于MST实例的所有VLAN。

步骤2.要向MSTP实例添加VLAN，请选择MST实例，然后单击Edit。

- MST实例ID — 选择MST实例。

- VLAN — 定义映射到此MST实例的VLAN。

- 操作 — 定义是将VLAN添加（映射）到MST实例还是将其删除。

步骤3.输入参数。

步骤4.单击“应用”。此时，MSTP VLAN映射已建立。

最佳实践#6 — 将所有启用MSTP的交换机放在同一区域

最佳实践是将尽可能多的交换机放入一个区域。将网络划分为多个区域没有任何好处。与任何路由和交换协议一样，它们需要一种方法来确认协议的成员身份。发送的BPDU使交换机能够将自己识别为特定区域的成员。为使网桥了解其特定区域的成员身份，它们必须共享以下设置：

1. 区域名

2. 修订版号

3. 从VLAN到实例映射计算的摘要

在Catalyst交换机上的区域内定位网桥 — CLI

Catalyst(config)#生成树mst[instance-id]根主

Catalyst(config)#生成树MST 5根主

在SMB交换机上将网桥定位到某个区域 — CLI

SMBswitch(config)#生成树MST配置

SMBswitch(config-mst)#实例[实例 — id] vlan [vlan-range]

SMBswitch(config-mst)# name [region-name]

SMBswitch(config-mst)#修订版[revision-id]

SMBswitch(config)#生成树MST配置

SMBswitch(config-mst)#实例1 vlan 10-20

SMBswitch(config-mst)# name region1

SMBswitch(config-mst)#修订版1

在SMB交换机上将网桥定位到某个区域 — GUI

MSTP属性页用于定义交换机所在的区域。要使设备位于同一区域，它们必须具有相同的区域名称和修订值。

步骤1.从菜单中选择生成树> MSTP属性。

步骤2.在Region Name字段中输入MSTP区域的名称。区域名称定义网络的逻辑边界。MSTP区域中的所有交换机必须具有相同的配置区域名称。

步骤3.在“修订”字段中输入修订号。这是表示MSTP配置修订的逻辑编号。MSTP区域中的所有交换机必须具有相同的修订版号。

步骤4.在Max Hops字段中输入最大跳数。最大跳数指定跳数中BPDU的生存期。当网桥收到BPDU时，它会将跳数减去1，并使用新的跳数重新发送BPDU。一旦网桥收到跳数为零的BPDU，BPDU将被丢弃。

注意：IST活动字段显示区域活动交换机的网桥优先级和MAC地址。有关其他信息，请参阅词汇表。

步骤5.单击“应用”。

最佳实践#7 — 在主MST区域内嵌套CIST的根网桥

这种最佳实践是将整个迁移统一起来的关键。其思想是将MSTP拓扑的根网桥放在主MSTP区域内。根据以前将所有VLAN置于同一区域的最佳实践，根选择对所有VLAN都有效。这通过称为根防护的功能实现，该功能强制您创建根位置。当网桥在根防护激活的端口上收到上级BPDU时，它会通过根不一致的STP状态立即将端口置于侦听模式。这会阻止转发其下级BPDU，从而保留您所在区域根桥上的指定端口。从而保留您所在区域根桥上的指定端口。

注意：仔细选择每个实例的根和备份根。

将根网桥放在Catalyst交换机的CIST上 — CLI

Catalyst(config)#生成树mst[instance-id]根{primary | secondary} [diameter dia [hello-time hello-time]]

Catalyst(config)# spanning-tree mst 1根主7

故障排除 — Catalyst

以下命令将返回以下命令将返回标记为不一致的所有端口。但另请注意，命令在SMB交换机上不可用。

Catalyst# show spanning-tree inconsistentports

将根网桥放在SMB交换机的CIST上 — CLI

SMBswitch(config)#接口[interface-id]

SMBswitch(config-if)# 生成树防护根

SMBswitch(config)#接口gi1/1/1

SMBswitch(config-if)# 生成树防护根

将根网桥放在SMB交换机的CIST上 — GUI

步骤1.登录到Web配置实用程序，然后选择生成树> STP接口设置。

步骤2.从Interface Type下拉列表中选择接口。

步骤3.单击Go 以显示接口上的端口或LAG列表。

步骤4.单击要修改的端口或LAG的单选按钮，然后单击“编辑”。系统将显示Edit STP Interface Setting窗口。

步骤5.在Interface字段中单击与所需接口对应的单选按钮。

- 端口 — 从端口下拉列表中，选择要配置的端口。这将仅影响所选的单个端口。

- LAG — 从LAG下拉列表中，选择要配置的LAG。这将影响在LAG配置中定义的端口组。

步骤6.确保在STP字段中选中启用，以在接口上启用STP。

步骤7.在Root Guard字段中选中Enable，以在接口上启用Root Guard。此选项提供了一种在网络中实施根网桥放置的方法。根防护用于防止新连接的设备接管根桥。

迁移验证 — 此事是否已打开？

此时，您的MSTP实施和网络应该一并进行。对于信任但验证群体，您可以通过执行帧捕获来验证MSTP状态。然后将结果与预期文档进行比较。

通过Wireshark执行数据包捕获后，您将看到Mrecords，其中包含实例ID。下面是Mrecord的截图，在展开之前，将显示更多详细信息。

展开Mrecord允许您查看有关MSTP的更精细的数据。包括：

- 端口角色

- MST ID

- 区域根

- 内部路径开销

- 网桥标识符优先级

- 端口标识符优先级

- 剩余跳数

快速验证命令 — SMB CLI

如果要从命令行进行验证，请尝试以下命令：

SMBswitch# show spanning-tree mst-configuration

SMBswitch(config)# spanning-tree mst-configuration

SMBswitch(config-mst)# show pending

挂起的MST配置

名称[region1]

修订版 1

配置实例2

映射的实例VLAN

—

0 1-9,21-4094

1 10-20

—

SMBswitch# show spanning-tree mst-configuration

名称[]

修订版 0

映射的实例VLAN

—

0 1-4094

—

注意：show命令的Catalyst版本排除了mst和配置之间的 — 。EX：“show spanning-tree mst configuration”

对PVST+和MSTP生活在同一网络的了解

如果您需要继续支持运行PVST+的传统交换机，请逐个端口处理此问题。如果其中一台交换机作为VLAN中继运行，请确保MSTP交换机是分配给该中继的所有VLAN的根。此外，MSTP尝试解码PVST+ BPDU，但此模拟不完美。这就需要我们深入探讨边界端口的概念。

MSTP边界端口的角色和状态由与外部拓扑交互的内部生成树决定。这意味着，如果端口在IST上处于阻塞模式，则在MSTP的所有实例中都处于阻塞模式。此影响会级联到PVST+实施，影响VLAN功能。如果端口是转发、学习等，情况也是如此。正如您所想象的，这可能成为一个问题。这可能导致难以解决的问题，而应为一个VLAN转发的端口会因为另一个VLAN的需要而阻塞。PVST+模拟利用IST中的信息创建每个VLAN BPDU。这会导致整个网络“幻觉”，即MSTP区域显示为所有VLAN的单个交换机。与交换机的堆叠方式类似，这并不差一半。从边界端口的位置来看，问题在于它需要为每个模拟VLAN发送单个BPDU。BPDU之间的任何不一致都可能导致整个模拟出错。只有接收一致的BPDU，模拟才能自行恢复。

总之，这种情况是边界端口上收到的BPDU必须相同的原因。有关此主题的其他阅读，请参阅此社区主题。

如果我的网络硬件……不完全是思科？

MSTP向后兼容。只要您的非思科硬件支持快速生成树，您就应该没事。如果遇到问题，请咨询我们的交换社区。

结论

感谢您阅读本指南，通过这些最佳实践，您应该被设置为提高第2层网络的性能。

值得注意的是，生成树对您来说可能并不令人兴奋，但负载分担的好处使您值得努力保持网络高效。生成树的创作者Radia Perlman对它的喜爱程度与母亲一样高。她甚至写了首诗。