パケットトレース

表 1. 機能の履歴

機能名

リリース情報

説明

パケットトレースの双方向サポート

Cisco IOS XE Catalyst SD-WAN リリース 17.8.1a

Cisco SD-WAN リリース 20.8.1

Cisco vManage リリース 20.8.1

この機能により、データパケットが両方向のエッジデバイスによってどのように処理されるかを詳細に把握できます。双方向デバッグを実行することで、問題の診断とトラブルシュートを効率化できます。

パケットトレースの改善

Cisco IOS XE Catalyst SD-WAN リリース 17.11.1a

Cisco vManage リリース 20.11.1

この機能により、パケットトレースが次のように強化されます。

  • Cisco IOS XE Catalyst SD-WAN デバイスで使用可能な新しいコマンド show platform packet-trace fia-statistics は、パケットトレースで Feature Invocation Array(FIA)統計を表示します。FIA 統計では、パケットトレースの機能数、平均処理時間、最小処理時間、および最大処理時間に関するデータを見つけることができます。

  • パケットトレース内のマルチプロトコル ラベル スイッチング(MPLS)機能のラベル情報を表示します。

パケットトレースについて

パケットトレース機能を使用すると、エッジデバイスでのパケット損失をデバッグし、ネットワーク内にあるデバイスでのトラフィックフローの転送動作を検査できます。パケットフローがどのように分離され、トレース用にキャプチャされるかに基づいて、さまざまな条件でパケットトレーサを設定できます。これにより、問題の診断とトラブルシュートを効率化できます。

パケットトレーサには、パスデータのコピーに使用される 2048 バイトの内部メモリが組み込まれています。このメモリは、トレースの循環モード中に上書きされます。

パケットトレース機能は、アカウンティング、サマリー、パスデータという 3 つのレベルのパケット検査を提供します。各レベルは、一部のパケット処理機能を犠牲にして、パケット処理の詳細なビューを提供します。ただし、パケットトレースは、debug platform condition ステートメントに一致するパケットの検査を制限し、大量のトラフィックが発生する環境下でも実行可能なオプションです。

Cisco IOS XE Catalyst SD-WAN リリース 17.8.1a では、条件付きデバッグ一致フィルタ用に、双方向サポートがエッジデバイスに追加されています。条件付きデバッグにより、エッジデバイスでデバッグ情報の一部を除外できます。特定のインターフェイス、MAC アドレス、またはユーザー名に一致するデバッグ情報を確認できます。

表 2. パケットトレースレベル

パケット トレース レベル

説明

アカウンティング

パケットトレースのアカウンティングでは、ネットワークプロセッサに出入りするパケット数が示されます。パケットトレースのアカウンティングは負荷の軽いパフォーマンス アクティビティであり、無効化されるまで継続的に実行されます。

サマリー

パケットトレースのサマリーレベルでは、限られた数のパケットデータが収集されます。パケットトレースのサマリーは、入力インターフェイスと出力インターフェイス、最終的なパケットの状態、消費されたパケットの状態、およびパケットのパント、ドロップ、インジェクションを随時追跡します。サマリーデータの収集は、通常のパケット処理と比較してパフォーマンスが高く、問題のあるインターフェイスを分離するのに役立ちます。

パスデータ

パケットトレースのパスデータレベルでは、パケットトレースが最も詳細なレベルで実行されます。限られた数のパケットを対象にデータが収集されます。パケットトレースのパスデータでは、条件付きデバッグ ID を含むデータがキャプチャされます。このデータは、機能デバッグ、タイムスタンプ、および機能固有のパストレースデータと関連付ける際に役立ちます。

パスデータには、パケットコピーと Feature Invocation Array(FIA)トレースという 2 つのオプション機能もあります。パケットコピーオプションを使用すると、パケットの各種レイヤ(レイヤ 2、レイヤ 3、レイヤ 4)で入力パケットや出力パケットをコピーできます。FIA トレースオプションは、パケット処理中に呼び出されたすべての機能エントリを追跡します。このオプションは、パケット処理中に何が起こっているかを把握する際に役立ちます。

(注)  

 

パスデータの収集では、多くのパケット処理リソースが消費されます。また、オプション機能はパケットパフォーマンスに徐々に影響を及ぼします。パスデータレベルは限定的に使用するか、またはパケットパフォーマンスの変化が許容できる状況で使用することを推奨します。

パケットトレースの設定に関する使用上のガイドライン

パケットトレースを設定する際には、次のベストプラクティスを考慮してください。

  • パケットをより包括的に表示するには、パケットトレースを使用する際に入力条件を使用することを推奨します。

  • パケットトレースの設定には、データプレーンメモリが必要です。データプレーンメモリが制限されているシステムでは、パケットトレース値をどのように選択するかを慎重に検討してください。パケットトレースによって消費されるメモリ量の概算値は、次の式で求められます。

    必要なメモリ =(統計オーバーヘッド)+(パケット数)*(サマリーサイズ + データサイズ + パケットコピーサイズ)。

パケットトレース機能を有効にすると、統計用に少量の固定メモリが割り当てられます。同様に、パケットごとのデータをキャプチャする場合、サマリーデータ用に各パケットに少量の固定メモリが必要です。ただし、式が示すように、トレース対象に選択したパケット数や、パスデータとパケットのコピーを収集するかどうかによって、消費されるメモリ量が大きく影響される可能性があります。


(注)  


パケットトレース機能によって消費されるメモリの量は、パケットトレース設定の影響を受けます。他のルータサービスの中断を避けるために、パケットごとのパスデータとコピーバッファのサイズ、およびトレースするパケット数を慎重に選択する必要があります。


制限事項

  • IP パケットのみがサポートされます。L2(ARP)パケット、ブリッジパケット、フラグメント化されたパケット、およびマルチキャストパケットはサポートされていません。

  • IPv6 はサポートされていません。

  • パケットの複製はサポートされていません。

  • 再送信されたパケット(例:IPsec または GRE 暗号化パケット)が内部パケット (復号されたパケット)と外部パケット(暗号化されたパケット)の両方で設定されたフィルタに一致する場合、そのパケットには、個別のトレースエントリがあります。パケットトレーサをより効率的に使用するには、問題のデバッグで利用できる情報に基づき、できるだけ多くのフィルタを設定する必要があります。

パケットトレースの設定

debug platform packet-trace コマンドを使用すると、双方向、VPN、ラウンドロビン、宛先 IP、送信元 IP、インターフェイス、開始、停止、ロギング、クリアなどのさまざまな条件でエッジデバイスでパケットトレーサを設定できます。

Cisco IOS XE Catalyst SD-WAN デバイスでのパケットトレースの設定

  1. トラフィックのパケットトレースを有効にし、パケットの最大数を指定します。

    Device# debug platform packet-trace packet [number of traced packets]
  2. パケットをトレースする際の一致基準を指定します。一致基準には、プロトコル、IP アドレスとサブネットマスク、インターフェイス、方向によるフィルタリング機能があります。

    Device# debug platform condition [interface interface name] {match ipv4|ipv6|mac src dst}  {both|ingress|egress} [bidirectional]
    
  3. MPLS 出力ラベルトレースを有効にします。パフォーマンスへの影響を軽減するために、デバッグパスに MPLS 出力ラベルトレースが含まれています。

    Device# debug platform hardware qfp active feature cef-mpls datapath mpls all
    
  4. 指定した一致基準を有効にして、パケットトレースを開始します。

    Device# debug platform condition start
  5. 条件を非アクティブにし、パケットトレースを停止します。

    Device# debug platform condition stop
  6. 特権 EXEC モードを終了します。

    exit

Cisco vEdge デバイス でのパケットトレースの設定

次の例は、パケットトレースの条件を設定する方法を示しています。

Device# debug packet-trace condition source-ip 10.1.1.1
Device# debug packet-trace condition vpn-id 0
Device# debug packet-trace condition interface ge0/1
Device# debug packet-trace condition stop

詳細については、debug packet-trace condition のコマンドページを参照してください。

パケットトレースのモニタリング

パケットトレース設定は、指定した条件の AND 演算に基づいており、設定したすべての条件に一致するパケットがトレースされます。

Cisco vEdge デバイスでのパケットトレースのモニタリング

Cisco vEdge デバイスshow packet-trace statistics コマンドを使用すると、指定した条件と一致するすべてのパケットの概要が表示されます。

次の例では、パケットトレース用に設定したすべての条件が表示されます。

Device# show debugs
debugs packet-trace condition source-ip 10.1.1.1
debugs packet-trace condition vpn-id 0
debugs packet-trace condition interface ge0/1
debugs packet-trace condition state Stopped

Cisco vEdge デバイスshow packet-trace statistics コマンドを使用すると、指定した条件と一致するすべてのパケットの概要が表示されます。

次の例では、指定したインターフェイス(この場合は ge 0)のパケットトレース統計が表示されます。

Device# show packet-trace statistics source-interface ge0_0 
packet-trace statistics 0
source-ip 10.1.15.13
source-port 0
destination-ip 10.4.0.5
destination-port 0
source-interface ge0_0
destination-interface loop0.0
decision PUNT
duration 40

詳細については、show packet-tracer のコマンドページを参照してください。

詳細なパケットビュー

以下は、show packet-trace details コマンドの出力例です。指定されたトレース ID 10 について表示されます。

Device# show packet-trace details 10 
============================================================================================================
Pkt-id     src_ip(ingress_if)     dest_ip(egress_if)     Duration     Decision
============================================================================================================
10         10.1.15.15:0 (ge0_0)   12.168.255.5:0 (ge0_0)     15 us         PUNT
INGRESS_PKT:
01 00 5e 00 00 05 52 54 00 6b 4b fa 08 00 45 c0 00 44 f8 60 00 00 01 59 c7 2b 0a 01 0f 0f e0
00 00 05 02 01 00 30 ac 10 ff 0f 00 00 00 33 8d 1b 00 00 00 00 00 00 00 00 00 00 ff ff ff
00 00 0a 02 00 00 00 00 28 0a 01 0f 0d 00 00 00 00 ac 10 ff 0d 00 00 00 00 00 00 00 00 00
00 00 00 00 00
EGRESS_PKT:
01 00 5e 00 00 05 52 54 00 6b 4b fa 08 00 45 c0 00 44 f8 60 00 00 01 59 c7 2b 0a 01 0f 0f e0
00 00 05 02 01 00 30 ac 10 ff 0f 00 00 00 33 8d 1b 00 00 00 00 00 00 00 00 00 00 ff ff ff
00 00 0a 02 00 00 00 00 28 0a 01 0f 0d 00 00 00 00 ac 10 ff 0d 00 00 00 00 00 00 00 00 00
00 00 00 00 00
Feature Data
------------------------------------
TOUCH : fp_proc_packet
------------------------------------
TOUCH : fp_proc_packet2
------------------------------------
TOUCH : fp_send_to_host
------------------------------------
FP_TRACE_FEAT_PUNT_INFO:
icmp_type : 0
icmp_code : 0
qos : 7
------------------------------------
TOUCH : fp_hw_x86_pkt_free 

show packet-trace details コマンドを使用すると、指定したトレース ID に関する詳細情報が表示されます。詳細なパケットビューの出力では、概要データセクション、パケットダンプセクション、および機能データセクションの 3 つのセクションが表示されます。

Cisco IOS XE Catalyst SD-WAN デバイスでのパケットトレースのモニタリング

サマリ ビュー

Cisco IOS XE Catalyst SD-WAN デバイスで show platform packet-trace summary コマンドを使用すると、指定した条件と一致するすべてのパケットの概要が表示されます。

次の例では、Cisco IOS XE Catalyst SD-WAN デバイスのパケットトレースの概要が表示されます。

Device# show platform packet-trace summary 

Pkt   Input                     Output                    State  Reason
0     INJ.12                    Gi2                       FWD    
1     Gi2                       internal0/0/rp:0          PUNT   5   
2     INJ.1                     Gi2                       FWD    
3     INJ.1                     Gi2                       FWD    
4     Gi2                       internal0/0/rp:0          PUNT   5   
5     Gi2                       internal0/0/rp:0          PUNT   5   
6     INJ.1                     Gi2                       FWD    
7     INJ.1                     Gi2                       FWD    
8     Gi2                       internal0/0/rp:0          PUNT   5   
9     Gi2                       internal0/0/rp:0          PUNT   5   
10    Gi2                       internal0/0/rp:0          PUNT   5   
11    INJ.1                     Gi2                       FWD    
12    Gi2                       internal0/0/rp:0          PUNT   5   
13    INJ.1                     Gi2                       FWD    
14    INJ.1                     Gi2                       FWD    

詳細なパケットビュー

次に、Cisco IOS XE Catalyst SD-WAN デバイスでの show platform packet-trace packet 0 コマンドの出力例を示します。

Device# show platform packet-trace packet 0 

Packet: 0           CBUG ID: 4321
Summary
  Input     : GigabitEthernet2
  Output    : GigabitEthernet3
  State     : FWD 
  Timestamp
    Start   : 1124044721695603 ns (09/20/2022 01:47:28.531049 UTC)
    Stop    : 1124044722142898 ns (09/20/2022 01:47:28.531497 UTC)
Path Trace
  Feature: IPV4(Input)
    Input       : GigabitEthernet2
    Output      : <unknown>
    Source      : 10.10.10.10
    Destination : 20.20.20.20
    Protocol    : 1 (ICMP)
  Feature: DEBUG_COND_INPUT_PKT
    Entry       : Input - 0x814670b0
    Input       : GigabitEthernet2
    Output      : <unknown>
    Lapsed time : 600 ns
  Feature: IPV4_INPUT_DST_LOOKUP_ISSUE
    Entry       : Input - 0x81494d2c
    Input       : GigabitEthernet2
    Output      : <unknown>
    Lapsed time : 1709 ns
  Feature: IPV4_INPUT_ARL_SANITY
    Entry       : Input - 0x814690e0
    Input       : GigabitEthernet2
    Output      : <unknown>
    Lapsed time : 1274 ns
  Feature: IPV4_INPUT_DST_LOOKUP_CONSUME
    Entry       : Input - 0x81494d28
    Input       : GigabitEthernet2
    Output      : <unknown>
    Lapsed time : 269 ns
  Feature: IPV4_INPUT_FOR_US_MARTIAN
    Entry       : Input - 0x81494d34
    Input       : GigabitEthernet2
    Output      : <unknown>
    Lapsed time : 384 ns
  Feature: DEBUG_COND_APPLICATION_IN
    Entry       : Input - 0x814670a0
    Input       : GigabitEthernet2
    Output      : <unknown>
    Lapsed time : 107 ns
  Feature: DEBUG_COND_APPLICATION_IN_CLR_TXT
    Entry       : Input - 0x8146709c
    Input       : GigabitEthernet2
    Output      : <unknown>
    Lapsed time : 36 ns
  Feature: IPV4_INPUT_LOOKUP_PROCESS
    Entry       : Input - 0x81494d40
    Input       : GigabitEthernet2
    Output      : GigabitEthernet3
    Lapsed time : 38331 ns
  Feature: IPV4_INPUT_IPOPTIONS_PROCESS
    Entry       : Input - 0x81495258
    Input       : GigabitEthernet2
    Output      : GigabitEthernet3
    Lapsed time : 259 ns
  Feature: IPV4_INPUT_GOTO_OUTPUT_FEATURE
    Entry       : Input - 0x8146ab58
    Input       : GigabitEthernet2
    Output      : GigabitEthernet3
    Lapsed time : 9485 ns
  Feature: IPV4_VFR_REFRAG
    Entry       : Output - 0x81495c6c
    Input       : GigabitEthernet2
    Output      : GigabitEthernet3
    Lapsed time : 520 ns
  Feature: IPV6_VFR_REFRAG
    Entry       : Output - 0x81496600
    Input       : GigabitEthernet2
    Output      : GigabitEthernet3
    Lapsed time : 296 ns
  Feature: MPLS(Output)
    Input       : GigabitEthernet2
    Output      : GigabitEthernet3
    Label Stack Entry[1]: 0x03e850fe
      StackEnd:NO, TTL:254, EXP:0, Label:16005, is SDWAN:NO
    Label Stack Entry[2]: 0x000121fe
      StackEnd:YES, TTL:254, EXP:0, Label:18, is SDWAN:NO
  Feature: MPLS_OUTPUT_ADD_LABEL
    Entry       : Output - 0x8145e130
    Input       : GigabitEthernet2
    Output      : GigabitEthernet3
    Lapsed time : 29790 ns
  Feature: MPLS_OUTPUT_L2_REWRITE
    Entry       : Output - 0x812f4724
    Input       : GigabitEthernet2
    Output      : GigabitEthernet3
    Lapsed time : 23041 ns
  Feature: MPLS_OUTPUT_FRAG
    Entry       : Output - 0x8149ae5c
    Input       : GigabitEthernet2
    Output      : GigabitEthernet3
    Lapsed time : 785 ns
  Feature: MPLS_OUTPUT_DROP_POLICY
    Entry       : Output - 0x8149ebdc
    Input       : GigabitEthernet2
    Output      : GigabitEthernet3
    Lapsed time : 14697 ns
  Feature: MARMOT_SPA_D_TRANSMIT_PKT
    Entry       : Output - 0x814ac56c
    Input       : GigabitEthernet2
    Output      : GigabitEthernet3
    Lapsed time : 45662 ns
Packet Copy In
  00505683 d54f0050 56830863 08004500 00641018 0000ff01 6f450a0a 0a0a1414
  14140800 3839001c 00000000 00005b3a eabaabcd abcdabcd abcdabcd abcdabcd
Packet Copy Out
  00505683 d4900050 5683429a 884703e8 50fe0001 21fe4500 00641018 0000fe01
  70450a0a 0a0a1414 14140800 3839001c 00000000 00005b3a eabaabcd abcdabcd

show platform packet-trace summary コマンドを使用すると、指定したトレース ID に関する詳細情報が表示されます。詳細なパケットビューの出力では、概要データセクション、パケットダンプセクション、および機能データセクションの 3 つのセクションが表示されます。

  • 概要データセクション:パケットトレース ID、入力インターフェイス、出力インターフェイス、および指定したトレース ID のデバイスを通過するパケットに関して が取った転送の決定について表示されます。

  • パケットダンプセクション:入力パケットと出力パケット情報が表示されます。パケットヘッダー詳細の最初の 96 バイトのみが表示されます。


    (注)  


    トレーサメモリの制限により、完全なパケットダンプは表示されません。


  • 機能データセクション:機能固有のトレースデータを生成し、機能データを復号化する転送プレーン機能が表示されます。これらの機能は、転送結果、ドロップ理由、その他の動作などのデバッグ情報をパケットトレーサに提供します。

FIA 統計情報の表示

サポートされている最小リリース:Cisco vManage リリース 20.11.1Cisco IOS XE Catalyst SD-WAN リリース 17.11.1a

FIA 統計情報を表示するには、Cisco IOS XE Catalyst SD-WAN デバイスshow platform packet-trace fia-statistics コマンドを使用します。FIA 統計情報では、機能の数と、時間の詳細(機能に関する最小時間、最大時間、および平均時間)が提供されます。

次に、Cisco IOS XE Catalyst SD-WAN デバイス で FIA 統計情報を表示する例を示します。
Device# show platform packet-trace fia-statistics 

Feature                                       Count  Min(ns)   Max(ns)   Avg(ns)
--------------------------------------------------------------------------------
INTERNAL_TRANSMIT_PKT_EXT                        66     4720     28400     13333
MARMOT_SPA_D_TRANSMIT_PKT_EXT                    16     4560     16920     11955
L2_SVI_OUTPUT_BRIDGE_EXT                          1     3640      3640      3640
INTERNAL_INPUT_GOTO_OUTPUT_FEATURE_EXT           16     1680      3880      2755
IPV4_INPUT_LOOKUP_PROCESS_EXT                     1     2720      2720      2720
IPV4_OUTPUT_L2_REWRITE_EXT                        1     2240      2240      2240
IPV4_OUTPUT_DROP_POLICY_EXT                       4     1040      2880      2050
IPV4_INTERNAL_DST_LOOKUP_CONSUME_EXT              1     1960      1960      1960
SSLVPN_INJECT_TX_MSG_EXT                         15      600      2440      1746
IPV4_INTERNAL_FOR_US_EXT                          1     1560      1560      1560
LAYER2_OUTPUT_QOS_EXT                            63      280      2480      1537
LAYER2_OUTPUT_DROP_POLICY_EXT                    78      120      3120      1525
LAYER2_INPUT_LOOKUP_PROCESS_EXT                  15      280      2240      1312
UPDATE_ICMP_PKT_EXT                               1     1280      1280      1280
DEBUG_COND_MAC_EGRESS_EXT                         3      840      1160       973
IPV4_INTERNAL_INPUT_SRC_LOOKUP_CONSUME_EXT        1      960       960       960
IPV4_PREF_TX_IF_SELECT_EXT                        1      800       800       800
DEBUG_COND_OUTPUT_PKT_EXT                        66       80      1640       707
IPV4_INTERNAL_ARL_SANITY_EXT                      3      240       960       666
IPV4_INTERNAL_INPUT_SRC_LOOKUP_ISSUE_EXT          1      640       640       640
IPV4_VFR_REFRAG_EXT                               5      320       920       640
EVC_EFP_VLAN_TAG_ATTACH_EXT                      15       80      1040       629
L2_SVI_OUTPUT_GOTO_OUTPUT_FEATURE_EXT             1      520       520       520
LAYER2_VLAN_INJECT_EXT                           15      120       760       504
L2_ES_OUTPUT_PRE_TX_EXT                          16        0      1000       502
DEBUG_COND_APPLICATION_IN_EXT                     1      480       480       480
DEBUG_COND_APPLICATION_OUT_CLR_TXT_EXT            3       80       720       426
DEBUG_COND_INPUT_PKT_EXT                         16       80       880       417
IPV4_OUTPUT_FRAG_EXT                              1      360       360       360
DEBUG_COND_APPLICATION_IN_CLR_TXT_EXT             1      320       320       320
DEBUG_COND_APPLICATION_OUT_EXT                    3      240       280       266
LFTS_INJECT_PKT_EXT                              16       40       480       250
LAYER2_BRIDGE_INJECT_EXT                         15       40       560       234

パケットトレースの設定例

次の例は、パケットトレースの条件を設定および監視する方法を示しています。

Device# debug platform packet-trace packet 2048
Device# debug platform condition ingress
Device# debug platform condition start
Device# debug platform condition stop
Device# show platform packet-trace summary
Pkt Input Output State Reason
0 Gi0/0/2.3060 Gi0/0/2.3060 DROP 402
1 internal0/0/rp:0 internal0/0/rp:0 PUNT 21 2 internal0/0/recycle:0 Gi0/0/2.3060 FWD