
STP的题说难也难说简单也简单。难的是拓扑一变、链路一多很多人就乱简单的是只要把根桥选举、根路径开销、端口角色这三件事吃透题型再翻花样也能应付。今天不扯大道理直接拿几道我自己在刷题和实战里反复用到的STP练习题出来举例从根桥选举到端口角色计算再到故障收敛一层层帮你把思路捋顺。这里的STP就是生成树协议Spanning Tree Protocol是二层网络里防环的基础协议。不管你是备考网络工程师认证还是在现场排查网络环路STP的题目都是绕不开的。下面我按题型拆开讲每道题都给了完整解析和避坑点你可以拿来当刷题材料也可以按这个思路自己改拓扑练手。1. 先搞清楚STP做题必须掌握的底料1.1 为什么STP练习题这么常见STP的练习题几乎出现在每张网络技术考卷里原因很直接它考的是协议机制的理解不是背命令。只要给出一张带带宽的拓扑图你就能推导出哪台交换机是根桥、哪些端口转发、哪些端口阻塞。这种题能快速看出一个人是否真的理解二层网络的防环逻辑而不是只会敲配置。所以很多面试和认证都愿意拿它出题。另外STP本身也是排障重灾区。真实网络里环路问题经常一出就是全网广播风暴能把核心交换机CPU直接打满。会做STP题的人看到拓扑图就能预判哪条链路会被阻塞到了现场不至于手忙脚乱。这也是我一直建议大家多做STP练习题的原因。它不只是应付考试还能直接转化成排障直觉。1.2 做题前先记住这套比较顺序STP归根结底就是一件事在整个交换网络里选出一棵无环的树。标准流程分三步第一步选举一个根桥第二步每台非根交换机确定自己的根端口第三步每根网段上确定一个指定端口剩下的端口就阻塞。在做题时判断的优先级是固定的最小根桥ID根桥ID优先级MAC地址优先级数值小的优先优先级相同看MACMAC小的优先。最小根路径开销从某端口到达根桥经过的所有链路cost之和越小越优。最小发送者BID比较收到BPDU的那台交换机的BID。最小发送者端口ID端口ID端口优先级端口号优先级数值小的优先相同则端口号小的优先。这个顺序就像排队买票先比第一项分不出来再到下一项。STP所有端口角色的判断都是在同一优先级下逐级比较出来的。很多人做题做错不是四项记不全而是比较的顺序乱了比如还没比完cost就去比MAC这在后面的例题里特别容易踩。1.3 路径开销和端口ID的常见取值做题时最常用到的端口路径开销不同带宽对应不同数值。按IEEE 802.1D的标准10Mbps端口cost是100100Mbps端口cost是191Gbps端口cost是410Gbps端口cost是2。有些厂商采用私有算法但通用教材和绝大多数考题里默认用这套标准值。端口ID则是由端口优先级默认128和端口号组成。比如第1个端口的ID写成128.1第2个端口是128.2。如果在比较完前三项仍然平局才轮到比较这个值。实际考试中BID和cost的较量出现最多端口ID的比较一般出现在同一条链路两端互连的极端场景比如两台交换机之间跑了两根线但没有做链路聚合这时候就需要用端口ID来打破平局。底层逻辑要记住后面有专门题目演示。提示别小看cost的计算。很多人做错不是原理不懂而是累加时漏了一段或者看错端口速率。2. 经典STP练习题根桥选举与BID比较2.1 题目一三台交换机的根桥之争先来一道最基础的根桥选举题。网络里有三台交换机分别是SWA、SWB、SWC它们的配置信息如下SWA优先级默认32768MAC地址为 00-aa-00-aa-00-01SWB优先级默认32768MAC地址为 00-bb-00-bb-00-02SWC优先级设置为4096MAC地址为 00-cc-00-cc-00-03请问在这三台交换机构成的网络中根桥是哪一台答案SWC。解析根桥选举只比较BIDBID由“优先级MAC地址”组成。优先级数值小的优先SWC的优先级是4096远小于SWA和SWB的默认32768所以直接胜出。这里MAC地址根本不需要看因为优先级已经分出胜负。2.2 这道题背后的出题意图很多人一开始会把默认优先级32768记成“优先级数值越大越优先”这是最常见的错误。优先级字段的取值越小优先级越高。32768是默认值4096、8192都是更优的值。如果你把优先级调成0那几乎就是宣布自己要做根桥。这也是为什么在实际网络规划里核心交换机通常会手动设置较小的优先级从设计上就固定根桥位置。另外要注意交换机的BID中MAC地址来自交换机自身不是接口的MAC。考试时会给出一串简化MAC千万不要跟接口MAC混在一起。判断的时候只看BID不要被无关信息干扰。有些题还会把交换机名写成“核心A”“接入B”之类本质上一样别被名字带偏。2.3 题目二优先级相同看MAC差一分错全盘再来一道稍微加一点难度的。四台交换机SWA、SWB、SWC、SWD的优先级全部是默认值32768MAC地址分别为SWA00-00-0c-00-00-01SWB00-00-0c-00-00-02SWC00-00-0c-00-00-03SWD00-00-0c-00-00-04请问哪台是根桥答案SWA。解析优先级全部相同则进入第二级比较MAC地址最小者获胜。按十六进制从左往右比较SWA的MAC最后一位是01在四台里最小所以SWA成为根桥。这类题看起来简单但有些考卷会故意不按顺序列出交换机名比如把SWC放在第一行很多人扫一眼看到优先级相同就随便选结果忽略了MAC排序。我的建议是做题时先把所有BID写成一列优先级相同的就按MAC从小到大排序第一个就是根桥。别心算拓扑一复杂手写比脑算稳得多。3. STP练习题端口角色判定与路径开销计算3.1 做题的万能四步法进入重头戏之前我先给出一套我自己总结的四步法几乎所有端口角色题都能套第一步选根桥。根据BID最小原则确定唯一根桥。第二步算每台非根交换机的根路径开销。所谓某台交换机的根路径开销是指从这台交换机到根桥的所有可能路径中累计链路cost最小的一条路径的开销值。注意是“到根桥”的累计值不是某一段的值。第三步定根端口。每台非根交换机上连接到达根桥最优路径的那个本地端口就是根端口。如果有多个端口的根路径开销相同则继续比较发送者BID、发送者端口ID直到唯一。第四步定指定端口和阻塞端口。在每个网段上根路径开销小的那端是指定端口另一端如果是根端口则保持根端口否则就是阻塞端口。根桥的端口在各自网段上一定是指定端口因为它的根路径开销是0。这套方法可以解决绝大多数STP计算题。下面用具体题目来演示。3.2 题目三一张经典四台交换机拓扑判断所有端口角色看这样一个经典案例。网络中有四台交换机SWA、SWB、SWC、SWD连线关系如下SWA与SWB之间有一条千兆链路cost记为4。SWB与SWC之间有一条千兆链路cost记为4。SWA与SWC之间有一条百兆链路cost记为19。SWC与SWD之间有一条千兆链路cost记为4。SWB与SWD之间有一条百兆链路cost记为19。假设所有端口的优先级都相同链路的端口号不影响比较同时题目明确SWA的BID最小。问题根桥是哪台各非根交换机上的端口分别是什么角色先给完整答案根桥SWA。SWB连接SWA的端口根端口RP。SWB连接SWC的端口指定端口DP。SWB连接SWD的端口指定端口DP。SWC连接SWB的端口根端口RP。SWC连接SWA的端口阻塞端口BP。SWC连接SWD的端口指定端口DP。SWD连接SWC的端口根端口RP。SWD连接SWB的端口阻塞端口BP。下面拆开讲为什么是这个结果。第一步SWA是根桥这个题面已经给了。第二步算三台非根交换机的根路径开销。SWB只有一条路径到根桥就是从SWB直连SWA的链路cost4所以SWB的根路径开销是4。SWC有两条路径到根桥。路径一是直连SWA的百兆链路cost19路径二是SWC到SWB的千兆链路cost4加上SWB到SWA的千兆链路cost4总共8。8小于19所以SWC的根路径开销是8走的是经过SWB的那条路。这里就出现了一个很重要的结论SWC虽然有一根线直连根桥但那个直连端口并不是根端口因为绕行路径的开销更小。SWD也有两条候选路径。路径一是SWD直连SWCcost4然后SWC到根桥的最优根路径开销是8累计12路径二是SWD直连SWBcost19然后SWB到根桥的cost是4累计23。因此SWD的根路径开销是12最优路径经过SWC。第三步定根端口。SWB连接SWA的端口是根端口SWC连接SWB的端口是根端口SWD连接SWC的端口是根端口。第四步定指定端口和阻塞端口。先看SWA参与的两个网段。SWA与SWB之间的网段根桥端SWA的端口是指定端口SWA与SWC之间的网段SWA的端口同样是指定端口即使SWC的直连端口是阻塞也不影响SWA这个端口是指定端口。再看SWB与SWC之间的网段。SWB的根路径开销是4SWC的根路径开销是84更小所以SWB连接SWC的端口是指定端口。SWC连接SWB的端口已经是根端口不变。接着看SWC与SWD之间的网段。SWC的根路径开销是8SWD的根路径开销是128更小所以SWC连接SWD的端口是指定端口SWD连接SWC的端口是根端口。最后看SWB与SWD之间的网段。SWB的根路径开销是4SWD的根路径开销是124更小所以SWB连接SWD的端口是指定端口。SWD连接SWB的端口既不是根端口它的根端口已经在SWC方向也不是指定端口只能被阻塞。这也就是STP防环的体现明明网络里有冗余链路硬生生给你切掉一条换来无环的转发树。这道题堪称STP考试的经典母题很多变形都是在这个拓扑上调整cost或者增加交换机。做熟练之后看到任意一张带cost的图都应该条件反射般按四步法走。3.3 题目四链路成本不对称时直连根桥未必是根端口继续深化。如果我把上一题的拓扑稍微改一下SWA与SWB之间的链路从千兆升级为10Gbpscost变成2其他链路不变。哪台交换机的根端口会发生变化重新算SWC的两条路径直连SWA的cost还是19经过SWB的路径变为 SWC到SWB cost4SWB到SWA cost2总cost6。6仍然小于19所以SWC的根端口依然是连接SWB的端口只是根路径开销从8变成了6。SWD路径经SWC到根SWD到SWC cost4SWC最优根路径开销6累计10经SWB到根SWD到SWB cost19SWB到SWA cost2累计21。所以SWD的根端口依然在SWC方向。如果再把SWA与SWC之间的链路换成千兆cost4同时把SWC到SWB的链路降成百兆cost19SWB到SWA保持千兆cost4那么SWC直连SWA的路径cost4绕经SWB的路径cost19423此时4小于23SWC的根端口就会变成直连SWA的那个端口原本连接SWB的端口则会被阻塞。这个题想说明的道理很简单根端口的选举是“全路径累计比较”不是看某一段链路好坏。实际项目里为了冗余会故意加一条高速链路到核心但如果中间链路带宽不匹配STP仍可能选择绕行的低速路径这时候就需要手动调整cost或端口优先级来干预。3.4 题目五同一对交换机之间两条链路怎么打破平局前面几道题都是用cost和BID分胜负但如果两台交换机之间真的拉了两根线而且两端BID一样、路径开销也一样STP靠什么决定阻塞哪一根看这个例子SWA和SWB之间连了两条千兆以太网链路SWA是根桥两台交换机之间没有做链路聚合。两条链路的cost都是4从SWB的角度看两个端口到根桥的根路径开销都是4完全打平。这时怎么选根端口答案比较发送者的端口ID也就是SWA端口的ID。虽然题目通常不给交换机内部端口号但必然给出类似“SWA的g1/0/1和g1/0/2”这样的信息或者提示哪个端口号更小。SWA作为根桥它的两个端口都会向SWB发送BPDUBPDU里携带发送者端口ID。SWB收到两份BPDU两份的根桥ID相同、根路径开销相同、发送者BID也相同都是SWA最后只能比发送者端口ID端口ID小的那份BPDU对应的链路会被选为根端口另一条链路上的端口进入阻塞状态。这个例子在真实网络里非常实用。如果两台交换机之间有多条链路又不做链路聚合STP会自动阻塞其中一条造成带宽浪费而且端口状态变化还会引起流量抖动。所以现场遇到两台交换机之间明明拉了两根线却只有一根在转发先查是不是没做链路聚合再查STP角色是不是被端口ID切断了。3.5 指定端口判断中的“网段”视角很多人在指定端口上容易犯迷糊尤其是“根桥的端口一定是指定端口”这个结论。根桥上的端口一定是指定端口吗是的在端口连接的网段上根桥的根路径开销始终是0因为它自己就是根任何其他交换机在该网段上的根路径开销都大于0所以根桥端口必胜。因此只要看到该网段另一端是根桥根桥那端的端口就确定为指定端口另一端要么是根端口要么是阻塞端口。需要特别注意的是指定端口是每个“网段”一个而不是每台交换机一个。根端口是“每台非根交换机”一个。一个网络里根端口数量等于非根交换机数量指定端口数量等于网段数量。做综合题时可以用这个数量关系来检查答案是否漏判。比如题目三里有三台非根交换机根端口一定是3个网段一共有5个指定端口一定是5个。如果自己数出来对不上说明某个网段的指定端口判错了。4. STP进阶练习题故障收敛、RSTP与保护机制4.1 题目六根桥宕机后网络多久能恢复接着前面的拓扑继续问如果根桥SWA出现故障整体宕机网络里会发生什么解析根桥故障后其他交换机收不到来自SWA的BPDU拓扑变化计时器开始倒计时。在传统STP中如果经过Max Age默认20秒后仍未收到新的BPDU非根交换机认为根桥丢失会重新发起根桥选举。此时SWB、SWC、SWD之间会通过BPDU重新选出新的根桥之后重新计算根端口、指定端口和阻塞端口。整个收敛过程通常需要30秒到50秒包括端口状态从阻塞切换到侦听、学习再到转发的时间。这个题目不是让你精确计算到毫秒而是考察你是否知道STP收敛慢这个痛点。所以后续才出现RSTP快速生成树协议通过端口角色和边缘端口等机制把收敛时间压缩到秒级甚至毫秒级。做题时如果题目说“运行RSTP”那么故障收敛时间就不能按传统的30到50秒来回答要按RSTP的快速收敛机制分析。4.2 题目七想让某台核心交换机成为根桥该怎么做项目里常遇到这样的情况两台核心交换机连着下面一堆接入交换机但根桥被一台接入交换机抢走了导致所有流量都绕远路。问怎么配置让核心稳定成为根桥做法在核心交换机上把生成树优先级调低比如设置为4096而接入层设备保持默认32768。不同厂商的命令有差异但配置思路是一致的。更极端的做法是直接设置优先级为0让网络里没有设备能抢走它的根桥地位。同时可以在备核心上设置次优的优先级比如8192保证主核心故障后备核心能快速接管。同时在接入交换机面向终端的端口上如果确认下边只接主机不会形成环路可以配置为边缘端口。边缘端口不参与生成树计算从开机到转发状态几乎不等待既避免终端启动时被STP阻塞也减少BPDU处理负担。如果一个端口既不像边缘端口又收到BPDU就要检查是不是有非法交换机接入防止环路风险。4.3 题目八RSTP相比传统STP改进的核心有哪些最后一道偏理论RSTP相比传统STP改进核心有哪些用STP做题思路怎么迁移RSTP最大的改进是端口角色更细。除了根端口、指定端口、阻塞端口还增加了替代端口和备份端口。替代端口是对根端口的备份备份端口是对指定端口的备份。这些额外角色让拓扑变化后可以快速切换而不需要像传统STP那样从阻塞状态一步一步经历侦听、学习、转发。另一个关键改进是提议/同意机制。在点对点链路上新接上的交换机端口可以主动向外发送提议BPDU对方如果同意就立刻把端口置为转发状态不用等定时器超时。所以RSTP做题时同样先选根桥、选根端口、选指定端口但收敛速度的答案和STP不一样。很多考卷会问“RSTP中某端口从阻塞到转发需要多久”如果链路类型是点对点且配置正确通常可以做到秒级收敛甚至可以认为是立即切换。做题时还有一个细节传统STP里的“阻塞”在RSTP中被细分为替代端口和备份端口。替代端口在角色上处于丢弃状态但它持有备份信息一旦对应根端口失效可以立刻成为根端口。所以在RSTP的题目里如果问“替代端口失效后哪个端口顶上”答案往往就是那个被替代的根端口或者另一个替代端口而不再需要重新计算整棵生成树。注意考试里如果题目没明确说运行的是STP还是RSTP默认按传统STP算收敛时间如果说RSTP就要按快速收敛机制来分析。4.4 题目九边缘端口收到BPDU会怎样这是一道很常见的保护机制题。网络规划时接入交换机连接PC的端口被设置为边缘端口结果有一天这台端口突然收到一个BPDU会发生什么如果设备开启了BPDU保护功能这个端口会立即被禁用进入错误禁用状态从根源上防止非法交换机接入后形成环路。没有开启BPDU保护时端口会退出边缘端口状态开始参与STP计算同时可能因为广播帧冲击而影响网络稳定。出题人喜欢在这里设置陷阱问“边缘端口收到BPDU后端口会进入什么角色”很多人答“阻塞端口”其实如果配置了BPDU保护就不会进入任何STP计算角色而是直接进入禁用状态并产生告警。这道题提醒我们边缘端口不是一个万能的优化开关它只适用于确实只连接终端的端口。一旦下边可能接入其他交换机就必须配合BPDU保护或者其他接入安全手段。4.5 题目十根保护是干什么用的根保护在STP里容易被忽略但现场很有用。假设核心交换机SWA设置了根桥优先级结果某天一台低优先级其实是数值更高、优先级更低的交换机上线它发出的BPDU声称自己是根SWA收到后如果不设防就会被迫让出根桥位置全网角色跟着乱。根保护的作用是在指定端口上启用后如果这个端口收到比当前根桥更优的BPDU交换机不会接受这个新根桥而是把这个端口置为“根一致”状态也就是阻塞。等这个更优BPDU消失后端口再恢复转发。这样配置可以防止网络边缘设备意外抢占根桥。做题时看到“某端口收到了更优BPDU但配置了根保护端口状态如何”这类问题直接选阻塞即可。这和BPDU保护的区别在于BPDU保护针对的是边缘端口根保护针对的是指定端口。两个都是保护机制但保护对象和反应动作完全不同这是考试常见的混淆点。5. 常见做题失误与实操心法5.1 最常见的三种丢分姿势我做题和带人复盘时发现STP题目丢分主要集中在三个地方。第一个是把端口角色和网段搞混。根端口是交换机上的一个端口指定端口是网段上的一个端口。判断指定端口时要比较的是“这个网段两端交换机各自的根路径开销”而不是比较两个端口自己收到的cost。很多人看SWC和SWD之间链路时会忘记SWC的根路径开销已经是8而只算这一段的4于是把指定端口判到SWD导致后面端口角色全错。第二个是cost累加漏链路。比如上面题目里SWD到根桥有两条候选路径一条经过SWC一条经过SWB。有人只算SWD到SWC的4再加SWC到SWA直连的19得到23却忽略了SWC还可以通过SWB转接实际最优是12。所以做题前把每条候选路径写到纸上从根桥开始往外逐段加比盯着拓扑硬算靠谱。第三个是不看BID对比。当两台交换机的根路径开销相同的时候接下来要比发送者BID不是比谁离根桥“看起来近”。四台以上交换机的拓扑里经常出现两条路径cost完全相同的情况这时候必须回到交换机BID比较。题目里如果不给交换机的MAC往往会暗示“BID各不相同”或者“SWA优先级最低”你就要按优先级顺序直接排。5.2 实操排查STP时的检查顺序说回真实网络。拿一台交换机做STP排障时我不会上来就翻配置而是先按“看状态、看角色、看邻居、看统计”的顺序查。先用命令查看端口状态快速扫出哪些端口处于阻塞状态哪些在设计上根本不该阻塞。再查端口角色确认根端口和指定端口是不是落在预期的链路上。接着查看BPDU信息看根桥ID、根路径开销、发送者桥ID这些关键字段跟设计文档比对。最后再看有没有BPDU异常增长的端口比如不该收到BPDU的口子不断收到大量BPDU就要警惕环路或者非法设备接入。有一次在现场用户说两台接入交换机之间互Ping时通时不通我按这个顺序查发现根桥跑到了某台临时接进来的设备上优先级被人改成了0导致整个二层环境计算出来的拓扑跟规划完全不一样。把临时设备切走、重新固定核心优先级后角色全部恢复网络马上稳定。这种问题靠背题解决不了但做题时养成的“按优先级、cost、BID逐步淘汰”的习惯却能在排障时帮你快速锁定异常点。5.3 用模拟器把练习题变成实验题如果只是刷题效果有限。我的经验是做完题后在模拟器里把拓扑搭出来把练习题里的BID和cost原样配一遍然后看端口状态和题目的答案是否一致。如果有不一致多半是对角色判断的哪一步理解偏了。个人建议至少搭三个场景第一个是三台交换机全互联验证根桥选举和阻塞端口第二个是四台交换机双冗余链路验证指定端口和cost累计第三个是手动修改某台交换机优先级和端口cost验证行为变化。模拟器里每改一次参数就记录一次端口角色和状态变化坚持做十次左右STP的做题目感就出来了。不要只在纸上画图真正在设备上看到“这个端口为什么是阻塞”之后你记这个东西会比背十遍公式都牢。5.4 一道容易翻车的综合变体题最后加一道综合题收尾。拓扑还是题目三的四台交换机但现在SWA与SWC之间的链路从百兆升级为千兆cost变成4SWB与SWD之间的链路从百兆升级为千兆cost变成4其余链路不变。重新判断SWC和SWD上各端口角色。先算根路径开销。SWA是根桥。SWB直连SWA根路径开销4。SWC的候选路径直连SWA cost4经过SWB的路径cost448。此时4小于8所以SWC的根端口变成连接SWA的那个端口根路径开销4。SWD的候选路径经过SWC到根SWD到SWC cost4SWC到根开销4总共8经过SWB到根SWD到SWB cost4SWB到根开销4总共8。两条路径的累计开销都是8打平了。这时候怎么办继续比较发送者BID。SWC和SWD两条路径的发送者分别是SWC和SWB哪个交换机的BID更小SWD的根端口就选哪个方向。如果题目没有给两台交换机的MAC就说“SWC的BID更小”那么SWD连接SWC的端口是根端口连接SWB的端口只能是阻塞端口。如果题目反过来给“SWB的BID更小”那SWD连接SWB的端口才是根端口连接SWC的端口被阻塞。这道变体题的价值在于它把路径开销、BID、端口角色三个考点全部串在一起而且最后的答案取决于一个很容易被忽略的条件平局时比BID。很多人在算到两条路径都是8之后就开始猜或者干脆说“两个都是根端口”那就错了。根端口一台交换机只有一个绝不可能同时选两个。遇到这种题冷静往下走第四级比较答案自然就出来了。最后说一句我的体会STP练习题看起来是计算题实际上考的是你对优先级、cost、BID这三把尺子的熟练度。把每一道错题都还原成“我是在哪一步比较错了”比多刷十道重复题都有用。希望这几道举例子能给准备考试或正在排障的你一点启发。