2015-02-26 10:10 PM - 最終編集日: 2023-12-20 02:11 PM 、編集者: JapanTAC_CSC
本ドキュメントでは、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 |
キャプチャ可能なバッファサイズの指定 |
circular-buffer | バッファがフルになった場合、最初から上書きをし直す デフォルト無効 |
headers-only | L2、L3、L4 ヘッダのみをキャプチャする データを含めない |
interface | キャプチャを有効化するインターフェイスの指定 |
match | プロトコル・IP・ポートを指定した双方向のキャプチャ 指定IPやポート間のキャプチャに最適 |
type | 特定タイプのパケットキャプチャの有効 (例:asp-dropやisakmp、webvpnなど) |
access-list | アクセスリストにマッチするパケットのキャプチャ (当オプションは定義/設定が難しいため 利用せず、 代わりにmatchオプションの利用がお勧め) |
real-time |
リアルタイムに対象キャプチャパケットを出力 |
[設定例]
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
管理アクセス可能な端末から、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
任意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>
本ケースでは、以下構成の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)#
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#
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)#
パケットが対向ホストに届かない 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通過時のパケット欠けは無いと判断できる
Tips:
シーケンス番号と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 dropと show log 、show capture <各capname> detail、show techも 取得・提供いただくことで、問題調査の精度向上とスピードアップに役立つはずです。
古いバージョンのASAでキャプチャを有効時、以下の既知不具合の影響に気を付けてください。
影響バージョン: 8.4(7)、9.0(4)、9.1(3)未満
CSCuh45559 ASA: Page fault traceback when changing ASP drop capture buffer size
- 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
はい、以下ドキュメントを参考に 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
検索バーにキーワード、フレーズ、または質問を入力し、お探しのものを見つけましょう
シスコ コミュニティをいち早く使いこなしていただけるよう役立つリンクをまとめました。みなさんのジャーニーがより良いものとなるようお手伝いします
下記より関連するコンテンツにアクセスできます