FortiGateを冗長構成にするとき、最初に検討するのがHA(High Availability)クラスターです。Active-Passive構成を組むことで、メイン機が障害を起こしたときでも数秒以内に自動フェイルオーバーし、ネットワークの継続性を確保できます。本記事では、HAの基本概念から実際のCLI設定手順、フェイルオーバーテストの方法まで、現場で使える情報を体系的に解説します。
以前、工場の基幹ネットワークを担当していたときのことです。深夜にFortiGate本体のストレージ障害が発生し、ネットワーク全断という事態になりました。HAクラスターを組んでいなかったため、復旧まで約2時間かかり、生産ラインに影響が出ました。それ以来、FortiGateを導入する案件では必ずHAクラスターの構成を提案するようにしています。フェイルオーバーを確認する手順まで含めて納品するのが今の私のスタンダードです。
FortiGate HAは、複数のFortiGateを1つのクラスターとして動作させる冗長化機能です。ハートビート(専用インターフェース)を通じてお互いの死活監視を行い、Primary機に障害が発生すると自動的にSecondary機がトラフィックを引き継ぎます。
FortiGate HAには主に2つのモードがあります。Active-Passive(A/P)はPrimary機だけがトラフィックを処理し、Secondary機はスタンバイ状態で待機するシンプルな構成です。一方のActive-Active(A/A)はセッションを両機で分散処理するため、スループット向上に効果的ですが、設定と管理が複雑になります。
図1: HAモード別の導入メリット比較
| 項目 | Active-Passive | Active-Active |
|---|---|---|
| 動作方式 | Primary機のみ処理 | 両機でセッション分散 |
| スループット | 1台分 | 最大2台分(理論値) |
| 設定難易度 | 低い(推奨) | 高い |
| 主な用途 | 一般企業・中規模拠点 | 大規模データセンター |
| フェイルオーバー | 数秒以内(自動) | 数秒以内(自動) |
HA設定を始める前に、以下の前提条件を必ず確認してください。モデルとファームウェアバージョンが一致していないとクラスターを形成できません。
HA構成には同一モデル・同一ファームウェアのFortiGateが2台必要です。ハートビート通信用に専用ポート(通常 port3 など)をクロスケーブルまたはスイッチ経由で接続します。管理用インターフェースはそれぞれ独立したIPアドレスを持つため、別途管理スイッチを用意することを推奨します。
| 確認項目 | 内容 | 備考 |
|---|---|---|
| モデル | 2台とも同一モデル | 必須 |
| ファームウェア | バージョン完全一致 | 必須 |
| ハートビートIF | 専用ポート(port3等) | 直接接続推奨 |
| ライセンス | 両機ともHA対応ライセンス | FortiCare必須 |
| 管理IPアドレス | 各機に個別IP(管理用) | 設定時に使用 |
CLIでのHA設定は両台それぞれに行います。Primary機とSecondary機で priority の値を変えることで役割を決定します。priority値が高い方がPrimaryになります。
FGT-01 # config system ha
FGT-01 (ha) # set mode a-p
FGT-01 (ha) # set group-name HA-CLUSTER-01
FGT-01 (ha) # set group-id 1
FGT-01 (ha) # set password P@ssw0rd-HA
FGT-01 (ha) # set priority 200
FGT-01 (ha) # set hbdev port3 50
FGT-01 (ha) # set session-pickup enable
FGT-01 (ha) # set session-pickup-connectionless enable
FGT-01 (ha) # set override enable
FGT-01 (ha) # endFGT-02 # config system ha
FGT-02 (ha) # set mode a-p
FGT-02 (ha) # set group-name HA-CLUSTER-01
FGT-02 (ha) # set group-id 1
FGT-02 (ha) # set password P@ssw0rd-HA
FGT-02 (ha) # set priority 100
FGT-02 (ha) # set hbdev port3 50
FGT-02 (ha) # set session-pickup enable
FGT-02 (ha) # set session-pickup-connectionless enable
FGT-02 (ha) # set override enable
FGT-02 (ha) # endgroup-name・group-id・password は両機で完全に一致させてください。一文字でも異なるとクラスターが形成されません。また、設定を投入すると即座にHA処理が開始され、ネットワークが一時的に断となる場合があります。メンテナンス時間帯に作業することを強く推奨します。
HA設定後は、クラスターが正常に形成されているかを必ず確認します。以下のコマンドで状態を把握できます。
FGT-01 # get system ha status
HA Health Status: OK
Model: FortiGate-100F
Mode: HA A-P
Group: HA-CLUSTER-01
Cluster Uptime: 1 days, 2:34:56
Primary: FGT-01, SN: FGVM0000000001
Secondary: FGT-02, SN: FGVM0000000002FGT-01 # diagnose sys ha showcsum
is_manage_master=1 is_root_master=1 HA master
global: 3a7f1c92 d8e4b215 ...
all: 92c4f5a1 ...
Master and slave checksums matchチェックサムが一致していれば、PrimaryからSecondaryへの設定同期が正常に完了しています。不一致の場合は execute ha synchronize start で強制同期を実行してください。
HAクラスターを構築したら、必ずフェイルオーバーテストを実施してください。実際の障害時に正常動作することを確認するためです。テストは以下の手順で進めます。
# 1. テスト前にクライアントからpingを継続実行しておく
# 2. CLIからフェイルオーバーを強制実行
FGT-01 # diagnose sys ha reset-uptime
# 3. 旧Secondary(FGT-02)がPrimaryに昇格したことを確認
FGT-02 # get system ha status
# Primary: FGT-02 と表示されればOK
# 4. インターネット疎通確認
FGT-02 # execute ping 8.8.8.8
# 5. 元Primary機(FGT-01)を起動し、Secondaryとして復帰することを確認図2: フェイルオーバー時の切り替え時間(実測値)
HAクラスター構成時でも、Secondary機に直接アクセスするための管理IPを設定できます。これがないと障害時にSecondary機の状態を直接確認できず、トラブルシューティングが困難になります。
FGT-01 # config system ha
FGT-01 (ha) # set ha-mgmt-status enable
FGT-01 (ha) # config ha-mgmt-interfaces
FGT-01 (ha-mgmt-interfaces) # edit 1
FGT-01 (ha-mgmt-interfaces) # set interface mgmt
FGT-01 (ha-mgmt-interfaces) # set dst 0.0.0.0/0.0.0.0
FGT-01 (ha-mgmt-interfaces) # set gateway 192.168.100.1
FGT-01 (ha-mgmt-interfaces) # next
FGT-01 (ha-mgmt-interfaces) # end
FGT-01 (ha) # end最も多い原因は group-name / group-id / password の不一致です。次に多いのがハートビートインターフェースの配線ミスやVLAN設定の相違です。diagnose debug application hatalk -1 でハートビート通信のデバッグログを確認してください。
FGT-01 # show system ha
FGT-01 # diagnose debug reset
FGT-01 # diagnose debug application hatalk -1
FGT-01 # diagnose debug enable
# 確認後
FGT-01 # diagnose debug disableスプリットブレインとは、両機がそれぞれPrimaryだと認識してしまう状態です。ハートビートケーブルの断線やスイッチ障害が引き金になります。この状態になると同一IPアドレスが2か所から発信されるため、ネットワークが混乱します。対処は片方の機器でHAを一時的に無効化し、ハートビートの物理接続を確認してから再設定します。
フェイルオーバー後にFortiGuard通信やライセンス認証が失敗するケースがあります。これはFortinetのライセンスサーバーへの登録情報がPrimary機に紐付いているためです。config system ha で ha-direct を有効にし、各機が直接インターネットへアクセスできる経路を確保することで解決できます。
FortiGate HAクラスター(Active-Passive)の構築は、設定自体はシンプルですが、事前の準備と事後確認が成功の鍵です。
設定のポイントは「両機のモデル・ファームが一致していること」「group-name・group-id・passwordが完全に一致していること」「ハートビートインターフェースが正しく接続されていること」の3点です。
設定後は必ず get system ha status と diagnose sys ha showcsum でクラスター形成と設定同期を確認し、フェイルオーバーテストまで実施して初めて納品・引き渡しとしましょう。HAは「構築した」だけでなく「動くことを確認した」が大切です。


