はじめに
ネットワークのダウンタイムは、ビジネスに多大な影響を与える可能性があります。そこで注目されるのが High Availability(以下、HA)です。本記事では、FortiGate での HA の基本概念、および設定方法について紹介します。
HA の役割
- セキュリティの維持:
FortiGate デバイスは、通常、ネットワークのセキュリティを担当します。HAが有効になっていると、主要なセキュリティ機能がダウンするリスクが低減します。
- クラスタリングと負荷分散:
FortiGate は Active-Active または Active-Passive のクラスタリングをサポートし、これにより、負荷を分散させながら冗長性を確保できます。
- セッションと状態の同期:
HA 設定では、セッション情報とデバイスの状態がリアルタイムで同期されるため、フェイルオーバーが発生しても通信は途切れることなく続行されます。
- 管理の簡素化:
HA を設定することで、デバイスの管理が一元化され、設定の変更やアップデートが効率的に行えます。
HA とは
HA は、システムが持続的に稼働するように設計された可用性の高いインフラストラクチャを指します。簡単に言えば、システムがダウンする時間を最小限に抑えるための設計手法の一つです。
HA のコンセプト:
- 冗長性:
主要なシステム・コンポーネントが故障した場合でも、代わりの(冗長な)コンポーネントによってシステムが稼働し続けることを指します。
- 負荷分散:
負荷分散は、入ってくるトラフィックやリクエストを複数のサーバーやリソースに均等に分散する手法です。手法としては、DNS ラウンドロビンやロードバランサーなどがあり、これにより単一のポイントでの障害が全体の可用性に影響を与えるリスクが減少します。
- フェイルオーバー:
主要なコンポーネントやサービスが故障した場合に、自動的に予備のコンポーネントやサービスに切り替える仕組みです。システムは故障を自動的に検出し、必要に応じて手動での切り替えも可能です。
- モニタリングとヘルスチェック:
システムの健全性を継続的に監視し、問題が発生した場合には速やかに対応します。これには多くのツール(SNMP, Syslog, カスタムスクリプトなど)が用いられ、問題が検出された場合にはメールや SMS、ダッシュボードを通じて警告が発生します。
Active-Active と Active-Passive の違い:
項目 | Active-Active | Active-Passive |
モードの特性 | すべてのデバイスがアクティブ | 一方のデバイスがアクティブ、もう一方がパッシブ(待機) |
リクエスト処理 | リクエストを同時に処理 | アクティブなデバイスがダウンした場合にのみ、パッシブなデバイスがアクティブに |
負荷分散 | 負荷分散が行いやすい | 負荷分散は一方のデバイスに依存 |
スループット | 高いスループットを達成可能 | 一方のデバイスが処理するため、スループットが限定される可能性あり |
状態同期 | セッション情報や状態が各デバイス間で同期が必要 | 状態同期の必要が少ないもしくはない |
設定の複雑性 | 複数のデバイスがアクティブなため、設定が複雑になる可能性がある | シンプルな設定が可能 |
リソース利用 | すべてのデバイスがアクティブなため、リソースを効率的に利用 | すべてのリソースが常に有効活用されるわけではない |
HA 設定例
最もよく利用される Active-Passive の設定例です。
config system ha
set group-name "fw-ha"
set mode a-p
set hbdev "wan2" 0
set override disable
set priority 200
set monitor "internal1" "wan1"
set ha-mgmt-status enable
set ha-mgmt-interface "mgmt"
end
config system ha
set group-name "fw-ha"
set mode a-p
set hbdev "wan2" 0
set override disable
set priority 100
set monitor "internal1" "wan1"
set ha-mgmt-status enable
set ha-mgmt-interface "mgmt"
end
コマンドの解説
config system ha
コマンドを実行して、set
コマンドでパラメータを指定します。
config system ha
set group-name
コマンドで、任意の Group 名(本例では fw-ha
)を設定します
set group-name "fw-ha"
set mode
コマンドで、冗長方式(本例では Active-Passive)を指定します。
set mode a-p
set hbdev
コマンドで、HeartBeat を流すインターフェース(本例では wan2)を指定します。
set hbdev "wan2" 0
set override
コマンドで、自動切り戻しを有効にするか指定します。disable を指定すると自動切り戻しは無効にとなります。
set override disable
set priority
コマンドで、プライマリ / バックアップを指定します。数値が大きい方がアクティブとなります。詳細については、以下「HA のプライマリ選択プロセス」を参照ください。
set priority 200
set monitor
コマンドで、監視するポートを指定します。監視ポーで障害発生時は、アクティブ / パッシブが切り替わります。
set monitor "internal1" "wan1"
set ha-mgmt-status
コマンドで、HA の管理設定を指定します。enable を指定すると有効になります。
set ha-mgmt-status enable
set ha-mgmt-interface
コマンドで、HA 構成図に各ノードを管理するインターフェースを指定します。
set ha-mgmt-interface "mgmt"
確認コマンド
設定内容の確認
設定の内容を確認するには、show system ha
コマンドを実行します。
show system ha
HA の状態確認
HA の状態を確認するには、get system ha status
コマンドを実行します。
get system ha status
HA のプライマリ選択プロセス
HA 構成時のプライマリは以下に基づいて選定されます。
自動切り戻しが無効の場合(set override disable):
- モニタポートの接続(up)数が多いノード
- スレーブ側の age time(稼働時間)が設定値(デフォルト5分)より長い場合は現状維持、短い場合は ➂ へ
- デバイスのプライオリティが大きいノード
- シリアル番号が大きいノード
自動切り戻しが有効の場合(set override enable):
- モニタポートの接続(up)数が多いノード
- デバイスのプライオリティが大きいノード
- スレーブ側の age time(稼働時間)が設定値(デフォルト5分)より長い場合は現状維持、短い場合は ➃ へ
- シリアル番号が大きいノード
age time について:
- マスター側の age time は常に0、スレーブ側がカウントされる。
- age time の設定は、
config system ha
のha-uptime-diff-margin
で行う。 - age time の設定値との差分は、
diagnose sys ha dump-by all-vcluster
で確認できる。
以上
はじめに FortiGate は、フォーティネット(Fortinet,Inc.)が開発した統合脅威管理(UTM)アプライアンスです。次のような非常に多様な防御機能を持ち、単体で多層防御に対応します。 ステートフルインスペク[…]