ASA5500 シリーズの冗長構成

Cisco ASA の HA 構成についてまとめておきます。 Version 7.2 についての話ですが、ドキュメントをパラパラと見る限りでは 8.x でも大きく変わることは無いと思います。

Cisco ASA の HA 構成は以下のような特徴を持っています。

  1. フェイルオーバー時に Active 機/Standby 機間で MAC アドレスと IP アドレスが入れ替わる
  2. 設定が HA 構成を組む2台の間で同期される
  3. Active/Standby 構成では preempt な設定は不可

それぞれ説明して行きますが、その前に Primary/Secondary という言葉と Active/Standby という言葉について説明しておきます。

Primary/Secondary
フェイルオーバーしても変化しない 1台めの ASA、2台めの ASA という絶対的な関係を表しています。

Active/Standby
稼働中/待機中という状態を表します。 フェイルオーバーすると Active/Standby が入れ替わります。

ここでは特に断りがなければシンプルな Active/Standby 構成 (シングルコンテキスト) を想定し、Primary = Active、Secondary = Standby となっているのが正常な状態とします。

1. フェイルオーバー時に Active 機/Standby 機間で MAC アドレスと IP アドレスが入れ替わる
この動きはかなり独特です。 例えば VRRP や HSRP では2台の機器それぞれのインターフェイスに実 IP アドレスを振って更に仮想 IP アドレスを1つ用意し、合計3アドレスを使う、というような構成にすることが多いと思います。 これに対し、ASA では Active 用のアドレスと Standby 用の2つのアドレスを用います。 そしてフェイルオーバーするとアドレスが入れ替わります。

例えば、Primary = Active の状態で Ethernet0/0 に下のように IP アドレスが割り当てられているとします。

unit status address
Primary Active 192.168.0.1
Secondary Standby 192.168.0.2

ここで、Primary 機に障害が生じてフェイルオーバーが起こるとアドレスの割り当ては以下のようになります。 この時、MAC アドレスも同時に入れ替わります。

unit status address
Primary Standby 192.168.0.2
Secondary Active 192.168.0.1

仮にこのアドレスを ICMP (ping) 監視していたとすると Primary 機がダウンしても Secondary 機がダウンしても 192.168.0.2 がダウンして見えるので、これだけではどちらがダウンしたのか判別できないので注意が必要です。

2. 設定が HA 構成を組む2台の間で同期される
最初に最低限の設定をそれぞれにしてしまえば、後は Primary/Secondary 間で設定が自動的に同期されます。 設定変更は Active なユニット (それは Secondary かも知れません) で行わなければならないので注意が必要です。 同期されない設定項目は以下のもので、それ以外は同期されます。

  • failover lan unit
  • firewall
  • mode

また、Active 側で copy running-config startup-config コマンドや write mem コマンドで設定をフラッシュメモリーに保存すれば Secondary 側でも保存されます。

ここでちょっと困るのがホスト名も同期されて同一のものになってしまうことです。 ホスト名で区別することはできませんが、prompt コマンドを使ってプロンプトに「priority」を設定しておくと Primary/Secondary を区別をプロンプトに表示することができ便利です。

3. Active/Standby 構成では preempt な設定は不可
つまり以下のような話です。

  • Primary 機が障害を起こして Secondary = Active とフェイルオーバーした。 その後 Primary 機を復旧させた時に自動的に Primary = Active と戻す設定はできない。
  • HA 構成を組んだ2台の ASA に電源投入して起動する際、Secondary 機が先に起動してしまうと、Primary 機の起動後も Secondary = Active のままとなる。

このような場合に Primary = Active に戻すためには Primary 機上で以下のコマンドを実行して手動で戻します。

failover active

これで Primary 機が Active となります。 telnet、ssh 等でリモートよりこれを実施する場合は Standby 用のアドレスへアクセスすることになりますので注意が必要です。


関連記事