【概要】
FortigateでHAを実現するプロトコルにFGCPというものがあり、ciscoでいうHSRP、GLBPみたいに、ゲートウェイを冗長化します
FGCPには
・Active(以下、Act)、Passive(ここではStandbyと同義 以下、Psv)構成の冗長化
・両Actで冗長化しつつ、ロードバランシング
といった冗長方式があるようです
今回は、平常時の通信はAct機を経由して行われ、Act機に障害が発生したらPsv機が通信を引き継ぐAct Psv構成の設定を行います
-使用機器-
・Fortigate 60 - firmware(FortiOS) ver 3.00
・Cisco1812J - IOS ver advipservice 12.4
・Catalyst3750G - IOS ipservice 12.2
-物理構成図-

-論理構成図-

【設定】
設定するのはFW1、FW2、R1です
SW1とSW2はただのL2スイッチなので何も設定しません
下記コンフィグの全機器投入は初期設定が前提となっております
初期設定ですので、Fortigateの、Operation ModeはNAT Mode(L3)です
R1
------------------------------
interface FastEthernet0
ip address 10.0.0.254 255.255.255.0
no shutdown
interface FastEthernet1
ip address 10.1.1.6 255.255.255.248
no shutdown
ip route 172.16.1.0 255.255.255.0 FastEthernet1
------------------------------
FW1
------------------------------
config system interface
edit "internal"
set ip 172.16.1.254 255.255.255.0
set status up
next
edit "wan1"
set ip 10.1.1.1 255.255.255.248
set status up
end
config system ha
set mode a-p
set password xxxx
set hbdev "internal" 4
set authentication enable
set override enable
set priority 120
end
config router static
edit 1
set device "wan1"
set distance 1
set dst 10.0.0.0 255.255.255.0
set gateway 10.1.1.6
end
------------------------------
config system interface
internal側とwan1側にipアドレスを設定しインターフェースをup
ipアドレスはha構成にすることで、Psv機にも共有される
config system ha
set mode a-p … ha構成時にAct機になるよう設定
set password xxxx … Act機とPsv機で共通のパスワードを設定
set hbdev "internal" 4 … FGCPを送信(ハートビートするパケットを送信)するデバイス、もとい、インターフェース
set authentication enable … HA構成機器間の認証にパスワードを使用する
set override enable …
enable(有効)にすることで、Actの選出条件がアップタイムよりもプライオリティを優先する
Act機が障害から復旧すればプライオリティの大きい機器がAct機になることから、
自動でフェールバックさせることが可能(enableはHSRPでいうpreemptの設定みたいなもの)
なお、overrideがdisable(無効)になっている場合のAct選出条件は
1.リンクアップしているモニタポートの多い機器
2.HAアップタイムの長い機器
3.HAのプライオリティの高い(数値が大きい)機器
4.シリアルNo.の大きい機器
だそうです
※一番下に参考にしたサイトを載せています
set priority 120 … haを構成する機器の中で最も大きい値がAct機になる 値は任意
なお、group-idをの設定を省略した場合、グループIDは「0」となります
config router static
set device "wan1" … パケットの送信元インターフェース
set distance 1 … アドミニストレーティブディスタンス値 staticなのでAD値を1にしてみました
set dst 10.0.0.0 255.255.255.0 … 宛先ネットワークアドレス
set gateway 10.1.1.6 … ネクストホップ
FW2
------------------------------
config system ha
set mode a-p
set password xxxx
set hbdev "internal" 4
set authentication enable
set override enable
set priority 100
end
------------------------------
デフォルトでAct機からinterface情報、routing-tableを共有する為、
ha構成時にPsv機になるよう設定をいれるだけです
passwordはAct機と同じ文字列にしてください
【説明】
上記パラメータ設定後の平常時の通信経路は下記のとおりです

ha設定の確認は下記コマンドで行えます
------------------------------
get system ha
------------------------------
ha構成のMaster(Act)、Slave(Psv)の確認は下記コマンドで行えます
------------------------------
get system ha status
------------------------------
表示結果は↓の通りです

get system ha
group-id … haを構成するグループid
mode … a-p - Act Psv
a-a - 両Act
standalone - haを使用しない
hbdev … FGCPを送信(ハートビートするパケットを送信)するデバイス、もとい、インターフェース
authentication … HA構成機器間の認証にパスワードを使用する
override enable … Act選出時の値にpriorityを最優先にするか否か
priority … Act選出時に使用される値
get system ha status
Mode … a-p - Act Psv
a-a - 両Act
standalone - haを使用しない
Group … haを構成するグループid
Master … Act機のホスト名とシリアルナンバー
Slave … Psv機のホスト名とシリアルナンバー
ルーティングテーブルの確認は下記コマンドで行えます
------------------------------
get router info routing-table details
------------------------------
FW1に何らかの障害がおきフェールオーバーが発生した場合、通信経路はFW2経由に切り替わります(下図はリンク障害)

その際に、FW2はFW1から通信に必要な情報(仮想IPアドレス、仮想MACアドレス、セッション情報など)を引き継ぎます
-障害発生、復旧について-
haの設定でoverrideを有効にしているので、FW1が障害から復旧すればPsvよりプライオリティ値が大きいAct経由の通信経路に切り戻ります
今回、CentOS5.7_1からwin7_1へpingを打ち続け、
障害は「FW1のinternal4からケーブルを抜線」
復旧は「FW1のinternal4にケーブルを結線」
を行い、障害による通信断時間、復旧による断時間は下記の通りでした
フェールオーバーによる通信断時間は9~11秒程度
フェールバックによる通信断時間は3秒程度
ステートフルインスペクションなどの設定が入るとどの程度変わるか分かりません
今後どうなるか試していきたいと思います
以上となります
参考サイト
マスター機復旧時のフェールバック可否について
マスター機の選定方法について