FortiGateを冗長構成にするとき、最初に検討するのがHA(High Availability)クラスターです。Active-Passive構成を組むことで、メイン機が障害を起こしたときでも数秒以内に自動フェイルオーバーし、ネットワークの継続性を確保できます。本記事では、HAの基本概念から実際のCLI設定手順、フェイルオーバーテストの方法まで、現場で使える情報を体系的に解説します。

現場での体験談

以前、工場の基幹ネットワークを担当していたときのことです。深夜にFortiGate本体のストレージ障害が発生し、ネットワーク全断という事態になりました。HAクラスターを組んでいなかったため、復旧まで約2時間かかり、生産ラインに影響が出ました。それ以来、FortiGateを導入する案件では必ずHAクラスターの構成を提案するようにしています。フェイルオーバーを確認する手順まで含めて納品するのが今の私のスタンダードです。

FortiGate HAとは

FortiGate HAは、複数のFortiGateを1つのクラスターとして動作させる冗長化機能です。ハートビート(専用インターフェース)を通じてお互いの死活監視を行い、Primary機に障害が発生すると自動的にSecondary機がトラフィックを引き継ぎます。

FortiGate HAには主に2つのモードがあります。Active-Passive(A/P)はPrimary機だけがトラフィックを処理し、Secondary機はスタンバイ状態で待機するシンプルな構成です。一方のActive-Active(A/A)はセッションを両機で分散処理するため、スループット向上に効果的ですが、設定と管理が複雑になります。

Active-PassiveとActive-Activeの比較

図1: HAモード別の導入メリット比較

A/P 設定の簡単さ
90%
A/A 設定の簡単さ
40%
A/P フェイルオーバー速度
85%
A/A スループット向上
80%
A/P 運用のしやすさ
92%
項目Active-PassiveActive-Active
動作方式Primary機のみ処理両機でセッション分散
スループット1台分最大2台分(理論値)
設定難易度低い(推奨)高い
主な用途一般企業・中規模拠点大規模データセンター
フェイルオーバー数秒以内(自動)数秒以内(自動)
HA設定前の確認事項

HA設定を始める前に、以下の前提条件を必ず確認してください。モデルとファームウェアバージョンが一致していないとクラスターを形成できません。

必要な機器と接続構成

HA構成には同一モデル・同一ファームウェアのFortiGateが2台必要です。ハートビート通信用に専用ポート(通常 port3 など)をクロスケーブルまたはスイッチ経由で接続します。管理用インターフェースはそれぞれ独立したIPアドレスを持つため、別途管理スイッチを用意することを推奨します。

事前に揃えるもの
確認項目内容備考
モデル2台とも同一モデル必須
ファームウェアバージョン完全一致必須
ハートビートIF専用ポート(port3等)直接接続推奨
ライセンス両機ともHA対応ライセンスFortiCare必須
管理IPアドレス各機に個別IP(管理用)設定時に使用
FortiGate HA設定手順(CLI)

CLIでのHA設定は両台それぞれに行います。Primary機とSecondary機で priority の値を変えることで役割を決定します。priority値が高い方がPrimaryになります。

Primary機(FGT-01)の設定
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) # end
Secondary機(FGT-02)の設定
FGT-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) # end
⚠ 注意

group-name・group-id・password は両機で完全に一致させてください。一文字でも異なるとクラスターが形成されません。また、設定を投入すると即座にHA処理が開始され、ネットワークが一時的に断となる場合があります。メンテナンス時間帯に作業することを強く推奨します。

HA状態の確認コマンド

HA設定後は、クラスターが正常に形成されているかを必ず確認します。以下のコマンドで状態を把握できます。

get system ha status
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: FGVM0000000002
diagnose sys ha showcsum(設定同期確認)
FGT-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: フェイルオーバー時の切り替え時間(実測値)

pingロスト(フェイルオーバー中)
3〜5秒
TCPセッション引継ぎ時間
5〜10秒
通常通信再開(ping復帰)
安定
旧Primary復帰後の再同期
30秒〜2分
管理IPの設定(HA管理インターフェース)

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は「構築した」だけでなく「動くことを確認した」が大切です。