作業環境
- 型番:FortiGate 60E
- ファームウェアバージョン:v6.2.4
FortiGate の HA コンフィグ
HA のコンフィグは以下のような構造。
config system ha
set ...
config ha-mgmt-interfaces
edit n
set ...
next
end
set ...
end
主な設定項目
show system ha
コマンドで表示される、一般的な設定項目は以下の通り。
※a-p モードの場合
FW01 (ha) # show
config system ha
set group-name "HA-Group"
set mode a-p
set password ENC eBv8svCbuM6rS8r+f19L07jt7VzO/EkqAfbfzXm6iIuWKi50qaFjjUjOkLQ4+zrYGe6ElHdF4lsBWyQLjylorZBZcT6RGXWB5Ox6jUwH/Z4gdrEkxqXUWdv2uj+8I4Fn955Vs3xwQ6OYIaKw+OPwhxri0yNOGdxktCRUCQQKhNKa7YWk6yEreXl+QbYUr0JaAGb9KA==
set hbdev "internal6" 200 "internal7" 100
set session-pickup enable
set ha-mgmt-status enable
config ha-mgmt-interfaces
edit 1
set interface "internal5"
set gateway 10.1.10.1
next
end
set override enable
set priority 200
set monitor "internal1" "wan2"
end
マスタ機の選出基準
HA メンバの中でどのメンバがマスタ機として選出されるか、という基準は以下の通り。
モニタポートととして設定されているインターフェスでアップとなっているインターフェース数がより多い
メンバをマスタとする。同数の場合は次の基準をチェックする。HAアップタイム (正常稼働時間) がより長い
メンバをマスタとする。差分が 5分以内の場合はHAアップタイムの基準は無視されて次の基準のチェックに移る。- ただし、HA 設定として
set override enable
が設定されている場合は、HAアップタイムのチェックについては無視されて、次のプライオリティに基づいてマスタが選出される
- ただし、HA 設定として
- 設定されている
プライオリティがより高い
メンバをマスタとする。同じ場合は次の基準をチェックする。 シリアル番号がより大きい
メンバをマスタとする
障害から復旧時に自動でフェイルバックさせる設定
- プライオリティの高いマスタ機にて障害が発生し、スレーブ機がマスタに切り替わった後、プライオリティの高いメンバが復旧した場合の動作を決める設定
set override
項目をenable
に設定すると、プライオリティの高いメンバが復旧した際に、プライオリティの高いメンバがマスタに自動で切り替わる
config system ha
set override enable
end
- 前項で記載している通り、
set override
はマスタ機の選出基準にも関係する set override enable
とした場合は、自動でフェイルバックする際にも一時的に通信断が発生することに注意set override
の設定はメンバ間で同期されない。set override
をenable
と設定する場合は、プライオリティの高いメンバで設定しないと意味がない
スレーブ(スタンバイ)機に管理アクセスするための設定
- HA を構成するとインターフェース設定が同期されるため、HA を構成していない場合と同じように FortiGate に管理アクセスすると常にマスタ機に接続されるようになる
「管理インターフェースの予約」を設定する
- スレーブ(スタンバイ)機に管理アクセスできるようにするためには、各メンバで
管理インターフェースの予約
設定を行う- 管理インターフェースとして設定したインターフェースについては、メンバ間で異なる IP アドレスを設定することができる
管理インターフェースの予約
設定に該当するコンフィグは以下の通り
config system ha
set ha-mgmt-status enable #管理インターフェースの有効化
config ha-mgmt-interfaces
edit 1
set interface "internal5" #管理インターフェースにするインターフェースの指定
set gateway 10.1.10.1 #管理インターフェースのデフォルトゲートウェイの指定
next
end
end
- IP アドレスが設定されているインターフェースは管理インターフェースとして指定できない
- 管理インターフェースとして指定した後で、そのインターフェースの設定で IP アドレスを設定する
インターフェースに management-ip を設定する
- HA を構成している状況下限定で、各インターフェースに対して通常の IP アドレス設定に加えて
management-ip
を設定することができる management-ip
にはメンバ別に異なる値を設定できるため、スレーブ機に管理アクセスするために使用できる- 該当するコンフィグの例は以下の通り
config system interface
edit "VLAN10"
set management-ip 10.1.10.100 255.255.255.0
next
end
- 管理インターフェースの予約設定の代替手段として使用することも可能だが以下の点に注意が必要
management-ip
はセカンダリ IP 同様にルーティングで使用されるmanagement-ip
と通常の IP とで別々にallowaccess
を設定することはできない
- 一般的には「管理インターフェースの予約」を設定するので、
management-ip
の使いどころはあまり思いつかない
SNMP と Syslog をメンバ別に送信するための設定
- HA 構成時にメンバ別に SNMP および Syslog 送信を行うためには管理インターフェースから送信させる設定を行う必要がある
- 「管理インターフェースの予約」設定をしておく必要がある
- 該当するコンフィグは以下の通り
config system ha
set ha-direct enable
end
ha-direct
をenable
に設定しようとすると以下の警告が表示されるので、必要に応じてログ関連のソース IP 設定を削除させる
When ha-direct is enabled, source ip may not work.
We recommend to unset all log-related, netflow and sflow source ip.
By selecting to continue, all source ip will be unset.
Do you want to continue? (y/n)
ha-directが有効になっていると、ソースIPが機能しない場合があります。
すべてのログ関連のネットフローおよびsflowソースIPの設定を解除することをお勧めします。
続行を選択すると、すべてのソースIPが設定解除されます。
続けたいですか? (はい/いいえ)
主な HA 関連コマンド
get system ha
HA の設定状況を表示。
FW01 # get system ha
group-id : 0
group-name : HA-Group
mode : a-p
sync-packet-balance : disable
password : *
hbdev : "internal6" 200 "internal7" 100
session-sync-dev :
route-ttl : 10
route-wait : 0
route-hold : 10
multicast-ttl : 600
sync-config : enable
encryption : disable
authentication : enable
hb-interval : 2
hb-lost-threshold : 6
hello-holddown : 20
gratuitous-arps : enable
arps : 5
arps-interval : 8
session-pickup : enable
session-pickup-connectionless: disable
session-pickup-expectation: disable
session-pickup-delay: disable
link-failed-signal : disable
uninterruptible-upgrade: enable
ha-mgmt-status : enable
ha-mgmt-interfaces:
== [ 1 ]
id: 1
ha-eth-type : 8890
hc-eth-type : 8891
l2ep-eth-type : 8893
ha-uptime-diff-margin: 300
vcluster2 : disable
vcluster-id : 1
override : enable
priority : 200
override-wait-time : 0
monitor : "internal1" "wan1"
pingserver-monitor-interface:
vdom : "root"
ha-direct : enable
ssd-failover : disable
memory-compatible-mode: disable
inter-cluster-session-sync: disable
logical-sn : disable
get system ha status
HA の状態を表示。
FW01 # get system ha status
HA Health Status: OK
Model: FortiGate-60E
Mode: HA A-P
Group: 0
Debug: 0
Cluster Uptime: 0 days 2:41:55
Cluster state change time: 2020-08-07 12:13:40
Master selected using:
<2020/08/07 12:13:40> FGT60ETKxxxxxxxx is selected as the master because it has the largest value of override priority.
<2020/08/07 11:52:10> FGT60ETKxxxxxxxx is selected as the master because it's the only member in the cluster.
ses_pickup: enable, ses_pickup_delay=disable
override: enable
Configuration Status:
FGT60ETKxxxxxxxx(updated 2 seconds ago): in-sync
FGT60ETKyyyyyyyy(updated 2 seconds ago): in-sync
System Usage stats:
FGT60ETKxxxxxxxx(updated 2 seconds ago):
sessions=71, average-cpu-user/nice/system/idle=0%/0%/0%/99%, memory=31%
FGT60ETKyyyyyyyy(updated 2 seconds ago):
sessions=27, average-cpu-user/nice/system/idle=0%/0%/0%/100%, memory=32%
HBDEV stats:
FGT60ETKxxxxxxxx(updated 2 seconds ago):
internal6: physical/1000auto, up, rx-bytes/packets/dropped/errors=22031628/66675/0/0, tx=39667019/70366/0/0
internal7: physical/1000auto, up, rx-bytes/packets/dropped/errors=18560694/46359/0/0, tx=18712447/45415/0/0
FGT60ETKyyyyyyyy(updated 2 seconds ago):
internal6: physical/1000auto, up, rx-bytes/packets/dropped/errors=38350647/67170/0/0, tx=20728120/62466/0/0
internal7: physical/1000auto, up, rx-bytes/packets/dropped/errors=17396561/42221/0/0, tx=17262772/42219/0/0
MONDEV stats:
FGT60ETKxxxxxxxx(updated 2 seconds ago):
internal1: physical/100auto, up, rx-bytes/packets/dropped/errors=27134716/142668/0/0, tx=88164022/134514/0/0
wan1: physical/100auto, up, rx-bytes/packets/dropped/errors=68478268/101399/0/0, tx=12222874/69742/0/0
FGT60ETKyyyyyyyy(updated 2 seconds ago):
internal1: physical/100auto, up, rx-bytes/packets/dropped/errors=3528048/35145/0/0, tx=0/0/0/0
wan1: physical/100auto, up, rx-bytes/packets/dropped/errors=1264451/3661/0/0, tx=88132/487/0/0
Master: FW01 , FGT60ETKxxxxxxxx, HA cluster index = 1
Slave : FW02 , FGT60ETKyyyyyyyy, HA cluster index = 0
number of vcluster: 1
vcluster 1: work 169.254.0.2
Master: FGT60ETKxxxxxxxx, HA operating index = 0
Slave : FGT60ETKyyyyyyyy, HA operating index = 1
diagnose sys ha reset-uptime
set override disable
が設定されている場合に、マスタ機を手動で切り替える際に使用する(マスタ機で実行する)。コマンド実行機器の HA アップタイムをリセットする。
その他留意点
- スレーブとする機器に、HA で同期されるコンフィグについてマスタ機と異なる設定(インターフェース設定、ポリシー設定など)が設定されていると、HA が構成できない可能性がある
- HA が構成できなかった場合は、一度スレーブ機側の設定を初期化して、再度 HA 設定(HA で同期されない項目の設定)を行った上でマスタ機と接続してみると上手くいく可能性がある
【参考】HA 関連コマンド一覧
get system ha 系
# get system ha
ha-mgmt-interfaces Reserve interfaces to manage individual cluster units.
status list ha status information
diagnose sys ha 系
# diagnose sys ha
stats statistics
status status
hactx-stats HA context statistics
mac Mac Information.
checksum checksum.
heartbeat Show kernel heartbeat stats.
dump-by Dump HA data by name.
fib FIB information.
hadiff HA diff debug.
reset-uptime Reset HA up time.
session-sync-dev Session sync ports.
standalone-peers Standalone peers on kernel.
recalculate-extfile-signature Recalculate external files signature in hasync daemon.
sync-stats Dump session sync statistics.
extfile-sig Dump extfile's signature.
vlan-hb-monitor Dump vlan heartbeat monitor list.
pingsvr-slave-force-reset Reset HA up time.
history Cluster history information.
hasync-stats hasync daemon stats.
hasync-conn-max-buf Set the hasync connection maximum buffer number.
【参考】HA の設定項目一覧
config system ha
階層のヘルプ (set ?) で表示される項目は以下の通り。
group-id Cluster group ID (0 - 255). Must be the same for all members.
group-name Cluster group name. Must be the same for all members.
mode HA mode. Must be the same for all members. FGSP requires standalone.
sync-packet-balance Enable/disable HA packet distribution to multiple CPUs.
password Cluster password. Must be the same for all members.
hbdev Heartbeat interfaces. Must be the same for all members.
session-sync-dev Offload session-sync process to kernel and sync sessions using connected interface(s) directly.
route-ttl TTL for primary unit routes (5 - 3600 sec). Increase to maintain active routes during failover.
route-wait Time to wait before sending new routes to the cluster (0 - 3600 sec).
route-hold Time to wait between routing table updates to the cluster (0 - 3600 sec).
multicast-ttl HA multicast TTL on master (5 - 3600 sec).
sync-config Enable/disable configuration synchronization.
encryption Enable/disable heartbeat message encryption.
authentication Enable/disable heartbeat message authentication.
hb-interval Time between sending heartbeat packets (1 - 20 (100*ms)). Increase to reduce false positives.
hb-lost-threshold Number of lost heartbeats to signal a failure (1 - 60). Increase to reduce false positives.
hello-holddown Time to wait before changing from hello to work state (5 - 300 sec).
gratuitous-arps Enable/disable gratuitous ARPs. Disable if link-failed-signal enabled.
arps Number of gratuitous ARPs (1 - 60). Lower to reduce traffic. Higher to reduce failover time.
arps-interval Time between gratuitous ARPs (1 - 20 sec). Lower to reduce failover time. Higher to reduce traffic.
session-pickup Enable/disable session pickup. Enabling it can reduce session down time when fail over happens.
session-pickup-connectionless Enable/disable UDP and ICMP session sync.
session-pickup-expectation Enable/disable session helper expectation session sync for FGSP.
session-pickup-delay Enable to sync sessions longer than 30 sec. Only longer lived sessions need to be synced.
link-failed-signal Enable to shut down all interfaces for 1 sec after a failover. Use if gratuitous ARPs do not update network.
uninterruptible-upgrade Enable to upgrade a cluster without blocking network traffic.
ha-mgmt-status Enable to reserve interfaces to manage individual cluster units.
ha-eth-type HA heartbeat packet Ethertype (4-digit hex).
hc-eth-type Transparent mode HA heartbeat packet Ethertype (4-digit hex).
l2ep-eth-type Telnet session HA heartbeat packet Ethertype (4-digit hex).
ha-uptime-diff-margin Normally you would only reduce this value for failover testing.
logical-sn Enable/disable usage of the logical serial number.
vcluster2 Enable/disable virtual cluster 2 for virtual clustering.
override Enable and increase the priority of the unit that should always be primary (master).
priority Increase the priority to select the primary unit (0 - 255).
override-wait-time Delay negotiating if override is enabled (0 - 3600 sec). Reduces how often the cluster negotiates.
monitor Interfaces to check for port monitoring (or link failure).
pingserver-monitor-interface Interfaces to check for remote IP monitoring.
vdom VDOMs in virtual cluster 1.
ha-direct Enable/disable using ha-mgmt interface for syslog, SNMP, remote authentication (RADIUS), FortiAnalyzer, and FortiSandbox.
ssd-failover Enable/disable automatic HA failover on SSD disk failure.
memory-compatible-mode Enable/disable memory compatible mode.
inter-cluster-session-sync Enable/disable synchronization of sessions among HA clusters.
config system ha
> ha-mgmt-interfaces
> edit
階層内のヘルプ (set ?) で表示される項目は以下の通り。
interface Interface to reserve for HA management.
dst Default route destination for reserved HA management interface.
gateway Default route gateway for reserved HA management interface.
gateway6 Default IPv6 gateway for reserved HA management interface.
参考資料
High Availability | Administration Guide
config system ha | CLI Reference
―――――――――――――