Fortigateで手動フェイルオーバー/フェイルバックさせるときに知っておきたいこと

FortigateのHAネゴシエーションを正しく知っておくと手動でフェイルオーバー/フェイルバックさせるときにトラブらないでしょう。

FortigateのHAネゴシエーション

FortigateはMaster機に障害が発生した場合、モニターポートで障害が発生した場合、あるいはモニターポートが切断された場合にHAネゴシエーションを開始します。

FortigateのデフォルトHA設定では「set override disable」となっていて自動切り戻しが無効です。デフォルト設定の場合、以下のような流れでMasterとSlaveを選出します。

Fortigate HA ネゴシエーション

HAネゴシエーションで知っておくべきこと

  • Master選出の流れは「UPしているモニター対象ポート数」→「Ageタイマー」→「プライオリティ値」→「シリアル番号」
  • Ageタイマーの差が300秒未満の場合はスキップする(重要)
  • モニター対象ポートで障害が発生するたびにAgeタイマーが0にリセットされる
  • 機器が起動するたびにAgeタイマーが0にリセットされる

手動フェイルオーバー/フェイルバック

サポートに手動フェイルオーバー/フェイルバックの方法を問い合わせると「diagnose sys ha reset-uptime」というコマンドを案内されるかと思います。

この方法で注意する必要があるのはフェイルオーバーとフェイルバックを繰り返す場合はAgeタイマーの差が300秒未満だとスキップする点です。

そういった場合はプライオリティ値でMaster/Slaveを選出させる必要があります。

Ageタイマーの確認方法

Ageタイマーの確認は「diagnose sys ha dump-by all-vcluster」で確認できます。

新しいバージョンであればdiagnose sys ha dump-by vclusterで確認できます。

バージョンによってコマンドの出力結果が異なるのですが、手元の60C(5.2)だと次のような出力になります。

forti1 # diagnose sys ha dump-by all-vcluster
            HA information.
vcluster id=1, nventry=2, state=work, digest=2.da.e2.2c.bf.b...
ventry idx=0,id=1,FGT60C3G12036146,prio=128,0,claimed=0,override=0,flag=0x01,time=0,mon=0
     mondev=wan1,50
ventry idx=1,id=1,FGT60C3G12046647,prio=100,0,claimed=0,override=0,flag=0x00,time=190,mon=0

forti1 #

上記の例では「time=190」という箇所がAgeタイマーの差分です。300未満なのでMaster選出の際はこの値がスキップされます。

Ageタイマーが300を超えていれば問題ないのですが、上記の例のように300未満の場合はHAを組んでから300秒以上経過していないとAgeタイマーの差が300未満のためフェイルオーバー/フェイルバックに失敗します。

うまくHAが切り替わらない場合はAgeタイマーをチェックしてみてください。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)