双机热备方案 双机热备的工作原理
双机热备工作模式
FW支持主备备份和负载分担模式两种运行模式。
- 主备备份模式:两台设备一主一备。正常情况下业务流量由主用设备处理。当主用设备故障时,备用设备接替主用设备处理业务流量,保证业务不中断。
- 负载分担模式:两台设备互为主备。正常情况下两台设备共同分担整网的业务流量。当其中一台设备故障时,另外一台设备会承担其业务,保证原本通过该设备转发的业务不中断。
说明
镜像模式是实现主备备份双机热备的一种特殊技术手段,主要用于DCN和云管理场景中。
在选择双机热备的运行模式时,请考虑以下因素。
项目 | 说明 |
主备备份模式 | 流量由单台设备处理,相较于负载分担模式,路由规划和故障定位相对简单。 |
负载分担模式 |
|
下面就防火墙几种典型双机热备组网进行分析
双机热备直路部署,连接二层设备
FW的上、下行业务接口工作在三层,分别与二层交换机直连的组网,既可以用于主备备份方式,又可以用于负载分担方式的双机热备。
主备备份
如下图所示,在FW_A的业务接口上配置VRRP备份组,并将其状态设置为Active。在FW_B的业务接口上配置VRRP备份组,并将其状态设置为Standby。将内网PC的网关设置为VRRP备份组的虚拟IP地址。
正常情况下,网络运行情况分析如下:
- PC将用于请求网关地址(VRRP备份组1虚拟IP地址)对应MAC地址的ARP报文发送给交换机。交换机在网络中广播此ARP报文。
- 只有VRRP备份组状态为Active的设备FW_A才会应答此ARP报文,反馈VRRP备份组1的虚拟MAC地址。
- 交换机会记录VRRP备份组1的虚拟MAC地址与端口Eth0/0/1的关系,然后将此虚拟MAC地址发送给PC。
- PC将业务报文发送给交换机,业务报文的目的MAC地址为VRRP备份组1的虚拟MAC地址。
- 交换机根据记录的MAC地址与端口的关系,将报文从端口Eth0/0/1转发,发送给FW_A。
这样在正常情况下,内网PC发出的流量就都通过主用设备FW_A转发了。如下图所示,当FW_A发生故障后,网络运行情况分析如下:
- 当FW_A的业务接口故障时,FW_A切换成备用设备,FW_B成为主用设备。
- 新主用设备FW_B会对外发送免费ARP报文,报文中包含VRRP备份组的虚拟IP地址和虚拟MAC地址。
- 交换机收到免费ARP报文后会更新MAC地址与端口的对应关系(将VRRP备份组1的虚拟MAC地址与端口Eth0/0/2对应)。
- 当PC将业务报文发送给交换机时,报文将从交换机的端口Eth0/0/2转发,发送给FW_B。
这样在FW_A故障时,内网PC发出的流量就都通过新主用设备FW_B转发了。
负载分担
如下图所示,FW_A的VRRP备份组1和3状态被配置成active,VRRP备份组2和4状态被配置成standby。FW_B的VRRP备份组2和4状态被配置成active,VRRP备份组1和3状态被配置成standby。
将内网一部分PC的网关设置为VRRP备份组1的虚拟IP地址,另一部分PC的网关设置为VRRP备份组2的虚拟IP地址。在Router上配置两条静态路由,下一跳分别为VRRP备份组3的虚拟IP地址和VRRP备份组4的虚拟IP地址。
这样正常情况下,FW_A的接口GE1/0/1转发下一跳为VRRP备份组1的虚拟IP地址的报文,FW_B的接口GE1/0/1转发下一跳为VRRP备份组2的虚拟IP地址的报文。一部分PC的流量通过FW_A转发,另一部分PC的流量通过FW_B转发,形成负载分担。
当有设备故障,如FW_A发生故障后,FW_A的切换成备用设备,FW_B会成为主用设备,并对外发送免费ARP报文,引导所有流量都通过FW_B转发。
双机热备直路部署,连接三层设备
FW上、下行业务接口工作在三层,与路由器直连的组网,既可以用于主备备份方式,又可以用于负载分担方式的双机热备。
主备备份
如下图所示,主用设备FW_A正常对外发布路由,而备用设备FW_B发布的路由Cost值修改为65500(缺省值,可调整)。上下行路由器在转发流量时会选择开销(Cost值)更小的路径,因此流量通过主用设备FW_A转发。
当FW_A的业务接口故障时,FW_A切换成备用设备,FW_B成为主用设备。这时FW_B正常对外发布路由,而FW_A发布的路由Cost值修改为65500。这样路由重新收敛后,流量通过FW_B转发。
负载分担
如下图所示,负载分担方式下,FW_A与FW_B都是主用设备,都正常对外发布路由。因此需要在Router_A(C)连接FW_A和Router_B(D)连接FW_B的接口上配置相同的Cost值,保证流量通过FW_A与FW_B共同转发。
当有设备故障,如FW_A的业务接口故障时,FW_A发布的OSPF路由开销值被调整为65500,FW_B正常对外发布路由。这样路由重新收敛后,流量只通过FW_B转发。
双机热备透明接入,连接二层设备
设备的业务接口工作在二层,上下行连接交换机的组网,只支持主备备份方式的双机热备。
如下图所示,FW的上、下行业务接口工作在二层,分别与二层交换机直连。每台FW的上下行业务接口加入到同一个VLAN。主用设备FW_A上的VLAN被启用,能够转发流量。备用设备FW_B上的VLAN被禁用,不能转发流量。因此流量都从主用设备FW_A转发。
当FW_A发生故障时,FW_A切换成备用设备,FW_B成为主用设备。FW_A切换成备用设备时,VLAN内所有接口都会Down然后Up一次。这会导致上下行交换机更新自身MAC转发表,重新学习MAC地址,将流量引导到FW_B上。
说明:
此种组网不支持负载分担方式,是因为如果工作于负载分担方式,则两台设备上的VLAN都被启用,都能够转发流量,整个网络就会形成环路。
双机热备透明接入,连接三层设备
设备的业务接口工作在二层,上下行连接路由器的组网,只支持负载分担方式的双机热备。
如下图所示,FW上、下行业务接口工作在二层,与路由器直连。上、下行路由器之间运行OSPF动态路由协议。每台FW的上下行业务接口加入到同一个VLAN。FW_A与FW_B上的VLAN都被启用,都能够转发流量。这时需要依靠上下行路由器运行的OSPF来实现流量的引导。
FW_A发生故障时,FW_A切换成备用设备,FW_B成为主用设备。FW_A切换成备用设备时,VLAN内所有接口都会Down然后Up一次。这会导致上下行路由器重新计算路由。由于此时FW_A的VLAN已被禁用,因此流量全部从FW_B转发。
说明
此种组网不支持主备备份方式,是因为如果工作于主备备份方式,备用设备上的VLAN被禁用,它的上下行路由器就无法进行通信,无法建立路由。这样主备切换时,备用设备就无法及时接替主用设备处理业务,导致业务中断。
双机热备旁挂部署
通过VRRP与静态路由的方式部署
一般核心交换机与上行路由器和下行汇聚交换机之间运行OSPF,而由于OSPF的路由优先级高于静态路由,所以流量到达核心交换机后会根据OSPF路由直接被转发到上行或下行设备,而不会根据静态路由被引流到FW上。
因此如果希望通过静态路由引流,一般会在核心交换机上配置VRF功能,将一台交换机虚拟成连接上行的交换机(根交换机Public)和连接下行的交换机(虚拟交换机VRF),具体如下图所示。由于虚拟出的两个交换机完全隔离开来,所以流量就会根据静态路由被送到FW上。
为了便于理解,可以将上图所示的FW双机旁挂部署组网逻辑转换成下图所示的双机直路部署组网。下图是一个经典的双机热备连接二层设备直路部署组网。
为了实现流量的转发,我们需要在FW的业务接口上配置VRRP备份组(VRRP备份组1和2),在交换机的VRF和Public上配置静态路由,下一跳分别为VRRP备份组1和备份组2的虚拟地址。在FW上配置两条回程的静态路由,下一跳分别为VRF的VRRP备份组3的地址和Public的VRRP备份组4的虚拟地址。
通过OSPF与策略路由的方式部署
在核心交换机上配置策略路由,重定向地下一跳地址(redirect ip-nexthop)为FW接口的地址。一般核心交换机与上行路由器和下行汇聚交换机之间运行OSPF,而由于策略路由的优先级高于所有路由协议,所以流量到达核心交换机后会根据策略路由接被引流到FW上,而不会根据OSPF路由直接被转发到上行或下行设备。
核心交换机的流量被策略路由引导到FW进行检测后,还需要返回给核心交换机。这时就需要在FW与核心交换机之间运行OSPF协议,在FW上通过查找OSPF路由将流量返回给交换机。但是由于FW与核心交换机之间有两个接口相连,所以在FW上查找路由表时会看到两条等价的OSPF路由,即来自交换机的流量有可能通过来的接口返回给交换机。如果流量的出入接口是同一接口,那么FW就无法对流量进行全面的安全检测和控制了。
为了解决此问题,我们就需要在核心交换机和FW上分别配置两个OSPF进程,然后在FW上将这两个OSPF进程相互引入,如下图所示。这样当来自进程100(200)的流量被策略路由引导到FW后,在FW上查路由表时只会发现一条来自进程200(100)的OSPF路由,下一跳为交换机的GE1/0/3(GE1/0/2)接口。这就实现了FW上来自交换机的流量一定会通过另外的接口返回给交换机。
为了便于理解,可以将上图的部署组网逻辑转换成下图所示的双机直路部署组网。下图一个双机热备直路部署,连接三层设备组网。与经典组网的配置区别在于需要在FW上配置两个OSPF进程并且相互引入,而在交换机上配置OSPF的同时需要配置策略路由。
镜像模式部署
镜像模式是实现双机热备的一种技术手段具体情况如下:
- 基于镜像模式实现双机热备时,两台FW只能形成主备备份组网,不能形成负载分担组网,且主要用于DCN和云管理场景中。
- 基于镜像模式实现双机热备时,两台FW上编号相同的业务接口使用相同的IP地址。此处的业务接口是指除MGMT管理接口、镜像模式管理接口和心跳接口以外的接口。
- 基于镜像模式实现IPv6双机热备时,两台FW上编号相同的业务接口使用相同的IPv6地址和IPv6链路本地地址。请手工配置IPv6链路本地地址,不要为接口配置自动生成的链路本地地址,以免产生不一致。
- 启用镜像模式后,两台FW之间支持备份的配置增多。例如,接口IP地址配置命令在未启用镜像模式时不支持备份,启用镜像模式后支持备份。
镜像模式流量引导和故障切换机制
如下图所示,FW_A和FW_B工作在镜像模式。两台FW的上下行业务接口使用相同的IP地址。为了让两台FW形成主备备份组网,需要在一台FW上配置hrp standby-device命令,将其指定为备机。
由于内部网络中主机的网关都被设置成了FW下行业务接口的IP地址10.0.0.1,这些主机在访问外部网络时,会广播一个ARP请求报文,请求10.0.0.1的MAC地址。FW_A会响应内网主机的ARP请求。FW_B因为有hrp standby-device配置,不会响应内网主机的ARP请求。FW_A响应的ARP报文会刷新交换机的MAC地址表和主机的ARP缓存表,使主机发往外部网络的流量都被引导到FW_A上处理。
同理,路由器R1和R2到内部网络路由的下一跳地址被设置成了上行业务接口的IP地址10.0.1.1。外部网络发往内部网络的流量也被引导到FW_A上处理。
如下图所示,FW_A的上行业务接口故障时,FW_B切换为主用设备,业务接口会发送一次免费ARP报文。这个免费ARP报文会刷新交换机的MAC地址表、主机和路由器的ARP缓存表。内外部网络之间的流量都会被引导到FW_B上转发。后续两台FW收到ARP请求报文或业务报文时,只有FW_B会响应ARP请求或转发业务报文,FW_A会丢弃报文。
镜像模式管理接口
缺省情况下,镜像模式的备机除了MGMT管理接口和心跳接口,其他的接口是不能接收和发送报文的。但是部分场景下,备机是需要接收和发送报文的。例如,向日志服务器发送日志或者与网管服务器通信。此时,可以在备机上使用hrp mgt-interface命令指定镜像模式管理接口,使用这些接口发送日志、与网管服务器通信。
镜像模式管理接口和心跳接口、业务接口不能复用。即接口配置为镜像模式管理接口后,该接口及其子接口就不能作为心跳接口或业务接口使用。
心跳线与心跳接口
双机热备组网中,心跳线是两台FW交互消息了解对端状态以及备份配置命令和各种表项的通道。心跳线两端的接口通常被称之为“心跳接口”。
心跳线主要传递如下消息:
- 心跳报文(Hello报文):两台FW通过定期(默认周期为1秒)互相发送心跳报文检测对端设备是否存活。
- VGMP报文:了解对端设备的VGMP组的状态,确定本端和对端设备当前状态是否稳定,是否要进行故障切换。
- 配置和表项备份报文:用于两台FW同步配置命令和状态信息。
- 心跳链路探测报文:用于检测对端设备的心跳口能否正常接收本端设备的报文,确定是否有心跳接口可以使用。
- 配置一致性检查报文:用于检测两台FW的关键配置是否一致,如安全策略、NAT等。
上述报文均不受FW的安全策略控制。因此,不需要针对这些报文配置安全策略。
心跳线和心跳接口的配置建议
- 心跳接口的连线方式可以是直连,也可以通过交换机或路由器连接。建议心跳接口使用网线或者光纤直连。
- 建议规划专门的接口作为心跳接口,该接口只用来发送心跳报文、备份报文等双机热备功能相关的报文,不要将业务报文引导到该接口上转发。
- 建议将多个以太网接口绑定成Eth-Trunk接口,使用Eth-Trunk作为心跳接口。这样既提高了链路的可靠性,又可以增加备份通道的带宽。
- 心跳接口需要发送业务相关的表项备份报文,心跳接口的流量大小与业务流量大小有关。心跳接口的带宽建议不低于峰值业务流量的30%。
心跳线和心跳接口的配置注意事项
- MGMT接口(MEth0/0/0)不能作为心跳接口。
- 配置了vrrp virtual-mac enable命令的接口不能用作心跳接口。
- 两台FW心跳接口的类型、接口编号、链路协议类型必须相同。
- 两台FW心跳接口必须加入相同的安全区域。
- 如果FW上配置了虚拟系统,心跳接口不能是虚拟系统的接口,必须是根系统的接口。虚拟系统的配置命令和表项也能通过规划在根系统的心跳接口备份到对端设备。
- 接口MTU值小于1500的接口不能作为心跳接口。
说明
配置和表项备份报文的最大长度为1500字节,且报文不支持分片。如果心跳接口MTU值小于1500,会导致报文发送失败。
配置案例
如下图所示,两台FW的业务接口都工作在三层,上行连接路由器,下行连接二层交换机。FW与路由器之间运行OSPF协议。
现在希望两台FW以主备备份方式工作。正常情况下,流量通过FW_A转发。当FW_A出现故障时,流量通过FW_B转发,保证业务不中断。
操作步骤
1. 完成网络基本配置。
FW_A | FW_B |
配置FW各接口的IP地址。 | |
interface GigabitEthernet 0/0/1 ip address 10.2.0.1 24 quit interface GigabitEthernet 0/0/3 ip address 10.3.0.1 24 quit interface GigabitEthernet 0/0/7 ip address 10.10.0.1 24 quit | interface GigabitEthernet 0/0/1 ip address 10.2.1.1 24 quit interface GigabitEthernet 0/0/3 ip address 10.3.0.2 24 quit interface GigabitEthernet 0/0/7 ip address 10.10.0.2 24 quit |
将FW各接口加入相应的安全区域。 | |
firewall zone trust add interface GigabitEthernet 0/0/3 quit firewall zone dmz add interface GigabitEthernet 0/0/7 quit firewall zone untrust add interface GigabitEthernet 0/0/1 quit | firewall zone trust add interface GigabitEthernet 0/0/3 quit firewall zone dmz add interface GigabitEthernet 0/0/7 quit firewall zone untrust add interface GigabitEthernet 0/0/1 quit |
在FW上配置OSPF,保证路由可达。 | |
ospf 10 area 0 network 10.2.0.0 0.0.0.255 network 10.3.0.0 0.0.0.255 quit quit | ospf 10 area 0 network 10.2.1.0 0.0.0.255 network 10.3.0.0 0.0.0.255 quit quit |
2. 配置双机热备功能。
由于FW上行连接路由器,下行连接交换机,因此需要在FW上配置VGMP组监控上行接口,并在下行接口上配置VRRP备份组。
FW_A | FW_B |
在FW上配置VGMP组监控上行业务接口。 | |
hrp track interface GigabitEthernet 0/0/1 | hrp track interfaceGigabitEthernet 0/0/1 |
在FW_A下行业务接口GE0/0/3上配置VRRP备份组1,并将其状态设置为Active。在FW_B下行业务接口GE0/0/3上配置VRRP备份组1,并将其状态设置为Standby。 | |
interface GigabitEthernet 0/0/3 vrrp vrid 1 virtual-ip 10.3.0.3 active quit | interface GigabitEthernet 0/0/3 vrrp vrid 1 virtual-ip 10.3.0.3 standby quit |
在FW上配置根据VGMP状态调整OSPF Cost值功能。 | |
hrp adjust ospf-cost enable | hrp adjust ospf-cost enable |
在FW上指定心跳口并启用双机热备功能。 | |
hrp interface GigabitEthernet 0/0/7 remote 10.10.0.2 hrp enable | hrp interface GigabitEthernet 0/0/7 remote 10.10.0.1 hrp enable |
3. 在FW_A上配置安全策略。
双机热备状态成功建立后,FW_A的安全策略配置会自动备份到FW_B上。
配置安全策略,允许内网用户访问外网。
security-policy
rule name policy_sec1
source-zone trust
destination-zone untrust
source-address 10.3.0.0 24
action permit
quit
配置安全策略,允许FW与上行路由器(部署在untrust区域)交互OSPF报文。
rule name policy_sec2
source-zone local untrust
destination-zone local untrust
service ospf
action permit
quit
4. 配置路由器和交换机。
在路由器上配置OSPF,发布相邻网段,配置过程略。
在交换机上将三个接口加入同一个VLAN,配置过程略。
结果验证
- 在FW_A和FW_B上执行display vrrp命令,检查VRRP组内接口的状态信息,显示以下信息表示VRRP组建立成功。
- 在FW_A和FW_B上执行display hrp state verbose命令,检查当前VGMP组的状态,显示以下信息表示双机热备建立成功。