1.STP概念
STP为生成树协议,主要用于解决网桥局域网中的环路的问题
2.环路带来的影响
- 引起广播风暴,从而导致网络不可用
- 引起mac地址表震荡
3.STP的作用
- 消除环路
- 链路冗余备份
4.STP名词解析
1.BID
BID为桥ID,由16bit的桥优先级和48bit的桥mac地址组成,默认为32768,取值为0-61440,步长为4096 。
2.PID
PID为端口ID,由4bit端口优先级和12bit端口编号组成,端口优先级默认为128,取值为0-240,步长为16。
3.PRC
RPC为根路径开销,指网桥到达根桥最短路径的开销。
5.STP端口角色
1.RP端口
根端口,稳定时处于转发状态。
2.DP端口
指定端口,稳定时处于转发状态。
3.AP端口
替代端口,处于blocking状态。
6.STP端口状态
1.Disable状态
禁用状态,接口初始状态
2.Blocking状态
阻塞状态,该状态下接口可以接收BPDU报文,但是不转发BPDU报文,也不转发用户流量。
3.Listening状态
侦听状态,该状态下接口接收、转发BPDU报文,但是不转发用户流量。
4.learning状态
学习状态,该状态下构建mac地址表项,但是不转发用户流量(防止临时环路)。
5.Forwarding状态
转发状态,接口接收转发BPDU报文,也转发用户流量。
7.STP计时器
1.hello-time
BPDU报文的发送间隔,默认为2秒。
2.message-age
BPDU报文的生存时间,每经过一个设备+1。
3.max-age
BPDU报文的老化时间,默认为20秒。
4.forward-delay
转发时延,指一个端口状态迁移到转发状态时需要等待的时间,一个转发时延为15秒 。
8.STP的报文
1.配置BPDU报文
配置bpdu报文用于进行生成树的计算和维护生成树拓扑信息。
在初始阶段,所有交换机都会发送配置BPDU报文(周期性组播发送,发送间隔为2秒,发送的组播mac为0180-c200-0000),等到网络稳定后,只有根桥会发送BPDU报文,其他网桥只能转发根桥的BPDU报文。
在配置BPDU报文的Flag位字段中,只有TCA(位7)和TC(位0)有意义,其他位未使用,TCA置位的BPDU报文用于对收到的TCN BPDU报文进行确认,TC置位的BPDU报文用于通知交换机清空自己的MAC地址表项。
2.拓扑变化通知报文-TCN BPDU
TCN BPDU报文用于告知网络拓扑发生变更。
3.配置BPDU包含的重要信息
(1)根路径开销RPC
(2)指定桥ID
(3)指定端口ID
(4)Message-Age
(5)Max-Age
(6)hello-time
(7)Forward-delay
4.BPDU报文格式
(1)PID:协议ID,STP中值为0
(2)PVI:协议版本,STP中的PVI的值为0,RSTP中的PVI值为2,MSTP中PVI值为3
(3)BPDU Type:BPDU报文的类型,值为0x00表示配置BPDU报文,值为0x08表示TCN BPDU,值为0x20表示RST或MSTP BPDU
(4) Flags:标识位,在STP中只用到TCA位和TC位
(5)RID:根桥的ID
(6)RPC:根路径开销
(7)Message-age:BPDU报文生存时间,每经过一个设备加1
(8)Max-age:BPDU报文的老化时间,默认为20秒
(9)Hello-time:BPDU报文的发送间隔,默认为2秒
(10)Forward-delay:转发时延,指端口状态迁移到转发状态的时间,一个转发时延为15秒
9.STP中根桥的选举
1.STP的操作
(1)选举一个根桥
(2)在每个非根交换机选举一个根端口
(3)在每个网段选举一个指定端口
(4)阻塞非根、非指定端口
2.STP根桥的选举过程
(1)初始状态下,所有交换机都认为自己是根桥,所有的端口都为指定端口,并且向所有端口发送自己的配置BPDU报文
(2)邻居收到对端发过来的BPDU报文后,会将报文中的BID与自己的进行比较,若自己的更优,则继续通告自己的BPDU报文,若收到的BPDU的BID更优,则会修改自己BPDU报文中的根桥ID字段,通告新的根桥
10.STP拓扑变化过程
1.网桥发送TCN BPDU报文的必要条件
(1)端口状态发生改变(any-->Forwarding、Forwarding-->Blocking)
(2)网桥中至少有一个DP端口(只有DP端口会处理TCN BPDU报文)
2.STP拓扑变化通知过程
(1)下游交换机感知到拓扑发生变化,不断从RP端口发送TCN BPDU报文,发送间隔为2秒。
(2)上游设备收到TCN BPDU报文后,会回应一个TCA 置位的BPDU报文,用于告知下游设备收到了TCN BPDU报文并停止发送TCN BPDU报文,上游设备继续往自己上游设备发送TCN BPDU报文。
(3)TCN BPDU报文继续向上游设备发送,直到发送到根桥,根桥收到后,会向全网泛洪TC置位的配置BPDU报文,下游设备收到TC 置位的配置BPDU报文后,会在15秒后将自己的MAC地址表项清空。
11.STP链路开销计算
(1)802.1D_1998
(2)802.1t
(3)私有协议(legicy)
12.STP拓扑故障
1.根桥故障
根桥发生故障后,停止发送配置BPDU报文,下游设备一直收不到BPDU报文,直到max-age超时后,非根桥重新选举根桥,该过程会持续大约50秒左右的恢复时间:max-age+2倍Forward-delay时间
2.直连链路故障
交换机检测到直连链路出现故障,会将其阻塞端口状态迁移到转发状态,经过两个Forward-delay时延
13.STP的缺陷
(1)端口状态和端口角色区分不明显,Blocking、Listening、Learning三种状态没有本质上的区别,都不转发用户流量;根端口和指定端口既可能处于learning状态也可能处于Forwarding状态。
(2)收敛速度慢,STP协议算法采用的是被动算法,拓扑变化情况需要依靠计时器超时来判断;只有根桥才可以主动发送配置BPDU报文,其他桥只能被动转发
(3)拓扑变化收敛机制不灵活,当有主机频繁上下线时,网络会频繁产生大量TCN BPDU报文