Cisco IOS と NX-OS ソフトウェア : Cisco IOS ソフトウェア リリース 12.1 メインライン

トラブルシューティング:バス エラー クラッシュ

2016 年 1 月 16 日 - 機械翻訳について
その他のバージョン: PDFpdf | ライター翻訳版 (2004 年 9 月 14 日) | 英語版 (2015 年 12 月 31 日) | フィードバック


対話式: この文書では、個別のユーザに合わせたシスコ デバイスの分析を行います。


目次


概要

この文書は、バスエラーによるクラッシュの識別方法と、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 コマンドの出力データがあれば、 を使用して潜在的な問題と修正を表示できます。 使用するには、登録ユーザとしてログインし、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; ギガビット ルート プロセッサ)モジュール

アドレスとプロセッサタイプを特定した後、より詳細なトラブルシューティングを開始します。

トラブルシューティング:68000 プロセッサのプラットフォームでのバスエラーによるクラッシュ

バス エラーが発生したときにルータがアクセスしたアドレスを使用して、show region コマンドを実行し、そのアドレスに対応するメモリ上の位置を特定します。 バス エラーによって報告されたアドレスが、show region の出力に表示される範囲内でない場合は、ルータが無効なアドレスにアクセスを試みたことを意味しています。 これは、Cisco IOS ソフトウェアに問題があることを示します。 Output Interpreter Tool登録ユーザ専用)を使用して、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 のアドレス範囲外のアドレスでのバス エラー クラッシュについては、Output Interpreter Tool を使用して、show stacks コマンドの出力をデコードし、バス エラーの原因である Cisco IOS ソフトウェアの不具合を特定します。 一致するバグ ID、または問題の修正を含む Cisco IOS ソフトウェア バージョンが不明な場合は、Cisco IOS ソフトウェアをリリース群の最新バージョンにアップグレードするという選択肢もあります。最新バージョンには通常、数多くのバグの修正が含まれているため、多くの場合これで問題が解決します。

ご使用のシスコ デバイスの、show stacks または show technical-support コマンド(イネーブル モードでの)の出力データがある場合は、 を使用して潜在的な問題と修正を表示できます。 使用するには、登録ユーザとしてログインし、JavaScript を有効にしている必要があります。

RISC プロセッサ プラットフォームでのバスエラーによるクラッシュのトラブルシューティング

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 は有効な仮想アドレスではないため、バス エラーの原因はソフトウェアの問題であったことが分かります。 Output Interpreter Tool登録ユーザのみ)を使用して、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 コマンドを使用して、バス エラーによって表示されたアドレスが、ルータで使用されているアドレス範囲内にあるかどうかを確認します。

  • アドレスが仮想アドレス範囲内の場合は、この範囲に対応するハードウェアを交換します。

  • アドレスが仮想アドレス範囲外の場合は、Output Interpreter Tool登録ユーザのみ)を使用して、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ソフトウェアがインストールされたハードウェアをサポートしない場合

すべてのネットワーク カードが、使用している Cisco IOS ソフトウェアでサポートされていることを確認します。 Software Advisor登録ユーザのみ)を使用すると、ハードウェアに必要な Cisco IOS ソフトウェアの最低限のバージョンが分かります。 また、Cisco 7200 または Cisco 7500 ルータなどのブート イメージをサポートしているルータを使用している場合は、装着されているハードウェアがブートフラッシュ イメージでサポートされていることを確認します。

ソフトウェア障害

2600 および 3600 ルータでは、ルータの I/O メモリ容量をメイン メモリのパーセンテージで設定できます。 I/O メモリの設定が、インストール済みのネットワーク モジュールまたは WAN インターフェイス カード(WIC)に不適切である場合は、2600/3600 のプラットフォームが正常にブートされず、バス エラーでクラッシュすることがあります。

ソフトウェア設定が最近変更され、ルータでブート ループが発生している場合は、この問題により、ソフトウェアの不具合が発生する可能性があります。

ルータがブートできない場合は、設定をバイパスし、それが問題の原因であるかどうかを確認できます。 次の手順に従ってください。

  1. ブートの最初の 60 秒間に、ルータにブレーク シーケンスを送信して、ROMMON 状態にします。

  2. 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、ポート アダプタ、またはラインカードを取り付け直します。

ハードウェア障害

バス エラーで示される情報では、問題のあるハードウェアを切り分けることはできません。 したがって、問題のあるハードウェアを見つけるには、カード類を取り外し、再度装着する必要があります。 問題を特定するための推奨手順を、次に示します。

/image/gif/paws/7949/flow1.jpg

** 上記のトラブルシューティング手順を実行した後に、連続ループが発生しなくなった場合は、ネットワーク モジュールの装着不良が原因であった可能性があります。 ルータを 24 時間監視し、問題が再度発生することなくルータが稼働し続けることを確認してください。

サービス リクエストをオープンする場合に収集する情報

ここまで説明したトラブルシューティングの手順を実行しても、なおサポートが必要で、Cisco テクニカルサポートでサービス リクエストをオープンする場合は、バス エラーまたはバス エラー例外のトラブルシューティングに必要な次の情報をご提供ください。
  • サービス リクエストをオープンする前に実行したトラブルシューティング
  • show technical-support の出力(可能な場合はイネーブル モードの)
  • show log の出力、またはコンソールのキャプチャ(可能な場合)
  • crashinfo ファイル(ファイルがあり、show technical-support の出力に含まれていない場合)
  • show region の出力(show technical-support の出力に含まれていない場合)
収集したデータは、圧縮しないプレーン テキスト形式(.txt)でサービス リクエストに添付してください。 情報をサービス リクエストに添付するには、TAC Service Request Tool登録ユーザ専用)を使用してアップロードします。 TAC Service Request Tool にアクセスできない場合は、メッセージの件名の行にお客様のリクエスト番号を記入し、attach@cisco.com にメッセージを送信することによって、リクエストに関連情報を添付できます。

注: バス エラー例外のトラブルシューティングに必要でない限り、上記の情報を収集する前にルータを手作業でリロードしたり、電源のオフ/オンを行ったりしないようにしてください。問題の原因の判断に必要な、重要な情報が失われます。

関連するシスコ サポート コミュニティ ディスカッション

シスコ サポート コミュニティは、どなたでも投稿や回答ができる情報交換スペースです。


関連情報


Document ID: 7949