生成树协议(Spanning Tree Protocol,STP)是一种链路管理协议,为网络提供路径冗余,同时防止产生环路。交换机之间使用网桥协议数据单元(Bridge Protocol Data Unit,BPDU)来交换STP信息。BPDU包含了实现STP必要我的根网桥ID、根路径成本、发送网桥ID、端口ID等信息,具有配置和通告拓扑变化的功能,STP收敛过程就是网络结构再变成稳态我的过程,所有端口都处于转发状态或阻塞状态可以看出STP收敛。
1、STP的作用
(1)逻辑上断开环路,防止广播风暴的产生;
(2)当线路出现故障时,断开的接口被激活,恢复通信,起备份线路的作用;
(3)形成一个最佳的树型拓扑。
2、STP交换机接口状态
状态 | 用途 |
阻塞(Blocking) | 接收BPDU,不转发帧 |
侦听(Listening) | 接收BPDU,不转发帧,接收网管消息 |
学习(Learning) | 接收BPDU,不转发帧,接收网管消息,把终端站点位置信息添加到地址数据库 |
转发(Forwarding) | 发送和接收用户数据,接收BPDU,接收网管消息,把终端站点位置信息添加到地址数据库 |
禁用(Disable) | 端口处于shutdown状态,不转发BPDU和数据帧 |
注意:阻塞状态到侦听状态需要20s,侦听到学习需要15s,学习到转发需要15s。
3、STP工作原理
STP首先选择根网桥(Root Bridge),然后选择根端口(Root Port)最后选择指定端口(Designated Port)。
(1)选择根网桥
每台交换机都有一个唯一的网桥ID(BID),最小BID值的交换机为根交换机。其中BID由2字节的网桥优先级字段和6字节的MAC地址字段组成。下图所示描述了根网桥的选择过程:
(2)选择根端口
选择根网桥后,其他的非根网桥选择一个距离根网桥最近的端口为根端口。
选择根端口的依据如下:
1)交换机中到根网桥总路径成本最低的端口。路径成本根据带宽计算得到,如10Mb/s的路径成本为100,100Mb/s的路径成本为19,1000Mb/s的路径成本为4,。开销最小的端口,即为该非根交换机的根端口;
2)如果到达根网桥的开销相同,再比较上一级(接收BPDU方向)发送者的桥ID,选择发送者桥ID最小的对应的端口;
3)如果上一级发送者网桥ID也相同,再比较发送端口ID。端口ID由端口优先级(8位)和端口编码(8位)组成。选出优先级最小的对应的端口,若优先级相同,则选择端口号最小的。
下图描述了根端口的选择过程:
(3)选择指定端口
每个网段选择一个指定端口,根网桥的所有端口均为指定端口。选定非根网桥的指定端口的依据如下:
1)到根网桥的路径成本最低;
2)端口所在的网桥的ID值较小;
3)端口ID值较小。
下图描述了指定端口的选择过程:
交换机中所有的根端口和指定端口之外的端口,称为非指定端口。此时非指定端口被STP协议设置为阻塞状态,这时没有环的网络就生成了。
4、STP配置
华为交换机下的STP配置主要有:
[LSW1]stp enable //全局使能STP
[LSW1]stp root primary //设置根网桥
[LSW2]stp root secondary //设置备份根网桥
[LSW1]stp pathcost-standard legacy //配置端口路径开销计算方法为华为计算方法
[LSW3-GigabitEthernet0/0/4]stp cost 20000 //配置端口的路径开销值,实现将该端口阻塞
[LSW4-GigabitEthernet0/0/1]stp edged-port enable //将端口设置为边缘端口
[LSW4-GigabitEthernet0/0/1]stp bpdu-filter enable //指定BPDU报文过滤功能,使端口不再发送BPDU报文
[LSW4]stp bpdu-protection //配置BPDU保护功能
(1)默认情况下交换机的优先级都是32768;
(2)默认情况下打开生成树后,所有端口都会开启生成树协议,若想STP有更快的反应,可以把接PC的端口改为边缘端口模式。