简介:
STP(Spanning Tree Protocol | 生成树协议)是交换式以太网中的重要概念和技术,该协议的目的是实现交换机之间冗余连接的同时避免网络环路的出现,实现网络的可用性;生成树协议通过阻断相应端口来消除网络环路
它在交换机之间传递BPDU(Bridge Protocol Data Unit | 桥接协议数据单元),互相告知诸如:交换机的BID、链路开销和根桥ID等信息,以确定根桥,从而决定将哪些端口置于转发状态,将哪些端口置于阻断状态,用于消除环路
STP:
(1)环路引起的问题:
- 交换机通信产生环路:交换机之间通过多条链路互连时,虽然能够提升网络可靠性,但同时也会带来环路问题。而环路会带来一系列的问题,继而导致通信质量下降和通信业务中断等问题。
- 广播风暴:环路会引起广播风暴;网络中的主机会收到重复数据帧。交换机性能会因此急速下降,导致业务中断。
- MAC地址表震荡:环路会引起MAC地址表震荡。交换机根据所接收到的源地址和接收端口生成MAC地址表项的。
(2)STP的作用:
- 逻辑上断开环路,防止广播风暴的产生
- 当线路出现故障,断开的接口被激活,恢复通信,起备份线路的作用
(3)STP的算法:
STP将一个环形网络生成无环拓扑结构的步骤为:
- 选择根网桥(Root Bridge)
- 选择根端口(Root Ports)
- 选择指定端口(Designated Ports)
(4)选择根网桥的依据:
1>网桥ID(BID)
- 网桥ID是唯一的,交换机之间选择BID值最小的交换机作为网络中的根网桥
- 选择根网桥的目的是为了给将生成的树形结构确定一个树根
- 网桥优先级取值范围:0 - 61440
- 缺省值为:32768
- 默认网桥为:32768,网桥优先级需要被2整除,还需要被16的整除 ,还需要最小值是4096
(5)STP的5种端口状态:
- Disabled(禁用状态):该端口不参与生成树计算,也不会转发数据帧。(不会发送BPDU、不会接收BPDU,不会学习MAC地址、不会转发数据)
- Discarding(阻塞状态):该端口为非指定端口,也不会参与数据帧的转发,该端口通过接收BPDU来判断根交换机的位置和根ID,以及在STP拓扑收敛结束之后,各交换机端口应该处于什么状态,在默认情况下,端口会在这种状态下停留20秒钟的时间。(不会发送BPDU、会接收BPDU,不会学习MAC地址、不会转发数据)
- Listening(侦听状态):生成树此时已经根据交换机所接收到的BPDU而判断出了这个端口应该参与数据帧的转发,于是交换机端口就将不再满足于接收BPDU,而同时也开始发送自己的BPDU,并以此通告邻接的交换机端口会在活动拓扑中参与转发数据帧的工作,在默认情况下,该端口会在这种状态下停留15秒钟的时间。(会发送BPDU、会接收BPDU,不会学习MAC地址、不会转发数据)(中间态)
- Learning(学习状态):该端口准备参与数据帧的转发,并开始填写MAC表;默认情况下,端口会在该状态下停留15秒钟的时间。(会发送BPDU、会接收BPDU,会学习MAC地址、不会转发数据)(中间态)
- Forwarding(转发状态):该端口已经成为了活动拓扑的一个组成部分,它会转发数据帧,并同时收发BPDU(会发送BPDU、会接收BPDU,会学习MAC地址、会转发数据)
(6)STP的计时器
- 交换机开机需要等待30秒的时间以便开始转发数据
- 当某个正在使用的链路段掉,阻塞的端口需要50秒的时间转变为转发状态,开始转发数据
- STP规定:一个端口从阻塞状态进入到侦听状态需要20s(Maxage | 最大老化时间);一个端口从侦听状态进入到学习状态需要15s;一个端口从学习状态进入到转发状态需要15s(15s + 15s = 30s | 转发延迟),因此,一个阻塞端口从阻塞状态最终恢复至转发状态,共需要50s
RSTP:
RSTP(快速生成树协议),当网络拓扑发生变更的时候,快速生成树协议(802.1w)能显著加快重新计算生成树的速度
(1)RSTP定义了其他端口角色:
- 替代端口:替代的是自身的根端口,若根端口出现故障,则替代端口将成为新的根端口
- 备份端口:备份的是自身的指定端口,若当前的指定端口出现故障,则备份端口将成为新的指定端口
(2)定义了三种端口状态:
- 丢弃状态
- 学习状态
- 转发状态
如何改变根网桥:
(1)改变优先级:
SW1:
SW2:
SW3:
通过查看你三个交换机的stp,可以发现他们的优先级都是一样的,并且MAC地址最小的是SW2,所以SW2是根网桥,如果我想让SW1当根网桥,可以修改他的优先级为4096,配置如下:
这个时候根网桥就是SW2了
配置命令如下:
[Xzzzz911]stp priority ?
INTEGER<0-61440> Bridge priority, in steps of 4096
[Xzzzz911]stp priority 4096
[Xzzzz911]dis stp
(2)改变root:
依旧在上面的拓扑图的基础上,修改SW3为根网桥,只需修改他的root
配置命令如下:
[Xzzzz911]stp root ?
primary Primary root switch #根桥
secondary Secondary root switch #备份根桥
[Xzzzz911]stp root pri
[Xzzzz911]stp root primary
[Xzzzz911]dis stp
各端口的状态:
SW1的端口:
SW2的端口:
SW3的端口:
总结:
(1)三种生成树协议的比较
(2)BPDU报文解读
版权归原作者 Xzzzz911 所有, 如有侵权,请联系我们删除。