この製品のドキュメントセットは、偏向のない言語を使用するように配慮されています。このドキュメントセットでの偏向のない言語とは、年齢、障害、性別、人種的アイデンティティ、民族的アイデンティティ、性的指向、社会経済的地位、およびインターセクショナリティに基づく差別を意味しない言語として定義されています。製品ソフトウェアのユーザインターフェイスにハードコードされている言語、RFP のドキュメントに基づいて使用されている言語、または参照されているサードパーティ製品で使用されている言語によりドキュメントに例外が存在する場合があります。シスコのインクルーシブ ランゲージの取り組みの詳細は、こちらをご覧ください。
シスコは世界中のユーザにそれぞれの言語でサポート コンテンツを提供するために、機械と人による翻訳を組み合わせて、本ドキュメントを翻訳しています。ただし、最高度の機械翻訳であっても、専門家による翻訳のような正確性は確保されません。シスコは、これら翻訳の正確性について法的責任を負いません。原典である英語版(リンクからアクセス可能)もあわせて参照することを推奨します。
この文書は、バスエラーによるクラッシュの識別方法と、Cisco ルータのプロセッサ タイプに応じたクラッシュのトラブルシューティング方法について説明しています。
シスコでは、「ルータのクラッシュのトラブルシューティング」を読んでから、このドキュメントを読み進むことを推奨します。
このドキュメントの情報は、次のソフトウェアとハードウェアのバージョンに基づいています。
すべての Cisco IOS® ソフトウェア バージョン
すべての Cisco ルータ
注:このドキュメントは、Cisco CatalystスイッチまたはMGXプラットフォームには適用されません。
このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されました。このドキュメントで使用するすべてのデバイスは、クリアな(デフォルト)設定で作業を開始しています。対象のネットワークが実稼働中である場合には、どのようなコマンドについても、その潜在的な影響について確実に理解しておく必要があります。
ドキュメント表記の詳細については、『シスコ テクニカル ティップスの表記法』を参照してください。
プロセッサから、メモリ上に存在しない位置(ソフトウェアのエラー)または正しく応答できない位置(ハードウェアの問題)へのアクセスが行われると、バス エラーが発生します。ルータの電源のオフ/オンや、手動でのリロードを行っていない場合は、ルータの show version コマンドの出力からバス エラーを特定できます。
使用中のシスコ デバイスでの show version または show technical-support コマンドの出力データがあれば、それを使用して潜在的な問題と修正を表示できます。これを使用するには、登録ユーザとしてログインし、さらに JavaScript を有効にしている必要があります。
Router uptime is 2 days, 21 hours, 30 minutes System restarted by bus error at PC 0x30EE546, address 0xBB4C4 System image file is "flash:igs-j-l.111-24.bin", booted via flash .........
バス エラーの際は、コンソールのプロンプトに、次のようなエラー メッセージが表示される場合があります。
*** System received a Bus Error exception *** signal= 0xa, code= 0x8, context= 0x608c3a50 PC = 0x60368518, Cause = 0x20, Status Reg = 0x34008002 .........
この後、ルータがリロードされます。ただし、場合によっては、ルータはクラッシュとリロードのループ状態となり、このループを抜け出すために手動の介入が必要となります。
関連するもう 1 つの問題は、インターフェイス プロセッサ(VIP)のクラッシュです。この問題が発生すると、次のようなエラー メッセージが記録されます。
%VIP2 R5K-1-MSG: slot0 System reloaded by a Bus Error exception %VIP2 R5K-1-MSG: slot0 caller=0x600BC974 %VIP2 R5K-1-MSG: slot0 System exception: sig=10, code=0x408, context=0x605B51E0
最後に、さらに別のバス エラー クラッシュのタイプは、Cisco 12000 シリーズ インターネット ルータでのラインカードのクラッシュです。この問題が発生すると、次のようなエラー メッセージが、show context の出力に記録されます。
Router#show context ... CRASH INFO: Slot 1, Index 1, Crash at 11:27:15 utc Wed May 16 2001 VERSION: GS Software (GLC1-LC-M), Version 12.0(16.5)S, EARLY DEPLOYMENT MAINTENANCE INTERIM SOFTWARE TAC Support: http://www.cisco.com/pcgi-bin/ibld/view.pl?i=support Compiled Thu 29-Mar-01 17:12 by ninahung Card Type: 3 Port Gigabit Ethernet, S/N System exception: SIG=10, code=0x2008, context=0x40D8DF44 System restarted by a Bus Error exception STACK TRACE: -Traceback= 40165800 4038D0FC 4025C7BC 4026287C 4029581C 402EECF8 400C0144 CONTEXT: $0 : 00000000, AT : 00000000, v0 : 00000044, v1 : 0FE00020 a0 : 00000000, a1 : 0FE00000, a2 : 00000000, a3 : 39EC6AAB t0 : 00000030, t1 : 34008D01, t2 : 34008100, t3 : FFFF00FF t4 : 400C01E8, t5 : 00000001, t6 : 00000001, t7 : 00000001 s0 : 40DCDD20, s1 : 0FE00000, s2 : 00000000, s3 : 000005DC s4 : 00000000, s5 : 0FE00020, s6 : 00000004, s7 : 414CF120 t8 : 41680768, t9 : 00000000, k0 : 00000000, k1 : FFFF8DFD gp : 40CB9780, sp : 4105BFE8, s8 : 41652BA0, ra : 4038D0FC EPC : 0x40165800, SREG : 0x34008D03, Cause : 0x00002008 ErrorEPC : 0xBFC22B94 -Process Traceback= No Extra Traceback
詳細については、「トラブルシューティング:Cisco 12000 シリーズ インターネット ルータでのラインカードのクラッシュ」を参照してください。
ご使用のシスコデバイスの、show contextコマンドの出力データがあれば、Cisco CLI Analyzerを使用して今後予想される障害と修正を表示できます。Cisco CLI Analyzer を使用するには、登録ユーザとしてログインする必要があり、また、JavaScript を有効にする必要があります。
最初に行うことは、バスエラーが発生したときにルータがアクセスしようとしていたメモリ位置(「アドレス」または「アドレス オペランド」とも呼ばれる)を特定することです。この情報に基づいて、Cisco IOS(R) ソフトウェアとルータ ハードウェアのどちらに問題があるのかを判断します。上記の例、「System restarted by bus error at PC 0x30EE546, address 0xBB4C4」では、ルータがアクセスしようとしていたメモリ位置は 0xBB4C4 です。メモリ位置と上記のプログラム カウンタ(PC)値とを混同しないでください。
次に行うことは、ルータのプロセッサ タイプを確認することです。ルータのメモリ アドレスの「ルックアップ」は、プロセッサのタイプによって異なります。Cisco ルータの内部には、主に次の 2 種類のプロセッサがあります。
68000 プロセッサ
これは、ルータに 68000 プロセッサが搭載されていることを示す show version の出力の一部です。
cisco 2500 (68030) processor (revision D) with 8192K/2048K bytes of memory.
68000 プロセッサを搭載しているルータ プラットフォームには、次のものがあります。
Cisco 1000 シリーズ ルータ
Cisco 1600 シリーズ ルータ
Cisco 2500 シリーズ ルータ
Cisco 4000 シリーズ ルータ
Cisco 7000(RP)シリーズ ルータのルート プロセッサ(RP)モジュール
Reduced Instruction Set Computing(RISC)プロセッサ
これは、ルータに RISC プロセッサが搭載されていることを示す show version の出力の一部です。
cisco 3640 (R4700) processor (revision 0x00) with 49152K/16384K bytes of memory.
(R4700)の R が RISC プロセッサを示しています。
RISC プロセッサが搭載されているルータ プラットフォームには、次のものがあります。
Cisco 3600 シリーズ ルータ
Cisco 4500 シリーズ ルータ
Cisco 4700 シリーズ ルータ
Cisco 7500 シリーズおよび Cisco 7000(RSP7000)シリーズ ルータの Route Switch Processor(RSP; ルート スイッチ プロセッサ)モジュール
Cisco 7200 シリーズ ルータの Network Processor Engine(NPE; ネットワーク プロセッサ エンジン)モジュール
Cisco 7600 シリーズ ルータまたは Catalyst 6000 スイッチのマルチレイヤ スイッチ フィーチャ カード(MSFC)
Cisco 10000 シリーズ インターネット ルータのパフォーマンス ルーティング エンジン(PRE)モジュール
Cisco 12000 シリーズ ルータの Gigabit Route Processor(GRP; ギガビット ルート プロセッサ)モジュール
アドレスとプロセッサタイプを特定した後、より詳細なトラブルシューティングを開始します。
バス エラーが発生したときにルータがアクセスしたアドレスを使用して、show region コマンドを実行し、そのアドレスに対応するメモリ上の位置を特定します。バス エラーによって報告されたアドレスが、show region の出力に表示される範囲内でない場合は、ルータが無効なアドレスにアクセスを試みたことを意味しています。これは、Cisco IOS ソフトウェアに問題があることを示します。Cisco CLI Analyzer(登録ユーザ専用)を使用して、show stacksコマンドの出力をデコードし、バスエラーの原因であるCisco IOSソフトウェアの不具合を特定します。
一方、バス エラーで報告されたアドレスが show region の出力で表示される範囲のいずれかに含まれる場合は、ルータが有効なメモリ アドレスにアクセスしようとしたものの、そのアドレスに対応するハードウェアが適切に応答しないことを意味しています。これは、ハードウェアに問題があることを示します。
show region コマンドの出力例を次に示します。
Router#show region Region Manager: Start End Size(b) Class Media Name 0x00000000 0x007FFFFF 8388608 Local R/W main 0x00001000 0x0001922F 98864 IData R/W main:data 0x00019230 0x000666B3 316548 IBss R/W main:bss 0x000666B4 0x007FEFFF 7965004 Local R/W main:heap 0x007FF000 0x007FFFFF 4096 Local R/W main:flhlog 0x00800000 0x009FFFFF 2097152 Iomem R/W iomem 0x03000000 0x037FFFFF 8388608 Flash R/O flash 0x0304033C 0x037A7D3F 7764484 IText R/O flash:text
注:以前のCisco IOSソフトウェアバージョンの中には、このコマンドを使用できないものがあります。show region の出力は、Cisco IOS ソフトウェア バージョン 12.0(9)以降の show tech-support の出力に含まれています。
アドレスは 16 進形式で表示されます。上記の「Start」と「End」の範囲内にあるアドレスが有効なメモリ アドレスです。
main は、メイン メモリまたはダイナミック RAM(DRAM)に対応します。
iomem は、入出力(I/O)メモリに対応します。I/O メモリは、プラットフォームによって異なる部品を指します。たとえば、Cisco 2500 では DRAM、Cisco 4000 では共有 RAM(SRAM)です。
前述の「System restarted by bus error at PC 0x30EE546, address 0xBB4C4」を引き続き、例として使用します。このバス エラーによるクラッシュは、上記の show region の出力を示した Cisco 2500 ルータで生じています。アドレス 0xBB4C4 は、0x000BB4C4 と同じです。show region の出力と照合すると、このアドレスは「main」の範囲内、より具体的にいえば「main:heap」(0x000666B4~0x007FEFFF)の範囲内にあります。前述したように、「main」はメイン メモリまたは DRAM に対応するため、DRAM チップをチェックする必要があります。
これが新しいルータの場合、またはある場所から別の場所へルータを移動した場合は、かなり高い確率でメモリ チップが外れています。この場合は、メモリ チップをスロットに再装着するか、またはしっかりと押し込んでください。この種のクラッシュでは、ほとんどの場合、この方法で解決します。
show regionのアドレス範囲外のアドレスでのバスエラークラッシュについては、Cisco CLI Analyzerを使用して、show stacksコマンドの出力をデコードし、バスエラーの原因であるCisco IOSソフトウェアの不具合を特定します。一致するバグ ID、または問題の修正を含む Cisco IOS ソフトウェア バージョンが不明な場合は、Cisco IOS ソフトウェアをリリース群の最新バージョンにアップグレードするという選択肢もあります。最新バージョンには通常、数多くのバグの修正が含まれているため、多くの場合これで問題が解決します。
ご使用のシスコデバイスの、show stacksまたはshow technical-support(イネーブルモードから)コマンドの出力データがあれば、Cisco CLI Analyzerを使用して潜在的な問題と修正を表示できます。Cisco CLI Analyzer を使用するには、登録ユーザとしてログインする必要があり、また、JavaScript を有効にする必要があります。
「68000 プロセッサ プラットフォームでのバスエラーによるクラッシュのトラブルシューティング」のセクションを読んでから、このセクションを読むことをお勧めします。
RISC プロセッサでは、Cisco IOS ソフトウェアは、仮想アドレスを物理アドレスに変換する Translation Lookaside Buffer(TLB; 変換索引バッファ)を介して仮想アドレスを使用します。したがって、RISC プロセッサでのバスエラーによってレポートされたアドレスは、68000 プロセッサで使用される物理ア ドレスではなく、仮想アドレスです。
バス エラーから通知されるアドレスは、show region コマンドの出力を使用してチェックする必要があります。説明のために、次の例を使用します。
System was restarted by bus error at PC 0x60104864, address 0xC
下の show region コマンドの出力を見ると、0xC は有効な仮想アドレスではないため、バス エラーの原因はソフトウェアの問題であったことが分かります。Cisco CLI Analyzer(登録ユーザ専用)を使用して、show stacksまたはshow technical-support(イネーブルモードから)コマンドの出力をデコードし、バスエラーの原因であるCisco IOSソフトウェアの不具合を特定します。
show region コマンドを使用するもう 1 つの利点は、メモリ マッピングでは、ルータに搭載されているメモリの量によってマッピングが異なる点です。たとえば、 64MB の DRAM を搭載している場合(64×1024×1024 = 67108864 バイト = 0x4000000 バイト)、DRAM の範囲は 0x60000000~0x63FFFFFF になります。これは、次のように show region コマンドで確認できます。
Router#show version | i of memory cisco RSP2 (R4700) processor with 65536K/2072K bytes of memory. Router#show region Region Manager: Start End Size(b) Class Media Name 0x40000000 0x40001FFF 8192 Iomem REG qa 0x40002000 0x401FFFFF 2088960 Iomem R/W memd 0x48000000 0x48001FFF 8192 Iomem REG QA:writethru 0x50002000 0x501FFFFF 2088960 Iomem R/W memd:(memd_bitswap) 0x58002000 0x581FFFFF 2088960 Iomem R/W memd:(memd_uncached) 0x60000000 0x63FFFFFF 67108864 Local R/W main 0x60010908 0x60C80B11 13042186 IText R/O main:text 0x60C82000 0x60F5AF1F 2985760 IData R/W main:data 0x60F5AF20 0x610E35FF 1607392 IBss R/W main:BSS 0x610E3600 0x611035FF 131072 Local R/W main:fastheap 0x61103600 0x63FFFFFF 49269248 Local R/W main:heap 0x80000000 0x83FFFFFF 67108864 Local R/W main:(main_k0) 0x88000000 0x88001FFF 8192 Iomem REG QA_k0 0x88002000 0x881FFFFF 2088960 Iomem R/W memd:(memd_k0) 0xA0000000 0xA3FFFFFF 67108864 Local R/W main:(main_k1) 0xA8000000 0xA8001FFF 8192 Iomem REG QA_k1 0xA8002000 0xA81FFFFF 2088960 Iomem R/W memd:(memd_k1)
0x65FFFFFF でバス エラーが発生している場合、show region の出力ではメモリの量が考慮されており、これが不正なアドレス(ソフトウェアの不具合)であることを示しています。
ここまでの内容をまとめます。
show region コマンドを使用して、バス エラーによって表示されたアドレスが、ルータで使用されているアドレス範囲内にあるかどうかを確認します。
アドレスが仮想アドレス範囲内の場合は、この範囲に対応するハードウェアを交換します。
アドレスが仮想アドレスの範囲内でない場合は、Cisco CLI Analyzer(登録ユーザ専用)を使用してshow stacks(イネーブルモードで)またはshow technical-support(イネーブルモードで)コマンドの出力をデコードし、バスエラーの原因であるCisco IOSソフトウェアの不具合を特定します。
現在実行している Cisco IOS ソフトウェア トレインの最新のメンテナンス リリースをインストールすることを本格的に検討してください。
特殊なタイプのバスエラーによるクラッシュとは、破損したプログラム カウンタ(PC)が原因でク ラッシュが発生する場合を指します。PC 値とは、バスエラーの発生時にプロセッサが実行していた命令の位置です。破損した PCが原因でバスエラーが発生すると、コンソールに次のメッセージが表示され ます。
%ALIGN-1-FATAL: Corrupted program counter pc=0x0, ra=0x601860BC, sp=0x60924540, at=0x60224854
この例では、PC はアドレス 0x0 にジャンプしたものの(おそらく原因はヌル ポインタ)、0x0 は命令が格納されている場所ではありませんでした。これは、ソフトウェアの問題であるため、show region コマンドでチェックする必要はありません。
RISC プラットフォーム(Cisco 3600 や 4500 など)では、不正な PC にジャンプすると、バスエラーではなく SegV エクセプションが発生します。
発生することのあるバス エラー クラッシュのもう 1 つのタイプは、PC の値がアドレスの値と等しい場合のエラーです。次に例を示します。
System returned to ROM by bus error at PC 0x606B34F0, address 0x606B34F0
crashinfo ファイルから:
Unexpected exception, CPU signal 10, PC = 0x606B34F0 $0 : 00000000, AT : A001A24A, v0 : 00000000, v1 : 00000000 a0 : 00000000, a1 : 429CC394, a2 : 00000000, a3 : 62544344 t0 : 6069F424, t1 : 3400FF00, t2 : FFFFFFFB, t3 : 00000000 t4 : 606B8E68, t5 : 80000000, t6 : AA5C1022, t7 : 62FDE9D4 s0 : 62300000, s1 : 6281A1B8, s2 : 80007E20, s3 : 00000001 s4 : 00000001, s5 : 00000000, s6 : 62310000, s7 : 62544344 t8 : 62FDEA1C, t9 : 0D0D0D0D, k0 : 623079C0, k1 : 00000014 gp : 620B9E20, sp : 61E7E300, s8 : 00000000, ra : 606B8E68 EPC : 606B34F0, ErrorEPC : 606B8E68, SREG : 3400FF02 Cause 00004018 (Code 0x6): Instruction Bus Error exception -Traceback= 606B34F0 606B8E68
k1 レジスタの値が、10 進数の 20 に相当する 0x14(16 進数)であることに注意してください。これはキャッシュ パリティ例外をポイントしています。このような場合は、パリティ エラーが正しく処理されておらず、バス エラーによって隠されています。ルータは、キャッシュ パリティ例外を処理する関数で発生したソフトウェアのバス エラーによってクラッシュしています。
このクラッシュは、通常のプロセッサのメモリ パリティ エラーによるクラッシュと考える必要があり、「プロセッサ メモリ パリティ エラー(PMPE)」で説明されている推奨事項に従います。
また、Cisco IOS ソフトウェア リリースを CSCdv68388 - 「キャッシュ エラー例外のハンドラをクラッシュから再開に変更」のフィックスを含むバージョンにアップグレードすることを考える必要もあります。これは、Cisco IOS ソフトウェア リリース 12.2(10) 以降でフィックスされています。
このセクションでは、バス エラー例外によってブート時に発生するループについて、次のような一般的なトラブルシューティング方法を説明します。
ロードされたCisco IOSソフトウェアがインストールされたハードウェアをサポートしない場合
ソフトウェア障害
ハードウェアの装着不良
ハードウェア障害
すべてのネットワーク カードが、使用している Cisco IOS ソフトウェアでサポートされていることを確認します。Software Advisor(登録ユーザのみ)を使用すると、ハードウェアに必要な Cisco IOS ソフトウェアの最低限のバージョンが分かります。また、Cisco 7200 または Cisco 7500 ルータなどのブート イメージをサポートしているルータを使用している場合は、装着されているハードウェアがブートフラッシュ イメージでサポートされていることを確認します。
2600 および 3600 ルータでは、ルータの I/O メモリ容量をメイン メモリのパーセンテージで設定できます。I/O メモリの設定が、インストール済みのネットワーク モジュールまたは WAN インターフェイス カード(WIC)に不適切である場合は、2600/3600 のプラットフォームが正常にブートされず、バス エラーでクラッシュすることがあります。
ソフトウェア設定が最近変更され、ルータでブート ループが発生している場合は、この問題により、ソフトウェアの不具合が発生する可能性があります。
ルータがブートできない場合は、設定をバイパスし、それが問題の原因であるかどうかを確認できます。手順は以下のとおりです。
ブートの最初の 60 秒間に、ルータにブレーク シーケンスを送信して、ROMMON 状態にします。
ROM モニタから confreg コマンドを使用して、コンフィギュレーション レジスタを、0x2142 などの設定に変更し、ルータの設定が無視されるようにします。
rommon 1 > confreg 0x2142 You must reset or power cycle for new config to take effect rommon 2 > reset
ルータがエラーなしでブートした場合は、問題の原因となる不適切な設定があります。設定内容が、使用している Cisco IOS ソフトウェアおよびハードウェアでサポートされているものであることを確認します。サポートされている場合は、Bug Toolkit(登録ユーザ専用)を使用して、発生している可能性のあるソフトウェアの不具合を特定してください。現在実行している Cisco IOS ソフトウェア トレインの最新のメンテナンス リリースをインストールすることを本格的に検討してください。
バス エラー例外のブート ループが発生している場合は、ハードウェアの装着不良が原因である可能性があります。3600 または 4000 ルータなどのローエンド プラットフォームの場合は、ネットワーク モジュールやネットワーク プロセッサを取り付け直してください。
7200 または 7500 ルータなどのハイエンド プラットフォームの場合は、バス エラー例外によりリロードされているプロセッサ、VIP、ポート アダプタ、またはラインカードを取り付け直します。
バス エラーで示される情報では、問題のあるハードウェアを切り分けることはできません。したがって、問題のあるハードウェアを見つけるには、カード類を取り外し、再度装着する必要があります。問題を特定するための推奨手順を、次に示します。
** 上記のトラブルシューティング手順を実行した後に、連続ループが発生しなくなった場合は、ネットワーク モジュールの装着不良が原因であった可能性があります。ルータを 24 時間監視し、問題が再度発生することなくルータが稼働し続けることを確認してください。
ここまで説明したトラブルシューティングの手順を実行しても、なおサポートが必要で、Cisco テクニカルサポートでサービス リクエストをオープンする場合は、バス エラーまたはバス エラー例外のトラブルシューティングに必要な次の情報をご提供ください。 |
---|
注:バスエラー例外のトラブルシューティングに必要でない限り、上記の情報を収集する前にルータを手作業でリロードしたり、電源のオフ/オンを行わないようにしてください。これを行うと、問題の根本原因の判別に必要な、重要な情報が失われる可能性があります。 |
改定 | 発行日 | コメント |
---|---|---|
1.0 |
09-Nov-2001 |
初版 |