一文带你了解生成树协议STP

运维
STP,全称Spanning Tree Protocol,它是开放系统互联OSI模型中第二层“数据链路层”最主要的协议之一。

STP,全称Spanning Tree Protocol,它是开放系统互联OSI模型中第二层“数据链路层”最主要的协议之一。

图片图片

生成树协议诞生的背景  

在以太网交换网络中,为了提高网络可靠性,通常会使用冗余链路。但使用冗余链路在交换网络中会产生环路,导致广播风暴、MAC地址表不稳定等故障现象,从而影响用户通信质量。STP 协议的作用就是通过阻塞冗余链路的端口,在交换网络中防止环路的产生。

生成树协议发展历程  

STP协议最初由IEEE在1989年发布的IEEE 802.1D标准中定义。STP协议的缺点是收敛时间长,因此 IEEE 在2004年发布了IEEE 802.1w 标准,定义了快速生成树协议 (Rapid Spanning Tree Protocol)。RSTP 协议的收敛时间比STP协议快得多,但仍然存在一些缺点。

为了解决STP和RSTP的缺点,在IEEE 802.1s的标准中再次定义了多生成树协议 (Multiple Spanning Tree Protocol)。MSTP协议可以为不同VLAN创建不同的生成树,从而提高网络的性能和可靠性。

STP、PVST、PVST+、RSTP 和 MSTP 之间的关系如下:

  • STP 是生成树协议的基础,PVST、PVST+、RSTP 和 MSTP 都是基于 STP 协议的改进。
  • PVST 和 PVST+ 是 Cisco 公司对 STP 协议的改进,可以为不同的 VLAN 创建不同的生成树。
  • RSTP 是 STP 协议的改进,收敛时间更短。
  • MSTP 是 STP 协议的改进,可以为不同 VLAN 创建不同的生成树,并且具有更好的性能和可靠性。

具体来说,STP 协议是单生成树协议 (Single Spanning Tree),它为整个网络创建一个生成树。STP 协议的缺点是收敛时间长,因此 Cisco 公司开发了 PVST 和 PVST+ 协议。PVST 和 PVST+ 协议都是基于 STP 协议的,但它们可以为不同的 VLAN 创建不同的生成树。这可以提高网络的性能和可靠性,但也增加了网络管理的复杂性。

RSTP 协议是快速生成树协议 (Rapid Spanning Tree),它可以缩短STP协议的收敛时间。RSTP协议的缺点是仍然是单生成树协议,它不能完全解决STP协议的缺点。

MSTP 协议是多生成树协议 (Multiple Spanning Tree),它可以为不同 VLAN 创建不同的生成树。因此,MSTP 协议是目前最先进的生成树协议。

生成树协议的原理  

STP执行一种被称为STA(Spanning-Tree Algorithm,生成树算法)的算法,通过判断网络中存在环路的地方并阻断冗余链路。为了找到冗余链路, STA在网络中选择一个参考点,然后确定到该参考点的冗余路径,这个参考点通常被称为生成树的根。如果STA发现存在冗余路径,那么它将选择到达根的最优路径(通常是开销最小的路径),同时阻断所有其他冗余路径。如果最优路径发生故障,那么之前被阻塞的端口将被激活,生成新的最优路径并参与数据的转发。为了进一步说明生成树是怎样建立无环路径的,我们先熟悉一些STP名词:

根桥:生成树的“树根”,桥id最小的交换机。

非根交换机:除了根桥,其它的都是非根交换机。

根端口:离根桥最近的端口。每一个非根交换机都有一个根端口。

指定端口:除了根端口,所有参与数据转发的端口都是指定端口。根桥上所有的端口都是指定端口。

非根非指定端口:被阻塞的端口,也是我们理解的冗余链路的端口。

路径开销:到达根桥的过程中端口cost值的累计。端口cost值越小,路径开销越小,对应的路径就更优。

桥ID:是由桥优先级和桥MAC地址构成。

端口ID:是由端口优先级和端口号构成

STP的选举过程  

一、选举1个根网桥

每个VLAN中只能有1个网桥担当根网桥。在根网桥上,所有的端口都担当指定端口。指定端口不仅能够发送和接收流量,还可以发送和接收配置消息或BPDU。根网桥是所有交换机用来确定网络中是否存在环路的参考点。通过交换BPDU,交换机就知道谁的桥ID最小,谁就是根桥。

二、选择所有非根网桥的根端口

根端口能够发送和接收流量。如果非根网桥拥有到达根网桥的多条等价路径,那么非根网桥将选择连接到最低网桥ID的端口。如果等价路径的所有网桥ID都是相同的,那么非根网桥将选择具有最低端口ID(端口ID是局部有效的配置)的端口。

三、选择各个网段的指定端口

在各个网段中,STP在网桥上建立一个指定端口,它到达根网桥的路径开销最低。如果出现路径开销相等的情况,那么桥ID就派上用场了。如果相同网桥上多个端口的开销也相同,那么具有最低优先级的端口将被选为指定端口。如果端口优先级也相同,那么哪个端口的号最小就是谁。记住:生成树协议中都是选最低(最小)的,不管是ID、优先级还是端口号。非根非指定端口只能够接收流量,但不能参与转发,就是为了避免环路

STP 协议会不断地监控网络拓扑,并根据需要调整逻辑树。如果网络拓扑发生变化,STP 可能会将某些链路从活动状态更改为阻塞状态,或者将某些链路从阻塞状态更改为活动状态。

日常配置STP的注意事项  

为了能够在分布层和接入层的交换机之间转发流量,我们通常选择位于中心位置的交换机或核心交换机作为主根网桥,这些交换机具有充足的CPU资源和交换能力。在主根网桥或当前根网桥发生故障的时候,将选择备份或辅助根网桥。这种选择过程应当提前规划好,确保:即使主根网桥发生故障,新的根网桥仍然位于中心位置,并且具有接管主交换机角色的足够CPU资源和交换能力。在生产网络中,一般要求备份根网桥和主交换机具有相同的能力。如果满足上述要求,即使主根网桥发生故障,网络性能也不会受到太大的影响。

责任编辑:华轩 来源: 运维来点料
相关推荐

2022-02-24 07:34:10

SSL协议加密

2023-11-20 08:18:49

Netty服务器

2023-11-06 08:16:19

APM系统运维

2022-11-11 19:09:13

架构

2022-02-25 07:34:36

MQTT协议RabbitMQ

2023-11-08 08:15:48

服务监控Zipkin

2023-10-27 08:15:45

2022-05-16 10:49:28

网络协议数据

2019-10-30 05:24:32

STP树协议网络协议

2023-08-26 20:56:02

滑动窗口协议

2020-02-02 15:14:24

HTTP黑科技前端

2020-10-08 14:32:57

大数据工具技术

2022-04-28 09:22:46

Vue灰度发布代码

2022-09-29 13:09:38

DataClassPython代码

2019-07-09 08:29:51

TCPIP协议

2021-07-12 12:03:32

EPaxos分布式协议流程

2021-07-08 12:32:58

2019-07-04 15:16:52

数据挖掘大数据算法

2023-03-31 08:16:53

Flutter优化内存管理

2018-10-22 08:14:04

点赞
收藏

51CTO技术栈公众号