资讯动态

三层架构冗余配置实战:STP、VRRP与链路聚合全解析

发布时间:2026/10/20 15:45:04 来源:尧图企业网站定制
我们直接进入正题。很多朋友学网络基础配置都会但一提到“冗余”就有点发怵总觉得要上什么高端设备、高端协议。其实三层架构的冗余配置说到底就是两件事让数据有第二条路可走以及让设备知道什么时候该换路走。这篇文章就围绕一个最经典的“核心-汇聚-接入”三层实验拓扑把二层冗余、网关冗余、三层路径冗余掰开揉碎讲清楚。文章适合正在准备网络实验、刚入行的网工以及想系统梳理冗余知识的朋友。1. 整体设计思路三层架构为什么需要冗余以及冗余到底加在哪里1.1 三层架构的基本逻辑核心、汇聚、接入各司其职三层架构不是网络工程师拍脑袋定的规矩而是根据流量模型、故障域划分和管理便利性自然演化出来的结果。接入层负责给终端设备提供接入端口汇聚层负责汇聚接入层的流量并实施策略核心层负责高速转发连接整个网络的核心区域。在这个模型里每一层承担的角色不同对冗余的需求也不同。接入层交换机挂了影响的是那一片终端用户汇聚层设备出问题影响的就是整个接入汇聚域核心层如果宕机那就是全网大面积故障。所以冗余配置的核心思路就是核心层必须双机汇聚层必须双机接入层看需求但链路必须冗余。1.2 单点故障的经典场景一根线、一台设备引发的全网瘫痪我先举个例子很多人应该经历过类似的场景。某个小园区网络核心就一台三层交换机汇聚就一台接入层一堆傻瓜交换机。某天核心交换机电源模块老化设备重启全网中断半小时。这种情况就是典型的单点故障。再比如汇聚交换机和核心之间只跑了一根千兆光纤光纤被施工挖断整个汇聚域所有终端全部掉线。这就是链路单点故障。冗余配置要解决的就是这两类问题设备冗余和链路冗余。设备冗余靠双机部署链路冗余靠多条物理路径加冗余协议来实现。1.3 核心设计决策冗余方案怎么选STP、VRRP、路由协议怎么配合我做实验时最深的体会是冗余不是一个孤立的配置而是从接入到核心一整套的联动机制。最经典的组合是接入层到汇聚层双链路上联跑链路聚合Eth-Trunk增加带宽同时提供链路冗余。汇聚层双机跑VRRP虚拟路由冗余协议为终端提供一个虚拟网关主设备挂了备份设备无缝接管。汇聚层内部与接入层相连的二层域跑STP生成树协议防止环路同时提供备份链路。汇聚层到核心层双链路分别上联两台核心跑路由协议或浮动静态路由实现三层路径冗余。这里面的核心难点在于二层冗余STP和三层冗余VRRP、路由是有联动的。STP阻塞了某个端口VRRP的主备状态、路由的下一跳都在跟着变化。如果只配置了STP而没配置VRRP汇聚设备之间互相备份链路是二层的终端网关会因切换路径而中断只配置VRRP但没配置STP二层环路可能直接打环。所以讲三层架构冗余必须把这几层协议作为一个整体来看。2. 二层冗余的落地STP与链路聚合的关键细节2.1 STP的角色选举与根桥摆放为什么根桥必须是汇聚层设备很多人在实验里把STP的根桥设置在核心层结果发现接入层链路总是出现奇怪的现象——明明想走汇聚A的链路流量却莫名绕到汇聚B再绕回核心。原因很简单STP的根桥决定了整个二层拓扑的转发路径根桥必须放在数据流量的汇聚点也就是汇聚层。STP的工作机制是选举根桥、根端口、指定端口和阻塞端口最终生成一棵无环的转发树。根桥是整个生成树的根所有端口的角色都是根据到达根桥的路径开销来决定的。如果把根桥放在核心层汇聚层和接入层之间就必须通过核心来比对路径开销转发的路径可能会不合理。正确的做法是在两台汇聚交换机上显式指定STP优先级让其中一台成为根桥另一台成为备份根桥。这样接入层到汇聚层的两条上行链路一条处于转发状态另一条处于阻塞状态逻辑上清晰故障切换也快。2.2 实验中的STP基础配置指定根桥、备份根桥与端口加速我用华为模拟器做实验的习惯是先把所有交换机的基础配置清干净然后按下面的顺序配STP。如果你用的是其他厂商设备命令名不同但思路完全一样。先规划角色。两台汇聚交换机SW1和SW2计划SW1作为根桥SW2作为备份根桥。配置如下[SW1] stp mode stp [SW1] stp priority 4096[SW2] stp mode stp [SW2] stp priority 8192默认优先级是32768我把SW1降到4096SW2降到8192。这样SW1一定是根桥SW2在SW1故障时自动成为根桥。接入层交换机SW3和SW4的配置更简单只需要开启STP即可不需要调优先级[SW3] stp mode stp这里有个细节容易忽略STP模式。我见过有人在实验里默认用MSTP多生成树在只有单VLAN的实验环境里倒也能跑但模式选择会影响后续排障的理解复杂度。我的习惯是纯实验环境直接指定stp模式简单明了符合实验条件下的可读性要求。然后是终端接入端口的PortFast配置。如果交换机连接的是PC等终端设备端口没必要参与STP计算否则终端一接入端口要经历Listening到Learning再到Forwarding至少要等30秒用户就会感觉网卡了好久。终端口直接配置边缘端口属性即可[SW3] interface GigabitEthernet0/0/1 [SW3-GigabitEthernet0/0/1] stp edged-port enable这个配置很实用但有一个坑如果这个端口被误接了一台交换机边缘端口不会发BPDU也不会收BPDU直接就可能形成环路。所以实操中必须同时开启BPDU保护[SW3-GigabitEthernet0/0/1] stp bpdu-protection或者全局配置bpdu-protection配合边缘端口使用。这样一旦边缘端口收到BPDU端口直接被error-down保护了整个二层网络不被打环。2.3 链路聚合从接入到汇聚的双链路冗余接入层交换机通常有多个终端用户如果只靠一条千兆链路上联汇聚层带宽是瓶颈链路断了就是接入域整体脱离网络。最合理的方案是Eth-Trunk。链路聚合的本质是把多条物理链路捆绑成一条逻辑链路聚合组里的物理链路互相备份同时还能增加带宽。配置很简单[SW3] interface Eth-Trunk 1 [SW3-Eth-Trunk1] trunkport GigabitEthernet 0/0/3 [SW3-Eth-Trunk1] trunkport GigabitEthernet 0/0/4 [SW3-Eth-Trunk1] port link-type trunk [SW3-Eth-Trunk1] port trunk allow-pass vlan 10注意聚合链路两端的设备必须同时配置Eth-Trunk否则无法协商成功。很多人在这里踩坑只在SW3上配了Eth-TrunkSW1那边还是单独的两个物理口结果链路反复UP/DOWNSTP还疯狂震荡。port link-type trunk这一步也容易错。Eth-Trunk接口的链路类型要在聚合口上配置而不是物理接口。如果物理口上还有旧的access配置要记得清掉[SW3-GigabitEthernet0/0/3] undo portswitch这个命令在不同厂商设备上有差异但思路都一样物理口加入聚合组之前先要恢复默认配置。2.4 验证二层冗余STP状态与聚合成员怎么看配置完成后验证命令是我最推荐的。不要配完就走一定要确认STP的状态是否符合预期。查看STP根桥和端口状态display stp brief重点看Root ID和Designated Bridge ID以及每个端口的状态。正常情况下SW3的上联口中一个口是Root Port转发状态另一个口是Alternate Port阻塞状态。如果两个口都是转发说明环路没被破掉危险。如果两个口都阻塞说明STP的路径开销配置有问题。查看链路聚合成员状态display eth-trunk 1这里关注每个物理成员口的Status是否为Selected。如果出现Unselected状态检查两端配置是否一致。个人经验链路聚合配好后测一下拔线。拔掉一根成员链路Eth-Trunk里的流量会自动切到另一根ping网关几乎无感知。这一步实测下来很直观每次做实验我都会拔线验证。真实环境里不方便拔光缆实验环境可以随便造这也是实验最大的价值。3. 网关冗余的方案VRRP配置与切换机制剖析3.1 VRRP的工作机制为什么终端网关不能只指向一台交换机二层冗余搞定之后三层网关的冗余排在第二位。很多入门实验里终端PC的网关直接指向汇聚交换机的VLANIF接口地址比如VLAN 10的网关是192.168.10.254就指向SW1。SW1一旦宕机即使SW2还在网络也连不通——终端的网关地址指向的是SW1这个物理实体的IPSW2无法代替。VRRP就是解决这个问题的。它的思路是在多台设备上虚拟出一个“虚拟网关IP”终端把网关指向这个虚拟IP而不是某台物理设备。VRRP的Master设备负责转发流量Backup设备随时待命。Master挂了Backup升级为Master虚拟IP和虚拟MAC地址一并接管终端无感知。3.2 VRRP配置详解虚拟网关、优先级和抢占华为设备的VRRP配置核心就几步。我以VLAN 10为例SW1是MasterSW2是Backup虚拟网关IP是192.168.10.254。SW1配置[SW1] interface Vlanif 10 [SW1-Vlanif10] ip address 192.168.10.252 24 [SW1-Vlanif10] vrrp vrid 10 virtual-ip 192.168.10.254 [SW1-Vlanif10] vrrp vrid 10 priority 120 [SW1-Vlanif10] vrrp vrid 10 preempt-mode timer delay 20SW2配置[SW2] interface Vlanif 10 [SW2-Vlanif10] ip address 192.168.10.253 24 [SW2-Vlanif10] vrrp vrid 10 virtual-ip 192.168.10.254这里有几个细节值得展开。第一物理接口的IP和虚拟IP必须在同一个网段否则VRRP报文无法正常收发。SW1的VLANIF10地址192.168.10.252和SW2的192.168.10.253都是各自独立的物理接口IP平时管理、排障用终端不感知这两个地址。第二优先级决定谁是Master。默认优先级是100我给SW1配了120SW2保持默认所以正常情况下SW1是Master。第三抢占模式要配合延时。preempt-mode timer delay 20意味着SW1从故障恢复后要等20秒才重新抢占Master。这个20秒很关键——否则SW1刚恢复端口还没完全稳定就去抢Master会造成网络震荡。实际配置中这个延时要看上层路由协议的收敛时间路由协议收敛慢VRRP抢占就应晚一点。3.3 VRRP联动与监视上行链路断了怎么办VRRP只能感知设备自身故障。SW1宕机了SW2通过VRRP报文超时升级为Master。但如果SW1本身没宕机只是它上联核心的那条链路断了呢VRRP默认是感知不到的SW1仍然是Master但流量到了SW1之后从上行链路出去就断了典型的有去无回。解决方法是配置VRRP的监视功能也叫上行链路监视。华为设备上的配置思路是定义一条监视的链路如果链路状态变为Down就把VRRP优先级降低让备用设备变成Master。[SW1] interface Vlanif 10 [SW1-Vlanif10] vrrp vrid 10 track interface GigabitEthernet 0/0/5 reduced 40这条配置的含义是监视上行物理口GigabitEthernet0/0/5如果这个接口Down了VRRP的优先级就降低40从120降到80低于SW2的默认优先级100于是SW2变成Master。这个功能建议每一个做冗余实验的人都配上。真实场景里设备电源故障导致整机宕机相对少见更多时候是单条链路的故障。如果VRRP不做上行监视备用设备形同虚设。3.4 VRRP验证状态、虚拟IP与切换实测配置完必须验证。命令很简单display vrrp重点看State是Master还是Backup以及Virtual IP是否一致。正常情况下SW1是MasterSW2是Backup。然后从终端PC持续ping网关地址同时让SW1的VLANIF10接口shutdown看看丢包情况。实测结果一般是丢1到2个包VRRP就能完成切换。如果丢包超过10个说明VRRP的定时器参数需要调整。VRRP默认的Master发送VRRP通告报文的时间间隔是1秒Master故障后Backup要等3个通告周期约3秒才能切过来。实验环境可以调短生产环境不建议低于默认值否则报文抖动就会引起频繁切换。注意VRRP只保护网关不保护网关背后的上行链路。这也是很多人忽略的——VRRP配置对了但是上行链路故障照样断网。所以第4部分讲的三层路径冗余才是完整方案的最后一环。4. 三层路径冗余从汇聚到核心的多路径设计4.1 三层路径冗余的两种思路动态路由与浮动静态路由汇聚层到核心层的冗余本质上是一个三层路由问题。两条物理链路分别上联两台核心设备数据该怎么走核心设备坏了或者某条链路断了怎么切两种主流方案动态路由协议和浮动静态路由。实验环境里两种都值得做一遍。动态路由比如OSPF的优势是自动感知拓扑变化链路断了路由自动收敛适合大型网络。缺点是配置复杂度高排障链路长有时候一条路由该走A却走到B排查起来让人头大。浮动静态路由的思路更直白为同一个目的网络配置两条静态路由一条优先级高数值小一条优先级低数值大。正常情况下走高优先级链路高优先级链路Down了低优先级路由自动顶上。这个方案在小型园区和实验环境里非常实用我强烈建议先掌握。4.2 浮动静态路由的配置优先级如何决定主备关系核心交换机CORE1和CORE2汇聚交换机SW1和SW2。SW1上联CORE1SW2上联CORE2SW1和SW2之间还有一条三层互联链路。规划的路径是汇聚层到核心层的业务流量走SW1-CORE1这条主链路SW1或CORE1故障时流量走SW1-SW2-CORE2这条备份链路。SW1上配置两条默认路由或指向核心业务网段的路由。华为设备的配置是[SW1] ip route-static 10.10.0.0 16 10.0.1.1 [SW1] ip route-static 10.10.0.0 16 10.0.2.2 preference 70第一条路由的下一跳是10.0.1.1CORE1的互联地址默认优先级是60是主路由。第二条路由的下一跳是10.0.2.2SW2的互联地址优先级70是备路由。优先级数值越小越优先这是华为的规则思科刚好相反是管理距离数值但思路一样两条静态路由一条优一条劣。配置验证可以用display ip routing-table正常情况下可以看到10.10.0.0/16这条路由只显示下一跳10.0.1.1。此时把SW1的上联口shutdown再去查看路由表你会发现下一跳变成了10.0.2.2这就是浮动路由生效了。注意SW2这台设备也要做对应配置保证回程路由能够正确返回。VRRP主备切换后如果SW2变成了Master那么SW2必须知道去往核心网络的路由否则终端网关通了但流量出了汇聚层就断。这个回程路由问题是三层冗余里最容易忽略的一环。4.3 回程路由与对称路由的坑为什么有人配置了VRRP还是不生效我在帮一个人排障时遇到过一个很典型的案例。他按网上的教程配置了VRRP终端能ping通网关网关能ping通核心但从终端ping核心业务服务器就是不通。排查过程比较曲折最后定位到问题在回程路由。终端的网关指向虚拟IP 192.168.10.254假设当前Master是SW1流量到了SW1之后SW1查找路由表发现去10.10.0.0/16的下一跳是CORE110.0.1.1流量正常过去了。核心设备返回流量时目的IP是终端的IP核心查路由表发现去192.168.10.0/24的下一跳指向了SW2的物理接口地址192.168.10.253——因为核心设备上只配置了一条到VLAN10的路由指向SW2。结果SW2不是VRRP Master也没收到这个流量的二层转发信息于是把包丢了。解决方法是核心设备、汇聚设备上凡是涉及VLAN10或VLAN20这类终端网段的路由都指向VRRP的虚拟IP而不是物理设备IP。也就是说核心上要写[CORE1] ip route-static 192.168.10.0 24 192.168.10.254 [CORE1] ip route-static 192.168.20.0 24 192.168.20.254所有三层设备访问终端网段时下一跳都用虚拟网关地址。这样不管VRRP谁是Master流量都能找到正确的转发设备。这个细节特别适合写进自己的实验笔记对称路由。冗余环境里来回路径最好一致至少路由表要保证每一跳都能正确回程。很多人的实验做得“半通”就是因为只顾着配置网关冗余忘了检查回程路由。4.4 整网路径的主备切换逻辑从二层到三层的一次完整联动到这里整个三层架构冗余的联动逻辑已经很清晰了我来梳理一遍。正常状态下终端PC的默认网关是VRRP虚拟IPVRRP Master是SW1。二层收敛后接入层SW3的上联口一个在转发状态一个在阻塞状态。汇聚到核心的路径上SW1走主路由直接到CORE1SW2走备份路由到CORE2。当SW1的电源故障时SW1宕机VRRP报文中断SW2在约3秒后升级为Master虚拟IP和虚拟MAC被SW2接管。接入层STP检测到根桥SW1消失SW2成为新的根桥原来阻塞的备份链路状态变为转发。汇聚层到核心层SW1宕机后原本经过SW1的流量无法到达CORE1但VRRP切换后网关在SW2上SW2的路由表里有两条静态路由主路是直接到CORE2备路是经过SW1再转CORE1。SW2直接走主路到CORE2流量恢复。这三层切换几乎是同时发生的用户能感知到的就是丢几个包或者完全无感知。前提是每个环节都配到位尤其是STP的根桥、VRRP的上行监视和三层路由的回程。5. 常见问题与排障实录那些实验中最容易踩的坑5.1 STP反复震荡端口状态在Forwarding和Blocking之间横跳这个问题几乎每个人都遇到过。现象是接入层交换机的上联端口一直闪日志里大量出现STP拓扑变更通知。排查思路先看物理层。如果两条上联链路一根是千兆电口一根是千兆光口线缆质量或光模块兼容性问题可能导致链路稳定性差。更常见的原因是链路聚合配置不一致一端是聚合口一端是普通口导致BPDU的收发异常。再检查STP的根桥配置。如果两台汇聚交换机都没有显式配置优先级选举出来谁是根桥就是看MAC地址那路径可能不符合预期。我建议一开始就把根桥和备份根桥固定住不要依赖随机选举。最后查边缘端口和BPDU保护。如果有端口配置了边缘端口但没开BPDU保护一旦有人插了根网线到另一台交换机环路就会让STP不断重新计算全网卡成狗。5.2 VRRP双主两台设备同时显示Master状态双主是VRRP最危险的故障。现象是两台交换机都认为自己是Master终端网关时通时不通严重时直接广播风暴。最常见的原因是VRRP报文被二层隔离了——两台汇聚交换机之间虽然有三层互联但VRRP报文依赖二层组播地址。比如SW1和SW2之间只通了路由但VLAN 10的广播域没有贯通SW1发送的VRRP通告报文SW2收不到——SW2以为SW1挂了就自己变成了Master。排查命令很直接display vrrp interface Vlanif 10如果两台都是Master立刻检查SW1和SW2之间的二层链路。另一类可能是设备防火墙或ACL拦截了组播报文。华为设备上还有一种情况接口下配置了vrrp vrid 10 virtual-ip时如果两台设备的的VRID不一致也会相互不认识。检查两端VRID是否一致是排障的第一步。5.3 配置了VRRP但终端网关ping不通VLANIF与二层透传的联动这类问题排起来让人心累。配置没问题VRRP状态也正常但终端去ping网关就是不通。先确认VLAN是否正常透传。接入层SW3的上联口是trunk口允许的VLAN列表里有没有VLAN 10BCP口有没有trunk 10很多实验终端无法通网关是二层透传断了。再看VLANIF是否处于UP状态。如果交换机的VLANIF接口没有对应的二层VLAN存在或物理口全DownVLANIF显示DownVRRP根本不会运行。最后看终端自身。Windows机器ping网关不通先看一下ARP缓存arp -a如果有大量残留的ARP条目执行arp -d清空再试。虚拟网关的MAC地址是VRRP生成的虚拟MAC00-00-5E-00-01-xx如果ARP表里显示的MAC是物理交换机接口的真实MAC说明有设备在冒充网关大概率是DHCP或手动配置了错误的IP。5.4 拔线测试通了但过一会又断了三层设备之间的Keepalive问题有人反映做完拔线测试网络2到3秒就恢复了但过了一会又断掉。这种间歇性故障多半不是冗余配置本身的问题而是故障恢复后的回切逻辑没处理好。以VRRP为例SW1恢复后由于配置了抢占模式它会重新变成Master。如果SW1的上行链路和路由表还没完全ready它抢回Master后流量就会被发向一条不可达的上行链路造成二次中断。解决方法是把VRRP抢占延时调大同时检查SW1恢复后路由表是否重新学习到了路由。这个“回切比切换更伤人”的经验我觉得比初次切换的配置更重要。生产环境出现故障后真正考验网络质量的往往是设备恢复时的回切行为。5.5 一张问题速查表故障现象、可能的根因、检查命令我把实验和实际排障中最常见的几类问题整理成一张表方便排查时对照。故障现象可能的根因优先检查项STP端口震荡根桥配置缺失、链路聚合不一致、环路display stp brief查日志的TC事件VRRP双主二层隔离、VRID不一致、ACL阻断组播display vrrp抓包看VRRP报文终端ping网关不通VLAN透传断裂、VLANIF Down、ARP异常display vlandisplay vrrp终端arp -a拔线切换后二次中断回切抢占过快、路由未收敛调大抢占延时检查路由表汇聚到核心丢包动态路由收敛慢、回程路由指向错误display ip routing-table确认下一跳端口被error-downBPDU保护触发、边缘端口收到BPDUdisplay error-down recovery查日志6. 实操心得三层架构冗余实验的配置顺序与验证要点6.1 我推荐的配置顺序先二层、再网关、最后三层多次做这个实验之后我总结出一套比较不容易出错的顺序分享给各位。第一步先把VLAN、接口、VLANIF这些基础配置全打通。没有这个基础谈冗余都是空中楼阁。第二步配置二层冗余STP根桥、链路聚合、边缘端口。第三步配置网关冗余VRRP虚拟IP、优先级、上行监视。第四步配置三层路径冗余浮动静态路由或动态路由同时检查回程路由。这个顺序的逻辑是每一层冗余都依赖下一层的连通性。STP不收敛就配置VRRPVRRP的组播报文会被环路干扰VRRP没配好就配置路由路由的下一跳可能是一个不稳定网关。顺着这个顺序做每一步都能验证上一步的成果出问题时定位范围也小。6.2 验证不只是看状态更要做故障演练做冗余实验最忌配完看一遍状态就觉得万事大吉。我每完成一个环节都会做一次故障演练模拟真实故障模拟接入交换机上联单条链路故障拔掉Eth-Trunk中一根物理链路看聚合组内流量是否切换终端ping是否中断。模拟汇聚主设备故障直接shutdown SW1的VLANIF10或拔掉SW1的电源观察VRRP切换是否在3秒内完成。模拟上行链路故障shutdown SW1的上联口看VRRP是否因为监视功能降优先级而切到SW2同时观察路由表变化。模拟汇聚层到核心层主链路故障shutdown SW1到CORE1的互联口看浮动路由是否自动切换。每次演练都要记录切换时间和丢包数。丢包数在5个以内是合格的10个以上就要思考定时器参数是不是要调整。我有一次实测ping网关丢了17个包查了半天发现VRRP的抢占延时设置太大配合STP的30秒收敛时间整体切换时间被拉长了。调整参数后重新测试丢包降到2个。6.3 模拟器和真机实验的差别这些坑模拟器里发现不了最后说一个可能得罪人的话模拟器实验能验证配置思路但还原不了真实环境的很多细节。模拟器里不会出现光模块兼容性导致链路updown不会出现网线老化引起的CRC错误更不会出现STP因为CPU高负载延迟发送BPDU引起的假死。真机实验时我遇到过一个问题某台交换机的CPU利用率到了90%VRRP通告报文延迟发送备用设备频繁升级Master又降级全网ARP疯狂刷新。模拟器怎么折腾都复现不了这种问题。所以我的建议是先用模拟器把配置思路和协议逻辑跑通有条件再做真机验证尤其是线缆故障、电源故障这种物理层面的切换演练。真机上踩过的坑比模拟器里跑一百遍配置都长记性。这个实验后续还能扩展的方向也很多比如把静态浮动路由升级成OSPF引入BFD快速检测链路状态或者在汇聚层加入MSTP来为多VLAN规划不同的STP路径每扩展一步对冗余体系的理解都会再深一层。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑