内容

概要

背景説明

これらのツールは何に役立ちますか。

SPANおよびERSPAN

ELAM

概要

ASIC

ASICテーブル

ELAMトリガーin-select

ELAM trigger out-select

ELAMの設定条件

ELAMレポートの表示

完全なELAMの例

ELAM Assistantアプリケーション

ElamAssistant

ElamAssistant – 詳細

トリアージ

例

TCPDump

オンデマンドのアトミックカウンタ

概要

このドキュメントでは、転送問題のデバッグに使用できる、ACIにネイティブに含まれているツールについて説明します。

背景説明

このドキュメントの内容は、 Troubleshooting Cisco Application Centric Infrastructure, Second Edition 特に ファブリック内フォワーディング：ツール 章

また、ELAMとFtriageの詳細な説明は、セッションBRKDCN-3900bのCiscoLiveオンデマンドライブラリにあります。

これらのツールは何に役立ちますか。

ACIの観点からフォワーディングの問題をトラブルシューティングするには、次の点を理解してください。

1. フローを受信しているスイッチはどれか？

2. そのスイッチが行う転送の決定は何ですか。

3. スイッチがドロップしていますか。

ACIには、ユーザが特定のフローで何が発生しているかを詳細に把握できる複数のツールが含まれています。次のいくつかのセクションでは、これらのツールについて詳しく説明します。ここでは概要の紹介だけを行います。

SPANおよびERSPAN

SPANとERSPANはどちらも、特定のロケーションで受信したトラフィックのすべてまたは一部を別のロケーションに複製できるツールです。複製されたトラフィックの送信先のエンドデバイスは、何らかのパケットスニファ/アナライザアプリケーションを実行している必要があります。従来のSPANでは、あるポートで受信され、別のポートを通過するトラフィックを複製します。ACIは、ERSPANに加えてこれをサポートします。

ERSPANは、ローカルポートからトラフィックを複製する以外は、同じ概念に従います。複製されたトラフィックはGREでカプセル化され、リモート宛先に送信されます。ACIでは、このERSPAN宛先はレイヤ3エンドポイントとしてのみ学習する必要があり、任意のVRF内の任意のEPGにすることができます。

トラブルシューティング中の準備時間を最小限に抑え、迅速なERSPANセッションの設定とキャプチャを可能にするために、常にSPAN宛先をファブリックに接続しておくことを推奨します。

ELAM

概要

Embedded Logic Analyzer Module(ELAM)は、ユーザがハードウェアで条件を設定し、設定された条件に一致する最初のパケットまたはフレームをキャプチャできるツールです。キャプチャに成功すると、ELAMステータスが「triggered」と表示されます。 トリガーされると、ELAMが無効になり、ダンプを収集して、スイッチASICがそのパケット/フレームで行っている膨大な数の転送決定を分析できます。ELAMはASICレベルで実装され、スイッチのCPUやその他のリソースに影響を与えません。

このマニュアルの転送例では、フローで何が発生しているかを確認する手段としてELAMを使用します。例では、リーフCLIバージョンとELAMアシスタントアプリケーションの両方を示します。

このガイドでは、第1世代リーフスイッチ（EX、FX、またはFX2サフィックスのないスイッチ）でのELAMの使用方法については説明しません。

ツールを使用する前に、コマンド構文の構造を理解することが重要です。

リーフCLIの例：

vsh_lc                                       [This command enters the line card shell where ELAMs are run]

debug platform internal <asic> elam asic 0   [refer to the ASICs table]

条件をトリガーに設定

trigger reset                                           [ensures no existing triggers are running]

trigger init in-select <number> out-select <number>     [determines what information about a packet is displayed and which conditions can be set]

set outer/inner                                         [sets conditions]

start                                                   [starts the trigger]

status                                                  [checks if a packet is captured]

パケット分析を含むダンプの生成

ereport             [display detailed forwarding decision for the packet]

引き続き「status」コマンドを入力して、トリガーの状態を表示します。定義された条件に一致するパケットがASICで検出されると、「status」の出力には「triggered」と表示されます。 ELAMがトリガーされると、スイッチの転送決定の詳細を「ereport」で表示できます。 ACIバージョン4.2より前では、「report」を使用する必要があります。

ASIC

ELAM構文では、ASICを指定する必要があることに注意してください。ASICはスイッチモデルに依存するため、次の表を参照して、指定するASICを決定してください。

ASICテーブル

スイッチ/ラインカードファミリ

ElamのASIC

-EXスイッチ/LC

TAH

-FX(P)スイッチ/LC

ROC

-FX2スイッチ/LC

ROC

Cスイッチ(9364C、9332C)

ROC

-GXスイッチ

アプリケーション（APP）

-GX2スイッチ

チョ

-FX3スイッチ

ROC

ELAMトリガーin-select

CLIから実行する場合に理解する必要があるELAMのもう1つのコンポーネントは、「in-select」です。 「in-select」は、パケット/フレームが持つと予想されるヘッダーと一致するヘッダーを定義します。

たとえば、VXLANカプセル化されていないダウンリンクポートから着信するパケットには、外側のレイヤ2、レイヤ3、およびレイヤ4ヘッダーしかありません。

VXLANでカプセル化されたフロントパネル（ダウンリンク）ポート（VXLANモードのCisco ACI Virtual Edgeなど）から着信するパケット、またはアップストリームスパインから着信するパケットには、VXLANカプセル化が適用されます。つまり、外部と内部の両方のレイヤ2、レイヤ3、およびレイヤ4ヘッダーが存在する可能性があります。

すべてのトリガーオプションは次のとおりです。

leaf1# vsh_lc

module-1# debug platform internal tah elam asic 0

module-1(DBG-elam)# trigger reset

module-1(DBG-elam)# trigger init in-select ?

10  Outerl4-innerl4-ieth

13  Outer(l2|l3|l4)-inner(l2|l3|l4)-noieth

14  Outer(l2(vntag)|l3|l4)-inner(l2|l3|l4)-ieth

15  Outer(l2|l3|l4)-inner(l2|l3|l4)-ieth

6   Outerl2-outerl3-outerl4

7   Innerl2-innerl3-innerl4

8   Outerl2-innerl2-ieth

9   Outerl3-innerl3

[in-select 6]が選択されている場合、唯一のオプションは、条件を設定し、外側のレイヤ2、3、または4ヘッダーからヘッダーを表示することです。「in-select 14」が選択されている場合、唯一のオプションは、外側および内側のレイヤ2、3、および4ヘッダーの条件を設定し、詳細を確認することです。

ベストプラクティスの注：

ダウンリンクポートでVLANカプセル化を使用して着信するパケットをキャプチャするには、「in-select 6」を使用します

VXLANカプセル化を使用して（スパインまたはVXLANカプセル化を使用したVLEAFのいずれかから）パケットをキャプチャするには、「in-select 14」を使用します

ELAM trigger out-select

「out-select」では、ELAMレポートに表示するルックアップ結果を制御できます。ほとんどの実用的な目的では、ルックアップの結果がパケット/フレームをドロップするかどうかを示す「drop vector」を含むほとんどの情報が含まれているため、「out-select 0」を使用できます。

ELAMの結果を得るために、'ereport'や'report detail'の代わりに'report'を使用すると、'out-select 1'にのみ'drop vector'が表示されることに注意してください。 ただし、常に「out-select 0」を使用して「ereport」または「report detail」を実行できます。

ELAMの設定条件

ELAMは、パケット内で検索する大量のレイヤ2、3、および4条件をサポートします。'inner'と「outer」は、内部ヘッダー（VXLANカプセル化パケット）または外部ヘッダーで条件をチェックできるかどうかを決定します。

ARPの例：

set outer arp source-ip-address 10.0.0.1 target-ip-address 10.0.0.2

MACアドレスの例：

set outer l2 src_mac aaaa.bbbb.cccc dst_mac cccc.bbbb.aaaa

内部ヘッダーのIPアドレスの例：

set inner ipv4 src_ip 10.0.0.1 dst_ip 10.0.0.2

ELAMレポートの表示

ELAMがstatusでトリガーされたことを確認します。

module-1(DBG-elam-insel6)# status

ELAM STATUS

===========

Asic 0 Slice 0 Status Armed

Asic 0 Slice 1 Status Triggered

「ereport」を使用すると、ELAMの結果をわかりやすい形式で表示できます。ELAMレポートは、スイッチの「/var/log/dme/log/」フォルダに保存されます。ELAM用の2つのファイルがフォルダの下にあります。

- elam_<timestamp>.txt

- pretty_elam_<timestamp>.txt

完全なELAMの例

この例では、-EXスイッチのダウンリンクポートから着信する非VXLANカプセル化トラフィック（外部ヘッダーで一致）をキャプチャします。

module-1# debug platform internal tah elam asic 0

module-1(DBG-elam)# trigger reset

module-1(DBG-elam)# trigger init in-select 6 out-select 0

module-1(DBG-elam-insel6)# set outer ipv4 src_ip 10.0.0.1 dst_ip 10.0.0.2

module-1(DBG-elam-insel6)# start

module-1(DBG-elam-insel6)# status

module-1(DBG-elam-insel6)# ereport

ELAM Assistantアプリケーション

このマニュアルのトラブルシューティング例では、Cisco DC App Center(https://dcappcenter.cisco.com)からダウンロードできるELAM Assistantアプリケーションの使用方法も示します。 このツールは、APICのGUIを使用してELAMの導入と解釈を自動化します。

この例は、ノード101ダウンリンクポートの特定の送信元および宛先IPに一致するELAMの展開を示しています

ElamAssistant

ElamAssistant – 詳細

また、ELAM Assistantでは、送信元インターフェイスやVXLAN値など、より複雑な照合パラメータを簡単に使用できます。

トリアージ

fTriageは、ELAMの設定と解釈をエンドツーエンドで自動化することを目的としたAPIC CLIベースのツールです。このツールの前提は、ユーザが特定のフローと、フローが開始されるリーフを定義できることです。次に、このツールは各ノードでELAMを1つずつ実行し、フォワーディングフローを調べます。これは、パケットが通るパスが明確でない大規模なトポロジで特に役立ちます。

fTriageは、実行された各コマンドの出力を含む大きなログファイルを生成します。このファイルの名前は、fTriageの出力の最初の数行に表示されます。

トリアージの完了には最大15分かかります。

例

リーフ104以降の10.0.1.1と10.0.2.1間のルーティングされた通信のフローをマップします。

ftriage route -ii LEAF:104 -dip 10.0.2.1 -sip 10.0.1.1

リーフ104から始まるレイヤ2フローをマップします。

ftriage bridge -ii LEAF:104 -dmac 02:02:02:02:02:02

完全なTriageヘルプは、APICで「ftriage —help」を実行することで確認できます。

TCPDump

TcpdumpをACIスイッチで利用して、コントロールプレーンとの間のトラフィックをキャプチャできます。tcpdumpキャプチャでは、スイッチのCPUに送信されるコントロールプレーントラフィックだけが確認できます。例をいくつか示します。ルーティングプロトコル、LLDP/CDP、LACP、ARPなど。データプレーン（およびコントロールプレーン）トラフィックをキャプチャするには、SPANまたはELAMを使用してください。

CPU上でキャプチャするには、「kpm_inb」インターフェイスを指定します。従来のtcpdumpオプションとフィルタのほとんどは使用できます。

リーフスイッチのSVI宛てのICMPをキャプチャする例を次に示します。

leaf205# tcpdump -ni kpm_inb icmp

tcpdump: verbose output suppressed, use -v or -vv for full protocol decode

listening on kpm_inb, link-type EN10MB (Ethernet), capture size 65535 bytes

20:24:12.921981 IP 10.0.2.100 > 10.0.2.1: ICMP echo request, id 62762, seq 4096, length 64

20:24:12.922059 IP 10.0.2.1 > 10.0.2.100: ICMP echo reply, id 62762, seq 4096, length 64

20:24:13.922064 IP 10.0.2.100 > 10.0.2.1: ICMP echo request, id 62762, seq 4352, length 64

20:24:13.922157 IP 10.0.2.1 > 10.0.2.100: ICMP echo reply, id 62762, seq 4352, length 64

20:24:14.922231 IP 10.0.2.100 > 10.0.2.1: ICMP echo request, id 62762, seq 4608, length 64

20:24:14.922303 IP 10.0.2.1 > 10.0.2.100: ICMP echo reply, id 62762, seq 4608, length 64

また、「 – w」オプションを使用すると、tcpdumpはパケットキャプチャをPCAPファイルに書き込むことができ、Wiresharkなどのツールで開くことができます。

スイッチのアウトオブバンドインターフェイスであるeth0インターフェイスでtcpdumpを使用する。これは、スイッチのアウトオブバンド物理ポートを通過するすべてのトラフィックの接続をトラブルシューティングするのに役立ちます。これは主に、SSH、SNMPなどのコントロールプレーンベースのトラフィックです。

オンデマンドのアトミックカウンタ

オンデマンドのアトミックカウンタは、特定のフロー内のパケットがリーフアップリンクから送信され、別のリーフファブリックポートで受信されたときにカウントされることを目的としています。パケットの損失や過剰な受信の有無を細かく設定できます。