キャンセル
次の結果を表示 
次の代わりに検索 
もしかして: 
cancel
27713
閲覧回数
30
いいね!
0
コメント
Taisuke Nakamura
Cisco Employee
Cisco Employee

 

 

はじめに

本ドキュメントでは、CLIを用いたASAのパケットキャプチャ機能の利用方法と、その活用例を紹介します。

ASAのパケットキャプチャ機能は、トラブルシューティングにおいて、非常に有用です。パケットキャプチャ機能を用いる事で、指定インターフェイスの、指定IPやポート間のパケットキャプチャを、簡易、かつ効率良く採取できます。採取したキャプチャは、ASAコマンドライン(CLI)上で確認、もしくはPCAP形式でWEB経由でダウンロード、もしくはTFTPサーバにアップロードが可能です。

パケットキャプチャは、設定やシスログの確認のみでは解らないような、難しい問題のトラブルシューティングにおいて、そのヒント、もしくはその解決に導く、非常に重要な情報となりえます。

本ドキュメントは、ASA バージョン 9.x を元に確認、作成しております。


 

キャプチャポイント

Ingressパケットは、パケットの内部処理"前"にキャプチャされます。Egressパケットは各種処理"後"にキャプチャされます。その為、IngressパケットとEgressパケットのキャプチャを比較する事で、ASA内部処理によるIPやポート等情報の変化状況や、パケット破棄の有無の確認も可能です。


 

パフォーマンス影響

キャプチャ処理中は、CPU負荷を伴います。数パーセント以内の負荷上昇を想定しますが、通信量やキャプチャ量の非常に多い環境や、キャプチャに細かく定義したaccess-listを利用時、複数キャプチャの同時有効化時などは、より高い負荷を伴う恐れがあります。キャプチャ有効化前後で、show cpuコマンドでCPU使用率の確認を お勧めいたします。商用環境でのキャプチャは、トラフィック量の少ない時間帯での実施を お勧めいたします。

キャプチャ作業完了後は、有効化したキャプチャは、no capture <capname> コマンドで削除してください。


 

キャプチャコマンド

[書式]
capture <capname> <option>

[オプション]

 buffer

 キャプチャ可能なバッファサイズの指定
 デフォルト512KB、最大32MBまで指定可

 circular-buffer  バッファがフルになった場合、最初から上書きをし直す
 デフォルト無効
 headers-only  L2、L3、L4 ヘッダのみをキャプチャする
 データを含めない
 interface  キャプチャを有効化するインターフェイスの指定
   
 match  プロトコル・IP・ポートを指定した双方向のキャプチャ
 指定IPやポート間のキャプチャに最適  
 type  特定タイプのパケットキャプチャの有効
 (例:asp-dropやisakmp、webvpnなど)
 access-list  アクセスリストにマッチするパケットのキャプチャ
 (当オプションは定義/設定が難しいため 利用せず、
  代わりにmatchオプションの利用がお勧め) 
 real-time

 リアルタイムに対象キャプチャパケットを出力
 出力量が多く 負荷が高いため、検証環境のみなど 用途を限定し使用すること
 SSHで取得時は CSCuv20449の影響に注意


[設定例]
insideインターフェイスを経由する Telnet通信(双方向)のキャプチャ:
capture TELNET-INSIDE interface inside match tcp any any eq telnet

outsideインターフェイスを経由する HTTP通信(双方向)の ヘッダのみキャプチャ:
capture HTTP-HEAD interface outside headers-only match tcp any any eq 80

dmzインターフェイスを経由する 全パケットを常にキャプチャ(自動上書き):
capture DMZ interface dmz circular-buffer


 

キャプチャ状況の確認

キャプチャコマンドを有効後、自動でキャプチャが開始[Capturing]します。キャプチャはRAM内に保存され、指定バッファ(デフォルト512KB)を越えると、[Buffer Full]となり書き込み不能となります。

[書式]
show capture

[実行例]

ASA5545(config)# show capture
capture TELNET-INSIDE type raw-data interface inside [Capturing - 7437 bytes]
  match tcp any any eq telnet
capture CAP-ALL-INSIDE type raw-data interface inside [Buffer Full - 523978 bytes]

 


キャプチャパケットの確認

[書式]
show capture <capname> <option>

[オプション]

 access-list  アクセスリストにマッチするパケットを表示
 count  指定した数のパケットを表示
 detail  より詳細なパケットの情報を表示 (例:MACアドレスやプロトコル情報)
 dump  hexダンプの表示
 packet-number  指定Noのパケットを表示


[実行例]

ASA5545(config)# show capture TELNET-INSIDE count 10

22 packets captured

   1: 12:11:17.311995       10.10.0.1.23072 > 10.30.0.1.23: P 2226036685:2226036687(2) ack 940233939 win 64233
   2: 12:11:17.518131       10.30.0.1.23 > 10.10.0.1.23072: . ack 2226036687 win 4085
   3: 12:11:27.312361       10.10.0.1.23068 > 10.30.0.1.23: P 940973559:940973561(2) ack 3972296211 win 64233
   4: 12:11:27.522189       10.30.0.1.23 > 10.10.0.1.23068: . ack 940973561 win 4083
   5: 12:16:17.347287       10.10.0.1.23072 > 10.30.0.1.23: P 2226036687:2226036689(2) ack 940233939 win 64233
   6: 12:16:17.554109       10.30.0.1.23 > 10.10.0.1.23072: . ack 2226036689 win 4083
   7: 12:16:27.281906       10.10.0.1.23068 > 10.30.0.1.23: P 940973561:940973563(2) ack 3972296211 win 64233
   8: 12:16:27.490178       10.30.0.1.23 > 10.10.0.1.23068: . ack 940973563 win 4081
   9: 12:21:17.294189       10.10.0.1.23072 > 10.30.0.1.23: P 2226036689:2226036691(2) ack 940233939 win 64233
  10: 12:21:17.883773       10.10.0.1.23072 > 10.30.0.1.23: P 2226036689:2226036691(2) ack 940233939 win 64233
10 packets shown


 

キャプチャファイルのWEB経由のダウンロード

管理アクセス可能な端末から、ASAの管理IPアドレスを含む、以下URLにWEBアクセスする事で、任意キャプチャをPCAPファイルでダウンロード可能です。

[書式]
 https://<ip address>/capture/<capname>/pcap  

[URL例]
 https://10.10.0.254/capture/TELNET-INSIDE/pcap  

     

マルチプルコンテキストモードの場合、以下コマンドでContextを指定し取得が可能です。

[書式]
https://<ip address of asa>/capture/<context name>/<capname>/pcap

   

     

キャプチャファイルのTFTP/FTPサーバへのアップロード

任意IPアドレスのTFTP/FTPサーバに、任意キャプチャをPCAPファイルでアップロード可能です。

[書式]
copy /pcap capture:<capname> {tftp|ftp}://<ip address>

[コマンド例]
copy /pcap capture:TELNET-INSIDE tftp://10.10.0.1

    

マルチプルコンテキストモードの場合、コマンドを システム実行スペースで実行します。 以下コマンドでContextを指定し取得が可能です。

[書式]
copy /pcap capture:<context name>/<capname> {tftp|ftp}://<ip address>

[実行例]   ※admin contextの キャプチャファイル ARPの FTPアップロード時

asasm# copy /pcap capture:admin/ARP ftp://10.141.xx.xx

Source capture name [admin/ARP]?

Address or name of remote host [10.141.xx.xx]?

Destination filename [ARP]? ARP.pcap
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
5983 packets copied in 6.190 secs (997 packets/sec)

     
    

指定キャプチャの一時クリア

[書式]
clear capture <capname>

   
    

全てのキャプチャの一時クリア

[書式]
clear capture /all

[実行例]

ASA5545(config)# show capture
capture TELNET-INSIDE type raw-data interface inside [Capturing - 7437 bytes]
  match tcp any any eq telnet
capture CAP-ALL-INSIDE type raw-data interface inside [Buffer Full - 523978 bytes]

ASA5545(config)# clear capture /all

ASA5545(config)# show capture
capture TELNET-INSIDE type raw-data interface inside [Capturing - 0 bytes] <--- 各キャプチャ再開
  match tcp any any eq telnet
capture CAP-ALL-INSIDE type raw-data interface inside [Capturing - 912 bytes] <--- 各キャプチャ再開


 

指定キャプチャの削除

作業完了後は、有効化キャプチャの削除を実施します。

[書式]
no capture <capname>


 

キャプチャケース

Case1. 指定IP間のHTTP通信のキャプチャと簡易確認

本ケースでは、以下構成のHTTP通信のキャプチャと簡易確認、及び、キャプチャファイル(pcap形式)のWEB経由のダウンロード方法を紹介します。

1. クライアント(10.10.0.1)とWEBサーバ(10.30.0.1)間のHTTP通信の、insideインターフェイスでの、双方向(match)のキャプチャを有効化

ASA5545# capture WEB interface inside match tcp host 10.10.0.1 host 10.30.0.1 eq www


2. キャプチャ有効状況の確認

ASA5545# show capture
capture WEB type raw-data interface inside [Capturing - 0 bytes]
  match tcp host 10.10.0.1 host 10.30.0.1 eq www


3. クライントからWEBサーバにアクセス試験を実施


4. キャプチャ状況の再確認

ASA5545# show capture
capture WEB type raw-data interface inside [Capturing - 3570 bytes]
  match tcp host 10.10.0.1 host 10.30.0.1 eq www


5. キャプチャパケットの簡易確認。 WEB通信のパケット交換状況を 簡易確認できる

ASA5545# show capture WEB

19 packets captured

   1: 09:41:38.005096       10.10.0.1.22961 > 10.30.0.1.80: S 2363396241:2363396241(0) win 8192 <mss 1460,nop,wscale 8,nop,nop,sackOK>
   2: 09:41:38.006637       10.30.0.1.80 > 10.10.0.1.22961: S 509043919:509043919(0) ack 2363396242 win 4128 <mss 536>
   3: 09:41:38.006805       10.10.0.1.22961 > 10.30.0.1.80: . ack 509043920 win 65392
   4: 09:41:38.006957       10.10.0.1.22961 > 10.30.0.1.80: P 2363396242:2363396566(324) ack 509043920 win 65392
   5: 09:41:38.057339       10.30.0.1.80 > 10.10.0.1.22961: P 509043920:509044176(256) ack 2363396566 win 65535
   6: 09:41:38.057400       10.30.0.1.80 > 10.10.0.1.22961: P 509044176:509044226(50) ack 2363396566 win 65535


6. 管理アクセス可能な端末から、ASAの管理IPアドレスにWEBアクセスし、キャプチャファイルをダウンロード

[書式]
 https://<ip address>/capture/<capname>/pcap  

[URL例]
 https://10.10.0.254/capture/WEB/pcap  


7. クレデンシャルを求められるため入力


8. pcapファイルがダウンロード可能となる為、任意保存先を選択


9. ファイル名を「pcap」から、pcap拡張子を付けた任意ファイル名に変更 (例: WEB.pcap)


10. pcapファイルを確認。 WEB通信のパケット交換状況を 詳細に確認できる


11. (採取し直したい場合) キャプチャのバッファのクリア

ASA5545(config)# clear capture WEB
ASA5545(config)# show capture
capture WEB type raw-data interface inside [Capturing - 0 bytes]   <---- バッファクリア[0 bytes]とキャプチャ再開[Capturing]を確認
  match tcp host 10.10.0.1 host 10.30.0.1 eq www


12. 調査完了後、有効化したキャプチャの削除

ASA5545(config)# no capture WEB   <---- 有効化キャプチャの削除
ASA5545(config)# show capture     <---- 有効なキャプチャが表示されない事を確認
ASA5545(config)# 

 

   

Case2. 指定Interface宛のパケット到達状況のリアルタイム表示

real-timeオプションを利用し、パケット到達状態を コンソールなどにリアルタイムに表示させることができます。 検証時のスピーディな切り分けに とても便利です。

しかし、リアルタイムに出力させる都合上、負荷は より高くなります。 その為、通信量の多い商用環境などでの利用は避けるべきです。  リアルタイムキャプチャは 検証用途での利用をお勧めいたします。

また、real-timeオプションをSSHで利用時は、CSCuv20449の影響に十分に注意してください。  詳しくは 本ドキュメントの 既知の問題 を参照してください。

    
本ケースでは、insideインターフェイス宛のPINGパケットが正しく到達しているかの、リアルタイムキャプチャを用いた確認方法を紹介します。

    
1. 「show interface ip brief」コマンドや 「show run | in interface|ip addr|name」コマンドで IP設定状況を確認

ASA5500# show interface ip brie
Interface IP-Address OK? Method Status Protocol
GigabitEthernet0/0 xx.xx.xx.xx YES CONFIG up up
GigabitEthernet0/1 1.0.0.100 YES CONFIG up up <--- THIS

ASA5500# show run | in interface|ip addr|name
hostname ASA5500
domain-name cisco.com
names
interface GigabitEthernet0/0
nameif outside
ip address xx.xx.xx.xx 255.255.255.0
interface GigabitEthernet0/1
nameif inside
ip address 1.0.0.100 255.0.0.0 standby 1.0.0.101 <--- THIS

    
2. matchオプションを用いて、指定interfaceと指定IP宛のキャプチャを有効化。 合わせ、PING試験を実施し、指定キャプチャ名に通信がマッチするか確認
  ※リアルタイムキャプチャは出力量が膨大になりやすいため、対象通信を正しく定義し、十分出力を絞ってください

ASA5500# capture ICMP interface inside match icmp any host 1.0.0.100

ASA5500# show capture
capture ICMP type raw-data interface inside [Capturing - 1300 bytes]
match icmp any host 1.0.0.100

  
3. キャプチャ名を指定し、real-timeオプションを付与することで、リアルタイム表示が開始。 PING試験を実施し、想定の送信元IPからICMP Echo Requestが到達し、ASAが Echo Replyを返している事を確認

ASA5500# capture ICMP real-time

Warning: using this option with a slow console connection may
result in an excessive amount of non-displayed packets
due to performance limitations.

Use ctrl-c to terminate real-time capture

1: 09:11:11.459815 1.0.0.2 > 1.0.0.100: icmp: echo request
2: 09:11:11.460028 1.0.0.100 > 1.0.0.2: icmp: echo reply
3: 09:11:11.460471 1.0.0.2 > 1.0.0.100: icmp: echo request
4: 09:11:11.460623 1.0.0.100 > 1.0.0.2: icmp: echo reply
5: 09:11:11.460959 1.0.0.2 > 1.0.0.100: icmp: echo request
6: 09:11:11.461127 1.0.0.100 > 1.0.0.2: icmp: echo reply
7: 09:11:11.461432 1.0.0.2 > 1.0.0.100: icmp: echo request
8: 09:11:11.461585 1.0.0.100 > 1.0.0.2: icmp: echo reply
9: 09:11:11.461935 1.0.0.2 > 1.0.0.100: icmp: echo request
10: 09:11:11.462103 1.0.0.100 > 1.0.0.2: icmp: echo reply

   
4. リアルタイムキャプチャを終了したい場合、Ctrl+C を押下することで、プロンプトに戻る

10 packets shown.
0 packets not shown due to performance limitations.
ASA5500#

    
5. 調査完了後、有効化したキャプチャの削除

ASA5500# show capture
capture ICMP type raw-data interface inside [Capturing - 3640 bytes]
match icmp any host 1.0.0.100
ASA5500#
ASA5500# no capture ICMP
ASA5500#
ASA5500# show capture
ASA5500#

   

      

Case3. セキュリティドロップしたパケットのキャプチャと詳細確認

ASAはパケットやフローの セキュリティチェックを常に行っており、アクセラレーション セキュリティパスによってドロップしたパケット数を show asp dropコマンドで確認できます。

本ケースでは、以下構成のTFTP(=UDP69)通信を、意図的にASAのアクセスリストにてドロップした時の、ドロップパケットのキャプチャと、その詳細確認。及び、キャプチャファイル(pcap形式)のTFTP経由のアップロード方法を紹介します。

1. 「show asp drop」コマンドにて ドロップ状況を確認

ASA5545(config)# show asp drop
Frame drop:
  Flow is denied by configured rule (acl-drop)                           1168263
  Slowpath security checks failed (sp-security-failed)                       647
  FP L2 rule drop (l2_acl)                                                    49

Last clearing: 10:07:11 UTC Feb 26 2015 by enable_15

Flow drop:
  Flow is denied by access rule (acl-drop)                                   474
  SSL handshake failed (ssl-handshake-failed)                                  2


2. "Flow is denied by configured rule (acl-drop)"の理由によりドロップされたパケットの、キャプチャを有効化。及び、キャプチャサイズを 最大の32Mバイト(=33,554,432bytes)に変更

ASA5545(config)# capture ACL-DROP type asp-drop acl-drop buffer 33554432


3. キャプチャ有効状況の確認
有効化したキャプチャが[Capturing]で採取中である事を確認

ASA5545(config)# show capture
capture ACL-DROP type asp-drop acl-drop buffer 33554432 [Capturing - 1141 bytes]


4. キャプチャ有効状況の再確認 (※多数のACLドロップ発生後)
指定バッファサイズを上回ると、キャプチャは[Buffer Full]で書き込み不能となる

ASA5545(config)# show capture
capture ACL-DROP type asp-drop acl-drop buffer 33554432 [Buffer Full - 33553697 bytes]


5. キャプチャパケットの詳細確認 (detailオプションを付与)。 ACLで破棄されたパケット(UDP69/TFTP)を 確認できる

なお、Drop-reason:が出力されるのは、旧バージョンの場合、上位50行目までとなる。 CSCuu13345の拡張バージョン(9.1.7以降)の場合、それ以降のドロップ理由出力が可能

ASA5545(config)# show capture ACL-DROP detail

31011 packets captured

   1: 10:27:41.329343 0050.5691.3487 0006.f6e5.fc6a 0x0800 Length: 1066
      10.10.0.1.49448 > 10.30.0.1.69:  [udp sum ok] udp 1024 (DF) (ttl 128, id 25026) Drop-reason: (acl-drop) Flow is denied by configured rule
   2: 10:27:41.329359 0050.5691.3487 0006.f6e5.fc6a 0x0800 Length: 1066
      10.10.0.1.49448 > 10.30.0.1.69:  [udp sum ok] udp 1024 (DF) (ttl 128, id 25027) Drop-reason: (acl-drop) Flow is denied by configured rule
   3: 10:27:41.329359 0050.5691.3487 0006.f6e5.fc6a 0x0800 Length: 1066
      10.10.0.1.49448 > 10.30.0.1.69:  [udp sum ok] udp 1024 (DF) (ttl 128, id 25028) Drop-reason: (acl-drop) Flow is denied by configured rule
   4: 10:27:41.329374 0050.5691.3487 0006.f6e5.fc6a 0x0800 Length: 1066
      10.10.0.1.49448 > 10.30.0.1.69:  [udp sum ok] udp 1024 (DF) (ttl 128, id 25029) Drop-reason: (acl-drop) Flow is denied by configured rule


6. キャプチャファイルを 任意TFTPサーバへアップロード
[書式]
copy /pcap capture:<capname> tftp://<ip address>

[実行例]

ASA5545(config)# copy /pcap capture:ACL-DROP tftp://10.10.0.1
Source capture name [ACL-DROP]?
Address or name of remote host [10.10.0.1]?
Destination filename [ACL-DROP]? ACL-DROP.pcap     <---- .pcap拡張子を付与
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!....


7. TFTPサーバ側で pcapファイルの受け取りを確認


8. pcapファイルを確認。  ACLで破棄されたパケット(UDP69/TFTP)を 詳細に確認できる


9. 調査完了後、有効化したキャプチャの削除

ASA5545(config)# no capture ACL-DROP  <---- 有効化キャプチャの削除
ASA5545(config)# show capture         <---- 有効なキャプチャが表示されない事を確認
ASA5545(config)# 


 

Case4. ASAにてパケットドロップ有無の調査  

パケットが対向ホストに届かない or その応答を確認できない場合に、ASAを含む通信経路でのドロップポイントの調査において、ASAのパケットキャプチャ機能は大変便利なトラブルシューティングツールとなります。

例えば、ASAのinside側ホストから outside側ホストへの通信の切り分けにおいて、ASAのinside側とotside側で、指定IPやポートのパケットキャプチャを "同時"に有効化し、そのキャプチャ結果を比較する事で、以下が判明します。

 1. inside側にパケット到達無し
       - ASAにパケットが到達していない
       - inside側の何等か機器などがパケットを止めてる疑い

 2. inside側にパケット到達を確認できるが、outside側で確認できない
       - ASAのパケット処理でドロップしている疑い

 3. inside側からoutside側にパケット通過を確認できるが、その応答をoutside側で確認できない
       - ASAが対向ホストからの応答パケットを受信できていない
       - outside側の何等か機器などがパケットを止めてる疑い

 4. outside側にパケット到達を確認できるが、inside側で確認できない
       - ASAのパケット処理でドロップしている疑い
 

本ケースでは、以下構成の 指定ホスト(192.168.30.1)から www.cisco.com宛の HTTP(TCP=80)通信が、ASAでのパケットドロップ無く通過できているかの確認方法について紹介します。以下構成では、ASAはパケット通過時に送信元IP・ポートのPATを実施します。


1. (宛先がFQDNの場合) pingコマンドや nslookupコマンドで、www.cisco.com のIPアドレスを簡易確認

root@ubuntu:/# ping www.cisco.com
PING origin-www.cisco.com (173.37.145.84) 56(84) bytes of data.
64 bytes from www2.cisco.com (173.37.145.84): icmp_seq=1 ttl=236 time=150 ms
64 bytes from www2.cisco.com (173.37.145.84): icmp_seq=2 ttl=236 time=150 ms
64 bytes from www2.cisco.com (173.37.145.84): icmp_seq=3 ttl=236 time=150 ms
64 bytes from www2.cisco.com (173.37.145.84): icmp_seq=4 ttl=236 time=150 ms


2. (ASAがNATしている場合) パケットトレーサコマンドで、指定通信の想定のアドレス変換を確認。 以下出力結果の場合、ASAを通過時に、送信元IPが 192.168.30.1 --> 1.100.100.1に変換される事を確認できる

TAC-ASA(config)# packet-t in inside tcp 192.168.30.1 12345 137.37.145.84 80
    --- 略 ---
Phase: 5
Type: NAT
Subtype:
Result: ALLOW
Config:
object network inside
 nat (inside,outside) dynamic 1.100.100.1
Additional Information:
Dynamic translate 192.168.30.1/12345 to 1.100.100.1/12345    <--- THIS
    --- 略 ---
Result:
input-interface: inside
input-status: up
input-line-status: up
output-interface: outside
output-status: up
output-line-status: up
Action: allow


3. 構成と 収集した情報を元に、inside側とoutside側で、以下のキャプチャコマンドを "同時"に有効化する

[inside側 有効化キャプチャ]

capture IN interface inside match tcp host 192.168.30.1 host 173.37.145.84 eq 80

[outside側 有効化キャプチャ]

capture OUT interface outside match tcp host 1.100.100.1 host 173.37.145.84 eq 80

[コマンド実行と確認例]

ASA# cap IN int inside match tcp h 192.168.30.1 h 173.37.145.84 eq 80
ASA# cap OUT int outside match tcp h 1.100.100.1 h 173.37.145.84 eq 80
ASA#
ASA# show capture
capture IN type raw-data interface inside [Capturing - 0 bytes]
  match tcp host 192.168.30.1 host 173.37.145.84 eq www
capture OUT type raw-data interface outside [Capturing - 0 bytes]
  match tcp host 1.100.100.1 host 173.37.145.84 eq www


4. 指定ホスト(192.168.30.1)から Cisco.com宛のHTTP(TCP=80)通信を実施、及びキャプチャ状況の確認。 本例の場合、各キャプチャコマンドのキャプチャが成功し、[Buffer Full]で書き込み不能である事を確認できる

ASA# show capture
capture IN type raw-data interface inside [Buffer Full - 523562 bytes]
  match tcp host 192.168.30.1 host 173.37.145.84 eq www
capture OUT type raw-data interface outside [Buffer Full - 523562 bytes]
  match tcp host 1.100.100.1 host 173.37.145.84 eq www


5. "show capture <capname>"コマンドでキャプチャしたパケット一覧を表示し その出力結果をテキストファイルにぺ―スト。 本例の結果をペーストしたテキストファイルは、本ドキュメントの添付ファイル "cap-in.txt"と "cap-out.txt"を参照

[コマンド実行例]

ASA(config)# show capture IN

606 packets captured

   1: 13:56:54.318464       192.168.30.1.39907 > 173.37.145.84.80: S 2616107363:2616107363(0) win 29200 <mss 1460,sackOK,timestamp 968219532 0,nop,wscale 7>
   2: 13:56:54.318602       192.168.30.1.39908 > 173.37.145.84.80: S 3572266806:3572266806(0) win 29200 <mss 1460,sackOK,timestamp 968219532 0,nop,wscale 7>
   3: 13:56:54.318693       192.168.30.1.39909 > 173.37.145.84.80: S 4155636966:4155636966(0) win 29200 <mss 1460,sackOK,timestamp 968219532 0,nop,wscale 7>
      --- 略 ---

ASA(config)# show capture OUT

606 packets captured

   1: 13:56:54.318602       1.100.100.1.39907 > 173.37.145.84.80: S 2725499627:2725499627(0) win 29200 <mss 1380,sackOK,timestamp 968219532 0,nop,wscale 7>
   2: 13:56:54.318663       1.100.100.1.39908 > 173.37.145.84.80: S 3712331388:3712331388(0) win 29200 <mss 1380,sackOK,timestamp 968219532 0,nop,wscale 7>
   3: 13:56:54.318739       1.100.100.1.39909 > 173.37.145.84.80: S 1773263642:1773263642(0) win 29200 <mss 1380,sackOK,timestamp 968219532 0,nop,wscale 7>
      --- 略 ---


6. 任意の比較ツール(以下はWinMergeを利用)で、inside側キャプチャと、outside側キャプチャのテキストファイルを比較し、ASAを通過前後でのパケットの欠けが無いかを確認。 比較ツール実行時の より大きな画像は、本ドキュメントの添付ファイル "Packetcaptures-DF-02.JPG"を参照

本例の場合、キャプチャで比較可能な範囲からは、ASA通過時のパケット欠けは無いと判断できる

 

tipTips:
シーケンス番号とAck番号が inside側と outside側で違うのは、ASAでセッションハイジャックの対策の為にデフォルト有効の、TCPシーケンスランダマイゼーション機能の処理の影響です。

SYNパケットの通過後の TCP MSS値の変化は、ASAでフラグメントによるパケットドロップを抑える為にデフォルト有効の、TCP MSSの自動調整の処理の影響です。

これらのASA通過時の処理を踏まえた上で、ASAのinside側と outside側のパケット比較時に着目すべき箇所は、「キャプチャパケット数・キャプチャ時間・IPアドレス・ポート・パケット長・(TCPの場合) フラグ」など となります。 inside側と outside側のキャプチャをpcapファイル形式で取得し比較する事で、より細かな比較と分析が可能です。

TCPシーケンスランダマイゼーションについて詳しくは以下を参照してください。

ASA9.1: TCP シーケンスのランダム化
http://www.cisco.com/cisco/web/support/JP/docs/SEC/Firewall/ASA5500NextGenerationFire/CG/003/conns_connlimits.html?bid=0900e4b183273703#pgfId-1080757

TCP MSSの自動調整機能について詳しくは以下を参照してください。

ASA Throughput and Connection Speed Troubleshooting and Analyzing Packet Captures
http://www.cisco.com/c/en/us/support/docs/security/asa-5500-x-series-next-generation-firewalls/113393-asa-troubleshoot-throughput-00.html


7. 調査完了後、有効化したキャプチャを、no capture <capname>コマンドで削除

ASA(config)# show capture
capture IN type raw-data interface inside [Buffer Full - 523562 bytes]
  match tcp host 192.168.30.1 host 173.37.145.84 eq www
capture OUT type raw-data interface outside [Buffer Full - 523562 bytes]
  match tcp host 1.100.100.1 host 173.37.145.84 eq www
ASA(config)#
ASA(config)# no cap IN
ASA(config)# no cap OUT
ASA(config)# show capture
ASA(config)#


なお、show capture <capname>コマンドは キャプチャパケットの簡易出力のため、詳細解析には向きません。

詳細解析には Wiresharkで詳細分析できるpcapファイルでの取得をお勧めしています。 その為、テクニカルサポート部門に 詳細解析を依頼をする場合は、対象通信の inside側とoutside側のキャプチャ結果、(及び asp dropカウンタ増加時は type asp-dropの ASPのキャプチャ結果も合わせ、)  pcapファイル形式で取得し、提供いただくことをお薦めしております。

及び、問題発生前、発生中、発生後の、各show asp dropshow log show capture <各capname> detailshow techも 取得・提供いただくことで、問題調査の精度向上とスピードアップに役立つはずです。

    
     

既知の問題

古いバージョンのASAでキャプチャを有効時、以下の既知不具合の影響に気を付けてください。

  • ASPドロップ キャプチャ(*type asp-dropオプション)のバッファサイズ変更時のクラッシュIssue

 影響バージョン: 8.4(7)、9.0(4)、9.1(3)未満
CSCuh45559 ASA: Page fault traceback when changing ASP drop capture buffer size

    

  • SSHでリアルタイム キャプチャ(*real-timeオプション)利用時のクラッシュIssue

- realtime キャプチャを利用時や、PING/Tracerouteによる出力インターラプトと、約60分毎のSSHコネクションのRekeyタイミングが重なった時にトリガー。 回避策は、SSH接続後、長時間(e.g. 50分以上) これらコマンドを実行し続けるのを避けることです
 影響バージョン: 9.1(7)5、9.2(4)6、9.3(3)8、9.4(3)、9.5(2)6未満
CSCuv20449 Traceback in Thread Name: ssh when using capture or continuous ping

   

 

よくある質問

FTDを利用時も本ドキュメント手順でキャプチャは可能ですか

はい、以下ドキュメントを参考に system support diagnostic-cli コマンドで、LINA(ASA)エンジンにアクセスすれば、ASAと同様に CLIからのキャプチャも可能です。

https://community.cisco.com/t5/-/-/ta-p/3303659

 

また、FMCで管理時は、FMC GUIからも 簡単にパケットキャプチャが可能なため、GUIからのキャプチャ方法について詳しくは、以下ドキュメントを参照してください。

https://community.cisco.com/t5/-/-/ta-p/4046287#toc-hId-1901348885

     

 

参考情報

ASA Packet Captures with CLI and ASDM Configuration Example
http://www.cisco.com/c/en/us/support/docs/security/asa-5500-x-series-next-generation-firewalls/118097-configure-asa-00.html

ASA: Using Packet Capture to troubleshoot ASA Firewall : Configuration and Scenario's
https://supportforums.cisco.com/document/69281/asa-using-packet-capture-troubleshoot-asa-firewall-configuration-and-scenarios

ASA でパケットキャプチャを取得する方法
https://supportforums.cisco.com/ja/document/46996

ASA9.1: Troubleshooting - Capturing Packets
http://www.cisco.com/c/en/us/td/docs/security/asa/asa91/configuration/general/asa_91_general_config/admin_trouble.html#61306

ASA 8.3+ パケット処理順序と 処理負荷概要と、パケットトレーサ
https://supportforums.cisco.com/ja/document/12745356

ファイアウォール トラブルシューティング
https://supportforums.cisco.com/ja/document/12725841

Firepower System and FTDトラブルシューティング
https://community.cisco.com/t5/-/-/ta-p/3161733

 

Getting Started

検索バーにキーワード、フレーズ、または質問を入力し、お探しのものを見つけましょう

シスコ コミュニティをいち早く使いこなしていただけるよう役立つリンクをまとめました。みなさんのジャーニーがより良いものとなるようお手伝いします