- RSS フィードを購読する
- 新着としてマーク
- 既読としてマーク
- ブックマーク
- 購読
- 印刷用ページ
- 不適切なコンテンツを報告
2020-03-02
01:57 PM
- 最終編集日:
2023-12-21
09:08 AM
、編集者:
JapanTAC_CSC
はじめに
ASAの Active/Active 冗長構成では各筐体の 2つ の failover ペア(group 1 と group 2)がお互いの監視を行っており、問題を検知時に failover group 単位で切り替わり(failover)などが発生します。Active/Active 冗長構成はシステムの信頼性を高めた上、システムの負荷分散のメリットもあります。
本ドキュメントでは、ASA Active/Active 冗長機能の説明、及び、Active/Active Failoverの構成・設定例とその動作確認について、実例を交え紹介します。
本ドキュメントは、ASA5555 バージョン 9.12(1) にて確認、作成をしております。
ASA Active/Active 冗長機能の仕組み
Active/Active failover はマルチコンテキストのみをサポートし、各コンテキストは手動で ASA の failover group 1 と failover group 2 に配属されます。Admin コンテキストはデフォルトで failover group 1に配属されます。2台の筐体(ユニット)で、同じ failover group が 1つ の failover ペアとして、冗長機能を実現します。各 failover ペアの動作は基本的に Active/Standby failover の動作と同じであり、詳しくはASA: 冗長機能と、Failoverのトリガー、Health Monitoringについてを参照ください。Active/Active failover には筐体の Role(Primary or Secondary)と failover group の Role(Primary or Secondary)がそれぞれに存在しており、これらの Role の情報が手動で予め設定されて、failover ステータス(Active or Standby)の選択に利用されます。
Active/Active failover 構成のイメージは以下の通りです。Admin Context は基本 筐体の管理通信の処理用の特別なコンテキストです。
Active/Active failover は以下の組み合わせで動作することが可能です。
- 組み合わせ1の通信例:
- Primary Unit : Group 1 = Active , Group 2 = Standby
- Secondary Unit : Group 1 = Standby , Group 2 = Active
- 組み合わせ2の通信例:
- Primary Unit : Group 1 = Active , Group 2 = Active
- Secondary Unit : Group 1 = Standby , Group 2 = Standby
- 組み合わせ3の通信例:
- Primary Unit : Group 1 = Standby, Group 2 = Active
- Secondary Unit : Group 1 = Active, Group 2 = Standby
- 組み合わせ4の通信例:
- Primary Unit : Group 1 = Standby, Group 2 = Standby
- Secondary Unit : Group 1 = Active, Group 2 = Active
Active/Standby の選択ルール
Active/Active failover においては、下記のルールを持って、各 failover group の ステータス(active/standby)が決まります。
- 両機器が同時に起動したように見える場合でも、一方のユニットが最初にアクティブになります。
- preemptの時間を経つ場合に、装置の Role(Primary/Secondary)と failover group の Role(Primary/Secondary)が同じ failover group に対して、優先的に Active になります。
- failover event(機器障害など)により、failover の切り替えが発生した場合に、Actice/Standby failover と同じように failover group の ステータスが変更されます。
- 手動でフェールオーバーする場合に、preempt の機能が効きません。
以下は「両機器が同時に起動*1 → preemptの時間を経つ*2 → Primary 機器障害発生(Failoverのトリガー)*3 → Primary 機器の障害が復帰してから preempt の時間を経つ*4 → 手動で failover 切り替え*5」のステータス遷移の例です。
※Failoverのトリガー、及び、Health Monitoringの詳細については、ASA: 冗長機能と、Failoverのトリガー、Health Monitoringについてを参照してください。
1. 両機器が同時に起動した後の failover group のステータス:
※ステータスA:
2. ステータスAから、30秒(preemptの時間)を経った後のステータス:
※ステータスB:
3. Primary 機器に障害(failover group 1 の Interface Down や HW障害など)が発生した後のステータス:
※ステータスC:
4. Primary 機器の障害が復帰してから、30秒(preemptの時間)を経った後のステータス:
※ステータスD:
5. Primary Unitで手動で failover group 2 を Active に設定した後のステータス:
※ステータスE:
構成例
本ドキュメントは、以下の構成で、設定・動作確認例を紹介します。
ロジック構成図:
物理構成図:
設定例
1. Primary機器側の failover 設定(Primary Unit -- system コンテキストで実施する)
failover lan unit primary failover lan interface fover GigabitEthernet0/2 failover link fover_link GigabitEthernet0/3 failover interface ip fover 192.168.240.254 255.255.255.0 standby 192.168.240.253 failover interface ip fover_link 192.168.250.254 255.255.255.0 standby 192.168.250.253 failover group 1 <---- デフォルトで primary
preempt 30 failover group 2 secondary
preempt 30 failover
2. 子コンテキストの failover group の設定(Primary Unit -- system コンテキストで実施する)
admin-context admin context admin allocate-interface Management0/0 config-url disk0:/admin.cfg ! <---- admin がデフォルトで group 1に追加される context con1 allocate-interface GigabitEthernet0/0 allocate-interface GigabitEthernet0/1 config-url disk0:/con1.cfg join-failover-group 1 <---- con1 コンテキストを group 1に追加する ! context con2 allocate-interface GigabitEthernet0/4 allocate-interface GigabitEthernet0/5 config-url disk0:/con2.cfg join-failover-group 2 <---- con2 コンテキストを group 2に追加する
3. con1 コンテキストの Interface IP の設定(Primary Unit -- con1 コンテキストで実施する)
ciscoasa/pri/act(config)# changeto context con1 ciscoasa/pri/act(config)# interface GigabitEthernet0/0 ciscoasa/pri/act(config-if)# nameif con1-inside ciscoasa/pri/act(config-if)# ip address 192.168.10.254 255.255.255.0 standby 192.168.10.253 ciscoasa/pri/act(config-if)# security-level 100 ciscoasa/pri/act(config-if)# no shutdown ciscoasa/pri/act(config-if)# interface GigabitEthernet0/1 ciscoasa/pri/act(config-if)# nameif con1-outside ciscoasa/pri/act(config-if)# ip address 192.168.20.254 255.255.255.0 standby 192.168.20.253 ciscoasa/pri/act(config-if)# no shutdown
4. con2 コンテキストの Interface IP の設定(Primary Unit -- con2 コンテキストで実施する)
ciscoasa/pri/act(config)# changeto context con2 ciscoasa/pri/act(config)# interface GigabitEthernet0/4 ciscoasa/pri/act(config-if)# nameif con2-inside ciscoasa/pri/act(config-if)# ip address 192.168.30.254 255.255.255.0 standby 192.168.30.253 ciscoasa/pri/act(config-if)# security-level 100 ciscoasa/pri/act(config-if)# no shutdown ciscoasa/pri/act(config-if)# interface GigabitEthernet0/5 ciscoasa/pri/act(config-if)# nameif con2-outside ciscoasa/pri/act(config-if)# ip address 192.168.40.254 255.255.255.0 standby 192.168.40.253 ciscoasa/pri/act(config-if)# no shutdown
5. Secondary機器側の failover 設定(Secondary Unit -- system コンテキストで実施する)
failover lan unit secondary failover lan interface fover GigabitEthernet0/2 failover link fover_link GigabitEthernet0/3 failover interface ip fover 192.168.240.254 255.255.255.0 standby 192.168.240.253 failover interface ip fover_link 192.168.250.254 255.255.255.0 standby 192.168.250.253
6. Secondary機器側で failover コマンドの実施(Secondary Unit -- system コンテキストで実施する)
ciscoasa(config)# failover
7. failover 同期が正常にできた後、failover状況の確認(Secondary Unit -- system コンテキストで実施する)
ciscoasa/sec/stby(config)# show failover Failover On Failover unit Secondary Failover LAN Interface: fover GigabitEthernet0/2 (up) Reconnect timeout 0:00:00 Unit Poll frequency 1 seconds, holdtime 15 seconds Interface Poll frequency 5 seconds, holdtime 25 seconds Interface Policy 1 Monitored Interfaces 5 of 516 maximum MAC Address Move Notification Interval not set Version: Ours 9.12(1), Mate 9.12(1) Serial Number: Ours FCH1723JVYE, Mate FCH1723JVY8 Group 1 last failover at: 09:34:42 JST Jan 8 2020 Group 2 last failover at: 09:34:42 JST Jan 8 2020 This host: Secondary <---- Secondary Unit の group1 と group2 が Standby ステータスとなる Group 1 State: Standby Ready Active time: 0 (sec) Group 2 State: Standby Ready Active time: 0 (sec) slot 0: ASA5555 hw/sw rev (1.0/9.12(1)) status (Up Sys) admin Interface management (1.170.0.61): Normal (Monitored) con1 Interface con1-inside (192.168.10.253): Normal (Monitored) con1 Interface con1-outside (192.168.20.253): Normal (Monitored) con2 Interface con2-inside (192.168.30.253): Normal (Monitored) con2 Interface con2-outside (192.168.40.253): Normal (Monitored) Other host: Primary <---- Primary Unit の group1 と group2 が Active ステータスとなる Group 1 State: Active Active time: 601 (sec) Group 2 State: Active Active time: 601 (sec) slot 0: ASA5555 hw/sw rev (1.0/9.12(1)) status (Up Sys) admin Interface management (1.170.0.60): Normal (Monitored) con1 Interface con1-inside (192.168.10.254): Normal (Monitored) con1 Interface con1-outside (192.168.20.254): Normal (Monitored) con2 Interface con2-inside (192.168.30.254): Normal (Monitored) con2 Interface con2-outside (192.168.40.254): Normal (Monitored)
8. failover 構成が正しく構築できた後、負荷分担のため、failover group 2 を手動での切り替えを実施します。(Primary Unit -- system コンテキストで実施する)※「8.」を実施した後、Active/Active failover のステータスは上記の「組み合わせ1」に該当します。
ciscoasa/pri/act(config)# no failover active group 2
動作確認例
以下は Primary Unit の G0/0 Interface が DOWN した場合の動作例を紹介します。
G0/0 Interface の DOWN により、failover group 1 の failover がトリガーされ、Standby 側の G0/0 Interface(Secondary Unit)が元 Active Interface の IP/MAC アドレスを引き継ぎ、継続の通信を確保します。以下は failover group 1 の failover が発生した前後の FTP 通信例です。
1. Win-01->Win-02のFTP通信を実施します。
2. ASAの両UnitでFTPコネクションが生成されたことを確認します。
// Primary Unitのコネクション確認 ciscoasa/pri/act(config)# changeto context con1 ciscoasa/pri/act(config)# show conn 5 in use, 11 most used TCP con1-outside 192.168.20.1:21 con1-inside 192.168.10.1:7881, idle 0:00:22, bytes 45, flags UIO // Secondary Unitのコネクション確認 ciscoasa/sec/stby(config)# changeto context con1 ciscoasa/sec/stby(config)# show conn 5 in use, 11 most used TCP con1-outside 192.168.20.1:21 con1-inside 192.168.10.1:7881, idle 0:00:33, bytes 45, flags UIO
3. Primary Unit の G0/0 Interface を LinkDOWN させます。
4. failover group 1 の failover が発生し、FTP通信が切断されないことを確認します。※「4.」の処理が発生した後、Active/Active failover のステータスは上記の「組み合わせ4」に該当します。
ciscoasa/sec/act(config)# show failover Failover On Failover unit Secondary Failover LAN Interface: fover GigabitEthernet0/2 (up) …… Group 1 last failover at: 10:10:47 JST Jan 10 2020 Group 2 last failover at: 08:57:11 JST Jan 10 2020 This host: Secondary Group 1 State: Active <---- Secondary Unit の group1 が Active に切り替える Active time: 62 (sec) Group 2 State: Active Active time: 4476 (sec) slot 0: ASA5555 hw/sw rev (1.0/9.12(1)) status (Up Sys) admin Interface management (1.170.0.60): Normal (Monitored) con1 Interface con1-inside (192.168.10.254): Normal (Waiting) con1 Interface con1-outside (192.168.20.254): Normal (Monitored) con2 Interface con2-inside (192.168.30.254): Normal (Monitored) con2 Interface con2-outside (192.168.40.254): Normal (Monitored) Other host: Primary Group 1 State: Failed <---- Primary Unit の group1 が Failed に切り替える Active time: 43 (sec) Group 2 State: Standby Ready Active time: 64 (sec) slot 0: ASA5555 hw/sw rev (1.0/9.12(1)) status (Up Sys) admin Interface management (1.170.0.61): Normal (Monitored) con1 Interface con1-inside (192.168.10.253): No Link (Waiting) con1 Interface con1-outside (192.168.20.253): Normal (Monitored) con2 Interface con2-inside (192.168.30.253): Normal (Monitored) con2 Interface con2-outside (192.168.40.253): Normal (Monitored) ciscoasa/sec/act(config)# show conn <---- Secondary Unit の group1 には対象FTPコネクションが存在している 12 in use, 12 most used TCP con1-outside 192.168.20.1:21 con1-inside 192.168.10.1:7881, idle 0:00:30, bytes 61, flags UIO ciscoasa/sec/act(config)#
5. Primary Unit の G0/0 Interface を LinkUP させてから、30秒(preemptの時間)を経った後、元の failover 状態(「組み合わせ1」)に戻ることを確認します。
ciscoasa/pri/stby(config)#
Group 1 preempt mate <---- preemptの時間を経った後、failover がトリガーされる
ciscoasa/pri/act(config)# show failover Failover On Failover unit Primary Failover LAN Interface: fover GigabitEthernet0/2 (up) Reconnect timeout 0:00:00 …… Version: Ours 9.12(1), Mate 9.12(1) Serial Number: Ours FCH1723JVY8, Mate FCH1723JVYE Group 1 last failover at: 10:17:28 JST Jan 10 2020 Group 2 last failover at: 08:57:12 JST Jan 10 2020 This host: Primary Group 1 State: Active <---- Primary Unit の group1 が Active に切り替える Active time: 44 (sec) Group 2 State: Standby Ready Active time: 64 (sec) slot 0: ASA5555 hw/sw rev (1.0/9.12(1)) status (Up Sys) admin Interface management (1.170.0.60): Normal (Monitored) con1 Interface con1-inside (192.168.10.254): Normal (Monitored) con1 Interface con1-outside (192.168.20.254): Normal (Monitored) con2 Interface con2-inside (192.168.30.253): Normal (Monitored) con2 Interface con2-outside (192.168.40.253): Normal (Monitored) Other host: Secondary Group 1 State: Standby Ready <---- Secondary Unit の group1 が Standby に切り替える Active time: 401 (sec) Group 2 State: Active Active time: 4862 (sec) slot 0: ASA5555 hw/sw rev (1.0/9.12(1)) status (Up Sys) admin Interface management (1.170.0.61): Normal (Monitored) con1 Interface con1-inside (192.168.10.253): Normal (Monitored) con1 Interface con1-outside (192.168.20.253): Normal (Monitored) con2 Interface con2-inside (192.168.30.254): Normal (Monitored) con2 Interface con2-outside (192.168.40.254): Normal (Monitored)
MACアドレス
Active/Active failover の場合、常に仮想MACアドレス(デフォルト値、自動生成される値、もしくは、手動で設定される値)が使用されます。Active の仮想MACアドレスはいつも Active Interface と紐付きます。
物理 Interface に対して手動での仮想MACアドレス設定は以下の "mac address"コマンド、もしくは "(I/F設定モード内での) mac-address"コマンド が利用可能です。同機器内での以下2種のコマンドの併用は避けてください。以下は物理 Interface G0/1 に対して、手動での仮想MACアドレスの設定例です。
// 仮想MACアドレスの設定 ciscoasa/pri/act(config)# failover group 1 ciscoasa/pri/act(config-fover-group)# mac address g0/1 1234.1234.0001 1234.1234.0002 // Primary Unit 側の仮想MACの確認 ciscoasa/pri/act(config)# show interface g0/1 | in MAC MAC address 1234.1234.0001, MTU 1500 // Secondary Unit 側の仮想MACの確認 ciscoasa/sec/stby(config)# show interface g0/1 | in MAC MAC address 1234.1234.0002, MTU 1500
もしくは
// 仮想MACアドレスの設定 ciscoasa/pri/act(config)# changeto context con1 ciscoasa/pri/act(config)# int g0/1 ciscoasa/pri/act(config-if)# mac-addr 1234.1234.0001 standby 1234.1234.0002 // Primary Unit 側の仮想MACの確認 ciscoasa/pri/act(config)# show interface g0/1 | in MAC MAC address 1234.1234.0001, MTU 1500 // Secondary Unit 側の仮想MACの確認 ciscoasa/sec/stby(config)# show interface g0/1 | in MAC MAC address 1234.1234.0002, MTU 1500
仮想MACアドレスを ASA により自動的に生成させたい場合に、"mac-address auto [prefix prefix]" コマンドの利用により、実現可能です。自動的に生成される仮想MACアドレスのフォーマットは以下の通りです。
フォーマット:A2 xx.yyzz.zzzz
- A2:固定である
- xx.yy:コマンドのオプションで指定された [prefix prefix] により生成される
※ prefix を 16進数 に変換された後の数字の逆の順番で入れる - zz.zzzz:ASA 内部のカウンタにより生成される
以下は "mac-address auto" が設定された場合に 各Interface の仮想MACアドレスの生成例です。
// 仮想MACアドレスの自動生成の設定
ciscoasa/pri/act(config)# mac-address auto INFO: Converted to mac-address auto prefix 8561
// con1 コンテキストに割り当てられている各Interfaceで生成された仮想MACアドレスの確認 ciscoasa/pri/act(config)# show run all context con1 context con1 allocate-interface GigabitEthernet0/0 mac-address auto GigabitEthernet0/0 a271.2100.0002 a271.2100.0003 allocate-interface GigabitEthernet0/1 mac-address auto GigabitEthernet0/1 a271.2100.0004 a271.2100.0005 config-url disk0:/con1.cfg join-failover-group 1 !
// con2 コンテキストに割り当てられている各Interfaceで生成された仮想MACアドレスの確認 ciscoasa/pri/act(config)# show run all context con2 context con2 allocate-interface GigabitEthernet0/4 mac-address auto GigabitEthernet0/4 a271.2100.0006 a271.2100.0007 allocate-interface GigabitEthernet0/5 mac-address auto GigabitEthernet0/5 a271.2100.0008 a271.2100.0009 config-url disk0:/con2.cfg join-failover-group 2 !
各Interface に対して、上記のように仮想MACアドレスの自動生成も手動生成も設定されていない場合に、デフォルトの仮想MACアドレスが利用されます。デフォルトの仮想MACアドレスの生成ルールは以下の通りです。
- Active Interface の仮想MACアドレス:
00a0.c9 physical_port_number.failover_group_id 01 - Standby Interface の仮想MACアドレス:
00a0.c9 physical_port_number.failover_group_id 02
以下は物理 Interface G0/1 に対して、デフォルトで生成された Active/Standby の仮想MACアドレスの例です。
// Active Interface の仮想MACアドレス
ciscoasa/pri/act(config)# show interface g0/1 | in MAC MAC address 00a0.c902.0101, MTU 1500
// Standby Interface の仮想MACアドレス ciscoasa/sec/stby(config)# show interface g0/1 | in MAC MAC address 00a0.c902.0102, MTU 1500
仮想MACアドレス設定の詳しくは設定ガイドの mac-address を参照ください。
また、仮想MACアドレスに関する詳細な説明内容は ASA: 冗長機能と、Failoverのトリガー、Health Monitoringについて も参照ください。
アップグレード
CLIまたはASDMを使用して、Active/Active failover ペアのゼロダウンタイムのアップグレードを実現できます。詳細は Upgrade an Active/Active Failover Pair を参照してください。
参考情報
- MAC Addresses and IP Addresses in Failover - CLI Book 1: Cisco ASA Series General Operations CLI Configuration Guide, 9.12
- Cisco Secure Firewall ASA Series Command Reference, I - R Commands
- Upgrade an Active/Active Failover Pair - Cisco Secure Firewall ASA Upgrade Guide
- ファイアウォール トラブルシューティング
- Firepower System and FTDトラブルシューティング