生成树协议STP


前言

以太网交换网络中为了进行链路备份,提高网络可靠性,通常会使用冗余链路。但是使用冗余链路会在交换网络上产生环路,引发广播风暴以及MAC地址表不稳定等故障现象,从而导致用户通信质量较差,甚至通信中断。为解决交换网络中的环路问题,提出了生成树协议STP(Spanning Tree Protocol)


生成树协议

在以太网中,二层网络的环路会带来广播风暴,MAC地址表震荡,重复数据帧等问题,为解决交换网络中的环路问题,提出了STP。
STP通过构造一棵树来消除交换网络中的环路。
运行STP算法,判断网络中存在环路的地方并阻断冗余链路,将环路网络修剪成无环路的树型网络,从而避免了数据帧在环路网络中的增生和无穷循环。
在这里插入图片描述
为避免产生环路,生成树会动态响应网络拓扑变化调整阻塞接口
在这里插入图片描述
常见的环路分为二层环路和三层环路(生成树工作在二层网络中即数据链路层)

二层环路主要因为网络中部署了二层冗余环境,或人为的误接线缆导致,可以通过借助特定的协议或机制实现二层防环;
三层环路主要因为路由环路,可以通过动态路由协议防环和IP报文头部中的TTL字段用于防止报文被无止尽地转发。


STP

STP是一个用于局域网中消除环路的协议。运行该协议的设备通过彼此交互信息而发现网络中的环路,并对某些接口进行阻塞以消除环路。
STP在网络中运行后会持续监控网络的状态,当网络出现拓扑变更时,STP能够感知并且进行自动响应,从而使得网络状态适应新的拓扑结构,保证网络可靠性。


桥ID

在STP中,每一台交换机都有一个标示符,叫做Bridge ID或者桥ID,桥ID由16位的桥优先级(Bridge Priority)和48位的MAC地址构成。在STP网络中,桥优先级是可以配置的,取值范围是0~65535默认值为32768,可以修改但是修改值必须为4096的倍数。优先级最高的设备(数值越小越优先)会被选举为根桥。如果优先级相同,则会比较MAC地址,MAC地址越小则越优先。


根桥

STP的主要作用之一是在整个交换网络中计算出一棵无环的“树”(STP树)。
STP开始工作后,会在交换网络中选举一个根桥,根桥是生成树进行拓扑计算的重要“参考点”,是STP计算得出的无环拓扑的“树根”。
在STP网络中,桥ID最小的设备会被选举为根桥。
在BID的比较过程中,首先比较桥优先级,优先级的值越小,则越优先,拥有最小优先级值的交换机会成为根桥;如果优先级相等,那么再比较MAC地址,拥有最小MAC地址的交换机会成为根桥。
桥根可以被抢占,当有更优秀的设备时新设备会成为新的桥根。


开销(COST)

每一个激活了STP的接口都维护着一个Cost值,接口的Cost主要用于计算根路径开销,也就是到达根的开销。
接口的缺省Cost除了与其速率、工作模式有关,还与交换机使用的STP Cost计算方法有关。
接口带宽越大,则Cost值越小。
用户也可以根据需要通过命令调整接口的Cost。
在这里插入图片描述


根路径开销(RPC)

从一个非根桥到达根桥的路径可能有多条,每一条路径都有一个总的开销值,开销值是该路径上所有接收BPDU端口的端口开销总和(即BPDU的入方向端口),称为路径开销

非根桥通过对比多条路径的路径开销,选出到达根桥的最短路径,这条最短路径的路径开销被称为RPC


接口ID

运行STP交换机的每个端口都有一个端口ID,端口ID由端口优先级和端口号构成。端口优先级取值范围是0到240,步长为16,即取值必须为16的整数倍。缺省情况下,端口优先级是128。端口ID可以用来确定端口角色。


BPDU(网桥协议的数据单元)

为了计算生成树,交换机之间需要交换相关的信息和参数,这些信息和参数被封装在BPDU中。
BPDU有两种类型:

  • 配置BPDU
  • TCN BPDU
    配置BPDU包含了桥ID、路径开销和端口ID等参数。STP协议通过在交换机之间传递配置BPDU来选举根交换机,以及确定每个交换机端口的角色和状态。在初始化过程中,每个桥都主动发送配置BPDU。在网络拓扑稳定以后,只有根桥主动发送配置BPDU(每两秒一次),其他交换机在收到上游传来的配置BPDU后,才会发送自己的配置BPDU。
    TCN BPDU是指下游交换机感知到拓扑发生变化时向上游发送的拓扑变化通知。

BPDU的报文格式

在这里插入图片描述


STP计算过程

  1. 在交换网络中选举一个根桥
  • 每个交换机都会向网络中发送配置BPDU。配置BPDU中包含交换机自己的桥ID。
    网络中拥有最小桥ID的交换机成为根桥
  1. 在每台非根桥上选举一个根接口
  • 每一台非根桥交换机都会在自己的接口中选举出一个接口
  1. 在每条链路上选举一个指定接口
  • 根接口选举出来后,非根桥会使用其在该接口上收到的最优BPDU进行计算,然后将计算得到的配置BPDU与除了根接口之外的其他所有接口所收到的配置BPDU进行比较:
    如果前者更优,则该接口为指定接口。
    如果后者更优,则该接口为非指定接口。
  1. 非指定接口被阻塞

在这里插入图片描述


故障恢复

桥根故障

SW1根桥发生故障,停止发送BPDU报文。
SW2等待Max Age计时器(20 s)超时,从而导致已经收到的BPDU报文失效,又接收不到根桥发送的新的BPDU报文,从而得知上游出现故障。
非根桥会互相发送配置BPDU,重新选举新的根桥。
经过重新选举后,SW3的A端口经过两个Forward Delay(15 s)时间恢复转发状态。
非根桥会在BPDU老化之后开始根桥的重新选举。
根桥故障会导致50 s左右的恢复时间。

直连链路故障

检测到根端口的链路发生故障,则其备用端口会经过两倍的Forward Delay(15s)时间进入用户流量转发状态。
SW2检测到直连链路物理故障后,会将预备端口转换为根端口。
直连链路故障,备用端口会经过30s后恢复转发状态。

非直连链路故障

非直连链路故障后,SW3的备用端口恢复到转发状态,非直连故障会导致50s左右的恢复时间。


STP不足之处

  • STP算法是被动的算法,依赖定时器等待的方式判断拓扑变化,收敛速度慢。

  • STP协议虽然能够解决环路问题,但是由于网络拓扑收敛慢,影响了用户通信质量。如果网络中的拓扑结构频繁变化,网络也会随之频繁失去连通性,从而导致用户通信频繁中断。


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
生成协议STP)是一种用于在局域网上防止环路的协议。它的主要功能是计算出一棵生成,使得网络中只有一个活跃的路径,所有其他路径被禁用,从而防止数据包在网络中无限循环。以下是一些深入理解STP的要点: 1. STP的基本原理 STP的基本原理是通过选举一个根交换机,然后计算每个交换机到根交换机的最短路径,从而构建一棵生成生成中的每个交换机都是根交换机的直接或间接子节点,并且只有一个活动的路径从根交换机到每个交换机。这样就能避免环路的产生。 2. STP的选举过程 在STP中,所有交换机都会参与选举根交换机的过程。通常,交换机的MAC地址被用来作为选举的依据,MAC地址最小的交换机将成为根交换机。一旦根交换机选定,每个交换机都会计算到根交换机的最短路径,这个路径被称为根路径。 3. STP的端口状态 在STP中,每个交换机的每个端口都有一个状态,用于决定是否允许数据流通过该端口。端口的状态有以下三种: - 挂起(blocked):该端口不允许数据流通过,因为它不在生成路径上。 - 监听(listening):该端口正在等待计算出的根路径是否更改。 - 学习(learning):该端口已经计算出了新的根路径,并正在学习与该端口相连的MAC地址。 4. STP的优化 为了提高STP的性能,有一些优化技术可以使用。其中最常见的是快速收敛(rapid convergence)。快速收敛技术可以使交换机在网络拓扑发生变化时更快地重新计算生成,从而减少网络中断的时间。 总之,STP是一种非常重要的协议,它可以有效地避免数据包在网络中无限循环,从而保证了网络的正常运行。了解STP的基本原理和优化技术,可以帮助我们更好地管理和优化网络。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值