キャンセル
次の結果を表示 
次の代わりに検索 
もしかして: 

ELAM Example: Nexus7000 M シリーズ

このドキュメントは、Cisco Nexus 7000 M シリーズ モジュールにおける ELAM の実施手順と、最も関連のある出力結果およびその解釈について示しています。ELAM の概要については、次のドキュメントを参照してください。

Understanding ELAM

Understanding ELAM (日本語訳)

トポロジ

この例では、ポート Eth4/1 VLAN 2500 上にあるホスト(10.0.5.101)から、ポート Eth3/5 VLAN 55(10.0.3.101)へ、ICMP リクエストを送信しています。ELAM を使用して、10.0.5.101 から 10.0.3.101 へ送られる単一パケットをキャプチャします。ここで注目して頂きたいのは、ELAM は単一フレームをキャプチャできるということです。

Nexus 7000 上で ELAM を実行する場合、まず初めに適切なモジュールをアタッチする必要があります。この手順にはネットワーク管理者権限が必要です。

N7K# attach module 4
Attaching to module 4 ...
To exit type 'exit', to abort type '$.'
module-4#

入力フォワーディング エンジンの決定

トラフィックがスイッチのポート Eth4/1 から入ってくると見込んでシステムのモジュールをチェックします。そこで、システム内の module 4 が M シリーズ モジュールであることを確認します。Nexus 7000 のモジュールは完全分散型であるため、データプレーン トラフィックのフォワーディングの決定は、スーパバイザでは行われないということに注意してください。

N7K# show module
Mod  Ports  Module-Type                         Model              Status
---  -----  ----------------------------------- ------------------ ----------
3    32     10 Gbps Ethernet Module             N7K-M132XP-12      ok
4    48     10/100/1000 Mbps Ethernet Module    N7K-M148GT-11      ok
5    0      Supervisor module-1X                N7K-SUP1           active *
6    0      Supervisor module-1X                N7K-SUP1           ha-standby

M シリーズ モジュールは、Eureka という内部コードネームを持つ、レイヤ 2 フォワーディング エンジン(FE)で ELAM を実行します。 レイヤ 2 FE のデータ バス(DBUS)には、レイヤ 2 およびレイヤ 3 ルックアップされる前のオリジナルのヘッダ情報が含まれており、リザルト バス(RBUS)には、レイヤ 3 およびレイヤ 2 ルックアップされた後の情報が含まれていることに注意してください。

Nexus 7000 モジュールは、モジュールごとに複数の FE を持つため、その中からポート Eth4/1 への転送に使用される Eureka ASIC を見つけ出す必要があります。これは次のコマンドで確認できます。

module-4# show hardware internal dev-port-map
(some output omitted)
--------------------------------------------------------------
CARD_TYPE:         48 port 1G
>Front Panel ports:48
--------------------------------------------------------------
Device name             Dev role              Abbr num_inst:
--------------------------------------------------------------
> Eureka                 DEV_LAYER_2_LOOKUP     L2LKP 1
+--------------------------------------------------------------+
+-----------+++FRONT PANEL PORT TO ASIC INSTANCE MAP+++--------+
+--------------------------------------------------------------+
FP port|PHYS |SECUR |MAC_0 |RWR_0 |L2LKP |L3LKP |QUEUE |SWICHF
   1     0      0      0      0     0      0      0      0
   2     0      0      0      0     0      0      0      0

上記の出力から、Eth4/1 は Eureka (L2LKP)のインスタンス 0 に対応付けられていることが確認できます。M シリーズ モジュールの場合、ELAM構文における番号は 1 から始まるため、ELAM の設定を行う際、インスタンス 0 はインスタンス 1 となることに注意してください。 F シリーズ モジュールの場合は 0 から始まります。

module-4# elam asic eureka instance 1
module-4(eureka-elam)#

トリガーの設定

Eureka ASIC は IPv4 や IPv6 などの ELAM トリガーをサポートしています。ELAM トリガーは、フレーム タイプと同じ並びである必要があります。フレームが IPv4 フレームである場合、トリガーも IPv4 とする必要があり、IPv4 以外のトリガーではキャプチャされません。IPv6 においても同様です。

Nexus Operating Systems(NX-OS)では、疑問符( ? )を入力することで、ELAM トリガーで使用できるコマンドの一覧が表示されます。

module-4(eureka-elam)# trigger dbus dbi ingress ipv4 if ?
  (some output omitted)
  destination-flood         Destination Flood
  destination-index         Destination Index
  destination-ipv4-address  Destination IP Address
  destination-mac-address   Destination MAC Address
  ip-tos                    IP TOS
  ip-total-len              IP Total Length
  ip-ttl                    IP TTL
  source-mac-address        Source MAC Address
  vlan-id                   Vlan ID Number

この例では、送信元と宛先の IPv4 アドレスに基づいてフレームをキャプチャするため、それらの値を指定します。

Eureka は、トリガーを DBUS および RBUS の両方に設定する必要があります。RBUS データが存在する可能性のある2つの異なるパケット バッファ(PB)があります。正しい PB インスタンスを決定するには、正確なモジュール タイプおよび入力ポートを選択する必要があります。まずは PB 1 で設定することをお勧めしますが、RBUS でトリガーが作動しない場合は、PB 2 で設定し直してください。

DBUS トリガー

module-4(eureka-elam)# trigger dbus dbi ingress ipv4 if source-ipv4-address 10.0.5.101 destination-ipv4-address 10.0.3.101 rbi-corelate

RBUS トリガー

module-4(eureka-elam)# trigger rbus rbi pb1 ip if cap2 1

DBUS トリガーの最後にある rbi-correlate というキーワードは、cap2 bit で RBUS トリガーを正確に動作させるためのものです。

キャプチャの開始

入力 FE の選択およびトリガーの設定を行った上で、キャプチャを開始します。

module-4(eureka-elam)# start

status コマンドで ELAM の詳細を確認できます。

module-4(eureka-elam)# status
Instance: 1

EU-DBUS: Armed
trigger dbus dbi ingress ipv4 if source-ipv4-address 10.0.5.101 destination-ipv4-address 10.0.3.101 rbi-corelate

EU-RBUS: Armed
trigger rbus rbi pb1 ip if cap2 1

LM-DBUS: Dis-Armed
No configuration

LM-RBUS: Dis-Armed
No configuration

FE によって、トリガーと一致するフレームが受信されると ELAM の status に Triggered と表示されます。

module-4(eureka-elam)# status
Instance: 1

EU-DBUS: Triggered
trigger dbus dbi ingress ipv4 if source-ipv4-address 10.0.5.101 destination-ipv4-address 10.0.3.101 rbi-corelate

EU-RBUS: Triggered
trigger rbus rbi pb1 ip if cap2 1

LM-DBUS: Dis-Armed
No configuration

LM-RBUS: Dis-Armed
No configuration

結果の解釈

show dbus および show rbus コマンドで、キャプチャされたデータの詳細を表示することができます。大量のトラフィックが同じトリガーに一致している場合、DBUS と RBUS のトリガーは異なるフレームで動作している可能性があります。したがって、DBUS および RBUS データの内部シーケンス番号をチェックし、一致していることを確認することが重要となります。

module-4(eureka-elam)# show dbus | i seq
seq = 0x05
module-4(eureka-elam)# show rbus | i seq
seq = 0x05

以下に示すのは、ELAM の代表的なデータの一部です。

(some output omitted)
module-4(eureka-elam)# show dbus
seq = 0x05
vlan = 2500
source_index = 0x00a21
l3_protocol = 0x0   (0:IPv4, 6:IPv6)
l3_protocol_type = 0x01, (1:ICMP, 2:IGMP, 4:IP, 6:TCP, 17:UDP)
dmac = 00.00.0c.07.ac.65
smac = d0.d0.fd.b7.3d.c2
ip_ttl = 0xff
ip_source = 010.000.005.101
ip_destination = 010.000.003.101


module-4(eureka-elam)# show rbus
seq = 0x05
flood = 0x0
dest_index = 0x009ed
vlan = 55
ttl = 0xfe
data(rit/dmac/recir) = 00.05.73.a9.55.41
data(rit/smac/recir) = 84.78.ac.0e.47.4

上記の DBUS data から、送信元 MAC がアドレスが 050.56a1.1a01 で、宛先 MAC がアドレスが 0050.56a1.1aef のフレームが、VLAN 10 で受信されたことが確認できます。また、送信元が 10.0.5.101 で、宛先が 10.0.3.101 の IPv4 フレームであることも確認できます。この出力では表示していませんが、他にも TOS 値や IP flags、パケット長、レイヤ 2 のフレーム長など、いくつかのフィールドがあります。

source_index(送信元 LTL)によって受信ポートを確認することができます。Nexus 7000 では、以下のコマンドを使用することで、 LTL とポートまたはポートのグループとの対応付けを確認することができます。

N7K# show system internal pixm info ltl 0xa21

Member info
------------------
Type            LTL
---------------------------------
PHY_PORT       Eth4/1
FLOOD_W_FPOE   0x8014

上記の出力は source_index である 0xa21 が、ポート Eth4/1 に対応付けされていることが示されており、フレームが Eth4/1 で受信されたことが確認できます。

RBUS data から、フレームが VLAN 55 にルーティングされたことが確認できます。また、IP_TTL が DBUS data の 0xff から RBUS data の 0xfe へデクリメントされていることが確認できます。 送信元および宛先 MAC アドレスは、それぞれ 8478.ac0e.4741 および 0005.73a9.5541 に書き換えられていることが確認できます。さらに、dest_index(宛先 LTL)により、出口ポートを確認することができます。

N7K# show system internal pixm info ltl 0x9ed

Member info
------------------
Type            LTL
---------------------------------
PHY_PORT       Eth3/5
FLOOD_W_FPOE   0x8017
FLOOD_W_FPOE   0x8016

上記の出力は dest_index である 0x9ed が、ポート Eth3/5 に対応付けされていることが示されており、フレームが Eth3/5 から送信されたことが確認できます。

補足情報

スイッチによる LTL プールへの割り当てを確認する場合、show system internal pixm info ltl-region コマンドを使用します。これは、物理ポートと一致しない LTL が、どういった用途で使用されているのかの確認に役立ちます。以下に Drop LTL の例を示します。

N7K# show system internal pixm info ltl 0x11a0
0x11a0 is not configured

N7K# show system internal pixm info ltl-region

LTL POOL TYPE                          SIZE        RANGE
=====================================================================
DCE/FC Pool                            1024       0x0000 to 0x03ff
SUP Inband LTL                           32       0x0400 to 0x041f
MD Flood LTL                              1       0x0420
Central R/W                               1       0x0421
UCAST Pool                             1536       0x0422 to 0x0a21
PC Pool                                1720       0x0a22 to 0x10d9
LC CPU Pool                              32       0x1152 to 0x1171
EARL Pool                                72       0x10da to 0x1121
SPAN Pool                                48       0x1122 to 0x1151
UCAST VDC Use Pool                       16       0x1172 to 0x1181
UCAST Generic Pool                       30       0x1182 to 0x119f
LISP Pool                                 4       0x1198 to 0x119b
Invalid SI                                1       0x119c to 0x119c
ESPAN SI                                  1       0x119d to 0x119d
Recirc SI                                 1       0x119e to 0x119e
Drop DI                                   2       0x119f to 0x11a0
UCAST (L3_SVI_SI) Region                 31       0x11a1 to 0x11bf
UCAST (Fex/GPC/SVI-ES)       3648       0x11c0 to 0x1fff
UCAST Reserved for Future Use Region   2048       0x2000 to 0x27ff
======================> UCAST MCAST BOUNDARY <======================
VDC OMF Pool                             32       0x2800 to 0x281f

英語版: https://supportforums.cisco.com/docs/DOC-36282

バージョン履歴
改訂番号
1/1
最終更新:
‎12-26-2013 09:50 AM
更新者:
 
タグ(2)