要启用数据包捕获功能以进行数据包嗅探和网络故障隔离,请使用 capture 命令。要禁用数据包捕获功能,请使用此命令的 no 形式。
捕获网络流量:
capture capture_name [ type { asp-drop [ all | drop-code ] | raw-data | isakmp [ ikev1 | ikev2 ] | inline-tag [ tag ] }] { interface { interface_name | data-plane | management-plane | cplane } } [ buffer buf_size ] [ file-size file_size ] [ ethernet-type type ] [ headers-only ] [ packet-length bytes ] [ circular-buffer ] [ trace [ trace-count number ] [ match protocol { host source_ip | source_ip mask | any4 | any6 } [ operator src_port ] { host dest_ip | dest_ip mask | any4 | any6 } [ operator dest_port ]]
捕获群集控制链路流量:
capture capture_name type lacp interface interface_id [ buffer buf_size ] [ packet-length bytes ] [ circular-buffer ] [ real-time [ dump ] [ detail ]]
capture capture_name interface cluster [ buffer buf_size ] [ ethernet-type type ] [ packet-length bytes ] [ circular-buffer ] [ trace [ trace-count number ]] [ real-time [ dump ] [ detail ]] [ trace ] [ match protocol { host source_ip | source_ip mask | any4 | any6 } [ operator src_port ] { host dest_ip | dest_ip mask | any4 | any6 } [ operator dest_port ]]
捕获整个群集范围内的数据包:
cluster exec capture capture_name [ persist ] [ include-decrypted ]
从捕获中删除数据包捕获或参数。如果要完全删除捕获,请忽略参数。
no capture capture_name [ arguments ]
停止数据包捕获而不将其删除:
capture capture_name stop
Syntax Description
any4
|
指定任意 IPv4 地址而不是单个 IP 地址和掩码。
|
any6
|
指定任意 IPv6 地址而不是单个 IP 地址和掩码。
|
all
|
捕获加速安全路径丢弃的数据包。
|
asp-drop drop-code
|
(可选)捕获通过加速安全路径丢弃的数据包。drop-code 指定通过加速安全路径丢弃的流量的类型。有关丢弃代码列表,请参阅 CLI 帮助。您可以使用 packet-length 、 circular-buffer 和 buffer 关键字输入此关键字,但不能使用 interface 或 ethernet-type 关键字。在集群中,还将捕获从一台设备转发到另一台设备时丢失的转发数据包。
|
buffer buf_size
|
(可选)定义用于存储数据包的缓存大小(以字节为单位)。一旦字节缓冲区已满,数据包捕获将停止。用于集群中时,此值是指每台设备的大小,而不是所有设备的总和。支持的最大缓冲区大小为 32 MB。
缓冲区大小和文件大小选项相互排斥。
|
capture_name
|
指定数据包捕获的名称。在多个 capture 语句中使用同一个 名称可捕获多种类型的流量。当使用 show capture 命令查看捕获配置时,所有选项均合并到一行。
|
data-plane
|
指定在数据平面接口上捕获的数据包。
|
management-plane
|
指定管理接口上捕获的数据包。
|
circular-buffer
|
(可选)当缓冲区已满时,从开头开始覆盖缓冲区。
|
ethernet-type type
|
(可选)选择要捕获的以太网类型。支持的以太网类型包括 8021Q、ARP、IP、IP6、LACP、PPPOED、PPPOES、RARP 和 VLAN。802.1Q 或 VLAN 类型会出现异常。802.1Q 标记会被自动跳过,内部以太网类型用于匹配。
|
file-size file-size
|
(可选) file-size 指定将数据包捕获到磁盘上的文件。
文件大小 指定捕获文件的大小,范围为 32 MB 到 10 GB。
捕获文件将在闪存 (disk0:/) 中创建,名称为 capture_name.pcap 。
配置 文件大小 时,硬盘内存(文件)用于将捕获的数据写入捕获缓冲区。捕获的数据根据文件名存储在磁盘中。
缓冲区大小和文件大小选项相互排斥。
|
headers-only
|
(可选)选择要在没有数据的情况下捕获的数据包的第 2 层和第 3/4 层报头。
|
host source_ip , dest_ip
|
指定数据包发送到或来自的主机的单个 IP 地址。
|
include-decrypted
|
(可选)在包含正常流量和已解密流量的已解密 IPsec 数据包进入防火墙设备后对其进行捕获。它还捕获 SSL 解密流量的数据包。但是,此选项不适用于 VTI 隧道,因为只能在 VTI 接口上看到解密格式的数据包;而不是在外部,例如加密映射 VPN。
|
inline-tag tag
|
为特定 SGT 值指定标记或将其保持未指定状态以捕获标记了任何 SGT 值的数据包。
|
interface interface_name
|
设置将用于数据包捕获的接口的名称。您必须为除了 type asp-drop 之外的任何要捕获的数据包配置接口。可以使用多个具有相同名称的 capture 命令配置多个接口。要捕获管理平面上的数据包,可以使用 interface 关键字和 asa_mgmt_plane 作为接口名称。可以指定 cluster 为接口名称,以捕获集群控制链路接口上的流量。 要在数据接口上启用访问 管理中心 时捕获内部背板接口上的数据包,请指定 nlp_int_tap 。如果配置了 lacp 类型的捕获,则接口名称为物理名称。
|
ikev1 ,ikev2
|
仅捕获 IKEv1 或 IKEv2 协议信息。
|
isakmp
|
(可选)捕获 VPN 连接的 ISAKMP 流量。ISAKMP 子系统无权访问上层协议。捕获是伪捕获,并将物理层、IP 层和 UDP 层结合在一起来满足 PCAP 解析器。对等设备地址通过 SA 交换获得,存储在 IP 层中。
|
lacp
|
(可选)捕获 LACP 流量。如果已配置,则接口名称为物理接口名称。
|
mask
|
IP 地址的子网掩码,例如,C 类掩码为 255.255.255.0。
|
match protocol
|
指定与五元组匹配的数据包以允许过滤要捕获的数据包。在一行中最多可以使用三次此关键字。
|
operator src_port , dest_port
|
(可选)匹配源或目标使用的端口号。允许的运算符如下:
-
lt - 小于
-
gt -大于
-
eq -等于
-
neq -不等于
-
range -范围
|
packet-length bytes
|
(可选)设置每个要存储在捕获缓冲区中的数据包的最大字节数。
|
persit
|
(可选)捕获集群设备上的持久性数据包。
|
raw-data
|
(可选)捕获一个或多个接口上的入站和出站数据包。
|
stop
|
停止数据包捕获而不将其删除。使用命令的 no 形式和此选项重新启动捕获。
|
trace trace_count
|
(可选)捕获数据包跟踪信息和要捕获的数据包数量。将此选项与访问列表一起使用来向数据路径插入跟踪数据包,以确定是否已按预期处理数据包。
|
type
|
(可选)指定所捕获数据的类型。
|
Command History
版本
|
修改
|
6.1
|
引入了此命令。
|
6.2.1
|
此命令已更新,以在设备崩溃时将所有活动捕获的内容存储到闪存或磁盘上的文件中。
|
6.2.3
|
选项 asa_mgmt_plane 和 asa_dataplane 分别重命名为 management-plane 和 data-plane 。
|
6.2.3.x
|
引入 any4 和 any6 选项是为了分别捕获 IPv4 和 IPv6 网络流量。
|
6.3
|
选项 [ file-size file-size] 允许您以 MB (32-10000) 为单位捕获文件大小。
|
6.7
|
添加 interface nlp_int_tap 管理中心 接口名称是为了在数据接口上启用访问时捕获内部背板接口上的数据包。
|
Usage Guidelines
当对连接问题进行故障排除或监视可疑活动时,捕获数据包可能非常有用。可以创建多个捕获。 capture 命令不会保存到运行配置,也不会在高可用性期间复制到备用设备。
threat defense 设备能跟踪所有流经它的 IP 流量,并能捕获所有以它为目标的 IP 流量,包括所有管理流量(如 SSH 和 Telnet 流量)。
threat defense 架构包括三组不同的处理器进行数据包处理;这种架构对捕获功能具有某些限制。通常 threat defense 设备中的大部分数据包转发功能由两个前端网络处理器处理,数据包仅在需要应用检查时才发送到控制平面通用处理器。仅当加速路径处理器中缺少会话时,数据包才发送到会话管理路径网络处理器。
由于 threat defense 设备转发或丢弃的所有数据包都会到达两个前端网络处理器,因此在这两个网络处理器中实施数据包捕获功能。所以如果为流量接口配置合适的捕获,到达 threat defense 设备的所有数据包都会被这两个前端处理器捕获。在入口端,在数据包到达接口时捕获数据包,而在出口端,先捕获数据包,再在线发出。
要保存捕获的数据,数据包捕获会自动将捕获的数据即时写入物理存储,而无需使用 copy 命令。捕获大小最高支持 10 GB。大于 100 MB 的捕获将自动压缩。
保存捕获
当 threat defense 设备崩溃时,系统会保存设备上任何活动捕获的内容。在故障排除流程中激活捕获时,必须注意以下几点:
用于保存活动捕获内容的文件的名称为:
[<context_name> .]<capture_name> .pcap
context_name 表示在多情景模式下激活捕获的用户情景的名称。对于单情景模式,context_name 不适用。
capture_name 表示已激活的捕获的名称。
捕获保存发生在控制台或故障转储之前。对于 33 MB 的捕获缓冲区,这会增加大约 5 秒的崩溃停机时间。嵌套崩溃的风险很小,因为将捕获的内容复制到文件是一个简单的流程。
查看捕获
要查看数据包捕获,请使用 show capture name 命令。要将捕获保存到文件,请使用 copy capture 命令。使用 https://FTP-ip-address/admin/capture/capture_name[/pcap] 命令在网络浏览器中查看数据包捕获信息。如果指定 pcap 可选关键字,则一个 libpcap 格式文件会下载到网络浏览器,并可以使用网络浏览器保存。(可以使用 TCPDUMP 或 Ethereal 查看 libcap 文件。)
如果将缓冲区内容以 ASCII 格式复制到 TFTP 服务器,将只能看到数据包的信头,而看不到详细信息和十六进制转储。要查看详细信息和十六进制转储,您需要传送 PCAP 格式的缓冲区并使用 TCPDUMP 或 Ethereal 读取。
删除捕获
输入不带任何关键字的 no capture 将删除捕获。要保留捕获,请指定 interface 关键字;捕获从指定接口分离,并保留捕获。
群集技术
您可以在 capture 命令前面加上 cluster exec ,在一个单元上发出 capture 命令,同时在所有其他单元上运行该命令。当执行集群范围的捕获后,要同时将相同捕获文件从集群中的所有设备复制到 TFTP 服务器,请在主设备上输入 cluster exec copy 命令:
cluster exec capture capture_name arguments
cluster exec copy /pcap capture: cap_name tftp://location/path/filename.pcap
多个 PCAP 文件(一个文件来自一个设备)将复制到 TFTP 服务器。目标捕获文件名会自动附加设备名称,例如 filename_A.pcap、filename_B.pcap 等。在此示例中,A 和 B 是集群设备名称。
注 |
如果在文件名末尾添加设备名称,将生成不同的目标名称。
|
限制
以下是一些捕获功能限制。大多数限制由 threat defense 架构的分布式性质以及 threat defense 设备中使用的硬件加速器导致。
-
对于内联 SGT 标记数据包,捕获的数据包包含您的 PCAP 查看器可能无法识别的其他 CMD 信头。
-
如果数据包中的 802.1Q 标记与配置的子接口不同,则不会捕获此类数据包。数据包将被忽略,因为它们未与任何命名接口关联。
-
如果没有入口接口并因而没有全局接口,则在背板上发送的数据包将被视为系统情景 。这些数据包将绕过访问列表检查并始终被捕获。
-
show capture 命令显示捕获特定 asp-drop 时的正确原因。但是,在捕获所有 asp-drop 时,show capture 命令不会显示正确的原因。
具有 file-size 选项的数据包捕获功能具有以下限制:
Examples
要捕获数据包,请输入以下命令:
> capture captest interface inside
> capture captest interface outside
在网络浏览器中,可以在以下名为“captest”的位置查看发出的 capture 命令的内容:
https://171.69.38.95/admin/capture/captest
要将 libpcap 文件(网络浏览器使用的文件)下载到本地机器,请输入以下命令:
https://171.69.38.95/capture/http/pcap
以下示例显示如何在 threat defense 设备崩溃时在单模式下捕获数据包:
> capture 789 interface inside
捕获 '789' 的内容另存为 789.pcap 文件。
以下示例显示如何在 threat defense 崩溃时在多模式下捕获数据包:
>capture 624 interface inside
管理情景中的捕获“624”的内容另存为 admin.624.pcap 文件。
以下示例展示如何捕获 ARP 数据包:
> capture arp ethernet-type arp interface outside
群集技术的捕获
要在集群中的所有设备上启用捕获,可以在每个命令的前面添加 cluster exec 关键字。
以下示例展示如何为群集技术环境创建 LACP 捕获:
> capture lacp type lacp interface gigabitEthernet0/0
以下示例 显示如何为集群链路中的控制路径数据包 创建捕获:
> capture cp interface cluster match udp any eq 49495 any
> capture cp interface cluster match udp any any eq 49495
以下示例显示如何通过集群捕获数据路径流量:
> capture abc interface inside match tcp host 1.1.1.1 host 2.2.2.2 eq www
> capture abc interface inside match dup host 1.1.1.1 any