STP协议基础

12 篇文章 7 订阅
8 篇文章 1 订阅

冗余的交换网络为什么会存在广播风暴?
1、交换机转发广播报文的机制时泛洪
2、以太网帧中没有防环字段,帧在转发时没有TTL减一的机制
所以会持续的存在广播环路问题

广播的危害
1、消耗交换机性能
2、消耗链路带宽
3、主机收到广播要交给CPU处理,影响主机的性能

交换环路的危害
1、广播风暴
2、MAC地址表震荡
3、重复数据帧的接收


STP协议两大功能
1、消除环路:通过阻断冗余链路来消除网络中可能存在的环路
2、链路备份:当活动路径发生故障时,激活备份链路,及时恢复网络的连通性


STP协议通过交换BPDU帧来完成选举以及树的维护
BPDU:桥接协议数据单元,使用组播地址0180-c200-0000

BPDU类型
1、Configuration BPDU(配置BPDU)
选举根交换机以及确定每个交换机端口的角色和状态
在初始过程中,每台交换机都会主动发送配置BPDU
在网络拓扑稳定后,只有根交换机会发送配置BPDU,其他交换机收到上游传来的配置BPDU后,才会发送自己的配置BPDU
发送周期为Hello Time
老化时间为Max Age

2、TCN BPDU(拓扑变更通告BPDU)
下游交换机感知到拓扑发生变化时向上游发送的拓扑变化通知


桥ID

运行STP协议的交换机,出场携带一个BID,即桥标识符,用于标识自身

BID由桥优先级(高16位)和桥MAC地址(低48位)组成

华为设备的桥优先级的取值范围为0 - 65535,取4094的倍数,默认为32768,数值越小越优


路径开销(Path Cost)

路径开销用于衡量桥与桥之间的优劣,越低越优
STP协议中每条链路都具有开销值

根路径开销(Root Path Cost)

确定到达根桥的最短路径,并生成无环树状网络
到根桥的路径上所有路径开销之和


根桥ID:描述根桥的BID
桥ID:描述自身的BID
如果根桥ID和桥ID相同,则认为自身是根桥;如果根桥ID和桥ID不相同,则该交换机不是根桥

1、运行STP协议时,每台交换机都认为自己时根桥,发送以自己为根的BPDU
2、交换BPDU后,进行根桥的选举,一旦确定根桥,则由根桥周期性(2s)发送以自身为根的BPDU,非根桥不再发送以自己为根的BPDU

根路径开销RPC是由接收端交换机累加计算得出的

Port ID由端口优先级和端口编号组成
端口优先级取值范围为0-240,取16的倍数,默认值为128


STP的选举步骤
1、首先选举出根桥,根桥上不存在根端口

根桥选举规则
1、BID最小的交换机成为根桥(BID = 桥优先级 + 桥MAC)
2、先比较桥优先级,数值越小越优;
3、如果桥优先级相同,则进一步比较MAC,越小越优
4、根桥可以被抢夺

2、其他交换机为非根桥,在非根桥上选举根端口RP,非根桥上有且只有一个根端口

根端口选举规则
1、非根交换机上的端口到根桥的累计RPC最小的端口成为根端口
2、如果RPC相等,则比较对端交换机的BID,越小越优
3、如果BID相等,则比较链路上对端交换机的Port ID,越小越优(Port ID =  Port优先级 + Port编号)
4、如果Port ID相等,则比较自身的Port ID,越小越优
注意:以上选举规则建立在根桥确定的基础上,当根桥被选举出之前,选举根端口优先的是比较Root ID

3、在每条链路上选举一个指定端口DP,每条链路有且只有一个指定端口

4、既不是根端口,也不是指定端口的端口,就被称为阻塞端口
注意:根端口和指定端口不能是同一个端口


总结:
根端口:从STP的角度来看,交换机上接收最优BPDU的端口;从用户角度来看,交换机上到根桥“最近”的端口
指定端口:从STP的角度来看,链路上发送最优BPDU的端口;从用户角度来看,链路上到根桥“最近”的端口

什么是最优的BPDU
1、ROOT ID最小
2、比较自身到根桥的累计根路径开销最小
3、BID最小
4、对端Port ID最小
4、自身Port ID最小


STP PVID 0 802.1d
RSTP PVID 2 802.1w
MSTP PVID 3 802.1s
VBSTP 华为私有,用于和思科交换机做兼容(老版本交换机并不支持)


STP协议一共有两种BPDU
1、配置BPDU
2、TCN BPDU
BPDU关键字段

flags
TCA比特位置位,表示拓扑改变确定
TC比特位置位,表示拓扑改变

message age:BPDU存活时间,根桥发送时该值为0,没经过一台交换机加一

max age:BPDU最大存活时间,默认为20s,当message age等于max age,则认为该BPDU失效

hello time:BPDU发送时间间隔,默认2s

forwad delay:端口在监听状态和学习状态分别需要等待的时间,默认15s


STP的端口开销的三种计算标准

stp pathcost-standard                  //手动修改路径开销标准的命令

dot1d-1998 IEEE 802.1d-1988 IEEE标准,比较老,一般不建议使用
dot1t IEEE 802.1t IEEE新标准,华为设备默认
legacy Legacy 华为私有标准


STP协议的端口角色

根端口RP:非根桥上接收来自根桥的最优BPDU的端口
指定端口DP:链路上发送根桥的最优BPDU的端口
处于blocking状态的端口:华为设备上将其定义为AP

注意,标准STP协议的端口角色只有2种,即RP和DP,对处于blocking状态
的端口并没有明确定义,但华为设备的STP协议种将处于blocking状态的端口
用预备端口AP来描述,而预备端口AP是RSTP协议中定义的端口角色

STP协议的端口状态及行为

1、禁用disable:通常端口down或链路故障时会处于此状态。处于此状态下的端口不可以接收或发送BPDU,不可以接收或转发用户数据

2、阻塞blocking:通常端口刚启用或在RP/DP选举中落败的端口处于此状态。处于此状态下的端口可以接收BPDU,但不可以发送BPDU;可以接收用户数据但会丢弃,不可以转发用户数据

3、监听listening:过渡状态,通常在RP/DP选举中胜出的端口处于此态,也即处于此状态的端口为RP/DP,此状态到下一状态learning过程中存在15s的转发延时时间。处于此状态的端口可以接收和发送BPDU;不可以接收或转发用户数据

4、学习learning:过渡状态,通常此状态到下一状态forwarding过程中存在15s的转发延时时间。处于此状态的端口可以接收和发送BPDU;不可以接收或转发用户数据;可以学习MAC地址

5、转发fowarding:处于此状态的端口可以接收和发送BPDU;可以接收和转发用户数据;可以学习MAC地址。只有根端口和指定端口才能处于此状态

各状态下端口行为总结如下

端口状态能否接收BPDU能否发送BPDU能否接收用户数据能否转发用户数据能否学习MAC地址
disable
blocking
listening
learning
fowarding

STP协议端口状态转换
STP协议端口状态转换

STP协议链路故障分析

直连故障
在这里插入图片描述

1、存在AP端口(阻塞端口)的非根交换机出现RP的直连链路故障时(图中SW3的RP所在链路故障),AP成为新的RP,在经历2倍的转发延时后进入转发状态,故障恢复

当RP的直连链路出现故障时,RP失效,AP收到的是最优BPDU,被选举为新的RP,此后状态由listening----->
learning---------->fowarding,中间需要经历2倍的转发延时后方可进入转发状态,由此可知,这种故障类型
恢复需要30s

2、不存在AP端口的非根交换机出现RP的直连链路故障时(图中SW2的RP所在链路故障),该交换机会发送以自己为根的BPDU,下游交换机等待20s的最大老化时间后,才会处理该BPDU,当下游端口确定是DP时,经历2倍的转发延时后进入转发状态

当RP的直连链路出现故障时,一方面,RP所在的非根交换机会发送以自己为根的BPDU;另一方面,与其直连的其他
非根交换机和根交换机的链接并未受到任何影响,仍然会通过自己的RP继续接收根交换机的最优BPDU,两者比较后,
出现RP链路直连故障的非根交换机的DP被选举为RP;其他非根交换机的RP依然是RP,阻塞端口AP在等待20s的最大
老化时间后,未收到根交换机的BPDU,此时在新的选举之后其成为DP,此后状态由blocking----->listening---->
learning---------->fowarding,中间需要经历20s的最大老化时间加上2倍的转发延时后方可进入转发状态,由此
可知,这种故障类型恢复需要50s

间接故障
在这里插入图片描述
1、存在AP端口的交换机出现RP直连故障后,RP的BPDU老化(20s)后,AP成为新的RP,在经历2倍的转发延时后进入转发状态,50s故障恢复
2、不存在AP端口的交换机出现直连故障后,该交换机会发送以自己为根的BPDU,下游交换机等待20s的最大老化时间后,才处理该BPDU,当下游端口确定时DP时,经历2倍的转发延时进入转发状态,总计50恢复故障

根桥故障
在这里插入图片描述

1、当根桥发生故障时,对于RP和DP所在的非根交换机(图中SWB)来说,RP直接失效,由于其没有阻塞端口AP,所以失去了到根交换机的路径,此时该交换机会发送以自己为根交换机的BPDU
2、对于RP和AP所在的非根交换机(图中SWA)来说,RP失效后,阻塞端口AP上缓存的那一份经SWA—SWB发来的根交换机的BPDU,会经历一个20s的老化时间,在此之后仍然没有收到新的BPDU,该交换机会认为根交换机失效,此时该交换机也会发送以自己为根交换机的BPDU
3、当两台交换机开始交互彼此的BPDU报文时,不管选举的结果如何,一定是一个为RP,一个为DP,都要经历从listening----->learning----->fowarding的状态,需要经历2倍的转发延时30s的时间
4、由以上可知,从根交换机发生故障开始,到恢复正常这一过程中间需要经历20s的最大老化时间加上2倍的转发延时后方可进入转发状态,由此可知,这种故障类型恢复需要50s


STP发送TCN BPDU的两种情况

1、当接口up/down并过渡到forwarding状态后,会发送TCN BPDU

逐跳传递给根桥,上游交换机收到下游发来的TCN BPDU后,会向下游发送TCA=1,TC=1的配置BPDU,用于确认收到
了TCN BPDU;同时继续将从TCN BPDU传递给自己的上游交换机
当根桥收到TCN BPDU后,在接收到TCN的端口发出TCA=1,TC=1的配置BPDU,用于确认收到了TCN,并通知全网
交换机网络拓扑已发生变化;在其他端口上则发送TCA=0,TC=1的配置BPDU

2、RP恢复到forwarding状态后,并且有一个DP在forwarding状态,此时RP也会发送TCN BPDU

注意,TCN BPDU只会从RP往根交换机的方向发送


STP协议最早认为任何端口进入到forwarding状态或disable状态时,拓扑即发生了变化,后来对拓扑发生变化的定义做出了优化:
1、当DP进入到forwarding状态时,认为拓扑发生变化,连接终端设备的DP设置为边缘端口进行优化
2、RP失效或RP进入到forwarding状态,认为拓扑发生变化
3、非根桥DP失效,不认为拓扑发生变化
4、根桥DP失效,直接发送TC BPDU


华为交换机STP协议相关输出参数含义

-------[CIST Global Info][Mode STP]-------		//当前交换机STP协议的模式
CIST Bridge         :0    .4c1f-cc09-0c81			//自身的BID
Config Times        :Hello 2s MaxAge 20s FwDly 15s MaxHop 20	//管理员配置的计时器的值
Active Times        :Hello 2s MaxAge 20s FwDly 15s MaxHop 20	//设备执行的计时器的值
CIST Root/ERPC      :0    .4c1f-cc09-0c81 / 0		//根桥的BID,非根桥RP到根桥的开销;对根桥来说恒为0
CIST RegRoot/IRPC   :0    .4c1f-cc09-0c81 / 0                          //对STP无意义
CIST RootPortId     :0.0                                           //RP的Port ID,对根桥来说恒为0
BPDU-Protection     :Disabled
TC or TCN received  :40
TC count per hello  :0
STP Converge Mode   :Normal 
Time since last TC  :0 days 0h:1m:35s
Number of TC        :12
Last TC occurred    :GigabitEthernet0/0/1

----[Port1(GigabitEthernet0/0/1)][FORWARDING]----             //当前端口的状态
 Port Protocol       :Enabled														//是否启用STP协议
 Port Role           :Designated Port											//端口角色
 Port Priority       :128																//端口的优先级
 Port Cost(Dot1T )   :Config=auto / Active=20000					//端口的开销
 Designated Bridge/Port   :0.4c1f-cc09-0c81 / 128.1				//如果该端口是该链路上的DP,则代表根桥的BID和自身端口的Port ID;如果该端口是RP或AP,则代表RP或AP对端交换机的BID和Port ID
 Port Edged          :Config=default / Active=disabled				//是否为边缘端口
 Point-to-point      :Config=auto / Active=true							//链路是否为P2P链路,如果端口工作在全双工模式,则认为是Point-to-Point链路						//
 Transit Limit       :147 packets/hello-time								//
 Protection Type     :None														//
 Port STP Mode       :STP 														//
 Port Protocol Type  :Config=auto / Active=dot1s					//
 BPDU Encapsulation  :Config=stp / Active=stp						//
 PortTimes           :Hello 2s MaxAge 20s FwDly 15s RemHop 20
 TC or TCN send      :75
 TC or TCN received  :14
 BPDU Sent           :446             
          TCN: 0, Config: 446, RST: 0, MST: 0
 BPDU Received       :17             
          TCN: 12, Config: 5, RST: 0, MST: 0

STP协议的计时器只需要在根桥上配置

stp mode stp
stp priority 4096
stp timer hello 300
stp timer max-age 3000
stp timer forward-delay 2000            //作用:1、决定了在监听状态和学习状态维持的时间;2、收到TC置位的BPDU后MAC地址表的老化时间

在这里插入图片描述
1、如上图所示,若希望SW2的GE0/0/1成为AP,该如何操作
分析:根据RP的选举规则,SW2的GE0/0/1到根桥的RPC=0+20000,GE0/0/2到根桥的RPC=0+20000+20000=40000,故只需要将SW2的GE0/0/1的端口开销修改为大于40000即可实现需求

int g0/0/1
stp cost 60000

做完上述操作后,注意观察SW1,SW2,SW3,SW4端口角色的变化
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


在这里插入图片描述
2、如上图所示,若希望SW4的GE0/0/3端口成为RP,该如何操作
分析:由于SW4的GE/0/01和GE0/0/3口到根桥的RPC相同,故无法使用修改端口开销实现需求。根据RP的选举规则,修改对端设备SW3的GE0/0/4的端口优先级即可实现需求(端口优先级默认为128)
int g0/0/4
stp port priority 32

此时观察SW2、SW3和SW4的端口角色如下
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


STP协议为什么收敛慢?端口角色的计算实际上是非常快的,当AP被计算为RP或DP时,这个选举过程时非常快的,但为什么要等待30s?
监听状态15s,是为了防止临时环路,让BPDU由有充足的时间传递到全网。也即防止STP收敛过程中欧给你新的AP还没有计算出来,而其他端口都处于转发状态导致的临时环路
学习状态15s,是为了避免大量未知DMAC地址的单播帧被泛洪转发。在STP收敛过程中存在MAC地址提前老换,设计一段MAC地址学习时间,避免泛洪过多
所以STP协议为了避免临时环路和泛洪,被动等待计时器超时机制,收敛慢
在这里插入图片描述

  • 2
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
STP(Spanning Tree Protocol,生成树协议)是一种用于在以太网网络中防止环路并确保冗余链路可靠性的协议。它的基本原理是通过选择一个根交换机,并在网络中的各个交换机之间建立一棵生成树,从而实现环路的消除。 STP基于以下几个核心概念: 1. 根交换机(Root Switch):在STP网络中,选举一个交换机作为根交换机,该交换机将成为生成树的根节点。根交换机具有最低的桥优先级(Bridge Priority),桥优先级是一个用于选举根交换机的参数。 2. 桥优先级(Bridge Priority):每个交换机都有一个桥优先级,用于确定其在选举根交换机过程中的优先级。较低的桥优先级将使得交换机更有可能成为根交换机。 3. 端口优先级(Port Priority):每个交换机上的端口都有一个端口优先级,用于确定在生成树中的路径选择。较低的端口优先级将使得该端口更有可能成为根交换机到其他交换机之间的路径。 4. 生成树(Spanning Tree):生成树是一棵由交换机和链路组成的树状结构,用于连接网络中的所有交换机,并确保没有环路。生成树中的某些链路被标记为指定端口(Designated Port),用于传输数据;其他链路被标记为阻塞端口(Blocked Port),用于防止环路的发生。 STP的工作原理是通过交换机之间的BPDU(Bridge Protocol Data Unit)交换来实现的。交换机会通过BPDU消息进行根交换机选举、生成树构建和端口状态转换等过程。BPDU消息包含了交换机的标识信息、路径开销和优先级等参数。 总结起来,STP通过选举根交换机、构建生成树和阻塞冗余链路的方式,确保以太网网络中没有环路,并提供冗余链路的可靠性。这样可以提高网络的可用性和稳定性。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值