system ha
Use this command to configure the FortiWeb appliance to act as a member of a high availability (HA) cluster in order to improve availability.
By default, FortiWeb appliances are each a single, standalone appliance and operate independently.
If you have purchased more than one, however, you can configure multiple FortiWeb appliances in active-passive, standard active-active, or high volume active-active HA mode. This improves availability so that you can achieve 99.999% service level agreement (SLA) uptimes regardless of, for example, hardware failure or maintenance periods.
If you have multiple FortiWeb appliances but do not need failover, you can still synchronize the configuration. This can be useful for cloned network environments and externally load-balanced active-active HA. For details, see server-policy custom-application application-policy. |
Unless specially stated, the configurations of config system ha
can be automatically synchronized from master to slaves.
For more information on HA, including troubleshooting, failover behavior, synchronized data, and network topology, see the FortiWeb high availability (HA) section under Key Concepts chapter in FortiWeb Administration Guide:
https://docs.fortinet.com/fortiweb/admin-guides
To use this command, your administrator account’s access control profile must have either w
or rw
permission to the sysgrp
area. For details, see Permissions.
Syntax
config system ha
set mode {active-passive | active-active-standard | active-active-high-volume |standalone}
set group-name "<pair-name_str>"
set override {enable | disable}
set network-type {flat | udp-tunnel}
set tunnel-local "<tunnel-local_str>"
set tunnel-peer "<tunnel-peer_str>"
set hbdev-backup "<interface_name>"
set lacp-ha-slave {enable | disable}
set link-failed-signal {enable | disable}
set hb-interval <milliseconds_int>
set hb-lost-threshold <seconds_int>
set arps <arp_int>
set arp-interval <seconds_int>
set monitor {"<interface_name>" ...}
set ha-mgmt-status {enable | disable}
set ha-mgmt-interface "<interface_name>"
set schedule {ip | leastconnection | round-robin}le {ip | leastconnection | round-robin}
set session-sync-broadcast {enable | disable}
set session-sync-dev {"<interface_name>" ...}
set session-warm-up <seconds_int>
set session-pickup {enable | disable}
set persistence-sync {enable | disable}
set ha-eth-type <ha-eth-type_str>
set hc-eth-type <hc-eth-type_str>
set hbcast-eth-type <hbcast-eth-type_str>
set l2ep-eth-type <l2ep-eth-type_str>
set 17-persistence-sync {enable | disable}
set server-policy-hlck {enable | disable}
set encryption {enable | disable}
set key <passwd>
end
Variable | Description | Default |
mode {active-passive | active-active-standard | active-active-high-volume |standalone} |
Select one of the following:
Note: To avoid connectivity issues, do not use config system ha to remove an appliance from an HA cluster. Instead, use ha disconnect, which removes the appliance from the cluster and changes the HA mode to standalone. |
standalone
|
Enter a number that identifies the HA pair. Both members of the HA pair must have the same group ID. If you have more than one HA pair on the same network, each HA pair must have a different group ID. Changing the group ID changes the cluster’s virtual MAC address. The valid range is 0 to 63. |
0
|
|
Enter a name to identify the HA pair if you have more than one. This setting is optional, and does not affect HA function. The maximum length is 63 characters. |
No default. | |
Enter the priority of the appliance when electing the primary appliance in the HA pair. On standby devices, this setting can be reconfigured using the CLI command ha manage. This setting is optional. The smaller the number, the higher the priority. The valid range is 0 to 9. This setting can't be synchronized from master to slaves. You should configure it on each HA member. Note:
|
5
|
|
Enable to make priority <level_int> a more important factor than uptime when selecting the primary appliance. |
disable
|
|
Select the common HA mode flat or udp-tunnel mode on OpenStack platform. |
flat
|
|
Set the local IP address on OpenStack platform. Note: This setting can't be synchronized from master to slaves. You should configure it on each HA member. It's suggested to leave it with default value. |
No default. | |
Set the peer IP address on OpenStack platform. Note: This setting can't be synchronized from master to slaves. You should configure it on each HA member. It's suggested to leave it with default value. |
No default. | |
Select which port on this appliance that the main and standby appliances will use to send heartbeat signals and synchronization data between each other (i.e. the HA heartbeat link). The maximum length is 15 characters. Connect this port to the same port number on the other member of the HA cluster. (e.g., If you select At least one heartbeat interface must be selected on each appliance in the HA cluster. Ports that currently have an IP address assigned for other purposes (that is, virtual servers or bridges) cannot be re-used as a heartbeat link. At least one heartbeat interface must be selected on each appliance in the HA cluster. Ports that currently have an IP address assigned for other purposes (that is, virtual servers or bridges) cannot be re-used as a heartbeat link. Tip: If enough ports are available, you can select both a primary heartbeat interface and a secondary heartbeat interface (hbdev-backup "<interface_name>") on each appliance in the HA pair to provide heartbeat link redundancy. You cannot use the same port as both the primary and secondary heartbeat interface on the same appliance, as this is incompatible with the purpose of link redundancy. Note: If a switch is used to connect the heartbeat interfaces, the heartbeat interfaces must be reachable by Layer 2 multicast. |
No default. | |
Select a secondary, standby port on this appliance that the main and standby appliances will use to send heartbeat signals and synchronization data between each other (i.e. the HA heartbeat link). It must not be the same network interface as hbdev "<interface_name>". The maximum length is 15 characters. Connect this port to the same port number on the other member of the HA cluster. (e.g., If you select Ports that currently have an IP address assigned for other purposes (that is, virtual servers or bridges) cannot be re-used as a heartbeat link. |
No default. | |
Enable to provide support for 2 LACP interfaces, also known as "bridges," "V-zones," or "aggregated links." For more information about configuring bridges, see the FortiWeb Administration Guide: |
disable |
|
Enable to ensure that all equipment in the network detects the new primary unit in a cluster after a failover occurs. When a failover occurs in an HA active-passive cluster, the new primary unit broadcasts gratuitous ARP packets so that switches will refresh their MAC forwarding tables and detect the new primary unit. However, sometimes switches will not immediately detect a failover and refresh MAC forwarding tables to recognize a new primary unit. This command shuts down each interface (except for the heartbeat interfaces and reserve management interfaces) of the former primary unit for about a second so that any remaining equipment that did not automatically detect the failover will refresh their MAC forwarding tables and recognize the new primary unit, |
disable |
|
Enter the number of times that the FortiWeb appliance will broadcast address resolution protocol (ARP) packets (IPv4 environment) or Neighbor Solicitation (NS) packets (IPv6 environment) when it takes on the main role. Even though a new NIC has not actually been connected to the network, FortiWeb does this to notify the network that a different physical port has become associated with the IP address and virtual MAC of the HA pair. This is sometimes called “using gratuitous ARP packets to train the network,” and can occur when the main appliance is starting up, or during a failover. Also configure arp-interval <seconds_int>. Normally, you do not need to change this setting. Exceptions include:
The valid range is 1–16. |
10
|
|
Enter the number of seconds to wait between each broadcast of ARP/NS packets. Normally, you do not need to change this setting. Exceptions include:
The valid range is 1–20. |
3
|
|
Enter the number of 100-millisecond intervals to set the pause between each heartbeat packet that the one FortiWeb appliance sends to the other FortiWeb appliance in the HA pair. This is also the amount of time that a FortiWeb appliance waits before expecting to receive a heartbeat packet from the other appliance. This part of the configuration is synchronized between the active appliance and standby appliance. The valid range is 1–20 (that is, between 100 and 2,000 milliseconds). Note: Although this setting is synchronized between the main and standby appliances, you should initially configure both appliances with the same hb-interval <milliseconds_int> to prevent inadvertent failover from occurring before the initial synchronization. |
1
|
|
Enter the number of times one of HA appliances retries the heartbeat and waits to receive HA heartbeat packets from the other HA appliance before assuming that the other appliance has failed. This part of the configuration is synchronized between the main appliance and standby appliance. Normally, you do not need to change this setting. Exceptions include:
The valid range is 1–60. Note: Although this setting is synchronized between the main and standby appliances, you should initially configure both appliances with the same hb-lost-threshold <seconds_int> to prevent inadvertent failover from occurring before the initial synchronization. Note: You can use SNMP traps to notify you when a failover is occurring. For details, see system snmp community. |
3
|
|
Enter the name of one or more network interfaces that each directly correlate with a physical link. These ports will be monitored for link failure. Separate the name of each network interface with a space. To remove from or add to the list of monitored network interfaces, retype the entire list. Port monitoring (also called interface monitoring) monitors physical network ports to verify that they are functioning properly and linked to their networks. If the physical port fails or the cable becomes disconnected, a failover occurs. You can monitor physical interfaces, but not VLAN subinterfaces or 4-port switches. Note: To prevent an unintentional failover, do not configure port monitoring until you configure HA on both appliances in the HA pair, and have plugged in the cables to link the physical network ports that will be monitored. |
No default. | |
Enter the maximum number of seconds that a appliance will wait for a heartbeat or synchronization connection after the appliance returns online. If this limit is exceeded, the appliance will assume that the other unit is unresponsive, and assume the role of the main appliance. Due to the default heartbeat and synchronization intervals, as long as the HA pair are cabled directly together, the default value is usually sufficient. If the HA heartbeat link passes through other devices, such as routers and switches, however, a larger value may be needed. You may notice this especially when updating the firmware. The valid range is 1–100 seconds. |
30
|
|
Specifies whether the network interface you select provides administrative access to this appliance when it is a member of the HA cluster. When this option is selected, you can access the configuration for this cluster member using the IP address of the specified network interface. The interface configuration, including administrative access and other settings, is not synchronized with other cluster members. You can configure up to eight reserve management ports in each HA cluster. You cannot configure routing for the port you select. |
disable
|
|
Specifies the network interface that provides administrative access to this appliance when it is a member of the HA cluster. | No default. | |
Specifies the load-balancing algorithm used by the master appliance (in an active-active HA cluster) to distribute received traffic over the available cluster members.
Note that FortiWeb's Session Management is not supposed by the active-active HA deployment with the algorithm By connections or Round-robin being used for the load-balancing. Available only when mode {active-passive | active-active-standard | active-active-high-volume |standalone} is |
ip
|
|
Specifies whether the master appliance in an active-active HA cluster synchronizes sessions to others in broadcast. By default, session information is synchronized in unicast. Broadcast will be recommended if a active-active HA cluster contains many appliances. Available only when mode {active-passive | active-active-standard | active-active-high-volume |standalone} is |
disable
|
|
The master appliance use the heartbeat interface (hbdev "<interface_name>") to synchronize its session table to other appliances in an active-active HA cluster by default. However, you can use extra interfaces (up to four interfaces) for the session synchronization when the HA cluster is in heavy traffic. Specifies the network interface(s) of this FortiWeb appliance for session synchronizations. For example, typing Note:
|
No default. | |
Specifies the active-active HA warm-up time that the master appliance will hold traffic distribution to wait for the active-active HA negotiation (determine the master and slave, and necessary synchronizations) completes (when every time the active-active HA starts). Available only when mode {active-passive | active-active-standard | active-active-high-volume |standalone} is |
10
|
|
When the system ha algorithm is The master unit performs weighted round-robin according to the specified weight to distribute the first packet coming from the source IP to cluster members. The weight of each unit can be set with a range of 0–255. |
1 | |
When the The master unit performs weighted round-robin according to the specified weight to distribute the first packet coming from the source IP to cluster members. The weight of each unit can be set with a range of 0–255. |
1 | |
When the system ha algorithm is The master unit performs weighted round-robin according to the specified weight to distribute the first packet coming from the source IP to cluster members. The weight of each unit can be set with a range of 0–255. |
1 | |
When the system ha algorithm is The master unit performs weighted round-robin according to the specified weight to distribute the first packet coming from the source IP to cluster members. The weight of each unit can be set with a range of 0–255. |
1 | |
When the system ha algorithm is The master unit performs weighted round-robin according to the specified weight to distribute the first packet coming from the source IP to cluster members. The weight of each unit can be set with a range of 0–255. |
1 | |
When the system ha algorithm is The master unit perform weighted round-robin according to the specified weight to distribute the first packet coming from the source IP to cluster members. The weight of each unit can be set with a range of 0–255. |
1 | |
When the system ha algorithm is The master unit performs weighted round-robin according to the specified weight to distribute the first packet coming from the source IP to cluster members. The weight of each unit can be set with a range of 0–255. |
1 | |
When the system ha algorithm is The master unit performs weighted round-robin according to the specified weight to distribute the first packet coming from the source IP to cluster members. The weight of each unit can be set with a range of 0–255. |
1 | |
Enable so that the master unit in the HA cluster synchronizes the session table with all cluster units. If a cluster unit fails, the HA session table information is available to the remaining cluster units which can use the session table to resume connections without interruption. Enable for session fail-over protection. If this is not required, disabling may reduce CPU usage and reduce HA heartbeat network bandwidth usage. Note: Only sessions that have been established for longer than 30 seconds will be synchronized. |
disable |
|
Enable/disable the persistence synchronization. |
disable
|
|
Enter the elastic IP address for HA on AWS. |
No default. | |
Enter the ID of the elastic IP for HA on AWS. |
No default. | |
HA heartbeat packet Ethertype (4-digit hex). The range is 0x8890–0x889F. Note: This setting can't be synchronized from master to slaves. You should configure it on each HA member. It's suggested to leave it with default value. |
0x8890
|
|
Tuple session HA heartbeat packet Ethertype (4-digit hex). The range is 0x8890–0x889F. Note: This setting can't be synchronized from master to slaves. You should configure it on each HA member. It's suggested to leave it with default value. |
8891
|
|
Broadcast HA heartbeat packet Ethertype (4-digit hex). The range is 0x8890–0x889F. |
8893
|
|
Telnet session HA heartbeat packet Ethertype (4-digit hex). The range is 0x8890–0x889F. Note: This setting can't be synchronized from master to slaves. You should configure it on each HA member. It's suggested to leave it with default value. |
8894
|
|
When FortiWeb is operating in HA Active-Passive (AP) mode, you can enable Layer 7 Persistence Synchronization. This option enables session synchronization when there's a failover that causes the slave appliance to take over as the new master, and is useful for web applications that require sticky sessions. |
disable |
|
Enable to check the server policy health. |
disable
|
|
Enable to encrypt the heartbeat traffic between master and slaves. If you want to set an HA group, make sure the encryption status is the same across all members, otherwise the HA group can't successfully be built. |
|
|
Enter the password to encrypt the heartbeat traffic between master and slaves when they are in Federal Information Processing Standards (FIPS) mode or in non-FIPS mode with Note: This setting can't be synchronized from master to slaves. You should configure it on each HA member, and the password on all the members should be the same. It's suggested to leave it with default value. |
|
Example
This example configures a FortiWeb appliance as one appliance in an active-passive HA pair whose group ID is 1. The primary heartbeat occurs over port3, and the secondary heartbeat link is over port4. Priority is more important than uptime when electing the main appliance. The appliance will wait 30 seconds after boot time for a heartbeat or synchronization before assuming that it should be that main appliance. Aside from the heartbeat link, failover can also be triggered by port monitoring of port1 and port2.
config system ha
set mode active-passive
set group-id 1
set priority 6
set override enable
set hbdev port3
set hbdev-backup port4
set arps 3
set arp-interval 2
set hb-interval 1
set hb-lost-threshold 3
set monitor port1 port2
set boot-time 30
end