概要
このドキュメントでは、Nexus 9000 CRC(Cyclic Redundancy Check)スクリプトを実行する手順について説明します。このスクリプトは、CRCエラーのあるポートを特定し、修復手順を提供します。
背景説明
Cisco Nexus 9000シリーズスイッチは、デフォルトでカットスルースイッチングを使用します。 カットスルースイッチングとは、スイッチがフレームに対して転送の決定を行い、有効な転送の決定を行うのに十分なフレームヘッダーをスイッチが処理するとすぐに、フレームを出力インターフェイスから転送し始めるスイッチングです。これは、出力インターフェイスからフレームを転送する前にフレーム全体をバッファリングするストアアンドフォワードスイッチングとは異なります。
インターフェイスCRCエラーをトラブルシューティングするには、これらのスイッチのインターフェイスカウンタエラーをトラブルシューティングするために、CRCおよびFCS(フレームチェックシーケンス)カウンタの増分値を確認する必要があります。
このスクリプトは、9200および9300クラウドスケールのASIC(特定用途向け集積回路)スイッチでのCRC/FCSエラーの識別を自動化します。定期的な間隔でインターフェイスのCRCカウンタとFCSカウンタの値を収集し、エラーの履歴や存続中かどうかを確認し、修復手順を提供します。
スクリプトの実行は、次の2つの部分に分かれています。
- Pollerスクリプト(Script-1)は、最大7日間の期間にわたって、10 ~ 30ごとにファイル内のインターフェイスエラーデータを収集します。
- Parser Script(Script-2)はこれらの出力を分析し、エラーのソースであるインターフェイスと、ストンプされたパケットを転送するだけのインターフェイスを含む表形式の出力を提供します。
少なくともscript-1の実行の30分後、つまりscript-1の実行の一部として2つ以上のファイルが収集された場合にscript-2を実行します。
スクリプトは、これらのコマンドセットの出力を収集し、それらを分析してCRCの発生源を特定します。「関連情報」セクションのリンクを参照してください。
switch# show interface
switch# show interface counters errorsがゼロ以外の値になっている
switch# show interface hardware-mappings
switch# スロット{x} show hardware internal tah counters asic {y}
前提条件
スクリプトはGitで入手できます。
CRCエラー分析が必要なNexusスイッチにネットワークアクセスできるクライアントマシン(ジャンプサーバ)からダウンロードして実行する必要があります。
スクリプトをダウンロードするには、ここをクリックしてください。
要件
次の前提条件がクライアントマシン(ジャンプサーバ)にインストールされていることを確認します。
- Python3
- Nexusスイッチにネットワークアクセスするためのクライアントマシン(ジャンプサーバ)
- Nexus_CRC_requirements.txtはgitで入手でき、クライアントマシンにインストールされます。
(これは、クライアントジャンプホストでの1回限りの設定です。この手順では、必要なpythonライブラリをjump-hostにインストールします)
requirements.txtのインストール手順
ステップ1:NEXUS_CRC_requirements.txtをダウンロードします。
ステップ2:ターミナルウィンドウを開く/コマンドプロンプト
ステップ3:NEXUS_CRC_requirements.txtがあるフォルダに移動し、次のコマンドを実行します。
install -r Nexus_CRC_requirements.txtを実#pipします。
インストールが成功すると、次のようなメッセージが表示されます。
DateTime-4.3 numpy-1.21.2 pandas-1.3.2 paramiko-2.7.2 python-dateutil-2.8.2 stdiomask-0.0.5 tabulate-0.8.9 termcolor-1.1.0が正常にインストールされました
使用するコンポーネント
スクリプトは、次のジャンプサーバでテストされます。
- Windows 10 64ビット
- MACモントレー
このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されました。このドキュメントで使用するすべてのデバイスは、クリアな(デフォルト)設定で作業を開始しています。本稼働中のネットワークでは、各コマンドによって起こる可能性がある影響を十分確認してください。
関連製品
このスクリプトは、Nexus 9200および9300クラウドスケールASICスイッチのCRCエラーを分析することを目的としています。
該当プラットフォーム:Nexus 9200/9300固定構成スイッチ
- N9K-C92160YC-X
- N9K-C92300YC
- N9K-C92304QC
- N9K-C92348GC-X
- N9K-C9236C
- N9K-C9272Q
- N9K-C9332C
- N9K-C9364C
- N9K-C93108TC-EX
- N9K-C93108TC-EX-24
- N9K-C93180LC-EX
- N9K-C93180YC-EX
- N9K-C93180YC-EX-24
- N9K-C93108TC-FX
- N9K-C93108TC-FX-24
- N9K-C93180YC-FX
- N9K-C93180YC-FX-24
- N9K-C9348GC-FXP
- N9K-C93240YC-FX2
- N9K-C93216TC-FX2
- N9K-C9336C-FX2
- N9K-C9336C-FX2-E
- N9K-C93360YC-FX2
- N9K-C93180YC-FX3
- N9K-C93108TC-FX3P
- N9K-C93180YC-FX3S
- N9K-C9316D-GX
- N9K-C93600CD-GX(日本未発売)
- N9K-C9364C-GX
- N9K-C9364D-GX2A
- N9K-C9332D-GX2B
背景説明
Cisco Nexus 9000シリーズスイッチは、デフォルトでカットスルースイッチングを使用します。
これらのスイッチでインターフェイスカウンタエラーをトラブルシューティングするには、CRCおよびFCSカウンタの増分値を確認する必要があります。
このスクリプトは、9200および9300クラウドスケールASICスイッチのCRC/FCSエラーの識別を自動化します。定期的な間隔でインターフェイスのCRCカウンタとFCSカウンタの値を収集し、エラーの履歴や存続中かどうかを確認し、修復手順を提供します。
スクリプトの実行は、次の2つの部分に分かれています。
- Pollerスクリプト(Script-1)は、最大7日間の期間にわたって、10 ~ 30ごとにファイル内のインターフェイスエラーデータを収集します。
- Parser Script(Script-2)はこれらの出力を分析し、エラーのソースであるインターフェイスと、ストンプされたパケットを転送するだけのインターフェイスを含む表形式の出力を提供します。
少なくともscript-1の実行の30分後、つまりscript-1の実行の一部として2つ以上のファイルが収集された場合にscript-2を実行します。
スクリプト実行手順
ポーラースクリプト(スクリプト1)の実行
これらの手順は、定期的な間隔でファイルのCRC/FCSエラーカウンタを収集するポーラースクリプトを実行することです。
ステップ1:端末の/コマンドプロンプトを開き、「NEXUS_CRC_POLLER.py」を実行します。
#python3 NEXUS_CRC_POLLER.py
入力:
NexusスイッチのIP/FQDN、ユーザ名、およびパスワードを入力します。
ステップ2:ファイルを保存するフォルダのパス(ジャンプホスト上の場所)を入力します。
有効なフォルダ形式:
例:
Windows-> C:\Users\Admin\Desktop\Nexus\
MAC -> /Users/admin/Desktop/Nexus/
**フォルダ形式が上記と異なる場合、データ収集とスクリプト実行が影響を受けることに注意してください。また、ファイルを保存するフォルダが既に存在することを確認してください**
ステップ3:スクリプトを実行する期間を入力します。
最大:7日
最小:30分以上実行してCRCカウンタを複数回収集し、増分を特定します
**スクリプトは、10 ~ 30分ごとにインターフェイスエラーを収集し、以前の入力で指定されたパスでデータをファイルに保存します。入力で指定された終了時刻に基づくデータ収集スクリプトの終了時刻**
ステップ4:ドメインにエラーがない場合は、続行してデータをもう一度収集するかどうかを尋ねられます。
パーサースクリプト(スクリプト2)の実行
次の手順は、Parserスクリプト(PQS)を実行することです。このスクリプトは、Pollerスクリプトによって収集されたCRC/FCSエラーファイルを分析し、修復の手順を提供します。
データを比較するPollerスクリプト(スクリプト1)の実行の一部として少なくとも2つのファイルが生成されたら、Parserスクリプト(スクリプト2)の実行を開始します(つまり、Pollerスクリプトの実行から約30分後)。
ターミナルセッションのフォント解像度を100 %に保ち、適切な表形式の出力を表示します。
ステップ1:端末の/コマンドプロンプトを開き、「NEXUS_CRC_PARSER.py」を実行します。
Script-1からデータを収集したのと同じファイルの場所を入力します。
以下に例を挙げます。
ファイルが保存されているフォルダの絶対パスを入力してください: /Users/rgajjar/Desktop/CRC_NEXUS/
パーサースクリプト(Script-2)出力のレビュー
スイッチバージョン>=10.2の実行例および出力テーブル:
スイッチバージョン< 10.2の実行例および出力テーブル:
関連情報
N9K CRCエラーの特定の詳細については、https://www.cisco.com/c/en/us/support/docs/switches/nexus-9000-series-switches/216239-nexus-9000-cloud-scale-asic-crc-identifi.html#anc12を参照してください。