1. 防火墙双机热备的必要性
防火墙作为企业网络出口的核心设备,一旦出现故障,整个内外网的通信都会中断。单台防火墙无论多么可靠,始终存在单点故障的风险。传统路由器可以通过路由备份实现快速切换,但防火墙的特殊性决定了它需要更复杂的备份机制。
状态检测防火墙会记录每条流量的状态信息,包括源IP、源端口、目的IP、目的端口等。如果防火墙发生故障,新设备必须完全继承这些会话状态,否则即使流量切换过去,也会因为会话不匹配而被丢弃。这就是为什么防火墙需要双机热备功能,而不仅仅是简单的路由备份。
2. VRRP协议的工作原理
VRRP(Virtual Router Redundancy Protocol)是一种容错协议,它通过将多台物理路由器组合成一个虚拟路由器,实现默认网关的冗余备份。VRRP备份组中的路由器会选举出一个Master路由器,负责转发流量。当Master路由器出现故障时,优先级最高的Backup路由器会自动接管转发任务。
VRRP的工作过程包括:
- 路由器加入VRRP备份组后,会短暂进入Initialize状态
- 当接口Up后,路由器会切换到Backup状态
- 优先级最高的路由器会率先进入Master状态
- Master路由器会周期性地发送VRRP报文
- 当Master路由器故障时,Backup路由器会接管转发任务
3. VRRP在防火墙场景下的局限性
传统VRRP协议在防火墙场景下存在两个主要问题:
- 多个VRRP备份组状态不一致
- 会话状态无法自动备份
防火墙通常需要管理多个接口的VRRP备份组,这些备份组之间是相互独立的。当某个接口出现故障时,该接口对应的VRRP备份组会切换到Backup状态,但其他备份组仍保持Master状态,导致防火墙主备状态不一致。
4. VGMP协议的设计理念
华为防火墙引入VGMP(VRRP Group Management Protocol)来解决VRRP的局限性。VGMP协议的核心思想是将防火墙上的所有VRRP备份组统一管理,确保它们的状态保持一致。
VGMP组有三个基本运行原则:
- 状态一致性原则:VGMP组的状态决定组内所有VRRP备份组的状态
- 优先级原则:两台防火墙的VGMP组通过比较优先级来决定主备状态
- 优先级调整原则:当某个VRRP备份组状态变化时,VGMP组会调整自己的优先级
5. VGMP报文结构解析
华为防火墙对标准VRRP报文进行了扩展和修改,形成了VGMP报文。主要变化包括:
- Type字段增加取值2
- Virtual Rtr ID字段固定为0
- 去掉了标准VRRP报文中的IPAddress字段
- 将Priority字段修改为Type2字段
VGMP报文类型包括:
- VGMP Hello报文:用于协商主备状态
- HRP心跳报文:用于探测对端状态
- HRP数据报文:用于备份配置和状态信息
6. VGMP组的工作机制
防火墙上默认有两个VGMP组:
- Active组:缺省优先级为65001
- Standby组:缺省优先级为65000
在主备备份模式下,主用设备启用Active组,备用设备启用Standby组。在负载分担模式下,两台设备都启用Active组和Standby组,互为备份。
当主用设备出现故障时,VGMP组会感知到VRRP备份组的状态变化,调整自己的优先级,并与对端重新协商主备状态。协商完成后,新的主用设备会发送免费ARP报文,引导流量通过自身转发。
7. 心跳接口的配置要点
心跳接口是双机热备的关键,配置时需要注意:
- 两台设备的心跳接口必须加入相同的安全区域
- 接口类型和编号必须相同
- 当两台防火墙距离较近时,心跳接口可以直接相连或通过二层交换机相连
- 当两台防火墙距离较远时,心跳接口需要通过三层设备相连
- 当接口资源紧张时,可以使用业务接口作为心跳接口
8. 典型故障切换过程分析
当主用设备出现故障时,切换过程如下:
- 主用设备感知到接口故障,降低VGMP组优先级
- 主用设备发送VGMP请求报文
- 备用设备比较优先级后,切换为Active状态
- 备用设备发送VGMP应答报文
- 备用设备强制组内VRRP备份组切换状态
- 备用设备发送免费ARP报文
- 主用设备切换为Standby状态
- 交换机更新MAC转发表项
- 流量切换至备用设备