一時キャプチャ バッファの設定

一時キャプチャ バッファについて

一時キャプチャ バッファ(TCB)は、パケット ドロップ イベントをモニタするデバッグ機能です。TCB により、パケット ドロップの周辺にあるトランザクションがよく見えるようになります。この機能は、予期しない珍しいパケット ドロップのデバッグを目的としています。

TCB は以下で構成されています。

  • TCB バッファ(循環バッファ):特定のドロップ イベントの周辺にあるメモリ管理ユニット(MMU)リソースのセットでトランザクションをキャプチャするために使用します。

    • パケット メタデータ(送信元/宛先ポート、タイムスタンプ、ユニキャスト キュー番号、ユニキャスト キューの項目数、サービス プールの深さなど)

    • raw パケット データ(パケットの最初から 80 バイト)

  • イベント バッファ(FIFO バッファ):次の目的で使用します。

    • ドロップ パケット メタデータの記録

    • ドロップの原因特定

    次の図に、TCB のワークフローを示します。

    図 1. 一時キャプチャ バッファのフェーズ ワークフロー

    トリガー後のフェーズでは、キャプチャ範囲の他のキューで発生するドロップがイベント バッファに保存されます。このバッファには、パケットのメタデータが保存されます。raw パケット情報は失われます。

TCB の設定属性を次に示します。

  • キャプチャ範囲:

    • モニタ範囲タイプ:TCB がモニタする範囲タイプを決定します。サポートされている範囲は次のとおりです。

      • ユニキャスト キュー(UCQ)

      • 入力ポート

      • 出力ポート

    • モニタ範囲エンティティ:モニタ範囲タイプと一貫性がある必要があります。サポートされているエンティティは次のとおりです。

      • UCQ ID

      • ポート番号

  • ドロップ イベント トリガー:トリガーを引き起こす可能性のあるメカニズムをドロップします。サポートされているトリガーは次のとおりです。

    • 入力アドミッション ドロップ

    • 出力アドミッション ドロップ

    • 重み付けランダム早期検出(WRED)ドロップ

  • トリガー前フェーズのサンプル確率:トリガー前フェーズのパケット サンプリング確率(1/16 ~ すべて)

  • トリガー後フェーズのサンプル確率:トリガー後フェーズのパケット サンプリング確率(1/16 ~ すべて)

  • 凍結条件:TCB ステート マシンは、以下の凍結条件のいずれかに達したときに凍結フェーズに入ります。

    • 凍結前キャプチャ数:ドロップ イベント トリガーと凍結フェーズの間でキャプチャされたパケットの数

    • 凍結前キャプチャ時間:ドロップ イベント トリガーから凍結フェーズまでの時間(マイクロ秒)

  • しきい値プロファイル:TCB インスタンスごとに使用できる 8 個のしきい値プロファイル。開始しきい値および停止しきい値があります。開始しきい値は、停止しきい値よりも大きい必要があります。

  • しきい値プロファイル マップ:TCB スコープ内の各 UCQ は 1 つのしきい値プロファイルにマッピングでき、異なる UCQ を 1 つのしきい値プロファイルにマッピングすることもできます。サポートされているマップは次のとおりです。

    • 出力アドミッション ドロップ

    • 重み付けランダム ドロップ

注意事項と制約事項

一時キャプチャ バッファのガイドラインと制限事項は以下のとおりです。

  • 一時キャプチャ バッファ機能は、Cisco Nexus 3132C-Z および Cisco Nexus 3264C-E スイッチでのみサポートされます

  • 一度に設定できるキャプチャ範囲(UC キュー、入力ポート、または出力ポートなど)は 1 つだけです。

  • カットスルー パケットはキャプチャされません。

  • TCB 機能はパケット ドロップが多数ある状況には適していない可能性があります。

一時キャプチャ バッファ範囲およびエンティティ情報の設定

一時キャプチャ バッファ範囲およびエンティティの設定方法

キャプチャ エンティティ パラメータは、周辺で TCB が機能するポートを指定します。エンティティには、範囲に応じて、ポートまたはポート内の特定の qos-group を指定できます。

次の 3 つの範囲で TCB を設定する手順を以下に示します。

一時キャプチャ バッファ ユニキャスト範囲の設定

手順

  コマンドまたはアクション 目的
ステップ 1

switch(config)# hardware profile packet-drop

TCB を設定できるレベルに移動します。

ステップ 2

switch(config-pkt-drop)# source unicast-queue interface interface qos-group qos-group

例:

switch(config-pkt-drop)# source unicast-queue interface ethernet 1/1 qos-group 1

キュー単位でキャプチャ範囲を指定します。

  • interface は、イーサネット IEEE 802.3z エンティティ インターフェイスです

  • qos-group は、インターフェイスに関連付けられているキューです

一時キャプチャ バッファ入力範囲の設定

手順

  コマンドまたはアクション 目的
ステップ 1

switch(config)# hardware profile packet-drop

TCB を設定できるレベルに移動します。

ステップ 2

switch(config-pkt-drop)# source ingress interface ethernet interface

例:

switch(config-pkt-drop)# source ingress interface ethernet 1/1

キャプチャ範囲を入力として指定します。ここで、interface はイーサネット IEEE 802.3z エンティティ インターフェイスです。

一時キャプチャ バッファ出力範囲の設定

手順

  コマンドまたはアクション 目的
ステップ 1

switch(config)# hardware profile packet-drop

TCB を設定できるレベルに移動します。

ステップ 2

switch(config-pkt-drop)# source egress interface ethernet interface

例:

switch(config-pkt-drop)# source egress interface ethernet 1/1

キャプチャ範囲を出力として指定します。ここで、interface はイーサネット IEEE 802.3z エンティティ インターフェイスです。

一時キャプチャ バッファ範囲の設定サンプル

各タイプの範囲について、TCB 設定のサンプルを次に示します。

ユニキャスト範囲

hardware profile packet-drop
  source unicast-queue interface Ethernet1/49 qos-group 0
  timer 300
  count 200
  drop-trigger ingress-admission
  sampling-rate pre-trigger 10 post-trigger 10
  no shutdown

入力範囲

hardware profile packet-drop
  source ingress interface eth1/9
  timer 300
  count 200
  drop-trigger ingress-admission
  profile acme
    start-threshold 1500
    stop-threshold 1000
    interface Ethernet1/49 qos-group 2
    interface Ethernet1/49 qos-group 0
  sampling-rate pre-trigger 10 post-trigger 10
  no shutdown

出力範囲

hardware profile packet-drop
  source egress interface eth1/49
  timer 300
  count 200
  drop-trigger egress-admission
  profile acme
    start-threshold 1500
    stop-threshold 1000
    interface Ethernet1/49 qos-group 2
    interface Ethernet1/49 qos-group 0
  no shutdown

一時キャプチャ バッファ プロファイルの設定

最大 7 つのプロファイルを、モニタリング用のそれぞれの開始および停止しきい値とともに作成できます。設定するインターフェイスは、ハードウェアの対応するプロファイルにマッピングされます。入力範囲と出力範囲の場合にのみ必要です。

手順

  コマンドまたはアクション 目的
ステップ 1

switch(config)# hardware profile packet-drop

TCB を設定できるレベルに移動します。

ステップ 2

switch(config-pkt-drop)# profile test

TCB プロファイルを作成できるレベルに移動します。

ステップ 3

switch(config-pkt-drop-profile)# start-threshold parameter

例:

switch(config-pkt-drop-profile)# start-threshold 512

start-threshold パラメータを設定します。ここで、parameter はバイト単位のパラメータです。

ステップ 4

switch(config-pkt-drop-profile)# stop-threshold parameter

例:

switch(config-pkt-drop-profile)# stop-threshold 256

stop-threshold パラメータを設定します。ここで、parameter はバイト単位のパラメータです。

ステップ 5

switch(config-pkt-drop-profile)# interface <if_list> {[qos-group <ucastqos-grp>]}

例:

switch(config-pkt-drop-profile)# interface ethernet 1/1 qos-grop 1

キャプチャ範囲のパラメータを設定します。

一時キャプチャ バッファのグローバル パラメータ

TCB 設定レベルに移動するには、次のコマンドを実行します。

switch(config)# hardware profile packet-drop
switch(config-pkt-drop)#

次のオプションは、このレベルで使用できます。

オプション

目的

count

キャプチャされるトランザクション数を設定します。これは省略可能なパラメータです。

drop-trigger

drop-trigger パラメータを設定します。

no

コマンドを無効にします。

profile

パケット ドロップ プロファイルの情報を提供します。

sampling-rate

sampling-rate パラメータを設定します。これは省略可能なパラメータです。

show

実行中のシステム情報を表示します。

shutdown

一時キャプチャ バッファを有効にします。

source

パケット ドロップ範囲を設定します。

timer

パケット ドロップ タイマー パラメータを設定します。これは省略可能なパラメータです。

end

EXEC モードに移行します。

exit

コマンド インタープリタを終了します。

pop

スタックからモードをポップするか、名前から復元します。

push

現在のモードをスタックにプッシュするか、名前で保存します。

where

どの CLI コンテキストにいるかを表示します。

一時キャプチャ バッファ トリガー イベントの設定

ステート マシンが循環バッファで修飾セットをキャプチャできるようにするトリガー イベントを指定できます。

手順

  コマンドまたはアクション 目的
ステップ 1

switch(config)# hardware profile packet-drop

TCB を設定できるレベルに移動します。

ステップ 2

switch(config-pkt-drop)# drop-trigger trigger-event

ステート マシンが循環バッファで修飾セットをキャプチャできるようにするトリガー イベントを設定します。ここで、trigger-event は次のいずれかです。

  • egress-admission:出力アドミッション ドロップ。

  • ingress-admission:入力アドミッション ドロップ。

  • wred:重み付けランダム早期廃棄ドロップ。

一時キャプチャ バッファ サンプリング レートの設定

ドロップの前後にキャプチャする必要があるパケットのサンプリング レートを追加できます。これは省略可能なパラメータです。

手順

  コマンドまたはアクション 目的
ステップ 1

switch(config)# hardware profile packet-drop

TCB を設定できるレベルに移動します。

ステップ 2

switch(config-pkt-drop)# sampling-rate pre-trigger pre-trig-params post-trigger post-trig-params

例:

switch(config-pkt-drop)# sampling-rate pre-trigger 11 post-trigger 12

ドロップの前後にキャプチャする必要があるパケットのサンプリング レートを追加します。

  • pre-trig-params:16 のサンプルから、ドロップの前にキャプチャするトランザクションの数を指定します。有効なオプションは 1 ~ 16 です。

  • post-trig-params:16 のサンプルから、ドロップの後にキャプチャするトランザクションの数を指定します。有効なオプションは 1 ~ 16 です。

一時キャプチャ バッファ タイマーの設定

期限が切れるとステート マシンが凍結になり、バッファの開始までのポインタがソフトウェアに通知される、TCB タイマー間隔を設定することができます。これは省略可能なパラメータです。

手順

  コマンドまたはアクション 目的
ステップ 1

switch(config)# hardware profile packet-drop

TCB を設定できるレベルに移動します。

ステップ 2

switch(config-pkt-drop)# timer timer

タイマー間隔を設定します。ここで、timer はマイクロ秒(usec)単位のキャプチャ タイマー間隔です。有効なオプションはスイッチによって異なります。

  • Cisco Nexus 3132C-Z スイッチの場合、キャプチャ タイマー間隔の有効なオプションは 1 ~ 429 です。

  • Cisco Nexus 3264C-E スイッチの場合、キャプチャ タイマー間隔の有効なオプションは 1 ~ 385 です。

一時キャプチャ バッファ キャプチャ数の設定

ドロップ後にキャプチャするトランザクションの最小数を設定できます。これに達するとステート マシンが凍結になり、バッファの開始までのポインタがソフトウェアに通知されます。これは省略可能なパラメータです。

手順

  コマンドまたはアクション 目的
ステップ 1

switch(config)# hardware profile packet-drop

TCB を設定できるレベルに移動します。

ステップ 2

switch(config-pkt-drop)# count transactions

ドロップ後にキャプチャするトランザクションの最小数を設定します。ここで、transactions は 2 ~ 1024 です。

一時キャプチャ バッファ設定の確認

TCB の実行コンフィギュレーションの確認

TCB の実行コンフィギュレーションを表示するには、show running-config ipqos コマンドを使用します。出力は、設定した TCB 範囲とエンティティ設定によって異なります。

  • 入力範囲とエンティティ設定では、次のような出力が表示されます。

    switch# show running config ipqos
    hardware profile packet-drop
      source ingress interface eth1/9
      timer 300
      count 200
      drop-trigger ingress-admission
      profile arvinth
        start-threshold 1500
        stop-threshold 1000
        interface Ethernet1/49 qos-group 2
        interface Ethernet1/49 qos-group 0
      sampling-rate pre-trigger 10 post-trigger 10
      no shutdown 
    
    
  • 出力範囲とエンティティ設定では、次のような出力が表示されます。

    switch# show running config ipqos
    hardware profile packet-drop
      source egress interface eth1/49
      timer 300
      count 200
      drop-trigger egress-admission
      profile arvinth
        start-threshold 1500
        stop-threshold 1000
        interface Ethernet1/49 qos-group 2
        interface Ethernet1/49 qos-group 0
      no shutdown
    
    
  • ユニキャスト範囲とエンティティ設定では、次のような出力が表示されます。

    switch# show running config ipqos
    hardware profile packet-drop
      source unicast-queue interface Ethernet1/49 qos-group 0
      timer 300
      count 200
      drop-trigger ingress-admission
      sampling-rate pre-trigger 10 post-trigger 10
      no shutdown
    
    

パケット ドロップ情報の確認

TCB のパケット ドロップ情報を表示するには、show hardware profile packet-drop option コマンドを使用します。ここで、option は次のとおりです。

  • data:パケット ドロップの循環バッファのデータを表示します。

  • event:パケット ドロップのイベントバッファのデータを表示します。

  • status:パケット ドロップのステータスを表示します。

以下に、さまざまなコマンド オプションでパケット ドロップの情報を表示する例を示します。

  • show hardware profile packet-drop data を使用してキャプチャされたデータの例を次に示します(以下の出力例は実際の完全な出力のスニペットです)。

    switch# show hardware profile packet-drop data
    Details of Instance : 1
    =========================
    Src_port : Ethernet1/10
    Dst_port : Ethernet1/1 , Qos-group : 1 , Queue_depth : 3362736 bytes
    Payload : 18809011ad5701a100881060968045281ea000040637d4961a8971a803c03c00000000502002771000123456789abcdef101112131415
    
    Src_port : Ethernet1/10
    Dst_port : Ethernet1/1 , Qos-group : 1 , Queue_depth : 3362736 bytes
    Payload : 18809011ad5701a100881060968045281ea000040637d4961a8971a803c03c00000000502002771000123456789abcdef101112131415
    
    Src_port : Ethernet1/10
    Dst_port : Ethernet1/1 , Qos-group : 1 , Queue_depth : 3362736 bytes
    Payload : 18809011ad5701a100881060968045281ea000040637d4961a8971a803c03c00000000502002771000123456789abcdef101112131415
    
    Src_port : Ethernet1/10
    Dst_port : Ethernet1/1 , Qos-group : 1 , Queue_depth : 3362736 bytes
    Payload : 18809011ad5701a100881060968045281ea000040637d4961a8971a803c03c00000000502002771000123456789abcdef101112131415
    
    
  • show hardware profile packet-drop data instance instance-number を使用してキャプチャされたデータの例を次に示します。ここで、instance-number は 1 ~ 5 の値です。

    switch# show hardware profile packet-drop data instance 1
    Details of Instance : 1
    =========================
    Fri Apr 30 10-59-16 1971 , Src_port : Ethernet1/9
    Dst_port : Ethernet1/49 , Qos-group : 0 , Queue_depth : 3440112 bytes
    Payload : 18809011b0b1010940028045006edee900fffd8b7faaa11e1e1e10000000000000000000000000000000000000000000000
    
    
  • show hardware profile packet-drop event を使用してキャプチャされたデータの例を次に示します(以下の出力例は実際の完全な出力のスニペットです)。

    switch# show hardware profile packet-drop event
    Details of Instance : 1
    =========================
    Src_port : Ethernet1/10
    Dst_port : Ethernet1/1 , Qos-group : 1 , Queue_depth : 3375216 bytes, Drop_reason : Egress-Admission
    
    Src_port : Ethernet1/10
    Dst_port : Ethernet1/1 , Qos-group : 1 , Queue_depth : 3375216 bytes, Drop_reason : Egress-Admission
    
    Src_port : Ethernet1/10
    Dst_port : Ethernet1/1 , Qos-group : 1 , Queue_depth : 3375216 bytes, Drop_reason : Egress-Admission
    
    Src_port : Ethernet1/10
    Dst_port : Ethernet1/1 , Qos-group : 1 , Queue_depth : 3375216 bytes, Drop_reason : Egress-Admission
    
    Src_port : Ethernet1/10
    Dst_port : Ethernet1/1 , Qos-group : 1 , Queue_depth : 3375216 bytes, Drop_reason : Egress-Admission
    
    
  • show hardware profile packet-drop event instance instance-number を使用してキャプチャされたデータの例を次に示します。ここで、instance-number は 1 ~ 5 の値です。

    switch# show hardware profile packet-drop event instance 1
    Details of Instance : 1
    =========================
    Fri Apr 30 20-57-24 1971 , Src_port : Ethernet1/9
    Dst_port : Ethernet1/49 , Qos-group : 0 ,  Queue_depth : 3452592 bytes, Drop_reason : EADMIN
    
    
  • show hardware profile packet-drop status を使用してキャプチャされたデータの例を次に示します。

    switch# show hardware profile packet-drop status
    TCB Enabled : FALSE
    TCB State : IDLE
    Capture Scope : ingress
    Drop Trigger : wred
    Capture Transactions : 304
    Capture Timer : 385
    
    

一時キャプチャ バッファ情報のクリア

パケットドロップ データ/イベント情報のすべてのインスタンスをクリアするには、このセクションの情報を使用します。

手順

コマンドまたはアクション 目的

switch(config)# clear hardware profile packet-drop file_instance