本書では、Cisco 12000 シリーズ インターネット ルータにおけるファブリック Ping のタイムアウトおよび障害のトラブルシューティング方法について説明します。こうした障害は、次のエラー メッセージによって示されます。
%GRP-3-FABRIC_UNI: Unicast send timed out (3)
と
%GRP-3-COREDUMP: Core dump incident on slot 3, error: Fabric ping failure (seq:29192)
ドキュメント表記の詳細は、『シスコ テクニカル ティップスの表記法』を参照してください。
このドキュメントに関しては個別の前提条件はありません。
この文書の情報は、次のハードウェアのバージョンに基づいています。
Cisco 12000 シリーズ インターネット ルータ
このマニュアルの情報は、特定のラボ環境に置かれたデバイスに基づいて作成されました。このドキュメントで使用するすべてのデバイスは、初期(デフォルト)設定の状態から起動しています。実稼動中のネットワークで作業をしている場合、実際にコマンドを使用する前に、その潜在的な影響について理解しておく必要があります。
Cisco 12000 シリーズ インターネット ルータにおける GRP およびラインカード(LCs)は、ほとんどのカード間通信に対して高速な物理パスを提供するクロスバー スイッチ ファブリックを介して接続されます。スイッチ ファブリックを介して GRP とラインカード間で送受信されるメッセージには、ルーティングされ受信される実際のパケット、転送情報、トラフィック統計、および大半の管理情報と制御情報などが含まれます。したがって、GRP にとって、このパスが適切に確保されていることが重要です。
ファブリック Ping は、GRP とスイッチ ファブリック間で動作する 4 種類のアプリケーションのうちの 1 つです。残りのアプリケーションは、Inter-Processor Communication(IPC; プロセッサ間通信)、ネットワーク パケット、およびコードのダウンロードです。ファブリック Ping を実装する目的には、障害検出アルゴリズムの一部を提供すること、Maintenance Bus(MBUS; メンテナンス バス)上のバッファとラインカード ファブリック インターフェイスを介した Ping を使って実装されるキープアライブ メカニズムを提供することがあります。
GRP 上の Cisco Cell Segmentation Reassembly(CSAR)ファブリック インターフェイス ドライバにより、スイッチ ファブリックと GRP 間で送受信されるメッセージが処理されます。これには、ファブリック Ping が含まれます。ファブリック Ping は、ソフトウェアで生成され、プライマリ GRP から各ラインカードへ、6 秒間隔で送信されます。ラインカードで GRP からの Ping 要求を受信すると、LC から GRP へ応答が必ず送り返されます。GRP で ファブリック Ping に対する応答を 5 回連続で(合計 30 秒間)受信しなかった場合、GRP によりラインカードが動作不能状態であることが宣言され、Maintenace BUS(MBUS; メンテナンス バス)を介してラインカードがリセットされます。
これはラインカードがビジー状態のために、GRP からのファブリック Ping 要求に応答できない場合がほとんどです。こうしたファブリック Ping 障害は、ファブリックの障害、または Cisco IOS(R) ソフトウェアのバグによって引き起こされることもあります。ファブリック Ping 障害の考えられる原因をすべて、後述するトラブルシューテイングのセクションで詳細に説明します。
Gigabit Route Processor(GRP; ギガビット ルート プロセッサ)によって、Cisco Cell Segmentation and Reassembly(CSAR)の Application Specific Integrated Circuit(ASIC; 特定用途向け集積回路)の ToFab(スイッチ ファブリックに対する)キューに Ping 要求がスタックされているのが検出されると、ファブリック Ping タイムアウトが発生します。 この ASIC では、パケットが Cisco Cell に分割されてから、スイッチ ファブリック経由で出力 Line Card(LC; ラインカード)へ送信されます。
ラインカードまたはセカンダリ GRP が、スイッチ ファブリックを介してプライマリ GRP からのファブリック Ping 要求に応答できなかった場合、ファブリック Ping 障害が発生します。こうした障害の症状が出ると、調査が必要です。
「背景情報」の項で説明したように、GRP からラインカードへ 6 秒間隔でファブリック Ping が送信され、ラインカードからはファブリック Ping に対する応答が返されなければなりません。GRPが5回連続してファブリックpingに対する応答を受信できない場合は、メンテナンスバス(MBUS)経由で要求メッセージを送信してラインカードをリセットし、show context slot {#}コマンドの出力に示されるように、ソフトウェア強制クラッシュが報告されます。
コンソール ログから、または show log コマンドにより、ファブリック Ping 障害メッセージに先だって、次のエラー メッセージが表示されることがあります。
%GRP-3-FABRIC_UNI: Unicast send timed out (3) %GRP-3-FABRIC_UNI: Unicast send timed out (3) %GRP-3-FABRIC_UNI: Unicast send timed out (3)
この場合、番号(3)はプライマリ GRP によりファブリック Ping が送信されるラインカードのスロットを表します。
このメッセージは、プライマリ GRP 上の CSAR ASIC の ToFab キューにパケットがスタックされていることを示しています。何らかのデータが 2 つの CSAR バッファのいずれかに 100 ミリ秒(msec)以上スタックされていると、バッファのフラッシュが発生し、タイムアウト メッセージが生成されます。
GRP からファブリック Ping 要求メッセージが送信されたにもかかわらず、ラインカードから応答がないか、ラインカードから応答があってもスイッチ ファブリックに障害があるためメッセージが送れない場合は、ファブリック障害メッセージの前にこのメッセージが表示されることはありません。したがって "%GRP-3-FABRIC_UNI" というエラー メッセージが表示された場合は、100 または 200 ミリ秒の間、ファブリックを介してスロットへいくつかのデータを転送できなかったということです。%GRP-3-FABRIC_UNI が表示されたため、LC へキープアライブを送信することをできず、(この場合)30 秒後にファブリック Ping 障害が発生したという可能性があります。ただし "%GRP-3-FABRIC_UNI" が表示されずにファブリック Ping 障害が発生することもあれば、同メッセージが表示されてもファブリック障害が発生しないこともあります。
プライマリ GRP によって、診断用コア ダンプの実行が必要な段階まで、ラインカードまたはセカンダリ GRP の性能が低下しているかどうかを決定することができます。この場合、GRP から MBUS を介してラインカードへメッセージを送信し、コア ダンプを取得できるように、クラッシュを実行すべきかどうかをラインカードの CPU に対して確認します。
%LCINFO-3-CRASH: Line card in slot 3 crashed %GRP-3-COREDUMP: Core dump incident on slot 3, error: Fabric ping failure (seq:29192)
exception crashinfo と関連コマンド(コア ダンプ設定のための GSR 固有情報については、「GSR ラインカード上でのコア ダンプの設定」を参照)を使ってラインカードが設定されている場合、コア ダンプが生成されます。 show context slot {#}コマンドの出力で指定された文字列は、リロードの理由を示しています。ファブリック Ping 障害の場合、理由は必ず "Software-forced crash"(ソフトウェアによる強制クラッシュ)になります。
CRASH INFO: Slot 1, Index 1, Crash at 00:42:45 KST Mon Mar 12 2001 VERSION: GS Software (GLC1-LC-M), Version 12.0(18)ST, EARLY DEPLOYMENT RELEASE SOFTWARE (fc1) TAC Support: http://www.cisco.com/tac Compiled Thu 09-Aug-01 22:06 by nmasa Card Type: 2 Ports OC3 Channelized to DS1/E1 , S/N CAT00400500 System exception: sig=23, code=0x24, ! --- SIG=23 indicates a software-forced crash. context=0x41303B04 System restarted by a Software forced crash STACK TRACE: -Traceback= 400C3970 400C1F90 40815D5C 407D3144 400C7488
ラインカードのクラッシュ後、プライマリ GRP に通知するため、初期メッセージが送信されます。続いて、クラッシュに関するそのほかの情報が MBUS を介してラインカードから送信されるまで、GRP は待機状態となります。ラインカードから最初のメッセージを受信した後、GRP は数ミリ秒内に完全な情報を受信しなければなりません。発生する可能性は低いかもしれませんが、GRP で後続のクラッシュ情報メッセージが適切な制限時間(10 秒)内に受信できなかった場合、エラー メッセージが出力され、残りの GRP ソフトウェアに、ラインカードがクラッシュしたことが通知されます。
通常のルータ操作中、プライマリ GRP からラインカードに対して常に Ping が送信され、ラインカードからは Ping への応答が送信されます。Ping 障害の発生は、調査を必要とする別の問題の症状と考えられます。具体的には、次のような問題があります。
注:障害が再現できる場合、GRP 上で no service auto-reset を設定してください。このコマンドを実行すると、次回 Ping 障害が発生した場合にラインカードのリロードが無効となります。また attach <slot#> コマンドを使用することによりラインカードに接続し、関連する show コマンドの結果をキャプチャできるようになります。
一番可能性が高い原因は Cisco IOS ソフトウェアのバグで、プロセスが長時間にわたり割り込みを無効にしたため、ファブリック Ping を 5 回連続で受信することができなかったというものです。既知の問題を回避するため、使用中のトレイン内で最新の Cisco IOS ソフトウェア リリースにアップグレードしてください。アップグレードに関するサポートについては、「シスコソフトウェアダウンロードエリア」を参照してください。
ラインカードが長期間にわたり、バック プレッシャの影響を及ぼす可能性があります。このため、スケジューラによってスイッチ ファブリックからのトラフィックの受信が禁止されています。この症状は、インターフェイス輻輳に関連する問題があることを示唆しています。この症状を確認するには、次のコマンドを使用します。
ラインカード上での show controller frfab queue コマンド。このコマンドを実行すると、バッファがほとんど、もしくはまったく使用できない、非 IPC フリー キューが検索されます。
GRP 上での show controller csar queue コマンド。このコマンドを実行すると、0 でない「最大長」の値、および「長さ」の値に一致する「最大長」の値が検索されます(次のサンプル出力を参照)。
router#show controllers csar queue 1190 Free Q Slot Length Max Length 0 0 7 1 0 2 2 70 70 ! -- CSAR queue for slot 2 is building and reaching max length. 3 0 2 4 0 3 5 0 0 ...
CSAR キューには、送信先のラインカードへのパケットを、最大 50 パケット格納することができます。50 パケットを超えると、ファブリック Ping パケットだけが格納されます。次にキューの上限を 70 に増やすと、CSAR ではファブリック Ping も含め、ラインカードへの全パケットの格納が停止されます。GRP とすべてのラインカードの両方に、64K の CSAR セグメント化バッファがあり、このバッファにメッセージが保存されます。これらのバッファがビジー状態の場合、ルータではメッセージを保存するため、ソフトウェア保持キューが使用されます。また、このキューの上にファブリック Ping メッセージが長期にわたって保持されることを防ぐため、タイマーも設定されます。
ラインカード上の CPU の高い使用率 - 通常、大規模なルーティング テーブルの変更後、またはリンク フラップと Border Gateway Protocol(BGP; ボーダー ゲートウェイ プロトコル)セッション リセット後の大規模な Cisco Express Forwarding(CEF; Cisco エクスプレス転送)テーブルの再計算中に発生します。ソフトウェアでトラフィックを切り替える場合も CPU の使用率は高くなります。このような状況は主として、ほとんどの機能がソフトウェアで実装されているエンジン 0 のラインカードで発生します。このような場合はラインカードの設定をチェックし、エンジン 0 の LC 上の CPU に影響を与えている可能性が高い機能を削除します。CPU の高い使用率は、バグによって発生する可能性もあります。execute-on slot <slot#> show proc cpu コマンド、または execute-on slot <slot#> show tech コマンド(前者のコマンドがルータ上で実行されている Cisco IOS ソフトウェア バージョンでサポートされていない場合)を使って、CPU の利用率を確認してください。既知の問題を回避するため、使用中のトレイン内で最新の Cisco IOS ソフトウェア リリースにアップグレードしてください。
ラインカードは、ラインカードと GRP 間で制御メッセージを交換するために使用される Inter-Process Communication(IPC; プロセス間通信)バッファを使い果たしました。「トラブルシューティング:CEF 関連エラー メッセージ」のトラブルシューティング手順を参照してください。IPC に関連する問題をトラブルシューティングする場合、Cisco 12000 シリーズ インターネット ルータで最低でも Cisco IOS ソフトウェア リリース 12.0(18)S が実行されていることを確認してください。このリリースでは、安定性とスケーラビリティの向上を目的に、IPC キャッシュのデフォルト サイズが 5000 に拡大されています。
ラインカードのハードウェアの問題。ハードウェア障害に起因するファブリック Ping 障害は、10 % 未満だという点に注意してください。Cisco TAC に連絡してハードウェア交換を依頼する前に、次の手順を実行してください。
ファブリック Ping 障害が発生する前に、IPC タイムアウト メッセージが出力されていないか確認します。後述する「IPC セクション」も参照してください。
ラインカードを取り付け直します。
ルータの電源をオフ/オンします。
ルータに物理的にアクセスできない場合は、hw-module slot <slot #> reload コマンドを実行して、ラインカードの手動リロードを実行します。
Cisco 12000 シリーズ インターネット ルータの中核は、ラインカードと GRP に対して、同期をとったギガビット速度の相互接続を提供するスイッチ ファブリック サーキットです。スイッチ ファブリック サーキットには、2 種類のカードが搭載されています。
Clock Scheduler Card(CSC; クロック スケジューラ カード)
スイッチ ファブリック カード(SFC)
上記カードのいずれかで障害が発生した場合、ファブリックを介して Ping メッセージを送信することができません。ただしこの場合、障害のあるファブリックを指摘するその他のメッセージも表示されます(次の例を参照)。
%FABRIC-3-CRC: Switch card 18
CSC と SFC のどちらかに障害があるかを確認するには、show controllers fia コマンドを使います。execute-on all show controllers fia コマンドは、すべてのラインカードからの出力をキャプチャするために使用します。GRP からの出力をラインカードからの出力と比較して、障害のあるスイッチ ファブリック カードを交換する必要があるかどうかを判定します。
次の出力例は、スロット18のsfc0に問題があることを示しています。最初にこのカードを装着し直してから、crc16エラーカウンタが増加し続けている場合は、交換を要求してください。
Router#show controllers fia Fabric configuration: Full bandwidth redundant Master Scheduler: Slot 17 From Fabric FIA Errors ----------------------- redund FIFO parity 0 redund overflow 0 cell drops 1 crc32 lkup parity 0 cell parity 0 crc32 0 Switch cards present 0x001F Slots 16 17 18 19 20 Switch cards monitered 0x001F Slots 16 17 18 19 20 Slot: 16 17 18 19 20 Name: csc0 csc1 sfc0 sfc1 sfc2 -------- -------- -------- -------- -------- Los 0 0 0 0 0 state Off Off Off Off Off crc16 0 0 4334 0 0 ! --- Check the CRCs under SFC0 (slot 18) To Fabric FIA Errors ----------------------- sca not pres 0 req error 0 uni FIFO overflow 0 grant parity 0 multi req 0 uni FIFO undrflow 0 cntrl parity 0 uni req 0 crc32 lkup parity 0 multi FIFO 0 empty DST req 0 handshake error 0 cell parity 0
ファブリック Ping 障害のレポートの中には、障害の前に、ルータから Cyclic Redundancy Check(CRC; 巡回冗長検査)エラー メッセージが報告されたものがあります。GRP では show controllers fia コマンド、ラインカードでは execute-on all show controllers fia コマンドを使って、スイッチ ファブリック カードの CRC をチェックします。GRP 上(ラインカード上のものではなく)の CRC エラーは、障害のある GRP だけを示します。まず、その GRP を装着し直してみて、それでも CRC エラーが増分する場合は、カードの交換を依頼してください。
GRP とラインカード間で実行されている Inter-Process Communication(IPC; プロセス間通信)ソフトウェアに関する問題は、Cisco IOS ソフトウェア リリース 12.0S のさまざまなリリースで解決されてきました。この場合、ファブリック Ping タイム アウトメッセージと併せて、ログ内の IPC 関連のエラー メッセージを確認してください。IPC に関連する既知の問題を回避するため、最新の Cisco IOS ソフトウェア リリースを使用してください。リリースの選択に関するサポートについては、「Cisco Download Software」エリアも参照してください。
show log コマンドの出力に、次のような CEF Forwarding Information Base(FIB; 転送情報ベース)に関連するメッセージが表示される場合は、「トラブルシューティング:CEF 関連エラー メッセージ」を参照してください。
%FIB-3-FIBDISABLE: Fatal error, slot 2: IPC failure
次の debug と show コマンドを使って、Cisco 12000 シリーズ インターネット ルータ上のファブリック Ping タイムアウト/障害メッセージをトラブルシューティングします。
debug fabric events - GRP によって検出されたエラーを出力します。この debug コマンドではメッセージはほとんど表示されず、エラー状態になって初めて、メッセージが表示されます。
debug fabric ping - GRP のファブリック Ping プロセスにおいて検出されたエラーを出力します。この debug コマンドではメッセージはほとんど表示されず、エラー状態になって初めて、メッセージが表示されます。
リセットする各ラインカードに対して、次のコマンドを実行し、結果をキャプチャします。X は、適切なスロット番号に置き換えてください。
execute-on slot X debug fabric events - Ping 応答において、ラインカードにより検出されたエラーを出力します。このコマンドではメッセージはほとんど表示されず、エラー状態になって初めて、メッセージが表示されます。
exec slot X debug fabric ping - ラインカードによりファブリック Ping が受信されると、メッセージが出力されます。この debug コマンドが有効に設定されている各ラインカードに対し、1 秒間隔で 1 行の出力が生成されます。
ラインカードがクラッシュした後は、GRP コンソールからの次のコマンドの結果をキャプチャします。
show context all detail
show fabric
show controllers fia
show controllers csar queue
execute-on all show controllers fia
show tech
show log
ラインカード状態に関して、次のコマンドの結果をキャプチャします。
execute-on slot <スロット番号> show proc CPU
execute-on slot <スロット番号> show controller tofab queue
execute-on slot <スロット番号> show controller tofab stat
execute-on slot <スロット番号> show controller frfab queue
execute-on slot <スロット番号> show controller frfab stat
execute-on slot <スロット番号> show ipc stat
execute-on slot <スロット番号> show ipc queue
execute-on slot <スロット番号> show stack
execute-on slot <スロット番号> show tech
トラブルシューティング手順をすべて実行してもまだ障害が発生する場合は、前述の必須情報をすべて収集し、詳細なトラブルシューティングを実施するために、Cisco TAC の代理店にお問い合わせください。
次に show コマンドを使用した場合の出力例を示します。
router#show controllers csar From Fabric Error Stats ------------------------ 0 out of order, 0 unexpected first 0 unexpected last, 0 unknown rx type, 0 corrupted pak, 0 parity 0 first/last, 0 sequence, 0 cell avail, 0 reassembly, To Fabric Stats ------------------------ Slot Tx Pkts TX Th Pkts Rx Pkts Rx Th Pkts To Fab timeout 0 580278 490214 281061 1336470 0 1 18854 66592 18390 945419 0 2 6 50824 0 896290 0 3 0 0 0 0 0 4 0 51909 0 895430 0 5 0 0 0 0 0 6 0 35113 0 880247 0 7 0 52690 0 52690 0 8 0 0 0 0 0 9 0 0 0 0 0 10 0 0 0 0 0 11 0 0 0 0 0 12 0 0 0 0 0 13 0 0 0 0 0 14 0 0 0 0 0 15 0 0 0 0 0 0 too big, 1 Buf0 free, 1 Buf1 free 0 Copy fail Fabric access Error Stats -------------------------- 0 parity errors, 0 bad access size, 0 invalid address 0 queue full parity, 0 flushed buffer router#show controllers fia Fabric configuration: Full bandwidth, nonredundant fabric Master Scheduler: Slot 16 From Fabric FIA Errors ----------------------- redund fifo parity 0 redund overflow 0 cell drops 0 crc32 lkup parity 0 cell parity 0 crc32 0 Switch cards present 0x001D Slots 16 18 19 20 Switch cards monitored 0x001D Slots 16 18 19 20 Slot: 16 17 18 19 20 Name: csc0 csc1 sfc0 sfc1 sfc2 -------- -------- -------- -------- -------- los 0 0 0 0 0 state Off Off Off Off Off crc16 0 254 0 0 0 ! --- Check the CRC error here. In this case CSC1 in slot 17. To Fabric FIA Errors ----------------------- sca not pres 0 req error 0 uni FIFO overflow 0 grant parity 0 multi req 0 uni FIFO undrflow 0 cntrl parity 0 uni req 0 crc32 lkup parity 0 multi FIFO 0 empty dst req 0 handshake error 0 cell parity 0
show controllers fia コマンドの詳細は、「Show Controller fia コマンドの出力の読み方」を参照してください。
router#show fabric Dest ToFab FrFab Bad Seq Unexpected Slot Pkts Pkts Pkts ---------------------------------------------------- Slot0 26327 26327 0 0 Slot1 26325 26325 0 0 Slot2 26321 26321 0 0 Slot4 26315 26315 0 0 Slot6 26311 26311 0 0 Slot7 26334 26334 0 0 multicast timeout 0 failed pak 0 Current fabric timeout is 6000 fabric send fails 58
上記のトラブルシューティング手順に従ってもサポートが必要で、Cisco TACでサービスリクエストを作成する場合は、Cisco 12000シリーズインターネットルータでファブリックpingの問題をトラブルシューティングする際に次の情報をケースに添付してください。 |
---|
注:問題の根本原因を特定するために必要な重要な情報が失われる可能性があるため、上記の情報を収集する前に手動でリロードまたは電源のオフ/オンを行わないでください。 |
改定 | 発行日 | コメント |
---|---|---|
1.0 |
15-Jan-2008 |
初版 |