クラッシュとは
クラッシュとは、OSやアプリケーションの異常終了のことです。 システムで異常が発生時に、(機器が操作不能になる事を避けるためにも、)システムを強制的にリセットする事で復旧を試みます。 このソフトウェアによる異常終了の際に、ASAはCrashinfoの生成を試みます。 生成されたCrashinfo内には クラッシュ直前のプロセスやメモリ情報などが保存されており、show crashinfoコマンドで生成結果を確認できます。
Crashinfo内の出力の多くは、解析にデコードが必要であり、詳細調査はCisco社内のエンジニアしかできません。
しかし、お客様サイドでも以下の情報の収集と、一定以上の調査が可能です。
- CLI Analyzerの ASA Traceback Analyzer機能を用いた分析 (フリーツール)
- Crashinfo内のThread Nameや 発生時間、Version情報
- 外部Syslogからの発生直前のログの確認
- クラッシュ発生時の、特定通信や特定操作の有無の確認
本ドキュメントでは、クラッシュが発生時の、お客様サイドで可能な調査方法について紹介します。
クラッシュ解析チャート (お客様用)
高解像度版は添付ファイルを参照してください。

Crashinfoの見方
show crashinfoコマンドで生成有無を確認でき、以下は実際のCrashinfo出力例です。 多くの情報は秘匿されていますが、一部の情報は お客様サイドでの調査に用いることが可能です。

電源トラブル有無の確認
よくあるケースに、電源障害によるASA再起動を、ソフトウェアクラッシュと勘違いしているケースがあります。
この切り分けには、「show crashinfoの出力が確認できるか」、もしくは 「Crashがいつ発生したか」を確認してください。 Crashinfoの生成された時間は Crashinfo内の"Crashinfo collected on xx:xx:xx.."より確認でき、その機器のuptimeはshow versionより確認できます。 Crashinfo生成時刻と ASA起動時間がマッチしない場合、そのCrashinfo生成は更に過去に生成されたもの(=過去の別障害)であると言えます。
電源トラブルの調査のためには、例えば以下を確認します。
- 再起動当時、ASAの接続する電源タップを利用する"別"機器でも同様に再起動が発生していないか
- ラックにASAを設置している場合、そのラック内の他機器でも停止が起きていないか
- ASAの電源ケーブル差し込みが緩くなってないか、過度に引っ張られていないか
- 当時、落雷や停電などによる電力供給異常が発生した可能性はないか
- UPSを利用時は供給状況を確認 など
状況に応じ、電源ケーブルの再度 置くまで挿し直しや、電源供給元の変更を行ってください。 電源ケーブルや供給元を変更しても再発する場合は、ASA筐体の電源不良も疑います。
なお、ソフトウェアクラッシュの場合でも、何らかの理由でCrashinfoの生成に至れないケースが"稀"にあります。 Crashinfo生成を試みるが、途中で異常終了や、Flash書き込みに失敗するケースです。 その為、Crashinfoの生成が無いといって、電源トラブルであったとは断言できません。 Crashinfoの生成が最後までできなかったかの調査は、ASAにコンソール接続した状態で再現させ、クラッシュ発生時のコンソールでの異常検知出力の有無の確認や 生成失敗エラーの確認が、重要な手掛かりとなります。
ASA Traceback Analyzer機能によるクラッシュ解析
Cisco CLI Analyzerの ASA Traceback Analyzer機能を利用することで、生成されたCrashinfoの解析、及び、既知不具合がある場合、明らかにマッチした不具合情報を出力します。 当ツールの利用は フリーです。
ASA Traceback Analyzer機能の利用方法について詳しくは、以下ドキュメントを参照してください。
ASA CLI アナライザ - クイックスタート ガイド
https://supportforums.cisco.com/ja/document/12880216#ASA_Traceback_Analyzer_
Thread Nameや発生条件と、Versionからの既知不具合調査
ASA Traceback Analyzerで既知不具合を確認できなかった場合、明確に一致する不具合がなかった可能性があります。 例えば、同じ不具合でも利用状況により、微妙に出力内容が異なり、ツールでは判別が利かない事があります。
お客様サイドでの既知不具合有無の調査には、以下情報などを利用できます。
- Thread Name (問題の発生した処理名)
- 発生バージョンや Hardware
- 発生条件 (特定通信、特定操作、メモリ高負荷 etc)
修正済みの既知不具合の一括確認には、Release Notesの参照が便利です。 つまり、既知不具合に該当の調査は、現在利用のより新しいバージョンで修正された不具合を確認します。
ASA 5500-X Series Firewalls Release Notes
- 主にメンテナンスバージョン毎の不具合一覧
- 各トレインのリリースノートの"Open and Resolved Bugs"を参照
http://www.cisco.com/c/en/us/support/security/asa-5500-series-next-generation-firewalls/products-release-notes-list.html
Interim Release Notes
- Interimバージョン毎の不具合一覧
- Download Softwareの Interim Releaseダウンロードページの右上"Release Notes for x.x.x Interim"を参照
https://software.cisco.com/download/navigator.html
以下は ASA Version 9.1(7)のInterim Release Notesの抜粋ですが、"Traceback"や "Thread"の文字列を含むタイトルを確認します。 どのThreadがクラッシュした不具合か、どのような条件で発生するか、簡易確認ができます。 詳細情報を確認するには、不具合管理IDをクリックし、Bug Search上の情報を確認します。

よくみるThread Nameの1つに、DATAPATHがあげられます。 DATAPATHは ACLやNAT制御などFirewallとしてベーシックな処理を担当し、「DATAPATH-X-YYYY」の書式で表示されます。 XはCPUコアを示し、YYYYの値は変動します。 主要プロセス情報について詳しくは、ASA: show processes cpu-usage を用いた CPU負荷の調査 を参照してください。
また、クラッシュの発生条件の情報は、非常に重要です。 発生条件が判れば、その条件を満たさないよう暫定対策も取りやすくなります。
例えば以下は、発生条件の絞り込み例です。
- クラッシュ直前の外部Syslogを確認
→クラッシュ直前の通信や操作、エラーログの有無を確認
- クラッシュ直前のASAの操作有無の確認
→特定コマンド実行時のクラッシュIssueなど
- 発生する時間帯の確認
→ランダムで発生するか、日中帯の特定時間のみ発生するか
特定時間のみ発生が頻発する場合、その時間帯の通信や操作を確認
- 発生しだした日時の確認
→発生前後で、設定やネットワーク構成を変えたか
新しいアプリケーションの利用を開始したか
- メモリが枯渇してないか、CPUや特定プロセスの負荷が高くないか
→show memoryや show cpu detail、show processes cpu-usage non-zero コマンドで確認
上記情報を収集後、Thread Nameや 発生条件で、Release Notesなどから既知不具合を検索・調査し、利用中のトレインの最新バージョンで既知不具合が修正されていないか確認します。
また、2016年現在、各Release Notesや Bug Searchの一部情報はGoogleから検索できます。例えば、ASAバージョン 8.2(4)で Thread Name: snmpで クラッシュした場合は、Googleで「Thread snmp ASA 8.2」などと検索すると有効です。
既知不具合が見つかった場合の対応
Bug Searchでは、各不具合管理IDの以下の情報を確認できます。
- Symptom(症状)
- Condition(発生条件)
- Workaround(回避策)
- 最初に問題発生を確認したバージョン
- 修正バージョン など
修正を得るためのアップグレード先は 利用中トレインの最新バージョンを検討してください。 不具合修正は各トレインの最新バージョンに適用されるため、他不具合修正を含めた、最も修正が進んだソフトウェアを利用するためです。 これは、システムの予防保全上も役立ちます。
しかし、何らかの事情で即座にアップグレードできない場合は、Workaroundの暫定適用を検討します。 Workaroundを適用できるかはお客様の機能利用方法などにも左右されるため、実行できる現実的な対応か確認してください。
アップグレード方法について詳しくは以下ドキュメントも参照してください。
ASA: ASDMを用いた、同じトレイン内の 最新バージョンへのアップグレード方法
https://supportforums.cisco.com/ja/document/12327751
既知不具合が見つからなかった場合の対応
特に古いバージョンを利用中の場合は、利用中トレインの最新バージョンへのアップグレードを検討してください。 他不具合修正により間接的に修正されているケースもあるためです。 また、アップグレードは、システムの予防保全にも役立ちます。
バージョンアップ後に再発性が無くなった場合は、何らかの過去不具合修正により解決したと考えることができます。
バージョンアップ後も再発する場合は、新規ソフトウェア不具合の可能性が高くなります。 原因究明には詳細調査が必要です。 調査に利用したログや、想定のトリガー、Crashinfo、Coredump(取得手順はコチラ)、show techの情報を収集し、CiscoTACにお問い合わせを検討ください。 合わせ、再現手順も確立頂けると、解決が大変早くなります。
参考情報
ファイアウォール トラブルシューティング
https://community.cisco.com/t5/-/-/ta-p/3161736
Firepower System and FTDトラブルシューティング
https://community.cisco.com/t5/-/-/ta-p/3161733