はじめに
このドキュメントでは IOS-XE で利用可能な解析用の Feature の Packet Trace について紹介します。
Packet Trace の機能を利用することで QFP での転送処理の流れを追跡することが出来ます。
TAC のエンジニアに依頼された場合や、意図しない Packet Drop が発生した場合などの原因調査に使用してください。
なお、Packet Trace は QFP での転送処理の流れを追跡する機能ですので、ASR-90x など QFP が利用されていない platform では利用できません。show platform hardware qfp xxx 等のコマンド(例:show platform hardware qfp active statistics drop detail)を実行可能な platform であれば使用できます。
設定
Packet Trace の各種設定について説明します。
debug platform packet-trace enable
Packet Trace を有効化します。16.xx.xx などの最近の version ではこの設定は不要です。
debug platform packet-trace packet num-packets [ fia-trace | summary-only ][ data-size data size ][ circular ]
Packet Trace で情報を取得するパケットの数を指定します。
debug platform packet-trace packet num-packets までは必須の設定です。
<Option>
fia-trace : 詳細な情報を取得します。
summary-only : summary のみ取得します。
data-size : 情報を取得する packet の size を指定します。default は 2048 です。
circular : このオプションを付けると最新のパケットの情報を取得します。例えば num-packets で 64 を指定した場合は最後の 64個のパケットについて情報を取得します。default はこのオプションは無効です。
default では Packet Trace を開始してからの初めの num-packets で指定しただけのパケットの情報が取得されます。
debug platform condition interface Interface [ ipv4 A.B.C.D/nn | ipv6 X:X:X:X::X/0-128 ] { ingress | egress | both }
Packet Trace を行う Interface と方向を指定します。必須の設定です。
Optionの ipv4 A.B.C.D/nn, ipv6 X:X:X:X::X/<0-128> を設定すると指定した範囲のアドレスにmatchするパケットの情報のみ取得します。 source か dest の指定は現状できません。
debug platform packet-trace copy packet { input | output | both } [size <copy size>] [ L2 | L3 | L4 ]
Option 設定です。このコマンドを追加すると packet の hex値 も取得してくれます。
size option で copy するパケットの size を指定します。default は 64 です。
L2|L3|L4 でどの header 以降を copy するかを指定します。default は L2 です。
debug platform packet-trace statistics
Option 設定です。このコマンドを追加すると統計情報も確認できるようになります。
debug platform packet-trace drop [ code code-num ]
Option 設定です。このコマンドを追加すると drop するパケットのみの情報を取得します。
code code-num Option を追加することで指定した code-num のみの情報を取得します。
code-num は「show platform packet-trace code drop」で確認可能。以下の Code の部分が code-num です。
Router#show platform packet-trace code drop
Code DROP Description
---- ----------------------------------------
0 Reserved
1 UidbNotCfgd
2 BadUidbIdx
3 BadUidbSubIdx
4 EncapUnknown
5 InvL2Hdr
6 BadLen
7 TcpBadfrag
8 Ipv4Acl
9 Ipv4AclLookupMiss
10 BadIpChecksum
11 IpFormatErr
12 IpBadOptions
13 Ipv4Martian
14 MpassErr
15 Ipv4Pbr
16 InvHdrErr
17 PuntErr
18 InjectErr
19 Ipv4NoRoute
20 QosPolicing
--More--
debug platform packet-trace punt [ code code-num ]
Option 設定です。このコマンドを追加すると punt パケットのみの情報を取得します。
code code-num Option を追加することで指定した code-num のみの情報を取得します。
code-num は「show platform packet-trace code punt」で確認可能。以下の Code の部分が code-num です。
Router#show platform packet-trace code punt
Code PUNT Description
---- ----------------------------------------
0 Reserved
1 MPLS ICMP Can't Fragment
2 IPv4 Options
3 Layer2 control and legacy
4 PPP Control
5 CLNS IS-IS Control
6 HDLC keepalives
7 ARP request or response
8 Reverse ARP request or repsonse
9 Frame-relay LMI Control
10 Incomplete adjacency
11 For-us data
12 Mcast Directly Connected Source
13 Mcast IPv4 Options data packet
14 Skip egress processing
15 MPLS TTL expired
16 MPLS Reserved label (ie: 0-15)
17 IPv6 Bad hop limit
18 IPV6 Hop-by-hop Options
19 Mcast Internal Copy
20 Generic QFP generated packet
--More--
debug platform packet-trace inject [ code code-num ]
Option 設定です。このコマンドを追加すると inject パケットのみの情報を取得します。
code code-num Option を追加することで指定した code-num のみの情報を取得します。
code-num は「show platform packet-trace code inject」で確認可能。以下の Code の部分が code-num です。
Router#show platform packet-trace code inject
Code INJECT Description
---- ----------------------------------------
0 RESERVED
1 L2 control/legacy
2 QFP destination lookup
3 QFP IPv4/v6 nexthop lookup
4 QFP generated packet
5 QFP <->RP keepalive
6 QFP Fwall generated packet
7 QFP adjacency-id lookup
8 Mcast specific inject packet
9 QFP ICMP generated packet
10 QFP/RP->QFP Subscriber data packet
11 SBC DTMF
12 ARP request or response
13 Ethernet OAM loopback packet
14 UNUSED
15 PPPoE discovery packet
16 PPPoE session packet
17 QFP inject for pp_index lookup
18 QFP inject replicate
19 QFP inject PIT lookup
20 SBC generated packets
--More--
debug platform condition start
Packet Trace を開始します。
debug platform condition stop
Packet Trace を停止します。
clear platform packet-trace statistics
Packet Trace で取得した情報を clear します。
clear platform packet-trace configuration
(show platform packet-trace configuration で表示される)Packet Trace の設定内容を clear します。
show platform packet-trace configuration
Packet Trace の設定内容を確認します。
show platform packet-trace statistics
Packet Trace の統計情報を表示します。
show platform packet-trace summary
Packet Trace 全体の Summary 情報を表示します。
show platform packet-trace packet { num | all } [ decode ]
show platform packet-trace packet の後に数字を指定するとその Packet Trace の詳細を表示します。
show platform packet-trace packet の後に all を指定すると全ての Packet の Packet Trace の詳細を表示します。
decode Option を追加することで Packet の decode 結果も含めて表示されるようになります。
show platform packet-trace packet all や show platform packet-trace packet all decode は実行後しばらくプロンプトの応答がなくなりますが、特に通信影響等はありませんので気になされなくて大丈夫です。
show debugging
Packet Trace の設定内容を確認します。
使用手順
Step 1. packet-trace を設定
以下は設定例です。
debug platform packet-trace enable !!! 16.x 以降では不要 !!!
debug platform packet-trace packet 8192 fia-trace
debug platform condition interface GigabitEthernet 1 both
debug platform condition interface internal-RP both
debug platform packet-trace copy packet both size 2048
debug platform packet-trace statistics
Step 2. packet-trace を開始
debug platform condition start
Step 3. packet-trace を行いたいパケットを送信
Step 4. packet-trace を停止
debug platform condition stop
Step 5. 各種 show コマンドの取得
show platform packet-trace statistics
show platform packet-trace summary
show platform packet-trace packet all decode
Step 6. 設定の clear
clear platform packet-trace configuration
undebug platform condition interface GigabitEthernet 1 both
undebug platform condition interface internal-RP both
参考情報
IOS-XE Datapath パケット トレース機能
Cisco ASR 1000 Series Aggregation Services Routers Software Configuration Guide / Chapter: Packet Trace