一、FortiGate HA

HA(High Availability,高可用)通过一组FortiGate提供透明的冗余处理能力,从而实现不间断应用的目标。FortiGate想要使用HA就需要满足硬件型号相同、软件版本相同、内存容量相同、CPU型号相同、硬盘容量相同,否则会出现无法同步的情况。

二、HA工作模式

FortiGate的HA工作模式有两种,AP模式和AA模式。AP模式和AA模式的区别:

  • AP模式:主备模式;主设备负责所有通信会话的处理,从设备会自动同步主设备的配置,并监控主设备的运行状态。

  • AA模式:主主模式;主设备负责所有通信会话的处理,然后将部分负载分发到所有的从设备上。从设备处理UTM的相关会话,但是只会处理由主设备分配的数据,不会响应ARP等。

主从设备需要处理协议识别、病毒扫描、IPS、网页过滤、邮件过滤、数据防泄漏、应用程序控制、VoIP内容扫描、协议保护(HTTP、HTTPS、FTP、IMAP、IMAPS、POP3、SMTP、SMTPS、IM、NNTP、SIP、SIMPLE、SCCP)、协议控制等,通过对以上内容的负载分担,AA模式可以提供更高的UTM性能。

5.0版本后的FGT,支持单机配置同步、单机会话同步模式(FGSP),在一些应用场景中可以代替HA功能,实现控制异步流量的目的。

三、HA选举

FortiGate HA选举参数和其他厂商不太相同。选举参数的优先级遵循:有效监控接口数>HA有效运行时间>HA优先级>序列号。

  • 有效监控接口数:一般监控业务接口,业务接口在线数量多的为主。链路故障切换功能的目的就是要保证具有最多有效端口,最少故障点的那台设备成为主设备。

  • HA有效运行时间:并非上电运行时间,而是按上一次设备出现故障以来所正常运行的时间。设备重启接口失效后设备的age复位为0。

  • HA优先级:手动设置设备优先级,大的为主设备。

  • 序列号:前面三个参数都比不出来主从,那么就需要按照序列号的大小来比,大的是主设备。

Override参数影响选举参数的优先级顺序:有效监控接口数>HA优先级>HA有效运行时间>序列号。一般不建议开启override,默认override disabled

config system ha
  set override enable
  end

四、HA同步

FGCP协议用联合的增量同步和周期性同步去确保所有HA Cluster中的成员与主设备的配置一致,下面的配置不会在cluster成员中同步:主机名、GUI仪表盘中的微件、HA override、HA priority、cluster priority、HA pingserver、HA专用管理接口的配置、HA专用管理接口下的路由配置、订阅服务&授权。

FGCP通过心跳接口并使用TCP 703和UDP 703传输所有同步数据。

主备墙的登录切换:execute ha manage

某项目中做完HA后,发现某时刻HA显示HA out of sync。正常情况下,HA建立后其主备墙的checksums输出应当是一致的,如果不一致可以使用exeucte ha synchronize start进行强制同步。但是本案例中checksums一致,但是仍然报HA out of sync,后来通过debug进行诊断后发现版本bug,主备机所有配置都是同步的,除了user.fortitoken,备机周期性的尝试更新user.fortitoken,因此导致了某时刻HA显示HA out of sync,该问题不影响防火墙的HA以及正常流量转发,该问题在7.2.5得到修复。

五、HA最佳实践

1、FGCP实践环境

2、物理环境准备

FGCP最佳实践物理环境准备:

  • 两台FGT组网

  • FGT模式为NAT

  • FGT物理链路:

    • 两根电口心跳线

    • 上联光纤链路,连接至交换机

    • 下联光纤链路,连接至交换机

  • FGT HA模式为AP

3、HA参数释义

配置HA前,对HA需要配置的参数进行解释:

  • Mode:

    • Standalone:单机部署

    • Active-Passive:主备部署

    • Active-Active:主主部署

  • Device priority:设备优先级;用于HA选举

  • Cluster Settings:这点和其他厂商不同,其他厂商HA需要配置IP地址后才会构建HA。而FortiGate是通过Group ID、Group name、Group Password进行识别和构建HA的,三个参数在主机和备机上需要配置成相同的值。HA构建完成后修改主机上的Group ID、Group name、Group Password会自动同步到备机。

  • Session Pickup:会话交接/会话同步;主备墙之间的实施会话同步功能,HA切换时不会因为流量切换而导致会话重新建立。

  • Monitor interfaces:监控接口;用于HA选举和切换依据之一,一般用于监控业务上下行链路。

  • Heartheat interfaces:心跳接口;默认FGT 400、600这种的都会自带一个HA接口,但是为了HA的冗余性和稳定,建议HA+任意电口作为心跳接口。

4、FGCP HA配置

Step1. 配置第一台FGT的HA

Step2. 配置第二台FGT的HA

FGT在进行HA构建时,会短暂失去连接,这是因为HA协商过程中会改变防火墙接口的MAC地址。HA构建完成后,两台FGT的配置会进行同步,同时也只能登录主防火墙,备防火墙没有管理地址,后续的修改操作仅需要对主墙进行操作,包括IP地址、策略等,配置会自动同步至备墙(如果需要登录备墙,建议设置独立管理VDOM)。

FGT构建完成HA后,会在Web界面显示Synchronized。可以通过get system ha status在CLI界面查看HA状态。

Step3. 配置链路探测

为了避免端口假死,建议配置链路探测。链路探测通过定期发送ping包来判断链路是否可用,如果不可用,那么FGT中的路由将会不加表。但是HA并不会切换,如果链路探测失败作为HA切换的条件则需要在HA中新增一些配置。

config system link-monitor
    edit "wan1"
        set srcintf "wan1"
        set server "192.168.1.254"
        set failtime 3
        set ha-priority 5
    next
end
config system ha
    set pingserver-monitor-interface wan1 
    set pingserver-failover-threshold 0  
    set pingserver-flip-timeout 60