STP、RSTP、MSTP、VSTP

六月 25, 2025 / 望江 / 7阅读 / 0评论

STP

STP(Spanning Tree Protocol)是一个用于局域网中消除环路的协议,它的标准是IEEE 802.1D。STP通过将部分冗余链路强制为阻塞状态,其他链路处于转发状态,将环形网络结构修剪成无环路的树形网络结构,可实现消除环路。当处于转发状态的链路不可用时,STP重新配置网络,并激活合适的备用链路状态,恢复网络连通性。

STP的基本实现过程如下:

选择根网桥:网络初始化时,网络中所有的STP设备都认为自己是“根桥”,根桥ID为自身的设备ID。通过交换BPDU消息,设备之间比较根桥ID,网络中根桥ID最小的设备被选为根桥。根桥上的所有端口都是转发状态。

选择根端口:非根桥设备将接收最优配置消息的那个端口定为根端口,根端口也是处于转发状态。

选择指定端口:设备根据根端口的配置消息和根端口的路径开销,为每个端口计算一个指定端口配置消息,然后将计算出的配置消息与角色待定端口自己的配置消息进行比较。

如果计算出的配置消息更优,则该端口被确定为指定端口,其配置消息也被计算出的配置消息替换,并周期性地向外发送;

如果该端口自己的配置消息更优,则不更新该端口的配置消息并将该端口阻塞。该端口将不再转发数据,且只接收不发送配置消息。生成树协议通过以下步骤来实现网络无环:

选择根桥(Root Bridge)

在网络启动时,所有交换机互相交换BPDU(Bridge Protocol Data Unit)包,通过比较桥ID(Bridge ID),选出桥ID最小的交换机作为根桥。桥ID由两个部分组成:桥优先级和交换机的MAC地址。默认情况下,桥优先级为32768,MAC地址为交换机的硬件地址。桥ID较小的交换机会成为根桥。

选择根端口(Root Port)

每台非根桥交换机选择一条到达根桥路径成本最小的端口作为根端口。路径成本是根据链路带宽计算的,带宽越高,路径成本越低。例如,100 Mbps链路的路径成本为19,1 Gbps链路的路径成本为4。

选择指定端口(Designated Port)

在每一段网络中,选出到达该段网络路径成本最小的交换机端口作为指定端口。指定端口负责转发流量到该网络段中的其他设备。

端口状态转换

端口根据STP算法被设置为不同的状态(阻塞、监听、学习、转发、禁用),以确保没有环路存在。以下是各个端口状态的详细描述:

  • 阻塞(Blocking): 端口不转发帧,只有在收到BPDU时处理。这是默认状态,用于防止环路。

  • 监听(Listening): 端口不转发帧,也不学习MAC地址,但可以发送和接收BPDU。这是端口在进行状态转换时的临时状态。

  • 学习(Learning): 端口不转发帧,但开始学习MAC地址表。这是端口在准备进入转发状态前的临时状态。

  • 转发(Forwarding): 端口正常转发帧,并学习MAC地址表。只有根端口和指定端口会进入此状态。

  • 禁用(Disabled): 端口被手动关闭或因其他原因被禁用,不参与STP的运作。

STP的端口状态

生成树协议通过端口状态管理来防止网络环路。以下是STP的五种端口状态及其功能:

端口状态

说明

Disabled

端口状态为Down,不处理BPDU报文,也不转发用户流量。

Blocking

端口仅接收并处理BPDU报文,不转发用户流量。

Listening

过渡状态,开始生成树计算,端口可以接收和发送BPDU报文,但不转发用户流量。

Learning

过渡状态,设备根据收到的用户流量构建MAC地址表。端口可以接收和发送BPDU报文,但不转发用户流量。

Forwarding

端口可以接收和发送BPDU报文,也转发用户流量。只有根端口或指定端口才能进入Forwarding状态。

阻塞状态(Blocking)

在阻塞状态下,端口不转发数据帧,也不学习MAC地址表。端口只接收并处理BPDU,用于检测网络拓扑变化。阻塞状态用于防止环路,所有非根桥的非根端口默认处于阻塞状态。

监听状态(Listening)

在监听状态下,端口不转发数据帧,也不学习MAC地址表,但可以发送和接收BPDU。端口进入监听状态是为了确保在拓扑变化时,不会立即转发数据帧,避免产生环路。监听状态通常持续15秒,这是STP的默认定时器值。

学习状态(Learning)

在学习状态下,端口不转发数据帧,但开始学习并更新MAC地址表。这样,当端口进入转发状态时,可以正确转发数据帧。学习状态也通常持续15秒,这是为了确保端口在进入转发状态前,有足够的时间学习MAC地址。

转发状态(Forwarding)

在转发状态下,端口正常转发数据帧,并继续学习和更新MAC地址表。只有根端口和指定端口会进入转发状态。转发状态是端口的正常工作状态,在该状态下,端口参与网络数据传输。

禁用状态(Disabled)

在禁用状态下,端口被手动关闭或因其他原因被禁用,不参与STP的运作。禁用状态下的端口不接收或转发数据帧,也不学习MAC地址。

通过这五种端口状态,生成树协议能够有效管理网络拓扑,防止环路的形成,确保网络的稳定性和可靠性。

在大多数现代网络设备上,生成树协议(STP)默认是启用的。然而,在某些情况下,可能需要手动配置STP以优化网络性能和稳定性。

RSTP

STP生成树协议虽然能够解决环路的问题,但是存在着网络拓扑收敛较慢,无法适应网络拓扑结构的频繁变化等缺点,基于以上不足,IEEE在2001年发布的802.1w标准定义了RSTP(快速生成树协议)。

RSTP的主要改进

RSTP重新定义了端口角色和状态,使其更易于理解和管理。

  • 端口角色:

    • 根端口(Root Port): 每台非根桥的交换机上唯一到达根桥路径成本最小的端口。

    • 指定端口(Designated Port): 每个网络段中负责转发数据帧的端口。

    • 替代端口(Alternate Port): 提供到根桥的备份路径,在根端口失效时启用。

    • 备份端口(Backup Port): 提供到同一网络段的备份路径,在指定端口失效时启用。

  • 端口状态:

    • 丢弃(Discarding): 端口不转发数据帧,不学习MAC地址,只处理BPDU。相当于STP中的阻塞和监听状态。

    • 学习(Learning): 端口不转发数据帧,但学习MAC地址表。

    • 转发(Forwarding): 端口正常转发数据帧,并学习MAC地址表。

RSTP协议 - 江寒雨 - 博客园

MSTP

多生成树协议(Multiple Spanning Tree Protocol,简称MSTP)被定义在IEEE 802.1s标准中,是STP和RSTP的扩展。

MSTP相较于STP和RSTP有以下几个显著优势:

  • 减少生成树实例数量: 通过将多个VLAN映射到一个生成树实例,可以显著减少生成树的数量,简化网络管理。

  • 优化网络资源利用: 不同MSTI可以在不同的链路上转发流量,更好地利用冗余链路,优化网络带宽。

  • 增强网络稳定性: 当一个MSTI发生故障时,其他MSTI不受影响,提升了网络的稳定性和可靠性。

MSTP的基本原理

MSTP的核心思想是将多个VLAN映射到一个生成树实例,每个实例独立计算生成树。MSTP包括以下几个关键概念:

区域(Region)

MSTP网络被划分为多个区域,每个区域由一组交换机构成。这些交换机共享相同的MSTP配置,包括MST配置名称、配置修订号和VLAN到实例的映射。区域内部的交换机之间交换MSTP BPDU,以便共同计算生成树。

配置修订号(Configuration Revision Number)

配置修订号是MSTP配置的一部分,用于标识MST配置的版本。所有属于同一区域的交换机必须具有相同的配置修订号,以确保一致的生成树计算。

VLAN到实例的映射(VLAN to Instance Mapping)

每个MSTP区域中,VLAN被映射到一个或多个生成树实例(MSTI)。MSTI是MSTP中的逻辑生成树,每个MSTI独立计算生成树,确保网络的无环和负载均衡。

VSTP

VBST 定义:VBST(VLAN-Based Spanning Tree)是华为提出的一种生成树协议,通过它可在每个VLAN内构建一棵生成树,使不同VLAN内的流量可通过不同的生成树转发。VBST可以简单理解为在每个VLAN上运行一个STP或RSTP协议,不同VLAN之间的生成树完全独立。

实例

STP实例

将S1设置成核心交换机,S2、S3备用

stp enable    开启stp功能

stp mode stp   设置stp模式为stp

stp root primary   设置本设备为核心交换机

stp root secondary   设置本设备为备用交换机

S1配置

sys
sysname S1
un in en
stp enable
stp mode stp
stp root primary

S2、S3配置

stp enable
stp mode stp
stp root secondary

STP实例2

S1配置

sys
sysname S1
vlan 10
description Marker
quit
port-group group-member g0/0/1 to g0/0/2 g0/0/24
port link-type trunk
port trunk allow-pass vlan 10
stp mode stp
stp enable
stp priority 0#第一种从优先级配置根交换机
stp root primary #第二种方法
dis stp

S2配置

sys
sysname S2
vlan 10
description Marker
quit
port-group group-member g0/0/1 to g0/0/2 g0/0/24
port link-type trunk
port trunk allow-pass vlan 10
stp mode stp
stp enable
stp priority 4096#第一种从优先级配置根交换机
stp root secondary  #第二种方法
dis stp

S3配置

sys
sysname S3
un in en
vlan 10
description Marker
quit
port-group group-member g0/0/1 to g0/0/2
port link-type trunk
port trunk allow-pass vlan 10
int e0/0/1
port lin acc
port default vlan 10
stp mode stp
stp enable

S4配置

sys
sysname S4
un in en
vlan 10
description Marker
quit
port-group group-member g0/0/1 to g0/0/2
port link-type trunk
port trunk allow-pass vlan 10
int e0/0/1
port lin acc
port default vlan 10
stp mode stp
stp enable

RSTP实例

#网络互联(3)

文章作者:望江

文章链接:https://www.sy11037.top/archives/wei-ming-ming-wen-zhang

版权声明:本博客所有文章除特别声明外,均采用CC BY-NC-SA 4.0 许可协议,转载请注明出处!

评论已关闭!