VRRP多VLAN负载分担配置:双核心交换机网关冗余与切换实践

VRRP多VLAN负载分担配置:双核心交换机网关冗余与切换实践
最近在折腾双核心交换机网关冗余时我把重点放在了 VRRP 与多 VLAN 的联动配置上。这个方案解决的是一个很实际的网络问题多台三层交换机需要同时承担不同 VLAN 的网关转发又要在设备故障时互相接管保证终端网络不中断。VRRPVirtual Router Redundancy Protocol虚拟路由冗余协议配合多 VLAN 做链路负载分担简单说就是不再把所有 VLAN 的网关全部挂在同一台设备上而是让两台设备分别担任不同 VLAN 的 Master 角色。比如 VLAN 10 的 Master 是 SW1VLAN 20 的 Master 是 SW2两边同时转发流量同时互为备份。这样做的好处是双核心设备都能被用起来不会出现一台设备忙不过来、另一台设备完全空闲的情况。这篇文章适合刚接触双机热备和网关冗余的网络工程师也适合正在准备数通实验考试、或者准备在办公网和园区网里落地双核心组网的运维同学。读完你至少能解决三个问题VRRP 多组配置时优先级怎么规划、track 接口为什么能触发切换、部署后怎么验证负载分担有没有真正生效。我先把话放在前面VRRP 做多 VLAN 负载分担核心价值是提高网关可靠性和利用率不是给单条链路叠加带宽。这个误解后面会专门拆开讲。1. 先想清楚VRRP 在不同 VLAN 里做“反主备”到底解决什么问题1.1 单网关方案的三个真实痛点很多中小型网络的初始设计是画一个 VLAN配一个网关网关地址指向核心交换机。核心交换机只有一台下面接接入交换机上面接出口防火墙或路由器。这种组网在最开始没什么问题但随着终端数量增加、办公网与生产网隔离、无线和有线并用问题会慢慢暴露。第一个痛点是网关单点故障。核心交换机一旦硬件故障、电源异常或者软件崩溃整个 VLAN 的终端都失去网关用户上不了网服务器访问不到。哪怕接入交换机全部正常二层链路全部畅通终端也只能互通同一 VLAN 内的广播跨 VLAN 流量全部中断。第二个痛点是主备模式下链路利用率太低。如果为了可靠性加了一台核心交换机通常的做法是 VRRP 把其中一台设为 Master另一台设为 Backup。平时所有 VLAN 的网关都在 Master 上流量全部走主设备备用设备只有心跳报文和少量状态同步流量在跑。两台设备买了同样的性能结果一台满载一台几乎空转。第三个痛点是故障切换不灵活。有些网络没有配置 track 接口Master 的上行出口断掉时VRRP 仍认为设备本身是健康的不会主动让位给 Backup。终端继续把流量发给一个已经失去出口的网关网络看起来接口是 up 的但业务已经不通。这三个痛点放到一起正好就是 VRRP 多 VLAN 负载分担要解决的问题每台设备都有真实流量在转发又互相当备用网关同时配合接口跟踪保证链路出问题时不硬撑。1.2 多 VLAN 负载分担的设计逻辑每个 VLAN 独立选主理解 VRRP 多 VLAN 负载分担之前先记住一个关键点VRRP 组是跟 VLANIF 接口绑定的不是跟整台设备绑定的。也就是说你可以在 VLANIF 10 上创建一个 VRID 10 的 VRRP 组在 VLANIF 20 上再创建一个 VRID 20 的 VRRP 组。这两个组互不干扰各自独立选举 Master 和 Backup。两台设备同时配置这两个组时就可以让 SW1 在 VRID 10 里优先级高于 SW2成为 VLAN 10 的 Master同时让 SW2 在 VRID 20 里优先级高于 SW1成为 VLAN 20 的 Master。这就是“反主备”设计。VLAN 10 的终端访问外部时流量到 SW1 转发VLAN 20 的终端访问外部时流量到 SW2 转发。SW1 故障时VRID 10 里 SW2 接管VLAN 10 的网关变成 SW2SW2 故障时VRID 20 里 SW1 接管VLAN 20 的网关变成 SW1。整个过程终端网关地址不变主机上的配置也不用改。这套设计下每台设备同时是部分 VLAN 的主用网关又是另一部分 VLAN 的备用网关。链路利用率提升冗余能力保留。下面是这个设计最核心的规划思路VLAN虚拟网关地址终端配置Master 设备Backup 设备设计意图VLAN 10192.168.10.254SW1优先级高SW2办公网主用走 SW1VLAN 20192.168.20.254SW2优先级高SW1业务网主用走 SW2这里要注意一个 VLAN 的虚拟 IP 全局只有一份。终端网关写的是虚拟 IP不是某台设备的真实 VLANIF 地址。这样主备切换时终端不需要修改网关。2. 配置前先把拓扑、VLAN 编号和虚拟网关地址定下来2.1 推荐拓扑与设备角色划分在写配置命令之前先花时间把拓扑定清楚。VRRP 对二层广播域要求很严格最稳妥的拓扑是两台三层交换机作为核心/汇聚通过至少一条物理链路互联互联接口必须放通所有需要做冗余的 VLAN。下面的接入交换机通过 Trunk 上联到两台核心设备把 VLAN 10、VLAN 20 都放行上来。终端 PC 的网关分别指向虚拟 IP。两台核心设备的上行出口建议分别接到不同的出口防火墙或汇聚设备这样某一条上行链路断开时对应的 VRRP 组会通过 track 机制切换流量从另一台设备走出去。我建议用两台相同型号、相同软件版本的三层交换机做设备角色对等。型号不同也能跑 VRRP但踩坑概率会增加比如接口命名不同、STP 默认参数不一致、VRRP 报文处理行为有差异。下面是一个典型的实验拓扑角色划分SW1VLAN 10 MasterVLAN 20 Backup互联地址 192.168.0.1/30SW2VLAN 20 MasterVLAN 10 Backup互联地址 192.168.0.2/30PC1网关 192.168.10.254属于 VLAN 10PC2网关 192.168.20.254属于 VLAN 20两台设备之间的互联链路我建议先做 Eth-Trunk 捆绑两条物理口避免一条链路断开时连 VRRP 心跳都丢了。当然实验环境只有一根线也能跑生产环境至少要有一条稳定的互联通道。2.2 IP 地址规划与虚拟网关设计很多人做 VRRP 失败不是因为命令不会敲而是 IP 地址规划一开始就乱了。规划时要区分三类地址VLANIF 物理接口地址、虚拟网关地址、设备互联地址。VLANIF 物理接口地址指的是两台设备各自在这个 VLAN 三层接口上的真实 IP。比如 VLAN 10 里SW1 配 192.168.10.2SW2 配 192.168.10.3虚拟 IP 配 192.168.10.254。虚拟 IP 是终端配置的网关地址不能和任何真实接口 IP 冲突。VRID 编号建议跟 VLAN ID 对齐。VLAN 10 就用 VRID 10VLAN 20 就用 VRID 20这样排障时看到 VRID 就知道是哪个 VLAN 出了问题。VRID 在同一台设备的不同接口上不能冲突范围一般是 1 到 255但不同厂商、不同版本支持范围可能有差异以设备实际支持为准。下面是实验环境的基础规划表项目SW1SW2VLAN 10 VLANIF192.168.10.2/24192.168.10.3/24VLAN 20 VLANIF192.168.20.2/24192.168.20.3/24VLAN 10 虚拟 IP192.168.10.254192.168.10.254VLAN 20 虚拟 IP192.168.20.254192.168.20.254互联接口地址192.168.0.1/30192.168.0.2/30VRID 10 角色MasterBackupVRID 20 角色BackupMaster注意VRID 不需要跟 VLAN ID 强制一致但一致会极大降低管理成本。生产网络如果有几十个 VLAN建议维护一张台账把 VLAN ID、VRID、虚拟 IP、主备设备、track 对象全部登记清楚。2.3 配置前检查清单我在真机上敲配置之前习惯先做一轮静态检查避免后期反复返工。你可以在心里过一遍下面这份清单物理链路是否正常互联接口和上行接口能不能 ping 通对端地址。两台设备之间的二层 VLAN 是否打通Trunk 是否放通了 VLAN 10 和 VLAN 20。每个 VLANIF 接口的真实 IP 是否配置正确子网掩码是否一致。VRRP 虚拟 IP 是否已经规划好是否和真实接口地址、DHCP 地址池冲突。是否清楚两台设备在每个 VRID 里谁打算做主、谁打算做备。是否需要 track 上行链路如果 track 了优先级下降值设计是多少。STP 状态是否会影响两台核心之间的互联端口如果会要提前确认端口是转发状态。没有 eNSP 或者真实设备时我一般建议先在 eNSP 或者 GNS3 这类模拟器里把拓扑搭一遍把配置刷一遍确认 VRRP 状态切换逻辑对了再上真机。模拟器上跑通不代表真机没坑但至少能把命令格式和思路理顺。3. 核心配置流程从 VLAN 创建到 VRRP 主备抢占3.1 新建 VLAN 和 Trunk 放通第一步是在两台核心交换机上把需要用到的 VLAN 创建出来。下面以华为风格命令为例华三设备的命令语法基本一致但不同版本细节有差异落地前先看设备的命令帮助。SW1 基础配置# 进入系统视图 system-view # 批量创建 VLAN vlan batch 10 20 # 配置下行 Trunk 接口连接接入交换机 interface GigabitEthernet0/0/1 port link-type trunk port trunk allow-pass vlan 10 20 # 配置与 SW2 互联的 Trunk 接口 interface GigabitEthernet0/0/2 port link-type trunk port trunk allow-pass vlan 10 20SW2 基础配置相同只是设备名字和接口编号按实际拓扑调整。这里要注意互联接口如果只放行 VLAN 10 和 20那么两台设备之间用于管理、路由协议等用途的其他 VLAN 也要单独放行别只记着业务 VLAN。接入交换机下面的终端端口一般配置为 Access 口PVID 对应终端所属 VLAN。比如 PC1 所在端口interface GigabitEthernet0/0/10 port link-type access port default vlan 10有些场景下接入交换机和终端之间是多 VLAN 口Trunk 口还需要处理 PVID。常见的热搜词里也有“port trunk pvid vlan 10”这种问题意思是 Trunk 口默认 PVID 未修改时收到的无 Tag 报文会被打上 VLAN 1导致终端 VLAN 错乱。如果你在 Trunk 口接了 PC要把 PVID 改成终端 VLAN或者直接在 Trunk 口关闭 Untag 报文的默认处理。3.2 配置 VLANIF 接口和 VRRP 主备优先级VLAN 建好后在三层交换机上创建 VLANIF 接口给每个 VLAN 配置真实 IP。这是 VRRP 能工作的前提因为 VRRP 组必须挂在 VLANIF 上。SW1 配置如下# 进入 VLANIF 10 interface Vlanif10 ip address 192.168.10.2 255.255.255.0 # 创建 VRRP 组 10虚拟 IP 为终端网关 vrrp vrid 10 virtual-ip 192.168.10.254 # 设置该组优先级为 120默认是 100 vrrp vrid 10 priority 120 # 开启抢占并设置延迟 10 秒 vrrp vrid 10 preempt-mode timer delay 10 # 进入 VLANIF 20 interface Vlanif20 ip address 192.168.20.2 255.255.255.0 # 创建 VRRP 组 20但 SW1 在组 20 里作为 Backup vrrp vrid 20 virtual-ip 192.168.20.254 # 保持默认优先级 100SW2 配置如下# VLANIF 10 interface Vlanif10 ip address 192.168.10.3 255.255.255.0 vrrp vrid 10 virtual-ip 192.168.10.254 # 保持默认优先级 100作为 Backup # VLANIF 20 interface Vlanif20 ip address 192.168.20.3 255.255.255.0 vrrp vrid 20 virtual-ip 192.168.20.254 # 提高优先级成为 Master vrrp vrid 20 priority 120 vrrp vrid 20 preempt-mode timer delay 10这里最核心的参数是 priority。VRRP 默认优先级是 100数值越大越优先。SW1 在 VRID 10 里配置为 120正常情况下就比 SW2默认 100先成为 Master。SW2 在 VRID 20 里配置为 120正常情况就是 VLAN 20 的 Master。两个 VLAN 的主设备不同这就是“反主备”的落地。不要看到两台设备都配置了 VRRP就以为它们都是主设备。VRRP 组是按 VLAN 独立选举的一台设备可以同时是 A VLAN 的 Master 和 B VLAN 的 Backup这是完全合法的状态。3.3 配置 track 接口触发切换只配置主备优先级还不够。如果 SW1 的上行链路断掉VRRP 组 10 的 Master 仍是 SW1但 SW1 已经无法把流量送到外部网络。这时最好让 SW1 降低优先级把 Master 让给 SW2。track 机制就是干这件事的。SW1 上监控上行接口如果接口 down优先级下降指定数值SW2 的优先级相对升高VRRP 重新选举后切换主备。SW1 增加 track 配置# 配置 track 对象监控上行接口 GigabitEthernet0/0/3 interface GigabitEthernet0/0/3 description Uplink-to-Firewall # 回到全局配置 track track 1 interface GigabitEthernet0/0/3 # 进入 VLANIF 10绑定 track interface Vlanif10 vrrp vrid 10 track interface GigabitEthernet0/0/3 reduced 30这里 reduced 30 的意思是当被监控接口变为 down 时SW1 在 VRID 10 里的运行优先级从 120 降到 90。SW2 默认优先级是 100SW1 降到 90 后 SW2 自然胜出成为 Master。如果 reduced 值小于主备优先级差值比如只 reduced 10SW1 从 120 降到 110仍然大于 SW2 的 100切换根本不会发生。所以设计 reduced 值时一定要保证下降后优先级低于备用设备的当前优先级。SW2 对应地也需要监控自己的上行接口并在 VRID 20 里配置 track# 全局配置 track 1 interface GigabitEthernet0/0/3 interface Vlanif20 vrrp vrid 20 track interface GigabitEthernet0/0/3 reduced 30track 对象可以跟踪接口也可以跟踪 IP 路由、BFD 会话等生产环境用 BFD 联动的收敛速度更快。但基础实验阶段先学会用接口状态触发切换就够用了。3.4 抢占模式和延迟时间VRRP 的抢占模式默认是开启的。意思是一台 Backup 设备收到更高优先级的 VRRP 通告后会立即抢占成为 Master。这在有些场景下会造成频繁切换。比如上行链路抖动接口 up/down 在短时间内反复切换track 对象跟着反复触发优先级变化两台设备就会来回抢 Master。终端网关在这段时间内可能会出现持续丢包、ARP 表项反复更新的问题。解决办法是配置抢占延迟interface Vlanif10 vrrp vrid 10 preempt-mode timer delay 10表示 SW1 在满足抢占条件后等待 10 秒再成为 Master。这个时间足够让链路稳定性先暴露出来。如果链路 5 秒内又恢复SW1 就不需要回切。生产环境我一般建议延迟时间设置在 5 到 15 秒之间。太短起不到防抖作用太长会导致故障恢复后主网关迟迟不回来。这里给的是通用经验值实际参数以你的业务场景为准。抢占延迟需要两台设备配合设计。如果 SW1 配置了延迟SW2 没有那么 SW2 抢占时立刻切换SW1 恢复时等 10 秒再切回来。这种不对称设计在有些场景下是有意的目的是让故障切换足够快恢复时留出业务稳定窗口。但如果你希望两台设备行为对称就要在两台设备的相同 VRID 上都配置延迟。4. 验证主备状态与切换行为不能只看 VLAN 通了4.1 通过 display 命令查看 VRRP 状态配置完成后最直接的验证方式是查看 VRRP 状态是否按预期选举。在 SW1 上执行display vrrp正常情况下VRID 10 的角色应该是 MasterVRID 20 的角色应该是 Backup。SW2 上正好相反。实际输出字段可能因设备型号和版本不同而有差异但核心信息是一致的主要关注下面几项VRID当前查看的是哪个 VRRP 组。Virtual IP虚拟网关地址是否就是规划好的地址。Master IP当前谁是 Master对应的真实 IP 是哪个。PriorityRun当前运行优先级受 track 影响后可能低于配置优先级。Preempt抢占模式是否开启。Delay Time抢占延迟时间。如果 SW1 上 VRID 10 的 Master IP 显示的是 SW2 的接口地址说明 SW2 优先级更高或者 SW1 的 track 触发了优先级下降要回头检查两边的 priority 和 track 状态。还可以用更精简的命令display vrrp brief这个命令适合快速扫描多 VLAN 场景一眼看出每个 VRID 的 Master 和 Backup。建议在两台设备上都执行对比结果是不是互补关系。4.2 从终端和网关侧验证连通性VRRP 状态正确不代表业务真的通了。一定要从终端侧验证。在 PC1 上 ping 虚拟网关 192.168.10.254能通说明 VLAN 10 的三层网关可用。再 ping PC2 的地址 192.168.20.254 或对应终端 IP能通说明 VLAN 间路由也正常。如果网关能通但 VLAN 间不通问题可能出在路由转发、互联接口或 ACL 上跟 VRRP 本身的关系不大。验证完普通 ping 之后还要看看 ARP 表项。在 SW1 上执行display arp正常情况下终端发送数据时会在网关 MAC 和虚拟 IP 之间建立对应关系。虚拟 IP 对应的 MAC 应该是 VRRP 的虚拟 MAC 地址。VRRPv2 的虚拟 MAC 一般是 00-00-5E-00-01-XX其中 XX 是 VRID 的十六进制。如果你想确认终端是不是真的把流量发到了主设备可以查看交换机上终端的动态 MAC 表项确认是从哪个物理接口学到的。如果发现终端的 ARP 表项在主备设备之间来回变化说明网络里出现了双 Master这是很危险的情况后面排查章节会单独讲。4.3 主备切换演练验证静态状态只是第一步真正要看的是故障切换时行为是否符合预期。我一般会做三个演练场景。第一个场景是拔掉 SW1 的上行链路。正常情况下SW1 的 track 对象检测到上行口 downVRID 10 优先级下降SW2 在几秒内接管成为 Master。在 PC1 上持续 ping 192.168.10.254切换瞬间会丢几个包之后恢复稳定。第二个场景是直接把 SW1 和接入交换机之间的下行链路断开。这个场景下SW1 已经无法接收 VLAN 10 的终端流量但 VRRP 组可能仍然保持 Master因为 SW1 本身没故障VRRP 报文也能发到 SW2。这时终端会失去网关。想要规避这个问题需要同时监控下行关键接口或者在接入交换机侧做冗余链路。这也是很多人配置 VRRP 后仍然“切换失败”的原因只监控了上行没考虑下行。第三个场景是直接整机断电或关闭 SW1。由于 VRRP 通告报文消失SW2 在约 3 个通告周期后成为 Master。VRRPv2 默认通告间隔是 1 秒所以正常情况下在 3 秒左右完成接管。两台设备之间的互联链路如果正常这个时间会非常接近理论值。每次演练结束后恢复环境再用 display vrrp 确认状态回切是否符合抢占延迟时间。4.4 如何判断负载分担确实生效负载分担不能只看配置要看流量实际分布。在 SW1 和 SW2 上分别查看接口流量统计display interface Vlanif10 display interface Vlanif20如果 VLAN 10 的流量主要出现在 SW1 的 Vlanif10 上VLAN 20 的流量主要出现在 SW2 的 Vlanif20 上说明这套反主备设计的转发路径是符合预期的。还可以在上行接口查看报文统计。SW1 的上行口应该有 VLAN 10 方向的流量SW2 的上行口应该有 VLAN 20 方向的流量。如果发现所有 VLAN 的流量都集中在一台设备上检查一下是不是某台设备的优先级没有按设计配置或者 VRRP 组用的 VRID 与设计不一致。要注意的是负载分担基于 VLAN 划分颗粒度是 VLAN不能按用户或按会话做更细粒度分流。同一个 VLAN 内的所有终端仍然固定走同一台 Master不会出现同一个 VLAN 一部分流量走 SW1、一部分走 SW2。5. 常见现象与排查顺序报错少但误判断多5.1 VRRP 状态一直是 Initialize先查什么Initialize 状态说明 VRRP 组还没有正常参与选举最常见原因是 VLANIF 接口没有正常 up或者接口上缺少虚拟 IP 配置。排查顺序建议是固定的先看 VLANIF 接口状态执行 display ip interface brief确认接口物理和协议状态都是 up。再看 VLANIF 下是否配置了虚拟 IP用 display current-configuration interface Vlanif10 这种命令确认。确认接口下是否误配了 shutdown或者 VLAN 没有在接口上放通。如果接口状态 up配置也没问题再看是不是 VRID 冲突或者虚拟 IP 与其他接口地址冲突。Initialize 状态一般都不是 VRRP 协议本身的问题而是前置条件没满足。不要一上来就改 priority先把接口链路和 VLANIF 状态查清楚。5.2 两台设备都是 Master危险但常见两台设备同时显示 Master说明它们互相收不到对方的 VRRP 通告报文。这个现象在链路故障、STP 阻塞、Trunk 未放通 VLAN、组播报文被过滤时都会出现。排查顺序先确认两台核心设备之间二层互通在 SW1 上直接 ping SW2 的 VLANIF 地址。检查两台设备互联接口的 trunk 配置确认 VRRP 所在 VLAN 已放通。查看互联端口的 STP 状态确认没有 block。检查设备是否配置了 ACL 或流量过滤规则把 VRRP 组播地址 224.0.0.18 过滤掉了。确认两台设备上的 VRRP 版本是否一致例如一侧 v2、一侧 v3 也可能出现问题。双 Master 的典型表现是终端的 ARP 表项在两个网关 MAC 之间反复刷新丢包严重。遇到这个现象优先修二层链路而不是查路由。5.3 配置了 track 但切换没发生track 配置不生效通常有三个原因。第一track 对象本身没有 down。如果被监控的是出口接口但这个接口连接的是下联交换机而不是真正的上行出口拔掉外部线路时接口状态可能不变track 自然不触发。这时要确认监控的是真正影响流量的链路。第二reduced 值不够大。前面说过如果主备优先级差值大于 reduced 值切换不会发生。建议先把优先级差值计算清楚再决定 reduced 值比如 120 对 100 的差值至少要 reduced 21工程上我会留出至少 30 的余量。第三track 对象没有正确绑定到 VRRP 组。很多人配置了全局 track 对象也配置了 interface Vlanif10但忘了在 Vlanif10 的视图下写 vrrp vrid 10 track interface 那一行导致 track 对象没参与 VRRP 选举自然不产生效果。排查时按这个顺序看基本一两分钟就能定位。5.4 切换后终端仍然丢包或长时间中断VRRP 切换完成后有些终端会发现 ping 通得慢或者要等几十秒才能恢复。VRRP 本身的收敛时间通常只有几秒真正拖慢恢复的是 ARP 表项和 STP 收敛。终端侧如果一直缓存着旧 Master 的虚拟 MAC 与端口的映射关系切换后仍然往旧端口发送数据就会丢包直到 ARP 老化或手动清 ARP。我在实验里经常用下面的方式模拟终端行为网络切换前在终端上清楚知道当前网关 ARP 表项。切换后重新 ping观察首次恢复时间。如果多次连续切换对比每次的恢复时间是否稳定。更彻底的方式是让 VRRP 虚拟 IP 对应的 MAC 保持稳定。VRRP 在设计上已经保证了这一点因为虚拟 MAC 是固定的 00-00-5E-00-01-XX不管 Master 是 SW1 还是 SW2虚拟 IP 对应的 MAC 都不变。所以大部分情况下终端 ARP 不会出问题。如果仍然丢包优先怀疑接入交换机端口上 STP 在收敛或者接入交换机到两台核心之间的链路没有做双归冗余。下面把常见问题做一个总结表现象可能原因优先排查顺序VRRP 状态一直是 InitializeVLANIF 或虚拟 IP 前缀问题接口状态、VLANIF 配置、VRID 冲突两台设备都是 MasterVRRP 报文不通二层互通、Trunk、STP、组播过滤track 配置了但切换未发生reduced 值不够或绑定错误track 对象状态、优先级差值、绑定位置切换后终端丢包ARP 缓存或接入侧 STP虚拟 MAC、接入端口 STP 状态、终端重连6. 边界和落地上限负载分担不等于带宽叠加6.1 什么时候适合用 VRRP 做多 VLAN 负载分担VRRP 多 VLAN 负载分担适合的典型场景是两台核心设备性能接近上行链路相互独立业务由多个 VLAN 组成对网关可靠性的要求高于对单链路吞吐的要求。比如一个中型办公网络VLAN 10 是财务办公VLAN 20 是业务系统VLAN 30 是无线网络。你可以把 VLAN 10 和 30 的主网关交给 SW1VLAN 20 的主网关交给 SW2。这样终端数量分散到两台设备单台设备的 CPU 和带宽压力下降同时又保留整机故障时对方接管全部 VLAN 的能力。在这种情况下负载分担的意义是让主备设备都有实际流量在跑避免设备闲置同时在故障时仍然提供完整的网关冗余。这个组合方案比“一台主一台备”利用率更高比“完全双活堆叠”实现成本更低。6.2 哪些场景不适合这么干第一如果两台设备性能差异很大不建议强行做负载分担。性能弱的一台即使只承担少量 VLAN也可能在流量高峰成为瓶颈。不均匀的设备组合更适合传统主备让高性能设备承担全部转发弱设备只做冷备。第二VRRP 只能在同一个二层广播域内生效。两台设备之间必须要能通过二层互联传递 VRRP 通告报文跨三层组网不能直接使用 VRRP。如果你需要跨机房、跨地域实现网关冗余要用的是 VRRP over VXLAN、双活网关或动态路由协议方案这已经超出 VRRP 基础配置的范畴了。第三不要把 VRRP 多 VLAN 负载分担当成带宽叠加方案。两台设备之间有多条链路每条链路分别转发不同 VLAN 的流量不等于两台设备之间的总带宽翻倍。单个 VLAN 的流量始终只走一台设备的转发路径不会跨设备并行转发。想要叠加链路带宽应该用 Eth-Trunk 或跨设备链路聚合。第四需要精细化负载调度的场景不适合。VRRP 是按 VLAN 分流的粒度太粗。如果你的核心诉求是让每个用户按会话数均匀分布到两台设备VRRP 做不到应该考虑负载均衡设备或双活网关方案。6.3 更稳的优化方向与升级路径如果这套 VRRP 多 VLAN 负载分担方案想要长期跑在生产环境我建议重点关注下面几个方向。一是把互联链路做成 Eth-Trunk。两台核心之间的链路不要只依赖一根物理线。VRRP 报文和 VLAN 间路由流量都要经过这个互联链路断了会直接影响主备心跳和跨设备转发。Eth-Trunk 可以把两条或多条物理链路捆绑为一条逻辑链路提升可靠性和带宽。二是用 BFD 联动 VRRP缩短故障感知时间。接口 down 依赖的是物理层状态如果链路出现黑洞、光模块异常、中间交换机转发故障接口大概率还是 up。BFD 可以周期性探测对端可达性毫秒级发现故障再联动 track 降低优先级切换 VRRP收敛速度会比单纯 track 接口快很多。三是评估堆叠或 M-LAG。这两者可以让两台设备从转发逻辑上看成一台设备支持跨设备链路聚合避免 STP 阻塞部分链路终端双归接入时也能同时利用两条上行链路。代价是配置复杂度高对设备型号和版本要求也更严格。VRRP 更适合不想引入大规模复杂改造、只想要网关冗余和简单负载分担的场景。四是与动态路由联动。VRRP 负责终端网关冗余上层出口或外部网络可以通过 OSPF、BGP 等动态路由感知网关出口路径。这样即使核心设备的上行链路故障路由也能快速收敛避免流量被引导到没有出口的设备上。最后留几句落地建议我先说结论VRRP 多 VLAN 负载分担最值得投入精力的其实是前期的 VLAN 与 VRID 规划不是命令本身。你在配置前把每个 VLAN 的主备角色、虚拟 IP、track 对象、优先级下降值全部写清楚后面执行就是按表格填内容。如果只是学习用 eNSP 或 GNS3 搭两台交换机配两个 VLAN把配置跑通再演练一次拔线切换就能基本掌握这套方案的核心。手感稳定后再考虑加入 track、BFD、Eth-Trunk 这些进阶内容。真正落到生产环境时最该盯住的不是功能列表而是三件事VRRP 报文所在的二层链路是否稳定track 对象是否真的覆盖了故障路径以及主备优先级差值是否保证切换逻辑可靠。每次变更后都做一次切换演练比反复检查配置更有效。踩过几次坑之后会发现很多问题不是 VRRP 本身不行而是前置链路和规划没有处理干净。

最新新闻

日新闻

周新闻

月新闻