生成树协议(STP,Spanning Tree Protocol)的主要功能:
- 消除网络环路导致的广播风暴问题(环路会引发MAC地址表不稳定)
- 防止网络中的主机接收重复数据帧
STP工作原理:
- 选举根桥(Root Bridge,RB)
- 在非根交换机上选举根端口(Root Port,RP)
- 为每个网段选举指定端口(Designated Port,DP),该端口负责转发BPDU报文(根桥端口默认为指定端口)
- 阻塞其他所有端口(Block/Discarding状态)
STP协议定义了三种端口角色:指定端口、根端口和预备端口。
指定端口(Designated Port,DP,标记:DESI)
- 功能:负责向所连网段转发配置BPDU
- 特点:每个网段有且仅有一个指定端口
- 注意:根桥的所有端口默认都是指定端口
根端口(Root Port,RP,标记:ROOT)
- 定义:非根交换机去往根桥的最优路径端口
- 限制:每台交换机最多拥有一个根端口
- 例外:根桥上不存在根端口
预备端口(标记:ALTE)
- 条件:既非指定端口也非根端口的端口
- 状态:自动进入阻塞状态
桥ID组成与选举规则
- 构成:优先级(0-65535,默认32768)+ MAC地址
- 选举:STP网络中桥ID最小的交换机成为根桥
根路径开销(Root Path Cost,RPC)
- 作用:用于选举根端口和指定端口(值越小越优先)
- 计算:等于从根桥到该交换机沿途所有入方向接口Cost值的累和
根端口选举规则:
- 首先比较路径开销
- 若开销相同,则比较桥ID
- 若桥ID也相同,则比较端口ID
端口ID说明:
- 由端口优先级(0-240)和端口号组成
- 优先级取值规则:
- 必须为16的整数倍
- 默认值为128
- 用于最终确定端口角色
STP协议运行下设备端口存在五种状态:
Forwarding(转发状态)
- 可转发用户流量和BPDU报文
- 仅根端口或指定端口可进入此状态
Learning(学习状态)
- 根据接收的用户流量构建MAC地址表
- 不转发用户流量
- 设置此状态可避免临时环路
Listening(侦听状态)
- 允许转发BPDU报文
- 禁止转发用户流量
Blocking(阻塞状态)
- 仅接收并处理BPDU
- 不转发BPDU和用户流量
- 预备端口的最终状态
Disabled(禁用状态)
- 不处理或转发BPDU报文
- 不转发用户流量
BPDU主要分为两类:配置BPDU和TCN BPDU。
- 配置BPDU:包含桥ID、路径开销和端口ID等关键参数,用于STP协议的交换机选举和端口状态确定。在网络初始化阶段,所有交换机都会主动发送配置BPDU;当网络拓扑稳定后,仅根桥继续主动发送,其他交换机收到上游BPDU后才会响应。
- TCN BPDU:当下游交换机检测到拓扑变化时,向上游发送的拓扑变更通知。
配置BPDU核心参数
- 根桥ID:由优先级和MAC地址组成,确保STP网络中唯一根桥。
- 根路径开销:到达根桥的最短路径开销。
- 指定桥ID:指定交换机的优先级和MAC地址。
- 指定端口ID:指定端口的优先级和端口号。
- 时间参数:
- Message Age:BPDU传播的当前生存时间。
- Max Age:BPDU的最大保存时间(默认20秒)。
- Hello Time:BPDU发送间隔(默认2秒,仅根桥触发)。
- Forward Delay:端口状态迁移延时(默认15秒,含Listening→Learning→Forwarding阶段)。
关键时间说明
- Hello Time:根桥每2秒发送BPDU,其他设备中继转发。
- Forward Delay:控制端口状态转换及MAC表刷新。
- Max Age:新旧BPDU切换的忠诚度判断阈值(20秒)。若
Message Age > Max Age
则丢弃BPDU;否则接收并转发(每经过一台交换机Message Age
+1,仅在MSTP中可修改且需根桥调整生效)。
配置所需要的命令:
[SWA]stp mode stp 配置交换机的生成树协议模式
[SWA]stp priority 4096 配置交换机优先级
[SWC]interface GigabitEthernet 0/0/1 进入接口
[SWC-GigabitEthernet0/0/1]stp cost 2000 配置路径开销
[SWA]display stp 配置验证