この製品のドキュメントセットは、偏向のない言語を使用するように配慮されています。このドキュメントセットでの偏向のない言語とは、年齢、障害、性別、人種的アイデンティティ、民族的アイデンティティ、性的指向、社会経済的地位、およびインターセクショナリティに基づく差別を意味しない言語として定義されています。製品ソフトウェアのユーザインターフェイスにハードコードされている言語、RFP のドキュメントに基づいて使用されている言語、または参照されているサードパーティ製品で使用されている言語によりドキュメントに例外が存在する場合があります。シスコのインクルーシブ ランゲージの取り組みの詳細は、こちらをご覧ください。
シスコは世界中のユーザにそれぞれの言語でサポート コンテンツを提供するために、機械と人による翻訳を組み合わせて、本ドキュメントを翻訳しています。ただし、最高度の機械翻訳であっても、専門家による翻訳のような正確性は確保されません。シスコは、これら翻訳の正確性について法的責任を負いません。原典である英語版(リンクからアクセス可能)もあわせて参照することを推奨します。
このドキュメントでは、Cisco Nexus 7000/7700 F3モジュールでELAM(Embedded Logic Analyzer Module)を実行するために使用する手順について説明します。
このドキュメントで説明する情報に進む前に、Cisco Nexusオペレーティングシステム(NX-OS)と基本的なNexusアーキテクチャに精通しておくことをお勧めします。
ELAMは、network-adminロールによってのみ実行できます。network-admin権限を持つユーザとしてログインしていることを確認してください。
このドキュメントの情報は、次のソフトウェアとハードウェアのバージョンに基づいています。
このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されました。このドキュメントで使用するすべてのデバイスは、クリアな(デフォルト)設定で作業を開始しています。本稼働中のネットワークでは、各コマンドによって起こる可能性がある影響を十分確認してください。
ELAMは、中断することなくリアルタイムパケットをキャプチャすることによってネットワーク転送の問題のトラブルシューティングを支援し、パフォーマンスやコントロールプレーンリソースに影響を与えません。ELAMは、Cisco Technical Assistance Center(TAC)のエンジニアが最もよく使用する、強力できめ細かく、干渉しないツールです。ただし、ELAMツールが一度にキャプチャするパケットは1つだけであり、ELAMの開始後に最初に受信するパケットであることを知っておくことが重要です。フローのすべてのパケットをキャプチャする必要がある場合は、SPANまたはERSPANを使用してください。
ELAMは次のような質問に答えることができます。
この記事では、N77-F3ポートE5/23に接続されたHost1がトラフィックをHost2に送信します。ELAMは、Host1からHost2への個々のフレームをキャプチャするために使用されます。
N7KでELAMを実行するには、まずnetwork-adminを使用してユーザとしてログインし、次にモジュールに接続する必要があります。
N77-F3# attach module 5
Attaching to module 5 ...
To exit type 'exit', to abort type '$.'
Last login: Thu Jan 18 05:31:04 pst 2024 from 127.1.1.3 on pts/0
Nexus 7000は完全分散型スイッチとして動作し、入力ラインカードのフォワーディングエンジンによって転送の決定が行われます。
この記事では、対象のトラフィックがポート5/23経由でスイッチに入ることが想定されています。N7Kの例では、mモジュール5 はF3モジュールです。
N77-F3# show module 5
Mod Ports Module-Type Model Status
--- ----- ----------------------------------- ------------------ ----------
5 24 10/40 Gbps Ethernet Module N77-F324FQ-25 ok
Mod Sw Hw
--- --------------- ------
5 8.4(9) 1.3
F3モジュールの場合は、内部コード名Flankerのレイヤ2(L2)フォワーディングエンジン(FE)でELAMを実行します。
module-5# show hardware internal dev-port-map
--------------------------------------------------------------
CARD_TYPE: 24 port 40G
>Front Panel ports:24
--------------------------------------------------------------
Device name Dev role Abbr num_inst:
--------------------------------------------------------------
> Flanker Fwd Driver DEV_LAYER_2_LOOKUP L2LKP 12
FP port | PHYS | MAC_0 | L2LKP | L3LKP | QUEUE |SWICHF
22 10 10 10 10 0,1
23 11 11 11 11 0,1 >>>Port 23 belongs to FE instance 11
24 11 11 11 11 0,1
+-----------------------------------------------------------------------+
この出力では、ポートE5/23がFEインスタンス11に属していることが明らかです。
レイヤ2(L2)およびレイヤ3(L3)ルックアップの前に、レイヤ2 FEデータバス(DBUS)が元のヘッダー情報を伝送するのに対し、結果バス(RBUS)にはL3およびL2の両方のルックアップの結果が含まれます。ほとんどのトラブルシューティングシナリオでは、レイヤ2 ELAMキャプチャで十分です。
N77-F3# attach module 5
Attaching to module 5 ...
To exit type 'exit', to abort type '$.'
Last login: Thu Jan 18 05:31:04 pst 2024 from 127.1.1.3 on pts/0
module-5# elam asic flanker instance 11
module-5(fln-elam)# ?
layer2 ELAMs for layer 2
layer3 ELAMs for layer 3
module-5(fln-elam)# layer2
この例では、ポートE5/23にリンクされているVLAN 100上のHost1(IPアドレス192.168.1.1、MACアドレス8c60.4fc7.c5bc)がAddress Resolution Protocol(ARP;アドレス解決プロトコル)要求を送信します。この要求の目的は、同じVLAN 100上のIPアドレス192.168.1.2を持つ別のホストのMACアドレスを解決することです。
Flanker ASICは、さまざまなフレームタイプのELAMトリガーをサポートしています。ELAMトリガーはフレームタイプに対応している必要があります。フレームがARPフレームの場合、トリガーもARPオプションに設定する必要があります。ARPフレームは、その他のL2トリガーではキャプチャできません。ELAMを使用してMPLSフレームをキャプチャする場合は、MPLSではなくIPv4またはIPv6を選択します。詳細については、「バグ」セクションを参照してください。
module-5(fln-l2-elam)# trigger dbus ?
arp ARP Frame Format >>>capture ARP packet. Other L2 does not work for ARP
fc Fc hdr Frame Format
ipv4 IPV4 Frame Format >>>capture IPv4 frame
ipv6 IPV6 Frame Format >>>capture IPv6 frame
mpls MPLS
other L2 hdr Frame Format >>>capture non-ip l2 frame
rarp RARP Frame Format
この例では、フレームはARPフレームのターゲットIPアドレスフィールドに基づいてキャプチャされるため、この値だけが指定されます。
Flankerでは、DBUSとRBUSの両方に対してトリガーを設定する必要があります。RBUSトリガーは簡素化されておりtrig
、DBUSトリガーと同じ基準に一致します。
module-5(fln-l2-elam)# trigger dbus arp ingress if target-ip-address 192.168.1.2
module-5(fln-l2-elam)# trigger rbus ingress if trig
これでトリガーが設定されたので、キャプチャを開始できます。
module-5(fln-l2-elam)# start
ELAMがパケットをキャプチャしたかどうかを確認するには、status
コマンドを実行できます。 Armedという用語は、一致するパケットがまだキャプチャされていないことを示します。
module-5(fln-l2-elam)# status
ELAM Slot 5 instance 11: L2 DBUS Configuration: trigger dbus arp ingress if target-ip-address 192.168.1.2
L2 DBUS: Armed >>>no matched packet
ELAM Slot 5 instance 11: L2 RBUS Configuration: trigger rbus ingress if trig
L2 RBUS: Armed >>>no matched packet
Host1(192.168.1.1)から192.168.1.2にpingします。Host1にはARPエントリがないため、Host1はブロードキャストパケットでARP要求を送信します。FEはARPフレームを受信すると、トリガーをチェックします。一致がある場合、ELAMはこのフレームの転送決定をキャプチャし、ELAMステータスがTriggeredと表示されます。
module-5(fln-l2-elam)# status
ELAM Slot 5 instance 11: L2 DBUS Configuration: trigger dbus arp ingress if target-ip-address 192.168.1.2
L2 DBUS: Triggered >>Packet hit
ELAM Slot 5 instance 11: L2 RBUS Configuration: trigger rbus ingress if trig
L2 RBUS: Triggered >>Packet hit
結果は、DBUSとRBUSが同じパケットをキャプチャした場合にのみ有効です。したがって、DBUSとRBUSの結果の両方でシーケンス番号を確認する必要があります。一致しない場合は、再起動して、一致するまで再度キャプチャできます。
module-5(fln-l2-elam)# show dbus | in seq
sequence-number : 0x7 vl : 0x0
module-5(fln-l2-elam)# show rbus | in seq
l2-rbus-trigger : 0x1 sequence-number : 0x7
書き換えの前にデータが含まれているため、最初にDBUS出力を確認することをお勧めします。次に、ARP ELAMキャプチャの例を示します。出力が一部省略されていることに注意してください。
module-5(fln-l2-elam)# show dbus
cp = 0x20c6ad1c, buf = 0x20c6ad1c, end = 0x20c7706c
--------------------------------------------------------------------
Flanker Instance 11 - Capture Buffer On L2 DBUS:
<snip>
--------------------------------------------------------------------
L2 DBUS PRS MLH ARP/RARP
--------------------------------------------------------------------
valid : 0x1 requst-response : 0x1 >>>ARP request
(1:for ARP request,2: for ARP reply, 3:for RARP request, 4:for RARP reply)
port-id : 0x0 last-ethertype : 0x806 >>>Ethernet type, 0x0806 means ARP
packet-type : 0x0 l2-length-check : 0x0 >>>0 for ingress, 1 for egress
vqi : 0x0 packet-length : 0x40 >>>L2 ethernet frame totally length 64 byte
vlan : 0x64 destination-index : 0x0 >>>VLAN100
source-index : 0xb79 bundle-port : 0x0 >>>source port ltl index
status-is-1q : 0x0 trill-encap : 0x0 >>>0 means frame without vlan tag
sender-ip-address: 192.168.1.1 >>>sender-ip-address in ARP header
target-ip-address: 192.168.1.2 >>>target-ip-address in ARP header
sender-mac-address : 8c60.4fc7.c5bc >>>sender-mac-address in ARP header
target-mac-address : ffff.ffff.ffff >>>target-mac-address in ARP header
destination-mac-address : ffff.ffff.ffff >>>sestination mac in ethernet header
source-mac-address : 8c60.4fc7.c5bc >>>source mac in ethernet header
DBUSデータから、送信元MACアドレスが8c60.4fc7.c5bc、宛先MACアドレスがffff.ffff.ffffのフレームがVLAN100(vlan:0x64)で受信されたことを確認できます。また、これはIP 192.168.1.1から発信されたARP要求フレームであることもわかります。
フレームを受信したポートを確認するには、PIXM
(Port Index Manager)コマンドを使用します。このコマンドは、前面ポートまたは前面ポートのグループへのLocal Target Logic(LTL)のマッピングを表示します。
N77-F3# show system internal pixm info ltl 0xb79
------------------
Type LTL
---------------------------------
PHY_PORT Eth5/23
FLOOD_W_FPOE 0xc031
出力から、source-index 0xb79がポートE5/23にマッピングされていることがわかります。これにより、フレームがポートE5/23で受信されていることが確認されます。
ELAMが対象フレームをキャプチャしたことを確認した後、RBUSデータを使用して転送の決定の結果を確認できます(出力の一部は省略されています)。
module-5(fln-l2-elam)# show rbus
--------------------------------------------------------------------
L2 RBUS INGRESS CONTENT
--------------------------------------------------------------------
di-ltl-index : 0xc031 l3-multicast-di : 0xc00 >>> destination ltl index
source-index : 0xb79 vlan : 0x64 >>> vlan id after rewritten
vqi : 0x0 di2-valid : 0x0 >>> use l3-multicast-di as di if this is 1
routed-frame : 0x0 copy-cause : 0x0 >>> 0x0 means N7K performs layer 2 switching
RBUSデータから、フレームがVLAN 100(0x64)でスイッチされていることを確認できます。di-ltl-indexから出力ポートを判別するには、pixmコマンドを再度使用します。
N77-F3# show system internal pixm info ltl 0xc031
Member info
------------------
IFIDX LTL
---------------------------------
Eth5/24 0x0b78
Eth5/23 0x0b79
出力は、ポートE5/23とE5/24がどちらもLTL 0xc031に属していることを示しています。ARPパケットはこれらの両方のポートに切り替わります。E5/23から受信されるため、E5/24からのみ送信されます。
この例では、VLAN 100上のHost1(IPアドレス192.168.1.1/24、MACアドレス8c60.4fc7.c5bc)がポートE5/23に接続され、Internet Control Message Protocol(ICMP)要求をHost2に送信します。Host2のIPアドレスは192.168.2.2/24で、別のVLAN(VLAN200)にあります。
この例では、Host1とHost2が異なるVLANにあるため、Host1からHost2へのICMPパケットはN77-F3上のレイヤ3を介してルーティングされます。レイヤ2 ELAMは、ICMP要求パケットをキャプチャするために使用されます。
送信元IP(192.168.1.2)と宛先IP(192.168.2.2)の両方がDBUSトリガーとして組み合わされます。ELAMは、すべてのトリガーに一致するパケットのみをキャプチャします。
N77-F3# attach module 5
Attaching to module 5 ...
To exit type 'exit', to abort type '$.'
Last login: Thu Jan 18 11:19:46 pst 2024 from 127.1.1.3 on pts/0
module-5# elam asic flanker instance 11
module-5(fln-elam)# layer2
module-5(fln-l2-elam)# trigger dbus ipv4 ingress if destination-ipv4-address 192.168.2.2 source-ipv4-address 192.168.1.2
module-5(fln-l2-elam)# trigger rbus ingress if trig
module-5(fln-l2-elam)# start
module-5(fln-l2-elam)# status
ELAM Slot 5 instance 11: L2 DBUS Configuration: trigger dbus ipv4 ingress if destination-ipv4-address 192.168.2.2 source-ipv4-address 192.168.1.2
L2 DBUS: Armed
ELAM Slot 5 instance 11: L2 RBUS Configuration: trigger rbus ingress if trig
L2 RBUS: Armed
Host1(192.168.1.2)からHost2(192.168.2.2)へのpingを開始します。トリガーに一致するパケットがFEインスタンス11で受信されると、ELAMステータスはTriggeredと表示されます。
module-5(fln-l2-elam)# status
ELAM Slot 5 instance 11: L2 DBUS Configuration: trigger dbus ipv4 ingress if destination-ipv4-address 192.168.2.2 source-ipv4-address 192.168.1.2
L2 DBUS: Triggered
ELAM Slot 5 instance 11: L2 RBUS Configuration: trigger rbus ingress if trig
L2 RBUS: Triggered
RBUSとDBUSのシーケンス番号が同じであることを確認します。この手順は、すべてのキャプチャに必要です。
module-5(fln-l2-elam)# show dbus | in seq
sequence-number : 0x74 vl : 0x0
module-5(fln-l2-elam)# show rbus | in seq
l2-rbus-trigger : 0x1 sequence-number : 0x74 >>same sequence number, valid elam result
次に、IPv4 ICMP ELAMキャプチャの例を示します。出力が一部省略されていることに注意してください。
module-5(fln-l2-elam)# show dbus
--------------------------------------------------------------------
L2 DBUS PRS MLH IPV4
--------------------------------------------------------------------
l4-protocol : 0x1 df : 0x0 >>>L4 protocol id, 1 means icmp packet
ttl : 0xff l3-packet-length : 0x54 >>>ip total length is 84 in this packet, ttl is 255
port-id : 0x0 last-ethertype : 0x800 >>>Ethernet type, 0x0800 means IPv4
vqi : 0x0 packet-length : 0x66 >>>L2 frame length field
vlan : 0x64 destination-index : 0x0 >>>vlan id 100
source-index : 0xb79 bundle-port : 0x0 >>>source port ltl index
status-is-1q : 0x1 trill-encap : 0x0 >>>1 means frame with vlan tag
source-ipv4-address: 192.168.1.2 >>>Packet source IP
destination-ipv4-address: 192.168.2.2 >>>Packet destination IP
destination-mac-address : 003a.9c40.8ac3 >>>Packet destination mac
source-mac-address : 8c60.4fc7.c5bc >>>Packet source mac
DBUSデータから、送信元IPが192.168.1.2、宛先IPが192.168.2.2であるパケットがVLAN100(vlan:0x64)で受信されたことを確認できます。また、これがIPv4 ICMPパケットであることもわかります。
フレームを受信したポートを確認するには、PIXM
(Port Index Manager)コマンドを実行します。このコマンドは、前面ポートまたは前面ポートのグループへのLocal Target Logic(LTL)のマッピングを表示します。
N77-F3# show system internal pixm info ltl 0xb79
------------------
Type LTL
---------------------------------
PHY_PORT Eth5/23
FLOOD_W_FPOE 0xc032
FLOOD_W_FPOE 0xc031
FLOOD_W_FPOE 0xc029
この出力は、0xb79のsource-indexがポートE5/23にマッピングされていることを示しています。これにより、フレームがポートE5/23で受信されたことを確認できます。
ELAMが対象のICMPパケットをキャプチャしたことを確認したら、RBUSデータを使用して転送の決定の結果を確認できます(出力の一部が省略されています)。RBUSデータから、フレームがVLAN 100(0x64)からVLAN200にルーティングされていることがわかります。
module-5(fln-l2-elam)# show rbus
--------------------------------------------------------------------
L2 RBUS INGRESS CONTENT
--------------------------------------------------------------------
segment-id-valid : 0x0 ttl-out : 0xfe >>>TTL is 254
di-ltl-index : 0xb78 l3-multicast-di : 0x0 >>>destination port ltl
source-index : 0xb79 vlan : 0xc8 >>>vlan id is 200
routed-frame : 0x1 copy-cause : 0x0 >>>routed on N7K
di-ltl-indexから出力ポートを判別するには、PIXM
コマンドを実行します。出力は、出力ポートがE5/24であることを示しています。
N77-F3# show system internal pixm info ltl 0xb78
Member info
------------------
Type LTL
---------------------------------
PHY_PORT Eth5/24
FLOOD_W_FPOE 0xc032
FLOOD_W_FPOE 0xc031
FLOOD_W_FPOE 0xc029
このコマンドの出力は、物理ポートと一致しない場合のLTLの目的を理解するのに役立ちます。例としては、ドロップLTLやインバンドLTLがあります。
N77-F3# show system internal pixm info ltl-region
===========================================================
PIXM VDC 1 LTL MAP Version: 3
Description: LTL Map for Crossbow
===========================================================
LTL_TYPE SIZE START END
========================================================================
LIBLTLMAP_LTL_TYPE_SUP_ETH_INBAND 64 0xc00 0xc3f
-------------------------------------------------------------------
LIBLTLMAP_LTL_TYPE_DROP_DI_WO_HW_BITSET 0xcae
LIBLTLMAP_LTL_TYPE_DROP_DI 0xcad
Cisco Bug ID | バグタイトル | 修正バージョン |
Cisco Bug ID CSCux73273 | F3のELAMに対するMPLSトリガーが機能していない | 修正済みバージョンはありません。回避策を使用してください |
Cisco Bug ID CSCvm65736 | N7k:ELAMリリーストリガーclp_elamクラッシュ/LCリロード | 7.3(3)D1(1)、8.2(3)または8.3(2) |
改定 | 発行日 | コメント |
---|---|---|
1.0 |
30-Jan-2024 |
初版 |