华为防火墙双机热备学习笔记(V500)
双机产生背景
随着互联网承载的业务越来越多,也越来越重要,所以保证网络的不间断传输成了急需解决的一个任务。而部署在网络关键路径上的单个设备,总会因为各种原因Down掉,这种单点故障通常会造成网络中断。
在这种网络关键位置上如果只使用一台设备的话,无论其可靠性多高,我们必然要承受因设备单点故障而导致网络中断的风险。所以,在进行网络架构设计时,通常会在网络的关键位置部署两台设备。
防火墙与路由器、三层交换机设备双机部署的差别
- 普通的网络转发设备(路由器、三层交换机)只根据路由表进行报文转发,只需要在两台设备上做好路由的备份就可以保证业务的可靠性。
- 防火墙是基于报文状态连接的,检测首包并建立会话,后续报文只有匹配会话才能被防火墙转发,如果后续报文不能匹配会话则会被防火墙丢弃。如以下双机部署场景:
起初,业务通过FW1转发,FW1检测首包并建立会话,后续报文匹配会话后就可以被转发。但FW1链路故障造成网络中断,业务需要通过FW2进行转发,但FW2没有接收检测到首包,不给予建立会话,后续报文无法匹配会话,会被防火墙丢弃,造成网络中断。
那么,防火墙如何完成双机部署?
双机热备协议架构
- HRP
双机之间关键配置及连接状态信息的同步备份 - VRRP
监控单个链路的状态及流量引导 - VGMP
统一管理vrrp备份组,实现状态的统一切换
HRP 心跳线
心跳线用于协商两台防火墙之间的状态,作为专门的备份通道,两台防火墙可以通过它备份同步会话表,Server-map表及关键状态信息和配置信息。
防火墙的双机部署
华为防火墙有两种工作模式:主备备份和负载分担
- 主备备份:双机热备功能开后,两台防火墙根据管理员的配置分别称为主用设备和备用设备,称为主用设备的防火墙会处理业务,并将设备上的会话、Server-map表等重要状态信息和配置信息通过心跳线同步给备用设备,成为备用设备的防火墙不会处理业务,但如果主用设备故障时,备用设备可以凭借同步过来的会话表继续转发后续报文。
- 负载分担:两台防火墙均为主用设备,都处理业务,建立会话。同时两台防火墙互相作为对方的备用设备,接受对方备份的会话和配置信息。由于两台防火墙的会话信息是相互备份的,因此全部业务流量的后续报文能够在其中一台防火墙上匹配到会话从而正常转发,这就避免了网络业务的中断。
报文可以通过主用设备转发,那上行链路根据什么判断应该把报文发送给哪一设备?
VRRP 虚拟路由冗余协议
VRRP简介:一种基于ip的容错协议,协议号为112,使用组播地址224.0.0.18。它把多台路由设备组成一个虚拟路由器(VRRP备份组),作为默认网关与外部进行通讯(其实质是组内的一个设备作为默认网关,享用VRRP备份组的IP地址,叫做Master设备,其余设备叫做Backup设备)。当网关(即Master设备)故障时,VRRP协议能够在VRRP备份组内快速选举新的网关设备承载数据流量,以此来实现网关备份功能。
工作流程:管理员在路由器上配置完VRRP备份组和优先级后,VRRP备份组会短暂的工作在Initialize状态。当收到接口UP的消息后,VRRP备份组会切换成Backup状态,然后等待定时器超时后再切换状态:成为主(Master)的设备会发送免费arp,刷新交换机的mac地址表,来引导流量,当交换机泛洪arp request报文时,只有主设备进行回应。同时Master会周期性(缺省1s)的向Backup设备发送Advertisement报文,维护主备关系。当Backup设备一段时间内没有接收到来自主路由器的报文,则在组内重新选举Master设备。
优先级越高的设备定时器时长越短,所以优先级越高的设备会成为Master
VRRP的不足:VRRP各备份组是相对独立的,当防火墙上下行业务接口都配置了vrrp备份组时,只有一方发生故障时,会发生状态切换不一致,导致流量来回路径不一致,造成丢包。
VGMP vrrp组管理协议(Huawei私有)
解决配置vrrp备份组状态不一致而导致流量来回路径不一致的问题
工作原理:将FW上的所有VRRP备份组都加入一个VGMP组中,由VGMP组来集中统一管理和监控这些VRRP备份组。VGMP组会控制组中的所有VRRP备份组统一进行状态切换,保证各VRRP备份组状态的一致性。
每台FW上有一个VGMP组。VGMP组有四个状态机:
- Initialize:双机热备功能未启用前,VGMP组的初始状态。
- Load Balance:当FW本端的VGMP组与对端的VGMP组优先级相等时,两端的VGMP组都处于Load Balance状态。
- Active:当本端的VGMP组优先级高于对端时,本端的VGMP组处于Active状态。
- Standby:当本端的VGMP组优先级低于对端时,本端的VGMP组处于Standby状态。
两台FW组成双机热备组网后,默认情况下,两台FW的VGMP组优先级(默认45000)相等,状态机处于Load Balance状态。
VGMP状态切换过程:
启用:两台FW启用VGMP组后,都会短暂处于Standby状态,并向对端发送VGMP报文,告知自己的优先级和状态。FW收到VGMP报文后,与对端比较优先级,如果优先级相等,则将自己的状态切换成Load Balance,形成负载分担。或者根据VRRP备份组的主备配置或管理员配置,形成主备备份。
配置备用设备
[FW1] hrp standby-device
在一台设备上同时配置hrp standby-device命令和VRRP备份组,设备的状态由VRRP备份组的配置决定,hrp standby-device的配置失效。
问题:当两台防火墙VGMP组优先级相同时,VGMP组处于Load Balance状态。但在配置VRRP备份组时,active/Standby 又会形成主备,那么业务流量是由两防火墙负载分担转发还是只由VRRP Active的那端转发?
答:VGMP组状态由Running Priority决定,处于load balance时, 但业务的主备是根据VRRP配置或者管理员手动指定来决定的, 只有业务主用设备才会转发业务流量。VGMP组状态只是为了统一管理和切换VRRP组状态,与业务流量的转发无关,真正引导流量的是VRRP组状态,所以VRRP组状态影响着设备主用还是备用。
业务链路故障切换:主用设备业务接口故障时,本端VGMP组优先级会下降,状态变为Active-to-Standby。同时与对端VGMP组比较优先级后,如果发现低于对端,就会将自身状态切换为Standby。然后会立即向对端发送VGMP报文,通知本端优先级和状态的变化。对端收到报文后,会比较优先级,发现它本身优先级高,则会将自身状态切换为Active。
整机故障切换:当主用设备整机故障,将无法发送HRP心跳报文。对端设备如果连续5次收不到主用设备发送的HRP心跳报文,那么它就会认为对端设备的VGMP组故障,从而自身切换到主用设备。
故障恢复抢占:当原主设备故障恢复时,会比较对端发送的VGMP报文中的优先级,发现优先级相等,如果开启了抢占功能,则启动抢占时延。时延结束后,原主设备的状态会切换成Load-Balance,并向对端发送VGMP报文通告优先级和状态的变化。对端收到报文后会比较优先级,发现优先级相等,则将状态也切换为Load-Balance。由于以前管理员配置的主备状态,所以两台设备交换报文,确认各自的身份,恢复原主备状态。
备用设备可以不配置抢占功能。(备用设备切换为主设备不是抢占功能的体现,而是故障以后的状态切换,与VGMP组的优先级有关)
如果在没有发生故障的时候,备用设备能否进行抢占;能
配置命令:HRP_M[FW1]hrp switch standby
或者:HRP_S[FW2]hrp switch acitve //强制变更优先级
VGMP报文格式:
- Type:在VRRP头中"Type"=1,新VRRP报文中"Type"=2
- Virtual Rtr ID:在VRRP报文中表示VRRP备份组ID,在新VRRP报文中固定值为0
- 删除优先级"Priority"字段,增加Type2字段
- Type2= 1 -----------心跳探测报文(验证心跳线接口UP DOWN的问题)
- Type2= 5------------HRP一致性检查
- Type2= 2------------封装成为VGMP报文,由vtype字段决定报文类型:HRP心跳报文(Hello) VGMP报文 HRP数据报文
防火墙双机热备工作场景
- 防火墙工作在三层
-
连接交换机
通过VRRP备份组引导流量和检测故障。
VRRP组的主备决定防火墙的主备或负载分担 -
连接路由器
通过修改OSPF路由的cost值引导流量
hrp standby device
对应主备备份
hrp load balance device
对应负载分担
-
通过监控接口(ip-link,bfd)检测故障
- 防火墙工作在二层
- 连接交换机(负载分担)
通过监控VLAN引导流量并检测故障 - 连接路由器
两台路由器需要通过ospf生成路由,建议主备备份
- 连接交换机(负载分担)