STP协议

发布时间:2026/6/29 16:05:40

STP协议 一、STP概述1. 什么是STP生成树协议Spanning Tree ProtocolSTP是一种工作在OSI模型第二层的网络协议基本功能是防止二层网络产生环路同时提供链路冗余备份。2. 为什么需要STP——二层环路带来的问题在未启用STP的二层网络中环路会引发以下灾难性后果广播风暴交换机对BUM帧广播、组播、未知单播进行无限泛洪耗尽设备CPU和带宽最终导致网络瘫痪。MAC地址表震荡交换机在不同接口间反复学习同一个MAC地址MAC地址漂移导致MAC表不断刷新影响正常转发。3. 为什么二层不能自己防止环路交换机转发机制缺陷交换机对BUM帧仅执行泛洪无内置防环机制。对比三层网络IP报文通过TTL生存时间逐跳递减TTL0时丢弃天然防止环路而二层帧无类似字段。二、STP基本概念1. 桥IDBridge IDBID组成桥优先级2字节 MAC地址6字节作用唯一标识一台交换机用于根桥选举。优先级范围0~61440默认32768步进4096必须配置为4096的倍数。2. 根桥Root BridgeRB定义STP网络中桥ID最小的交换机。作用作为全网逻辑中心所有路径计算以根桥为参考点。3. 根路径开销Root Path CostRPC定义从某交换机到达根桥的所有链路开销之和入方向累计。根桥自身RPC0。4. 端口IDPort IDPID组成端口优先级1字节默认128 端口号1字节作用在特定场景下如选举指定端口作为比较因子。优先级范围0~240默认128步进16。5. BPDU桥协议数据单元STP通过交换BPDU来传递拓扑信息分为两类配置BPDU用于STP拓扑计算由根桥周期性默认2秒发送。TCN BPDU拓扑变更通知仅在网络拓扑发生变化时触发。配置BPDU报文格式字段含义RID根桥的桥IDRPC发送该BPDU的交换机到达根桥的路径开销根桥发送时为0BID发送该BPDU的交换机的桥IDPort ID发送该BPDU的端口IDMessage AgeBPDU存活时间从根桥发出为0每经过一台交换机1超过Max Age默认20s则丢弃Max AgeBPDU最大老化时间默认20sHello TimeBPDU发送周期默认2sForward Delay端口状态迁移延迟默认15sBPDU Flag字段TC1拓扑变更通知TCA1拓扑变更确认当TC0且TCA0时表示STP网络稳定。三、STP端口角色与状态1. 端口角色角色定义功能最终状态根端口Root Port非根桥上到达根桥路径开销最小的端口接收来自根桥的BPDU转发数据转发Forwarding指定端口Designated Port每个网段冲突域上到达根桥路径开销最小的端口发送本网段最优BPDU转发数据转发Forwarding阻塞端口Blocking Port既不是根端口也不是指定端口的端口仅接收BPDU不转发数据阻塞Blocking2. 端口状态802.1D在稳定STP网络中端口只存在Blocking或Forwarding状态其他为过渡状态状态收发BPDU学习MAC转发数据说明Disabled否否否接口被shutdown或物理失效Blocking仅接收否否阻塞端口防止环路Listening收发否否过渡状态等待15sLearning收发是否过渡状态等待15sForwarding收发是是正常转发状态STP状态机text禁用(Disabled) → 阻塞(Blocking) → 监听(Listening) → 学习(Learning) → 转发(Forwarding)四、STP工作机制与选举过程1. 根桥选举比较桥优先级数值越小越优。若优先级相同比较MAC地址越小越优。根桥具有抢占性当网络中接入一台桥ID更小的交换机时它会成为新根桥。2. 根端口选举非根桥上选举依据比较接收到的最优配置BPDU按以下顺序逐条比较直到选出最优RID根桥ID越小越优RPC根路径开销越小越优发送者BID桥ID越小越优发送者PID端口ID越小越优接收端口自身的PID越小越优3. 指定端口选举每个网段注意事项先完成全网根端口选举再进行指定端口选举。选举步骤与根端口选举完全一致比较BPDU优先级但比较的是端口发出的BPDU与邻居发来的BPDU。指定端口的特点根桥上的所有端口都是指定端口。指定端口的对端要么是根端口要么是阻塞端口。连接终端设备PC、路由器、防火墙的端口均为指定端口。指定端口主动发送最优BPDU。4. 最优BPDU的判断标准一条BPDU的“优劣”按以下顺序比较RID最小RPC最小发送者BID最小发送者PID最小5. STP拓扑计算过程初始状态初始状态所有交换机均认为自己是根桥发送以自己为根的BPDU。选举根桥交换BPDU后全网选出RID最小的交换机为根桥。选举根端口非根桥根据收到的BPDU选出根端口。选举指定端口设备根据根端口的BPDU和接口开销为每个端口计算出“指定端口BPDU”。将该BPDU与端口当前保存的BPDU比较若计算出的更优则端口成为指定端口并周期性发送该BPDU若更差则端口成为阻塞端口只接收不发送。6. 路径开销Cost路径开销与链路带宽成反比常见标准802.1D-1998参考值链路带宽开销值10Mbps100100Mbps191000Mbps410Gbps2注不同标准如802.1t开销值可能不同配置时需保持全网一致。五、STP故障案例分析1. 根桥故障场景根桥SW1失效停止发送BPDU。过程SW2根端口失效无替代端口认为失去与根桥的连接随即以自己为根发送BPDU。SW3的阻塞端口Alternate Port仍保留SW1为根的BPDU需等待20s Max Age老化。老化后SW3处理SW2的BPDU重新选举SW2成为新根桥SW3原阻塞端口成为根端口经历30sListeningLearning后转发。中断时间50s2015152. 直连链路故障场景SW3根端口直连链路故障且存在替代端口。过程SW3感知到根端口失效立即将替代端口升为根端口。新根端口经历30sListeningLearning后进入转发状态。中断时间30s15153. 非直连链路故障场景SW2根端口失效无替代端口且故障点不在直连链路上。过程SW2以自己为根发送BPDU。SW3阻塞端口收到SW2的BPDU但因原BPDU以SW1为根仍有效需等待20s Max Age。老化后SW3处理新BPDU将原阻塞端口升为指定端口经历30s后转发。中断时间50s2015154. 指定端口故障若指定端口所在链路已断开对端为阻塞端口故障不影响现有拓扑无中断。5. 拓扑改变导致MAC地址表错误问题拓扑变化后MAC地址表未及时更新导致帧被错误转发。解决流程检测到拓扑变化的交换机如SW3向上游发送TCN BPDU。上游收到后回复TCA BPDU并继续向根桥转发TCN。根桥收到TCN后向全网发送TC置位的BPDU持续35s每2s一次。下游交换机收到TC BPDU后将MAC地址表老化时间由默认300s临时缩短为15s快速刷新表项。6. 为什么转发时延需要15sListening15s确保根桥的BPDU有足够时间传播到全网防止临时环路。Learning15s让交换机在新拓扑中学习MAC地址减少未知单播泛洪。六、华为STP特性与优化1. 华为STP与标准802.1D的区别华为STP吸收了RSTP的部分特性进行了优化收到次优BPDU时立即处理无需等待Max Age。只有三种端口状态Discarding、Learning、Forwarding相当于将Blocking、Listening合并为Discarding。交换机有自己的超时机制超时时间 Hello Time × 3 × Timer FactorTimer Factor默认3默认为18s最小6s因此Max Age在华为设备中意义不大。收到TC BPDU后立即清空MAC表但TC BPDU会持续发送35s约17次可能导致短时间内泛洪增多。2. 华为STP故障恢复时间优化故障类型标准802.1D华为STP根桥故障50s30s非直连故障50s30s直连故障有AP30s30s不变优化原因华为STP借用了RSTP的替代端口Alternate Port概念且支持次级BPDU立即处理无需等待Max Age。七、STP配置命令华为设备1. 切换STP模式bash[Huawei] stp mode { stp | rstp | mstp } # 默认为mstp2. 修改转发延迟时间bash[Huawei] stp timer forward-delay centiseconds # 步进100如1500表示15s3. 修改桥优先级bash[Huawei] stp priority priority # 0-61440需为4096倍数4. 修改路径开销标准全网一致bash[Huawei] stp pathcost-standard { dot1d-1998 | dot1t | legacy } # dot1d-1998802.1D-1998标准 # dot1t802.1T标准 # legacy华为私有标准5. 修改接口开销bash[Huawei] interface gigabitEthernet 0/0/1 [Huawei-GigabitEthernet0/0/1] stp cost cost-value # 1-200000000

相关新闻