ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

防火墙双机热备与VRRP详解:华为华三配置与排查实战

防火墙双机热备与VRRP详解:华为华三配置与排查实战 干网络这一行最怕深夜接到电话说“全公司上不了网了”。赶到机房一看防火墙上电源灯不亮那一刻你就知道之前做的冗余设计全都白搭了。防火墙作为全网流量的必经网关它挂了路由、NAT、安全策略全部失效业务中断就是分钟级别的事。这也是为什么“防火墙双机热备”从来不是可选方案而是刚需。而双机热备的实现里VRRP虚拟路由冗余协议是眼下最通用、最成熟的一套华为、华三、锐捷、深信服这些主流厂商的防火墙都原生支持配置思路也基本一致。这篇文章我会从为什么做双机热备讲起把VRRP的工作原理、华为和华三的完整配置、切换优化和排错经验一次说清楚给正在做割接项目的同行以及在准备认证考试的朋友一个可以直接参考的实操记录。1. 双机热备到底在解决什么问题1.1 单点故障是很多网络事故的根源企业网络的架构看来看去核心风险往往不在线路带宽也不在设备性能而在“单点”。防火墙就是最典型的单点所有进出流量都要从它身上过它一旦出现硬件故障、电源烧毁、系统死机、版本升级失败整个网络就像咽喉被掐住内网上不了外网办公系统、邮件、ERP、视频会议全部瘫痪。我处理过不少故障印象最深的一次是某台防火墙的光模块老化白天上班高峰突然丢包最后直接DOWN掉业务恢复花了将近一个小时现场气氛只能用“凝固”来形容。双机热备的价值本质上不是提高单台设备的性能而是消除单点故障。它靠两台设备形成“主备”组合对外暴露同一个虚拟网关IP。正常情况下只有主设备转发流量备设备处于待命状态主设备一旦出问题备设备立刻接管转发把故障的影响从“小时级”压缩到“秒级”。这就像备胎平时不显山不露水爆胎那一刻才知道它有多重要。对要求7×24小时不间断运行的企业来说防火墙双机热备已经算是一个基础配置项而不是什么加分项。1.2 为什么是VRRP而不是堆叠和负载均衡有人会问我们交换机上都玩IRF、CSS堆叠防火墙能不能也堆叠理论上有些厂商支持防火墙堆叠但堆叠的本质是“多台设备虚拟成一台”控制平面统一管理版本升级往往需要整机重启而且堆叠状态一旦异常恢复过程非常痛苦。防火墙作为安全设备承载了大量会话和状态堆叠方案的故障域反而变大了。所以在防火墙场景里主备模式的双机热备依然是绝对的主流。负载均衡双活方案听起来更高级但它需要额外的负载设备和链路对称性保障。防火墙是状态检测设备如果去程走A防火墙、回程走B防火墙两端会话表对不上业务直接就断了。要解决这个问题要么做会话同步要么保证流量哈希一致复杂度成倍上升对大多数中大型企业来说性价比不高。VRRP的优势在于它是IETF标准协议跨厂商通用一台主一台备切换逻辑清晰故障域小。更重要的是它本身只负责“选主”选完主之后防火墙厂商可以在这个基础上玩出各种扩展——华为叫HRP华三叫RBM本质上都是用私有协议去同步会话和配置。所以“防火墙双机热备技术之VRRP”这句话准确理解应该是用标准VRRP解决主备选举问题用厂商私有备份协议解决状态同步问题两者配合才是一个完整的高可用方案。1.3 双机热备的网络架构怎么搭架构其实不复杂。两台防火墙上下行各接到对应的交换机或路由器上业务流量从主设备走。关键点有三个一是虚拟网关IP这个IP由两台防火墙通过VRRP协商出来终端用户的网关配置成这个虚拟IP就行用户根本感知不到背后是两台设备二是心跳口两台防火墙之间专门用一根或两根线互联用来传递VRRP备份协议报文和会话同步数据三是主备角色正常情况下A是主、B是备A挂掉后B接管虚拟IP继续转发流量。用我习惯的规划方式举个例子防火墙A和防火墙B的下行接口各配一个内网真实IP再共同对外发布一个虚拟IP作为用户网关上行接口连接出口设备类似地也可以发布一个虚拟IP作为对端路由器的下一跳。心跳口用独立的三层接口地址段单独规划比如192.168.100.0/30。需要注意心跳口不能跟业务口混用也不能图省事直接用管理口替代因为管理口通常不具备高速转发能力而且链路一旦拥塞会话同步会出大问题。2. VRRP核心机制不是背协议而是理解这三点2.1 虚拟IP和虚拟MAC让两台设备看起来像一台VRRP最核心的思想是引入了一个“虚拟路由器”的概念。这个虚拟路由器有自己独立的IP地址和MAC地址但它不是一个真实存在的物理设备而是由两台真实路由器在防火墙场景里就是两台防火墙共同“扮演”的。对外这个虚拟路由器始终存在对内谁状态好谁就扮演它。虚拟IP很好理解就是给终端配的那个网关地址。真正容易被忽略的是虚拟MAC。VRRP规定虚拟MAC的格式是00-00-5E-00-01-XX其中XX是VRID的十六进制值。比如VRID是1虚拟MAC就是00-00-5E-00-01-01。为什么要单独搞一个虚拟MAC因为二层交换机的MAC地址表项和终端的ARP缓存都依赖MAC识别。如果主设备切换后网关MAC也跟着变终端或者交换机就要重新学习ARP这个过程中就会出现丢包、延迟。有了固定不变的虚拟MAC主设备切换对二层网络来说就像什么都没发生一样数据帧的目的MAC始终不变这种“透明感”正是VRRP高可用体验的来源。2.2 报文、优先级、状态机VRRP是怎么选主的VRRP的选举过程并不神秘。运行VRRP的设备会周期性向组播地址224.0.0.18发送VRRP通告报文目的MAC是01-00-5E-00-00-12IP协议号是112TTL固定为1也就是说这个报文只在本网段内传播不会被路由到别的地方。默认情况下设备每1秒发一个通告通告里带着自己的优先级。优先级范围是0到255默认是100数值越大越有资格当Master。如果优先级相同就比较接口IP地址大的优先。状态机就三个Initialize、Master、Backup。设备刚启动或者配置VRRP时进入Initialize状态等待接口就绪后会根据优先级决定自己是Master还是Backup。Master会周期发通告Backup在收到通告后刷新一个叫Master_Down_Timer的定时器。这个定时器的时间不是固定的公式是Master_Down_Timer 3 × 通告间隔 (256 - 本机优先级) / 256举个例子通告间隔是默认的1秒本机优先级是100那么Backup等待约3.6秒。如果在这3.6秒内一直没收到Master的通告它就认为Master已经死了自己切换成Master。这就是VRRP默认切换“秒级”的原因——不是不敏感而是协议本身的设计就是要用超时来判断故障。还有两个行为值得注意抢占模式默认是开的。也就是说如果一台优先级高的设备重新恢复上线它会主动把Master角色抢回来。这个特性在某些场景里会造成主备频繁切换所以很多生产环境会关闭抢占或者配置抢占延迟让恢复的设备先观察一段时间再接管避免网络抖动。2.3 防火墙场景为什么还要HRP、RBM这类扩展标准VRRP本身解决的是“谁当主”的问题但防火墙跟普通路由器的最大区别在于路由器是逐包转发丢几个包无所谓防火墙是状态检测每个连接都会生成一张会话表里面记录了源IP、目的IP、端口、协议状态、NAT转换关系甚至还有应用层状态。这些状态如果不在主备之间同步主设备一挂备设备虽然能接管的IP和路由但它完全不认识现有的连接所有正在进行的业务都会瞬间断开。所以厂商在VRRP之上做了扩展。华为的方案是HRPHuawei Redundancy Protocol配合VGMP组管理。VGMP会把设备上多个VRRP备份组绑成一个整体统一决定主备状态。为什么要绑因为防火墙通常有多个业务口如果每个接口各自跑VRRP就可能出现上行接口A是Master、下行接口B是Backup的“撕裂状态”数据根本没法正常转发。华三对应的方案是RBMRemote Backup Management它把VRRP状态、会话备份、配置同步统一管理起来也被戏称为“RBMVRRP”组合。理解这一点很重要单纯在防火墙上配VRRP不做会话同步那只是“半吊子双机热备”。表面上看主能切到备实际业务该断还是断。任何打着“双机热备”旗号的项目如果只给你配了VRRP没配备份协议你一定要追问一句会话表同步了吗3. 华为USG与华三F1000双机热备配置实例3.1 组网规划与IP编址上手配置之前先做规划。我拿一个实际部署过的场景来说两台防火墙FW-A计划为主、FW-B计划为备上行接出口路由器下行接内网核心交换机。地址规划如下项目FW-AFW-B说明下行接口内网10.10.10.1/2410.10.10.2/24虚拟IP 10.10.10.254/24终端网关上行接口外网203.0.113.1/30203.0.113.2/30虚拟IP 203.0.113.3/30心跳接口192.168.100.1/30192.168.100.2/30专用互联不跑业务规划里有几个细节很容易踩坑第一心跳地址段要单独规划不要跟任何业务网段重叠第二上行接口如果运营商只给一个IP那么虚拟IP就格外重要对外路由下一跳始终是虚拟IP不管主备怎么切对端设备都不用改配置第三内网接口的虚拟IP一定要跟终端网段同段不然终端根本不知道该把网关设成谁。另外给防火墙预留管理地址也很重要。我一般习惯在每个防火墙上再单独配一个管理接口或带外管理IP用SSH方式登录这样双机热备调试和日常巡检都方便。华为USG上开启SSH大致就是配置本地用户、开启ssh server再把管理接口划到一个可管理区域细节后面模拟器部分再提。3.2 华为USG配置步骤华为USG系列做双机热备核心就两条业务接口下配置VRRP并指定active/standby角色然后配置HRP心跳并启用。拿ensp里的USG6000V举例FW-A的配置大概是这样# FW-A 配置 interface GigabitEthernet1/0/0 ip address 203.0.113.1 255.255.255.252 vrrp vrid 1 virtual-ip 203.0.113.3 active # interface GigabitEthernet1/0/1 ip address 10.10.10.1 255.255.255.0 vrrp vrid 2 virtual-ip 10.10.10.254 active # interface GigabitEthernet1/0/2 ip address 192.168.100.1 255.255.255.252 # hrp interface GigabitEthernet1/0/2 remote 192.168.100.2 hrp enableFW-B的配置区别不大把业务接口的真实IP换成10.10.10.2和203.0.113.2VRRP那行的关键字从active改成standby心跳命令对端地址改成192.168.100.1。安全策略、NAT、对象这些配置在主设备上配好之后通过HRP会自动同步到备设备备机上不需要重复敲一遍。配置完之后验证命令是关键display hrp state display vrrp display hrp interface正常情况下FW-A的hrp state显示activeFW-B显示standby。display vrrp能看到两个VRRP组的虚拟IP和当前状态。再看display hrp interface确认心跳接口状态是Up。如果这些都正常可以顺手在主设备上telnet或者ping一个内网地址然后在备机上查会话表确认会话同步在涨这说明HRP的数据通道是通的。3.3 华三F1000的RBMVRRP配置步骤华三F1000系列的做法跟华为略有差异它用RBM来做会话备份和配置同步VRRP负责主备选举。配置顺序一般是先建RBM再把业务接口纳入备份最后在接口下配VRRP。# FW-A 上配置 rbm remote backup interface GigabitEthernet1/0/2 remote backup peer 192.168.100.2 # interface GigabitEthernet1/0/1 ip address 10.10.10.1 255.255.255.0 rbm vrrp vrid 1 virtual-ip 10.10.10.254 vrrp vrid 1 priority 120 # interface GigabitEthernet1/0/0 ip address 203.0.113.1 255.255.255.252 rbm vrrp vrid 2 virtual-ip 203.0.113.3 vrrp vrid 2 priority 120FW-B的配置类似但优先级保持默认100真实IP换成自己的remote backup peer改成192.168.100.1。在HCL模拟器里这套流程跟真机基本一致。RBM模式下VRRP状态和会话备份是绑定的主备机的角色由RBM统一管理。验证命令display rbm status display rbm session display vrrp如果FW-A的RBM状态是PrimaryFW-B是Standby同时VRRP的Master集中在FW-A上这就说明RBM和VRRP的状态是对齐的。要注意的是华三不同版本对RBM的配置命令略有差异老版本可能没有接口下的rbm命令新版本叫法也可能不同配置前先用“”看帮助不要死记命令。3.4 ensp/HCL模拟器与锐捷防火墙的差异模拟器方面华为的ensp和华三的HCL都能跑双机热备实验。ensp里的USG6000V内存占用不小两台防火墙加交换机跑起来电脑内存低于8G会比较吃力启动也慢。HCL的F1060做RBM实验时建议先把镜像版本和HCL版本对齐不然会出现一些莫名其妙的状态不同步问题。锐捷防火墙的命令风格更接近思科VRRP通常在接口下用类似“vrrp group 1 ip 10.10.10.254”的方式配置HA会话同步又是另一套命令。锐捷不同系列之间的命令差异比华为华三还大所以真机配置前一定先用display version确认版本再查对应版本的命令手册。反正记住一个原则双机热备不能跨厂商混组一台华为一台华三之间无法建立HRP或RBM因为私有备份协议不互通。就算两台都用标准VRRP会话同步协议也是私有的所以同厂商、同型号、同版本是硬性要求。4. 切换那一刻发生了什么会话同步与优化细节4.1 会话同步备份的是防火墙的“记忆”很多人刚接触防火墙双机热备时会有一个误解既然配置已经同步了那还不够吗答案是不够。配置同步只解决“规则一致”的问题会话同步解决的是“连接不断”的问题。一条访问百度、访问数据库服务器、或者正在传输文件的TCP连接在防火墙上对应一条会话记录。如果主设备挂了备设备接管后如果备设备的会话表里没有这条记录它会把这个TCP连接当成一个全新的未知流量在状态检测机制下直接丢弃或者要求重新建连。会话同步的工作原理就是在主设备上每新建一条会话就通过心跳口把这条会话的关键信息同步给备设备。备设备在内存里维护一份几乎一样的会话表这样主备切换时所有现有连接还能继续被识别和转发。华为HRP的会话同步粒度是可以控制的会话、ASPF状态、server-map表、IPsec SA这些都能按需开启。生产环境里我一般建议把涉及业务的关键项都打开虽然会占用一点心跳口带宽和备机内存但换来的是切换期间业务连续性的巨大提升。4.2 三类切换场景与中断时间拆解双机热备常见的切换场景有三类设备宕机、链路故障、人工切换。设备宕机是最典型的场景主设备彻底断电或者系统崩溃备设备在Master_Down_Timer超时后收不到VRRP通告自动升级为Master。默认配置下这个过程大约是3.6秒加上二层MAC收敛、ARP刷新等时间业务中断在4到5秒左右。如果会话已经同步用户感知就是页面卡了一下连接不会断。链路故障场景是最容易翻车的。比如主设备的下行接口连着的光纤被挖断了但主设备本身还活着VRRP状态依然是Master因为它没收到任何“自己不行了”的信号。这种场景必须靠额外机制去感知链路状态否则双机热备形同虚设。解决方法是做接口监视或者BFD联动让主设备检测到关键接口Down时主动降低VRRP优先级把Master角色让给备机。人工切换是运维主动触发的一般是为了升级版本、更换硬件、清灰维护。操作方式可以是降低主设备优先级、shutdown业务接口或者使用厂商提供的切换命令。人工切换最可控但也最需要谨慎一定要选在业务低峰期做并且提前通知相关业务方。经常有人问双机热备状态下关闭一台防火墙有影响吗答案是只要配置正确、会话同步正常关闭主设备后会有几秒的抖动备机接管后业务自动恢复关闭的如果是备设备业务几乎无感。但这个前提是“配置正确”所以我一直强调切换演练必须做。4.3 让切换更快更可靠的四个优化手段第一是BFD联动VRRP。VRRP默认靠超时检测秒级已经很不错但要更快就得引入BFD。BFD可以做到毫秒级检测把设备故障、链路故障的消息快速通知VRRP让备机在极短时间内接管。华为和华三都支持在VRRP下绑定BFD会话实际配置时要注意检测参数别设得太激进否则网络拥塞时也会误触发切换。第二是接口监视track。这是一个性价比极高的配置把下行或者上行的关键业务接口加入到VRRP的监视列表里接口Down时自动降低本机优先级。比如“vrrp vrid 2 track interface GigabitEthernet1/0/1 reduced 30”一旦这个接口Down了本机优先级降低30备机就能凭借更高的优先级快速接管。这在解决“链路断了但设备还活着”的问题上是立竿见影的。第三是控制抢占行为。默认抢占是开的主设备恢复后就立刻抢回Master但如果主备设备的性能有差距或者网络环境不太稳定频繁抢占会造成更严重的抖动。我会建议在主设备上配置抢占延迟比如延迟60秒再抢回让业务在备机上先稳定运行一分钟再平滑切回主设备。第四是验证会话同步。这个不算优化手段算是底线检查。切换前一定要确认会话同步条目数在增长否则前面做的一切都是空中楼阁。具体做法就是在主设备上持续发起业务连接然后到备机上查看会话表条目或者直接看HRP/RBM的同步统计。5. 常见问题与排查技巧实录5.1 心跳线断开导致“双主”脑裂问题双机热备最危险的故障不是主设备挂了而是“双主”——两台设备都认为自己是Master。这种情况通常由心跳线断开引发。心跳线负责传输HRP/RBM报文和会话同步数据同时也会传递主备角色的协调信息。一旦心跳线断了两台设备都以为对方已经不在了各自抢占Master角色于是同一个虚拟IP被两台设备同时响应内网终端ARP表在两边跳变网络时通时断非常难排查。遇到“双主”的排查顺序我建议先看两台设备的VRRP状态再用ping对端心跳地址判断物理链路最后检查心跳口是不是被人误拔或者光模块松动。抓包的话在业务接口上抓224.0.0.18的组播报文也能看出端倪如果两台设备都在周期性地发通告说明双方都没收到对方的通告脑裂实锤。规避脑裂物理层面至少用两根心跳线做冗余逻辑层面还可以通过管理口带外互通做辅助检测。对于承载重要业务的防火墙我会强烈建议上一套带外监控一旦检测到双主就自动告警因为脑裂状态下网络故障是间歇性的单纯靠用户报障来发现往往已经折腾了很久了。5.2 模拟器启动卡死与Web登录失败的处理ensp里做防火墙实验最让人头疼的就是防火墙控制台一直打印“####”。这个现象基本上是设备镜像加载异常或者运行卡死。我自己的处理顺序是先把ensp完全关闭删除出问题的防火墙设备重新添加再检查电脑内存占用USG6000V启动非常吃内存如果内存不足先把其它无用的设备删掉如果还不行重新注册ensp的设备包或者更换ensp版本。实在不行就重启电脑再试这属于老实验人的常规操作了。Web登录失败也常见。华为ensp里USG6000V默认的Web登录用户名密码一般是admin/Admin123第一次登录会要求改密。如果登录不了先确认管理接口的IP和网段再用console口进去检查Web服务是否开启、安全策略有没有放行对应IP。华三HCL模拟器里F1060也是类似默认情况下Web服务不一定开启需要用console口先配置接口IP和http/https服务浏览器访问时如果提示证书错误直接信任继续就行。还有朋友遇到过“远程计算机不接受443端口上的连接”这种情况排查思路一样先确认服务监听在443上再确认安全策略和管理口访问控制允许了来源地址不要一上来就怀疑防火墙配置有问题。5.3 重启后配置丢失、热备失效怎么查“防火墙每次关机重启后双机热备配置就没了”这类问题十有八九不是设备坏了而是配置没有保存到启动配置文件。网络设备和电脑不一样不是说敲完命令就永远生效了华为华三设备都需要执行save命令把当前配置落盘。如果只把配置写在当前运行配置里一重启就回到上一次保存的启动配置所有热备配置自然就不见了。这里有个容易被忽略的点HRP/RBM会自动把主设备上的配置同步到备设备但同步过来的配置如果不在备机上单独save一下备机重启后依然会丢。所以我的习惯是双机热备配置完成后在主备两台设备上各执行一次save之后每次调整策略改完就顺手保存。并且定期导出配置文件做离线备份防止设备彻底损坏后连配置都找不回来。如果真的发生重启后热备失效先别急着重配用display saved-configuration看看启动配置文件里到底有没有VRRP和HRP/RBM配置再用display hrp state或者display rbm看两台设备状态是否一致。很多时候是主备两台设备的启动配置文件不一致导致主备角色协商失败这种情况只要把主设备的配置同步过去并保存就能恢复。5.4 黑白名单同步与IPsec隧道组合的坑防火墙安全策略里黑白名单是很常见的功能。黑名单用来封禁恶意IP白名单用来放行特定来源。但在双机热备场景下黑白名单的同步并不总是自动的。华为HRP的备份项是可配置的动态黑名单、静态黑名单是否参与备份不同版本默认行为不一样。如果你在备机上看到黑名单数量跟主设备不一致先检查HRP备份配置不要想当然认为策略同步就能带上所有表项。另一类常见组合是“防火墙双机热备 IPsec隧道”。很多企业做分支互联安全设计时会把这两个技术绑在一起用。这里头有几个坑值得单独说。第一隧道本端地址建议使用VRRP虚拟IP而不是物理接口IP否则主备切换后源地址变化隧道对端收到IKE协商报文后会直接重新协商瞬间流量中断。第二如果厂商支持IPsec SA同步一定要开启这样主备切换时隧道不需要重建业务几乎无感。第三如果隧道上还跑着OSPF或者BGP动态路由要额外考虑路由收敛时间必要时配合BFD检测否则VRRP切过去很快路由还没收敛业务照样不通。不同厂商的防火墙在这方面的实现细节差异很大比如有些国产防火墙在封禁某个区域地址集合时默认只在本地生效需要手动配置同步策略。所以做项目时凡是涉及双机热备和业务连续性我都会把“哪些数据需要同步”列成一个清单在验收阶段逐项检查而不是只看VRRP状态是不是Master。写到最后说点个人体会。我见过太多项目把双机热备配上就当作“高可用”完成了结果从来没做过切换演练。VRRP和高可用本质上是一个“平时没动静、出事才见真章”的东西配置完成后一定要挑个维护窗口做三次测试主动重启主设备看业务中断多久、拔掉主设备上联或者下联口看是否触发链路切换、断开心跳线看会不会脑裂。记录每次切换的中断时间和告警日志这些数据比任何配置都值钱。另外两台防火墙的软件版本和补丁必须保持一致这是我在一个真实案例里踩过的坑——主备版本差了三个补丁HRP协商正常但IPsec SA备份始终不同步查了两天才定位到版本差异。如果你也在做类似的割接项目把这些功课提前做掉能少熬很多夜。
返回列表