STP:生成树协议 (Spanning Tree Protocol,STP) 是一种链路管理协 议,为网络提供路径冗余,同时防止产生环路。交换机之间使用网 桥协议数据单元 (Bridge Protocol Data Unit,BPDU) 来交换STP 信息。 BPDU 包含了实现STP 必要的根网桥ID、 根路径成本、发送网桥ID、 端口ID等信息,具有配置BPDU 和通告拓扑变化的功能。
一、STP 的作用
STP 的作用有以下几点:
(1)逻辑上断开环路,防止广播风暴的产生。
(2)当线路出现故障,断开的接口被激活,恢复通信,起备份线路的作用。
(3)形成一个最佳的树型拓扑。
二、STP 交换机接口状态
阻塞状态到侦听状态需要20秒,侦听状态到学习状态需要15秒,学习状态到转发状态需要15秒。
状态 |
用途 |
阻塞(Blocking) |
接收BPDU、不转发帧 |
侦听(Listening) |
接收BPDU、不转发帧、接收网管消息 |
学习(Learning) |
接收BPDU、不转发帧、接收网管消息、把终端站 点位置信息添加到地址数据库(构建网桥表) |
转发(Forwarding) |
发送和接收用户数据、接收BPDU、接收网管消息、 把终端站点位置信息添加到地址数据库 |
禁用(Disable) |
端口处于shutdown状态,不转发BPDU和数据帧 |
三、STP 工作原理
STP 的作用是阻断网络中的环路,因此必须创建一个树形拓扑结构。所以STP首先选择根网桥 (Root Bridge), 然后选择根端口(Root Ports), 最后选择指定端口 (Designated Ports)。
(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值较小。
(4)非指定端口阻塞
交换机中所有的根端口和指定端口之外的端口,称为非指定端口。此时非指定端口被STP 协议设置为阻塞状态,这时没有环的网络就生成了。
RSTP:
STP 效率并不高。为了解决STP 收敛速度慢的情况,开发出了RSTP 协议。 RSTP 减少了STP 中的端口状态数,新增加了两种端口角色,并且把端口属 性充分按照状态和角色分开处理;此外, RSTP 还增加了一些相应的增强特性和保护措施,从而可以实现网络的稳定和快速收敛。
RSTP 在STP 基础上进行了改进,实现了网络拓扑快速收敛。但RSTP 和STP 还存在同一个缺陷:由于局域网中的所有VLAN 共享一棵生成树,因此 无法在VLAN 间实现数据流量的负载均衡。因此IEEE发布了IEEE 802.1S标 准的MSTP。MSTP 兼容STP 和RSTP, 既可以快速收敛,又提供了数据转发的多个冗余路径,在数据转发过程中实现VLAN 数据的负载均衡。
MSTP 原理 :
MSTP 把一个交换网络划分成多个域,每个域内形成多棵生成树,生成树之间彼此独立。每棵生成树叫做一个多生成树实例 (Multiple Spanning Tree Instance,MSTI),每个域叫做一个MST 域 (Multiple Spanning Tree Region,MST Region)。MSTP协议中的生成树实例就 是多个VLAN 的一个集合。通过将多个VLAN 捆绑到一个实例,可以节省 通信开销和资源占用率。每个VLAN 只能对应一个MSTI, 即同一VLAN 的数据只能在一个MSTI 中传输,而一个MSTI 可能对应多个VLAN。
MSTP 各个实例拓扑的计算相互独立,在这些实例上可以实现负载均衡。可以把多个相同拓扑结构的VLAN 映射到一个实例里。
四、STP 配置
(1)在交换机Switch A上使能STP。
[SwitchA]stp enable //启动生成树协议
(2)配置本桥为根桥。
[SwitchA]stp root primary
配置生成树协议时注意事项
(1)华为交换机默认的优先级都是32768,如果要指定某一台交换机为根交换机,可以通过修改优先级来实现。
(2)默认情况下打开生成树,所有端口都会开启生成树协议,若需要STP 有更快的收敛速度,可以把接PC 的端口改为边缘端口模式。
(3)如果要控制某条链路的状态,可以通过设置端口的cost值来实现。