ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

STP/RSTP/MSTP与VLAN二层技术:从原理到排障

STP/RSTP/MSTP与VLAN二层技术:从原理到排障 简介《网工面试超级宝典》是一份面向网络工程师求职者的面试专项资料聚焦二层交换技术中的STP与RSTP从STP出现背景、基本概念、BPDU报文格式到拓扑计算过程均有系统梳理也覆盖RSTP针对STP不足所做的改进。资源包共1个PDF文件大小约16.56MB章节目录清晰内容包括“一个根桥、两种度量、三要素选举、四个比较原则、五种端口状态”等高频考点并配合配置BPDU与TCN BPDU的格式解析、STP算法实现举例以及RSTP拓扑变化处理细节适合离线速查与通勤学习。现已有157人浏览学习可作为面试冲刺的复习提纲也可作为日常处理二层环路、广播风暴等问题的排障参考。书中对端口角色、路径开销和配置消息的选举比较作了结构化提炼能帮助读者把抽象协议转化为面试中可复述的知识点快速建立答题框架。1. 网工面试宝典一份把STP/RSTP讲到能背能答的二层技术手册准备网工面试的人十个里有八个在STP这儿栽过跟头。面试官从「说说根桥怎么选」一路追到「RSTP和STP的BPDU有什么不同」你的答案一旦停在「选举根桥、阻塞冗余端口」这种层面基本就告别这场技术面了。《网工面试超级宝典.pdf》这份资源把二层技术按面试考点拆得很细光STP一小节就铺开了背景、基本概念、报文格式、拓扑计算、RSTP改进、配置示例六层后面还有MSTP整章和VLAN的十来个章节。它解决的是两类诉求一类是准备网工岗面试需要把生成树和VLAN问答练成条件反射一类是刚接手二层网络想快速把协议从「听说过」补到「能排障」。这份手册更像一本可查的速查手册适合翻完直接进考场也适合值班排障时现查。2. STP/RSTP核心考点五态三选四比与BPDU交互的应试拆解2.1 一个根桥、两种度量先搞清STP在选什么STP要解决的问题是「二层环路怎么破」。以太网天然支持多路径但多路径意味着广播帧会绕圈繁衍MAC地址表会被来回刷新。STP的思路很朴素把一张有环的物理拓扑修剪成一棵无环的逻辑树树的中心就是根桥从根发散出去的每条路径就是通信路径其余端口全部阻塞。理解这一点后面所有选举规则都是在回答「谁来当根、哪些口能通」。全网络只有一颗根桥ID最小的交换机获胜。桥ID由「优先级MAC地址」拼接而成华为设备默认优先级是32768所以实际选中的往往是MAC值最小的那台。面试有个送分题大家都32768怎么办答案就是比MAC地址十六进制数值小的当选。这个细节宝典里写在「三要素选举」里不做功课的人很容易在这漏分。两种度量指的是根路径开销Root Path Cost和端口IDPort ID。根路径开销是这台交换机到根桥的累计代价值带宽越大的链路开销越小10M是2000100M是2001000M是20RSTP和MSTP都沿用这套数值。端口ID用于「同一台交换机上两条链路都能到根」时做最后裁决。Cost管路径贵不贵Port ID管谁是最终赢家两者解决的问题完全不同。网络里要选三样东西根桥、根端口、指定端口。选举依据是BPDU里携带的一组向量根ID、累计根路径开销、桥ID、端口ID。比较时按这四个字段逐级往下比先看谁的根ID更优相同就比谁到根的Cost更小再相同比桥ID最后才轮到端口ID。这就是宝典里的「四个比较原则」每一步筛下去每个端口得出最终角色根端口是这台交换机上离根最近的端口指定端口是每条链路上离根最近的那一端其余的一律阻塞。提示记这四个比较原则有个捷径——「先全局后局部」。根ID管全局选根Cost管全局路径桥ID和端口ID才是在局部链路里做裁决。2.2 五种端口状态状态机是面试高频题STP定义了五种端口状态面试官特别喜欢在纸上画一个交换网络让你标出每个端口处于什么状态。背诵时牢牢抓住「收BPDU、发BPDU、学MAC、转数据」这四个行为维度就够了。状态收BPDU发BPDU学习MAC转发数据Disabled否否否否Blocking是否否否Listening是是否否Learning是是是否Forwarding是是是是接口UP后端口会从Blocking进入Listening这个迁移由Max Age定时器控制默认20秒。随后Listening和Learning各占一个Forward Delay默认15秒。所以STP在最坏情况下收敛需要30到50秒这也是面试里「STP为什么慢」的标准答案不是算法笨是它靠定时器等出来的。面试追问一般集中在两个地方。第一为什么要有Listening因为拓扑未知端口必须先听BPDU确认谁是根、自己该扮演什么角色才能进入Learning。第二为什么Learning也要15秒因为端口要在不转发数据的情况下静默学习MAC地址不能一上来就转发否则刚刚建立的地址表会被环路上的重复帧冲坏。这两个「为什么」答得出来五态的分数才拿得稳。2.3 BPDU报文格式配置BPDU和TCN BPDU的差别BPDU是STP的语言报文格式是宝典单列一节的考点。配置BPDU字段较多协议ID、协议版本号、BPDU类型、Flags标志位接着是Root Identifier根桥ID、Root Path Cost、Bridge Identifier本桥ID、Port Identifier发送端口ID后面跟Message Age、Max Age、Hello Time、Forward Delay。这一串字段就是前面选举比较向量的直接来源所以「报文格式」不是死记硬背而是把选举逻辑反过来看一遍。TCN BPDU则精简得多只有协议ID、版本号、BPDU类型三个字段共4个字节。它在拓扑变化时由检测到变化的端口发出一路送到根桥根桥再通过配置BPDU里的TC位置位向全网通告「去刷新MAC地址表」。面试有个经典陷阱TCN BPDU是发给根桥的不是发给全网而TC标志位才是全网通知机制两个概念经常被混在一起能分清楚的人不多。维度配置BPDUTCN BPDU触发条件周期性发送根桥每Hello Time发一次检测到拓扑变化时触发字节长度35字节左右4字节传输方向从根桥向全网扩散从变化端口向根桥收敛核心作用选举根桥、确定端口角色通知根桥拓扑已变化Message Age消息年龄是个容易忽略的字段。根桥发出来的配置BPDU里Message Age为0每经过一台交换机加1超过Max Age会被丢弃端口认为链路失效并开始重新收敛。这就是为什么STP对网络直径敏感跳数太多BPDU还没走完全网就先超时作废了。2.4 RSTP改进点与一份可直接抄的配置RSTP对STP的改进集中在四点端口角色扩展出Alternate和Backup、端口状态精简为Discarding/Learning/Forwarding三种、引入边缘端口概念、用P/A机制替代定时器等待。面试如果只让说一条必须答P/A机制上游端口发Proposal下游端口回应Agreement两跳之间的链路立刻进入Forwarding不再死等Forward Delay这就是RSTP收敛能到秒级的原因。边缘端口也是RSTP引入的概念。接PC、服务器这种不可能成环的端口声明为边缘端口后接口UP就直接进入Forwarding完全不参与生成树计算。加上BPDU保护接口一旦收到BPDU就进入error-down状态能有效防止有人私接小交换机把整张树重构一遍。这两个功能在实际配置里几乎是绑定的。HUAWEI system-view [HUAWEI] sysname Core-SW [Core-SW] stp mode rstp [Core-SW] stp root primary [Core-SW] stp bridge-diameter 3 [Core-SW] interface GigabitEthernet0/0/1 [Core-SW-GigabitEthernet0/0/1] stp edged-port enable [Core-SW-GigabitEthernet0/0/1] stp bpdu-protection第一段四条命令是核心交换机上的生成树模式与根桥设定。stp mode rstp把协议切到RSTPstp root primary是本交换机优先成为根桥等价于把优先级强设成0stp bridge-diameter 3告诉协议全网直径只有3跳Message Age和Forward Delay会相应收紧收敛更快。第二段是针对接终端的端口edged-port enable让端口一旦UP就进Forwardingbpdu-protection则负责兜底只要这端口收到任何BPDU立即进error-down防止误接交换机造成环路。配置完用display stp brief看全局端口角色和状态是最快的验证方式。根端口和指定端口都应该是FORWARDING其余冗余端口是DISCARDING如果接入终端的口处在非转发状态优先检查是不是漏配了边缘端口属性。3. MSTP与组合组网实例映射、多进程收敛与VRRP联动配置3.1 单生成树的局限与MSTP的解决思路RSTP解决了收敛速度但没有解决「一棵树管所有VLAN」的尴尬。假设你有两台核心、两台接入业务VLAN 10想走上行AVLAN 20想走上行B做负载分担RSTP只会计算一棵树所有VLAN共用同一份路径决策结果必然是一条上行链路被阻塞带宽闲置一半。这个痛点宝典里用「MSTP出现的背景」专门讲了一节。MSTP的答案是把VLAN映射到实例MSTI。实例是一棵独立计算、独立收敛的生成树。你可以把VLAN 10和20映射进实例1VLAN 30和40映射进实例2实例1的根放在核心A实例2的根放在核心B两条上行链路就能同时转发不同VLAN的流量互为备份也做负载分担。宝典里「配置MSTP功能示例」一节核心就是这组思路的完整落地。3.2 MST域、CIST与端口角色的考点MSTP引入了「域」的概念。一个MST域由三要素唯一确定域名region-name、修订号revision-level、VLAN与实例的映射关系。三要素完全一致的一组交换机才可能在同一个域内协同计算。面试被问「MSTP比RSTP多了什么」除了实例还要答上域、CIST/IST/CST和MSTP报文是RSTP报文的扩展。域内各实例用IST内部生成树沟通域间用CST公共生成树连接。整张网络从CIST视角看成完整的一棵树CST跨域连接IST在域内延伸CIST是两者叠加后的全局生成树SST则指整个网络只有一个交换机支持MSTP的特殊形态。MSTP的BPDU里除了原有字段还要携带实例0的配置信息和各MSTI的配置信息这就是MSTP报文比RSTP复杂的原因。端口角色上除了根端口、指定端口、Alternate、BackupMSTP还增加了Master端口概念它是域间连接使用的端口角色。面试如果问MSTP的端口角色把Master点出来比只答RSTP四种角色高一个层次。3.3 MSTP多进程一个不那么热的考点MSTP多进程是华为的特色扩展宝典里单独写了「产生背景、目的、原理」三块。它的背景是一台交换机可能同时接入多个不同的二层域左边接两个MST域右边接一个老的STP域单进程无法同时服务三套不同的算法和结构。多进程的做法是把端口划进多个进程每个进程独立运行自己的生成树实例进程之间不交换BPDU收敛互不干扰。这个知识点出现的频率不算高但面试官用它试探你的协议理解深度很有效。核心一句话「多进程把物理上混杂的二层环境隔离成多个独立计算的逻辑域」按这个逻辑去理解配置上不过是给进程绑定不同的端口和实例。3.4 MSTPVRRP组合组网配置示例实际网络里MSTP几乎总是和VRRP结对出场MSTP管二层路径冗余与负载分担VRRP管三层网关冗余。双核心加双接入是最经典的组合形态配置逻辑分三步走。第一步定角色核心A是实例1的根、实例2的备根同时是VLAN 10的VRRP主设备核心B是实例2的根、实例1的备根是VLAN 20的VRRP主设备。第二步配MSTP域第三步入VRRP。以核心A为例CoreA system-view [CoreA] stp region-configuration [CoreA-mst-region] region-name LAB-DEMO [CoreA-mst-region] revision-level 1 [CoreA-mst-region] instance 1 vlan 10 20 [CoreA-mst-region] instance 2 vlan 30 40 [CoreA-mst-region] active region-configuration [CoreA] stp instance 1 root primary [CoreA] stp instance 2 root secondary [CoreA] interface Vlanif10 [CoreA-Vlanif10] vrrp vrid 10 virtual-ip 192.168.10.254 [CoreA-Vlanif10] vrrp vrid 10 priority 120 [CoreA-Vlanif10] vrrp vrid 10 track interface GigabitEthernet0/0/2 reduced 40region-name、revision-level、instance vlan三项定义域身份全网必须一致active region-configuration是激活命令很多人漏了这条导致配置完全没生效。stp instance 1 root primary把实例1的根指定为本机实例2则设成备根让两台核心在不同实例里各当各的根。VRRP部分vrid 10的虚拟IP是网关地址priority 120让它成为主设备track interface监控上行物理口口断了优先级自动降40网关立刻切到核心B。核心B的配置方向正好相反stp instance 2 root primary、stp instance 1 root secondaryVRRP里vrid 11优先级调低。完成后用两条命令验证[CoreA] display stp instance 1 brief [CoreA] display stp instance 2 briefdisplay stp instance 1 brief看实例1里各端口角色核心A的上联口应该是根端口或指定端口FORWARDING实例2里同一端口则应该是DISCARDING说明负载分担已经生效。4. VLAN家族考点从帧格式到Aggregation、Mapping与Voice VLAN4.1 802.1Q帧格式与接口类型VLAN的本质是在二层帧里插入Tag。802.1Q的Tag字段共4字节TPID固定0x8100PRI占3位优先级CFI/DEI占1位VID占12位所以VLAN最多4094个可用编号0和4095保留。面试常问「一台交换机最多建多少个VLAN」标准答案是4094华为设备VLAN范围是1到40944095保留给特殊用途宝典里隐含了这个细节。接口类型的区分是VLAN部分的基础题。Access口一个PVID收帧打Tag出帧剥Tag基本只接终端Trunk口收帧时对比允许列表出帧时保留Tag专门接交换机Hybrid是华为私有玩法可以指定哪些VLAN带Tag转发、哪些剥Tag转发一个口当两个口用。华为交换机接口默认就是Hybrid这是新手最容易蒙的地方。接口类型入方向处理出方向处理典型接入对象Access打上PVID的Tag剥离Tag终端、服务器Trunk允许列表内带Tag转发保留Tag转发交换机之间Hybrid按Tag/Untagged策略处理按Tag/Untagged策略处理灵活接入场景PVID是「缺省VLAN」的意思接口收到不带Tag的帧时默认归入PVID对应的VLAN。配置时最常见的错误就是PVID和放通列表不一致导致帧要么带错Tag要么被丢这个问题一直延续到第5章的排错场景。4.2 VLAN间通信单臂路由、VLANIF与网关冗余纯二层VLAN是隔离的要通信必须过三层。三种常见方案各有适用场景单臂路由是一个路由器物理口划多个子接口子接口上用dot1q termination vid匹配对应VLAN的Tag适合小规模、低成本的出口场景VLANIF是交换机上直接给VLAN建三层接口VLAN内终端把网关指向VLANIF的IP适合汇聚与核心交换机VRRP则是两台核心共享一个虚拟IP做网关适合对可用性有要求的园区网络。方案网关位置扩展性冗余能力单臂路由路由器子接口差受路由器接口数限制无VLANIF交换机三层接口好一个VLAN一个接口可配合VRRPVRRP虚拟IP双机共享好强秒级切换面试追问通常是「VLANIF能不能替代单臂路由」。答案是可以但前提是交换机支持三层转发纯二层交换机上没有VLANIF这个接口概念这时只能靠单臂路由或外部路由器。4.3 容易被问住的VLAN子功能Aggregation、Mapping、MUX、Damping、Switch、VoiceVLAN子功能是宝典的「隐藏菜单」每一项都对应一个具体网络困境VLAN Aggregation解决的是IP地址浪费。多个sub-VLAN共用一个super-VLAN的VLANIF网段sub-VLAN之间二层隔离三层互通靠super-VLAN上的ARP代理。面试场景IP地址规划紧张怎么办答VLAN Aggregation比答「子网划分」更对题。VLAN Mapping解决的是VLAN重规划。它有三种方式一对一、一对多、多对一。一对一用在两个网络VLAN编号冲突时改Tag一对多用在QinQ场景里把外城VLAN映射成多个内层VLAN。面试题常给一个「两个园区VLAN编号不同要对接」的场景答案就是Mapping。VLAN Damping是防抖机制。某个VLAN的端口反复UP/DOWN时Damping会做抑制等状态稳定后再向上层通告避免MAC地址表和路由表被高频刷新。这个功能不常单独面试但排障时会用到属于「知道就比别人深一层」的考点。MUX VLAN是一个主VLAN带两种从VLANGroup VLAN内成员可以互通、也能和主VLAN互访Isolate VLAN内成员互相隔离只能和主VLAN互访。典型场景是小区宽带所有用户能看到网关用户之间互不可访问组播业务单独分组。这个功能把传统VLAN隔离从「按端口」细化到「按组」理解上要抓住Principal、Group、Isolate三种角色。VLAN Switch是华为的QinQ辅助功能。stack-vlan把多个用户VLAN叠加映射到一个堆叠VLANswitch-vlan则用于替换内层VLAN标签常在城域网里做VLAN透传和收敛。宝典里把这两个命令单独列出来配置时注意区分一个处理外层的叠加一个处理内层的替换。Voice VLAN是给语音终端单独划VLAN并做优先调度。它的关键在OUI地址语音设备厂商的MAC前缀匹配到OUI的设备才能进入Voice VLAN。不同厂商的话机要用不同OUI或手动配否则话机可能被分到数据VLAN里去。注意MUX VLAN和Voice VLAN都是「同一个物理口上再细分」的逻辑配置前先确认端口是Hybrid类型否则放通策略容易冲突。5. 实操避坑根桥抢占、边缘端口与MSTP映射错乱的五个翻车现场5.1 新接入一台交换机全网断了两分钟现象上线一台新交换机后网络突然闪断查看display stp发现根桥已经变了全网重新收敛。原因新交换机也是默认优先级32768但MAC地址更小一上线就把原根桥抢走了。解决核心上用stp root primary固定根桥优先级会降到0接入交换机统一调高到4096以上更稳妥的做法是给核心的根端口加stp root-protection防止更优的BPDU从下联方向进来抢根。这个坑的根源是把「默认也能跑」当成了「默认也安全」。5.2 开了边缘端口私接交换机后还是被打成error-down现象接入端口明明配了stp edged-port enable接了一台小交换机后端口直接进入error-down。原因edged-port只决定初始状态直接转发没有防BPDU的能力收到BPDU后交换机会认为这个口不再是边缘端口退化成普通端口重新参与生成树计算。解决边缘端口必须配合bpdu-protection收到BPDU直接error-down从物理上掐断私接交换机的环路可能。我一般还会加一条自动恢复配置让errordown端口在定时器到了之后自动拉起。5.3 MSTP负载分担怎么都不生效流量全挤一条链路现象明明配了instance 1 vlan 10 20、instance 2 vlan 30 40但display stp instance只看到一棵树两条上行链路一条转发一条阻塞。原因全网设备的region-name、revision-level、VLAN实例映射三项配置不完全一致哪怕域名只差一个字母都会被当成不同域另一个高频疏忽是改完region配置后忘了执行active region-configuration配置根本没下发进通信模块。解决逐台核对display stp region-configuration确认三要素完全一致并且养成「改完即active」的肌肉记忆。遇到这种问题别急着抓包先看域配置。5.4 RSTP下边缘端口插拔还是看到全网TC风暴现象接入端口已经配了edged-port但终端一插拔汇聚交换机上还是疯狂刷新MAC表display stp statistics里的TC计数不断上涨。原因边缘端口属性只在接口UP时生效如果接口下被其他配置覆盖、或端口上收到过BPDU导致边缘属性被取消插拔就会触发TCN让全网刷新MAC。解决用display stp interface GigabitEthernet0/0/1确认端口处于Edge状态再检查端口下有没有被重复下发策略RSTP的TC传播比STP积极任何非边缘端口进Forwarding都会发TC所以接入层每个端口都得逐个确认边缘属性。5.5 VLANIF接口配置完好终端就是ping不通网关现象VLANIF 10已经配了IP状态显示UP主机也在VLAN 10里但ping网关不通。原因最常翻车的是物理口没放通VLAN或接口被shutdownVLANIF的UP只是逻辑UP不代表物理链路可达另一种是super-VLAN场景里sub-VLAN的三层转发依赖super-VLAN虚拟接口上的ARP代理代理没开sub-VLAN之间的终端就不能互访。解决先display vlan 10看端口成员是否齐全再display interface Vlanif10确认物理状态super-VLAN场景检查arp-proxy enable是否配置在VLANIF接口上。这种问题八成不是协议玄学而是成员端口和代理开关这种最基础的地方。6. 验证与面试话术三步法把协议细节变成能打分的答案6.1 在模拟器里验证收敛与角色手头有eNSP或HCL的话三台交换机搭一个三角形拓扑把所有互联口敲成Trunk观察STP会把哪条链路阻塞。验证命令就两条SW display stp brief SW display stp interface GigabitEthernet0/0/1display stp brief看全局端口角色和状态display stp interface看指定端口的BPDU收发计数和端口角色变化次数。把其中一台交换机切到RSTP再敲同样的命令你会发现收敛时间从30秒级别落到秒级这就是P/A机制在实际设备上的体现。这套验证方式也适用于MSTPdisplay stp instance 1 brief对比不同实例里的端口角色即可。6.2 面试话术的三段式压缩宝典最大的价值不是逐字背诵而是把每一章压缩成能打分的答案。我习惯用「一句话结论关键参数一个反例」的三段式比如面试官问「RSTP为什么比STP快」先说结论——RSTP用P/A机制替代定时器等待再补参数——STP靠Forward Delay 15秒硬等RSTP握手后秒级转发最后给反例——如果链路是共享链路或对端还是STP设备P/A会退化RSTP退回STP的计时方式。这套结构在追问下不容易崩因为每个回答都带了你还能接住的下一个考点。从那以后我每次准备面试或带新人培训都强制自己把宝典里的一章压成三段式话术先过一遍「能不能一句话说清」再过一遍「参数记没记牢」最后追问自己「反例是什么」。这三关都能过这个知识点才算真正长在你身上了。希望帮到你。本文还有配套的精品资源点击获取
返回列表