シスコサポートコミュニティ
キャンセル
次の結果を表示 
次の代わりに検索 
もしかして: 

IOS AP でのフレーム・トレース

 





IOS Access Point には無線フレームの暗号化前(送信時)、復号化後(受信時)のフレーム・ヘッダをダンプする debug コマンドが実装されています。

このトレース機能は暗号化された無線フレームのキャプチャだけでは解析が難しい場合などに取得し、SN (シークエンス番号)等を基に同時取得した無線キャプチャと比較しながら問題点を把握する場合などに使用します。

IOS AP の無線デバイスドライバでの送受信処理トレースであり、フレーム再送状況は分からない等、無線キャプチャの代替になるものではありません。




使用する debug コマンド



debug dot11 Dot11Radio [0|1] monitor address [MAC#1] .. [MAC#4]

debug dot11 Dot11Radio [0|1] trace print [フラグ1] [フラグ2] [フラグ3] ...

  • トレース対象の無線クライアント MACアドレスは 4 つまで指定できます。
  • 一般的なトラブルシューティングで使用する基本フラグは clients keys mgmt rcv txfail xmt です。




debug 取得時の注意点

 

  • CPU負荷低減のため、console logging の無効化等を必ず実施してください。
  • Lightweight APの時刻は WLCに同期しています。必ず WLC と無線キャプチャ取得PCの時刻を NTPで正確に一致させてください。
  • トレース取得完了後、必ず undebug all を実行してください。
  • トレース実行インターフェイスを間違わないようご注意ください。(Dot11Radio0 と Dot11Radio1 の両方で同時にトレースを取得することも可能です)
  • 一般的にトレースの出力は大量になります。トラフィック量が多いことが予想される場合は、ロギング・バッファに トレース・ログを出力させ、show logging コマンドを用いてログを保存します。

 





 

Telnet/SSH を使用したトレース取得手順例



トラフィック量が少ない接続処理のトラブルシューティングなどで、LAN接続経由でログ取得が可能な場合は Telnet/SSHでのログ収集が可能です。

 

FW19-1602#debug capwap console cli
This command is meant only for debugging/troubleshooting
Any configuration change may result in different
behavior from centralized configuration.

CAPWAP console CLI allow/disallow debugging is on
FW19-1602#
FW19-1602#conf t
Enter configuration commands, one per line. End with CNTL/Z.
FW19-1602(config)#no logging console
FW19-1602(config)#clock timezone JST 9
FW19-1602(config)#service timestamps debug datetime msec localtime
FW19-1602(config)#service timestamps log datetime msec localtime
FW19-1602(config)#line vty 0 4
FW19-1602(config-line)#exec-timeout 0 0
FW19-1602(config-line)#end
FW19-1602#
FW19-1602#
FW19-1602#debug dot11 dot11radio 0 monitor address 5ce0.c571.9b57
FW19-1602#debug dot11 dot11radio 0 trace print clients keys mgmt rcv txfail xmt
FW19-1602#
FW19-1602#
FW19-1602#terminal monitor


(Telnet/SSHターミナルへのトレース出力)

<問題事象発生>

FW19-1602#undebug all
All possible debugging has been turned off
FW19-1602#



// 設定切り戻し (行わなくても次回再起動にデフォルト設定に戻ります)
FW19-1602#debug capwap console cli
FW19-1602#conf t
FW19-1602(config)#logging console debugging
FW19-1602(config)#no clock timezone
FW19-1602(config)#service timestamps debug datetime msec
FW19-1602(config)#service timestamps log datetime msec
FW19-1602(config)#line vty 0 4
FW19-1602(config-line)#exec-timeout 10 0
FW19-1602(config-line)#end
FW19-1602#
FW19-1602#undebug all
All possible debugging has been turned off
FW19-1602#terminal no monitor
FW19-1602#

 






 

ロギング・バッファーに保存する手順例

トラフィック量が多い場合はサイズを大きくしてロギング・バッファにトレースを出力させ、show logging コマンドにより収集します。

 

FW19-1602#debug capwap console cli
This command is meant only for debugging/troubleshooting
Any configuration change may result in different
behavior from centralized configuration.

CAPWAP console CLI allow/disallow debugging is on
FW19-1602#
FW19-1602#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
FW19-1602(config)#
FW19-1602(config)#clock timezone JST 9
FW19-1602(config)#service timestamps debug datetime msec localtime
FW19-1602(config)#service timestamps log datetime msec localtime
FW19-1602(config)#service sequence-numbers
FW19-1602(config)#no logging queue-limit
FW19-1602(config)#logging buffered 10000000 debugging  <-- 機種により設定可能サイズは異なります。
FW19-1602(config)#no logging rate-limit
FW19-1602(config)#no logging console
FW19-1602(config)#no logging monitor
FW19-1602(config)#no logging trap
FW19-1602(config)#line vty 0 4
FW19-1602(config-line)#exec-timeout 0 0
FW19-1602(config-line)#end
FW19-1602#
FW19-1602#clear logging
Clear logging buffer [confirm]   <-- Enter入力
FW19-1602#
FW19-1602#
FW19-1602#
FW19-1602#debug dot11 dot11radio 0 monitor address 5ce0.c571.9b57
FW19-1602#debug dot11 dot11radio 0 trace print clients keys mgmt rcv txfail xmt
FW19-1602#



<問題事象発生>


FW19-1602#undebug all
All possible debugging has been turned off
FW19-1602#
FW19-1602#terminal length 0
FW19-1602#show logging


(トレース・ログの表示)


// 設定切り戻し (行わなくても次回再起動にデフォルト設定に戻ります)
FW19-1602#debug capwap console cli
FW19-1602#conf t
FW19-1602(config)#no clock timezone
FW19-1602(config)#service timestamps debug datetime msec
FW19-1602(config)#service timestamps log datetime msec
FW19-1602(config)#service sequence-numbers
FW19-1602(config)#logging queue-limit
FW19-1602(config)#logging buffered 1048576 debugging
FW19-1602(config)#logging rate-limit console 9
FW19-1602(config)#logging console debugging
FW19-1602(config)#logging monitor debugging
FW19-1602(config)#logging trap informational
FW19-1602(config)#line vty 0 4
FW19-1602(config-line)#exec-timeout 10 0
FW19-1602(config-line)#end
FW19-1602#
FW19-1602#undebug all
All possible debugging has been turned off
FW19-1602#





 

トレース出力例



出力の基本的な見方


*Apr 13 09:15:14.467: DBA7395A r 18      60/61/58 43- 8841 030 BA1890 719B57 815C00 0200 q0 l84
  IV AAAA0300   0000 0800 4500 003C 30D1 0000 8001 BCB7 AC11 7A17 AC11 7AFE
  0800 F811 0001 5549 6162 6364 6566 6768 696A 6B6C 6D6E 6F70 7172 7374 7576
  7761 6263 6465 6667 6869 0000 0000 0000 3014 0100 000F AC04 0100

  • DBA7395A : system uptime (msec)の HEX表記
  • r 18 : r = 受信 または  t = 送信、 および送受信レート
  • 8841 : Type/Subtype および フレーム・コントロール・フィールドの値
  • BA1890 719B57 815C00 : MACアドレス下位 3バイト
    • 送信フレーム: 宛先 BSSID 送信元 の順
    • 受信フレーム: BSSID 送信元 宛先 の順
  • 0200 : 先頭 12ビット = 802.11 シークエンス番号
  • l84 : フレーム長

 

BSSID、 送信元、宛先 MACアドレス (トレースでは下位 3 バイトのみ表示) とシークエンス番号を元に無線キャプチャファイルと比較しながら問題の発生している原因を解析します。

 

 

 




Association Request/Response および 4 Way Handshake の例

 

*Apr 13 09:09:35.651: C7411114 r  6      62/55/64 23- 0000 03C BA1890 719B57 BA1890 0260 assreq l 162

*Apr 13 09:09:35.655: C741243F t  1     0  - 1000 000 719B57 BA1890 BA1890 0000 assrsp l 206

// Association Request/Response はそれぞれ assreq, assrsp 表記により識別できます。

 


*Apr 13 09:09:35.659: C74134E2 t  1     0  - 8802 000 719B57 BA1890 BA1890 0080 q7 l129
  EAPOL2 EAPOL key desc 02  008A 0010 0000 0000 0000 0000 4CCA 13A7 5577
  257F 97B9 B790 3FF0 B331 E501 51EC 76B3 6D0F 9A19 3C40 C000 26D3 0000 0000
  0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000

*Apr 13 09:09:35.703: C741DD39 r  6      64/55/66 26- 8801 03C BA1890 719B57 BA1890 0000 q0 l131
  EAPOL key desc 02  010A 0000 0000 0000 0000 0000 DF15 E3F8 10D3 73E9 25E7
  FC69 548A 2C01 EDB3 919E 3E41 0428 7D52 1ACE 59BA 0219 0000 0000 0000 0000
  0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 F3BE 8F5A 97ED

*Apr 13 09:09:35.703: C741E8FD t  1     0  - 8802 000 719B57 BA1890 BA1890 0090 q7 l163
  EAPOL2 EAPOL key desc 02  13CA 0010 0000 0000 0000 0001 4CCA 13A7 5577
  257F 97B9 B790 3FF0 B331 E501 51EC 76B3 6D0F 9A19 3C40 C000 26D3 0000 0000
  0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ECC4

*Apr 13 09:09:35.707: C741ED29 r  6      62/54/64 44- 8801 03C BA1890 719B57 BA1890 0010 q0 l107
  EAPOL key desc 02  030A 0000 0000 0000 0000 0001 0000 0000 0000 0000 0000
  0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
  0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 1F7E 42EB B4C8

 

// 管理フレームや EAPフレームには APの MACアドレスが BSSID に加え、送信元または宛先にも含まれるので、アドレス・フィールドの 2 箇所に AP の MACアドレス下位 3 バイトが記載されていることに着目して探します。

// EAPoL Key フレームは上記のように、"EAPOL" とプリントされます。

 

 




 

DHCP パケットの例

 

*Apr 13 09:09:35.723: C7423778 r 54      65/57/66 26- 8849 02C BA1890 719B57 mFFFFFF 0020 q0 l352
  IV AAAA0300   0000 0800 4500 0148 4C9B 0000 8011 ED0A 0000 0000 FFFF FFFF
  0044 0043 0134 9088 0101 0600 3E2B E98D 0000 8000 0000 0000 0000 0000 0000
  0000 0000 0000 5CE0 C571 9B57 0000 0000 0000 0000 0000 0000 0000 0000 0000

// mFFFFFF : マルチキャスト・ブロードキャストの場合、アドレス下位 3バイトの前に "m" が付与されます。

// 0020 : 無線キャプチャで SN = 0x2 のフレームを探し、トレースとキャプチャを比較しながら解析します。

// 4500 : IPプロトコル・バージョン = 4, IPヘッダ長 20バイトを示し、IPヘッダ開始の目印になります。

// 8011 : プロトコル番号 0x11 = 17 より UDP パケットであることが分かります。

// 0044 0043 : 0x44 = 68, 0x43 = 67 より BOOTP(DHCP) であることが分かります。


*Apr 13 09:09:35.739: C7427506 t m12-2 4  - 884A 000 719B57 BA1890 BA1890 0000 q0 l340
   IP 255.255.255.255 < 1.1.1.1 id 0 ttl255 sum B89F prot 11 len 332
  UDP 68 < 67 len 312 chk B656
  DHCP rep fl 8000 ch 5ce0.c571.9b57 y 172.17.122.23 35-05 36-01010101

// 一部のフレームは HEX値をパース済みの状態で出力されますが、基本は HEX値を読み解くことが必要です。

 

 

// 以下の例は Windows で ipconfig /renew を実施し、ユニキャスト DHCPリクエストでアドレスを更新した例です。


*Apr 13 09:15:24.595: DC437E79 r 18      62/63/60 36- 8841 030 BA1890 719B57 815C00 0260 q0 l352
  IV AAAA0300   0000 0800 4500 0148 6E4E 0000 8011 A32C AC11 7A17 0101 0101
  0044 0043 0134 96A5 0101 0600 9E60 0D15 0000 0000 AC11 7A17 0000 0000 0000
  0000 0000 0000 5CE0 C571 9B57 0000 0000 0000 0000 0000 0000 0000 0000 0000

*Apr 13 09:15:24.599: DC4389B9 t m15b2s0  - 8842 000 719B57 BA1890 BA1890 00A0 q0 l340
   IP 172.17.122.23 < 1.1.1.1 id 0 ttl255 sum 9276 prot 11 len 332
  UDP 68 < 67 len 312 chk 6648
  DHCP rep fl 0 ch 5ce0.c571.9b57 c 172.17.122.23 y 172.17.122.23 35-05


 




 

ARP フレームの例

 

*Apr 13 09:14:34.715: D9428709 r 54      60/61/59 42- 8841 02C BA1890 719B57 mFFFFFF 0040 q0 l52
  IV 40000000   0000 0000 0200 0020 0000 0000 AAAA 0300 0000 0806 0001 0800
  0604 0001 5CE0 C571 9B57 AC11 7A17 0000 0000 0000 AC11 7AFE

*Apr 13 09:14:34.727: D942B972 t m15-2s1  - 884A 000 719B57 BA1890 815C00 0020 q0 l54
   ARP2 hdw 1 prot 800 0011.bc81.5c00 172.17.122.254 > 5ce0.c571.9b57 172.17.122.23
  0001 0800 0604 0002 0011 BC81 5C00 AC11 7AFE 5CE0 C571 9B57 AC11 7A17


// 無線キャプチャで SN 0x004, 0x002 のフレームを探し、debugと比較しながら解析します。

// ARP パケットは プロトコル・タイプ 0x0806 (= ARP)、および ARP ヘッダの ハードウェア・タイプ 0x0001 (= Ethernet)、プロトコル・タイプ 0x0800 (= IPv4のアドレス解決処理) などのパターンから識別できます。

 

// 下記は有線側からの ARPの例です。


*Apr 13 09:15:16.599: DBC817E8 t m15-2s0  - 8842 000 719B57 BA1890 815C00 0070 q0 l54
   ARP1 hdw 1 prot 800 0011.bc81.5c00 172.17.122.254 > 5ce0.c571.9b57 172.17.122.23
  0001 0800 0604 0001 0011 BC81 5C00 AC11 7AFE 5CE0 C571 9B57 AC11 7A17

*Apr 13 09:15:16.599: DBC81D5D r 18      61/62/59 42- 8841 030 BA1890 719B57 815C00 0230 q0 l52
  IV 30020000   0000 0000 2100 0020 0000 0000 AAAA 0300 0000 0806 0001 0800
  0604 0002 5CE0 C571 9B57 AC11 7A17 0011 BC81 5C00 AC11 7AFE



 




 

ping パケットの例


*Apr 13 09:15:14.467: DBA7395A r 18      60/61/58 43- 8841 030 BA1890 719B57 815C00 0200 q0 l84
  IV AAAA0300   0000 0800 4500 003C 30D1 0000 8001 BCB7 AC11 7A17 AC11 7AFE
  0800 F811 0001 5549 6162 6364 6566 6768 696A 6B6C 6D6E 6F70 7172 7374 7576
  7761 6263 6465 6667 6869 0000 0000 0000 3014 0100 000F AC04 0100

// 020 : 無線キャプチャより SN 0x020 のフレームを探し、トレースと比較しながら解析します。

// 8001 : IPヘッダのプロトコル番号 0x01 より ICMP であることが分かります。

 

*Apr 13 09:15:14.467: DBA73D8F t m15b2s0  - 8842 000 719B57 BA1890 815C00 0040 q0 l68
   IP 172.17.122.23 < 172.17.122.254 id 30D1 ttl255 sum 3DB7 prot 1 len 60
  ICMP ping reply code 0 chk 12, id 1 seq 21833
  6162 6364 6566 6768 696A 6B6C 6D6E 6F70 7172 7374 7576 7761 6263 6465 6667


 

// 以下は有線側からの pingの例です。


*Apr 13 09:15:43.319: DD6415C0 t m15b2s0  - 8842 000 719B57 BA1890 815C00 00B0 q0 l108
   IP 172.17.122.23 < 172.17.122.254 id 232E ttl255 sum 4B32 prot 1 len 100
  ICMP ping code 0 chk 286B, id 9924 seq 0
  0000 000B 5073 DE9C ABCD ABCD ABCD ABCD ABCD ABCD ABCD ABCD ABCD ABCD ABCD

*Apr 13 09:15:43.327: DD643563 r 24      61/53/63 26- 8841 02C BA1890 719B57 815C00 0320 q0 l124
  IV AAAA0300   0000 0800 4500 0064 30D5 0000 8001 BC8B AC11 7A17 AC11 7AFE
  0000 306B 26C4 0000 0000 000B 5073 DE9C ABCD ABCD ABCD ABCD ABCD ABCD ABCD
  ABCD ABCD ABCD ABCD ABCD ABCD ABCD ABCD ABCD ABCD ABCD ABCD ABCD ABCD ABCD



 




 

TCP パケットの例



*Apr 13 09:16:10.407: DF059921 r 12      62/53/64 48- 8849 030 BA1890 719B57 912B36 03A0 q0 l76
  IV AAAA0300   0000 0800 4500 0034 78B9 4000 8006 35CF AC11 7A17 AC11 7A01
  DA18 0015 E908 FF7C 0000 0000 8002 2000 4029 0000 0204 05B4 0103 0300 0101
  0402 0000 0000 0000 0000 0000 0000 3014 0100

// 8006 : IPヘッダ内のプロトコル番号 0x06 より TCP であることが分かります。

// AC11 7A17 AC11 7A01 : 送信元:172.17.122.23 宛先:172.17.122.1 であることが分かります。

// DA18 0015 : ポート番号が 送信元:0xda18=55832 -> 宛先:0x15=21 なので FTP であることが分かります。

// 8002 : TCPコントロール・フラグの下位 2ビット目が 1 なので SYN bit = 1 であることが分かります。

 

*Apr 13 09:16:10.415: DF05B44B t m14-2s0  - 8842 000 719B57 BA1890 912B36 0130 q0 l60
   IP 172.17.122.23 < 172.17.122.1 f1-0-0 id 4355 ttl128 sum 6B33 prot 6 len 52
  0015 DA18 DDDD 7609 E908 FF7D 8012 2000 EC28 0000 0204 05B4 0103 0308 0101
  0402

*Apr 13 09:16:10.415: DF05B980 r  m2t2   60/57/63 27- 8841 030 BA1890 719B57 912B36 03B0 q0 l64
  IV AAAA0300   0000 0800 4500 0028 78BA 4000 8006 35DA AC11 7A17 AC11 7A01
  DA18 0015 E908 FF7D DDDD 760A 5010 2000 2CFC 0000 0500 00A3 8D5B 2A01 022D
  1A2C 181B FFFF


 

バージョン履歴
改訂番号
2/2
最終更新:
‎09-01-2017 03:17 AM
更新者:
 
寄稿者: