ASAのFailoverのトリガーとなるInterface Health Monitoringについて説明します。Cisco Modeling Labs (CML)を利用し、実際のログを確認しながら検証します。
ネットワーク構成
CMLで下記のネットワークを構築します。
機器設定
各機器の設定は下記の通りです。
Interface Health Monitoring
Failoverの設定を確認するには、下記のコマンドを実行します。
show failover
ASA1/act/pri# show failover
Failover On
Failover unit Primary
Failover LAN Interface: FAILOVER GigabitEthernet0/0 (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 2 of 311 maximum
MAC Address Move Notification Interval not set
Version: Ours 9.15(1)1, Mate 9.15(1)1
Serial Number: Ours 9AQ1JFQ4E6H, Mate 9A6BG03FCWJ
Last Failover at: 18:40:01 UTC Dec 24 2021
This host: Primary - Active
Active time: 12529 (sec)
slot 0: ASAv hw/sw rev (/9.15(1)1) status (Up Sys)
Interface inside (172.16.1.254): Normal (Monitored)
Interface outside (172.16.2.254): Normal (Monitored)
Other host: Secondary - Standby Ready
Active time: 256 (sec)
Interface inside (172.16.1.253): Normal (Monitored)
Interface outside (172.16.2.253): Normal (Monitored)
以下の部分が、Interface Health Monitoringの設定値です。(5秒間隔でポーリングを実施)
Interface Poll frequency 5 seconds, holdtime 25 seconds
下記の箇所でパケットキャプチャを取得し、通常時のヘルスモニタリングを確認します。
IP(プロトコル番号:105)を利用して、ASA間で通信を行っていることがわかります。
障害ポイント
L3SW1とL2SW1の間のリンクで障害が発生したことを想定し、障害時の動作を確認します。※この部分の障害の場合、ASA1のインターフェースでリンクダウンは発生しないため、直接障害を検知することができません。
障害時の動作
デバッグコマンド実行
ASAでFailoverに関するデバッグを有効にします。
debug fover ifc
debug fover fail
障害発生
L3SW1のGi0/0をshutdownして、擬似的にリンク障害を発生させます。
interface Gi0/0
shutdown
ASA1のデバッグログ&パケットキャプチャ確認
LINKTEST→TRAFFICTEST→ARPTEST(172.16.1.1へのARPリクエスト)を実施した後、インターフェースチェックがFailedと判定され、Standbyに遷移していることが分かります。
22:30:31: %ASA-1-105005: (Primary) Lost Failover communications with mate on interface inside
22:30:31: %ASA-1-105008: (Primary) Testing Interface inside
22:30:31: %ASA-7-711001: fover_ifc_test: ifc_test(2) - LINKTEST
22:30:31: %ASA-7-711001: fover_ifc_test: ifc_test(2) - TRAFFICTEST, starttime 21aeb8e
22:30:33: %ASA-7-711001: fover_ifc_test: ifc_test(2,0) - ARPTEST, starttime 0
22:30:33: %ASA-7-711001: fover_ifc_test: send_arp(2) - 172.16.1.1
22:30:33: %ASA-7-711001: fover_ifc_test: ifc_test(2) - WRCNT, starttime 21af278
22:30:35: %ASA-7-711001: fover_ifc_test: ifc_test(2) - WRESULT, starttime 21af926
22:30:35: %ASA-1-105009: (Primary) Testing on interface inside Failed
22:30:35: %ASA-7-711001: fover_ifc_test: ifc_test(2) - GOTRESULT, starttime 0
22:30:35: %ASA-7-711001: fover_ifc_test: ifc_test(2) - ENDTEST
22:30:35: %ASA-7-711001: fover_ifc_test: ifc_test(2) completed: test state ENDTEST, ifc status IFC_FAILED
22:30:40: %ASA-1-104002: (Primary) Switching to STANDBY - Interface check
パケットキャプチャを確認すると、ARP応答が返ってきていないことがわかります。
ASA2のデバッグログ&パケットキャプチャ確認
ASA1と同様にARPリクエストの送信を行なっています。その後、別ユニットからActiveになるようにというメッセージを受け取り、Activeに遷移していることが分かります。
Dec 24 2021 22:30:31: %ASA-7-711001: fover_parse: send_arp(2) - 172.16.1.1
Dec 24 2021 22:30:33: %ASA-7-711001: fover_parse: send_arp(2) - 172.16.1.1
Dec 24 2021 22:30:40: %ASA-1-104001: (Secondary) Switching to ACTIVE - Other unit wants me Active. Primary unit switch reason: Interface check.
パケットキャプチャを確認すると、ARP応答が返ってきていることがわかります。
以上で、ASAのFailover機能(Interface Health Monitoring)の説明は完了です!