らぼめも*FortiのPrimary選出 | 小姐のブログ

小姐のブログ

何かしらネタがあれば何かしら書くと思います。
面白いことよりも面白くないことが書いてある可能性が高いです。
たまに賢しげにマニアックなことを書く事がありますが、
しょせん素人のブログなので許してやってください。

テーマ:

何回調べても忘れるのでメモ。
これはActive-Passive構成のHA設定がデフォルト(override disable)の場合の動作であって、
override enableに設定した場合はPriorityが高いものが常にPrimaryに選出される(と理解している)。

■FortigateのHA-Primary選出の仕組みについて
1から順に比較して、Primaryが選出された時点で処理が終了する。
1:モニターしているインターフェースのうちアップしているインターフェースが多いもの
2:1が同数の場合、age差を比較して5分以上の差がありage-timeが多いもの
3:2でage差が5分以内の場合Configで設定したPriorityの高いもの
4:3で勝負がつかない場合シリアルナンバーの大きいもの
※詳しくは本家サイト(英語)のDocument Liblary「FortiOS Handbook High Availability」に記載がある


1で比較されるモニター対象インターフェースは物理の場合はアップしている物理IFの数。
論理(LAGとかRedundant)の場合はアップしている論理IFの数。
つまり論理IFはアップしていればOK、メンバーポートの一部がダウンしていても問題無い。
3で比較されるPriorityはデフォルトが128、数値が大きい方がPriorityが高いと評価。

というわけで、Priorityが高く設定されている=必ずPrimaryになるとは限らない。
Primary固定の運用に慣れた人間にとっては少々とっつきにくい仕組みだが、
理解したらバタツキが少なくて安定動作する仕組みのような気もしてくる。

age-timeはuptimeとは別の概念というのがまた微妙にややこしい。
uptime(連続稼働時間)はget system performance statusで表示できる。
age-timeの確認方法はマニュアル読んでもわからない。
age-timeは通常の手段では確認できないという噂もあるので、
私はdiagnose sys ha dump-by all-vclusterで出力されるage差で確認している。
通常の手段でなければ確認可能なのだろうか?

age-timeはモニターインターフェースのダウンや機器再起動でリセットされる。
例えばPrimary機器がage-time10,000、Secondary機器がage-time5,000の時に
Primary機器のモニターインターフェースがダウンしたら、Primary機器のageは0(ゼロ)になる。
おのずとageに5,000の差がつくので、たとえPrimary機器のモニターインターフェースが復旧しても、この場合はSecondaryがPrimaryに昇格する。
手動切り替えを目的にage-timeをリセットするコマンドもあるので必要な時はやる。

*おことわり*
 ここに記載しているコマンドはすべての機種、Firmで発行できるとは限りません。
 上記コマンドはFG1000C(5.2.3)で確認したものです。