配置数据路径调试和追踪选项
了解 SRX 系列设备的数据路径调试
数据路径调试或端到端调试支持,在数据包处理路径上的多个处理单元上提供跟踪和调试。执行数据包过滤器时,对生产系统的影响微乎其微。
如果您的目标是收集数据包捕获,我们强烈建议您利用 Junos OS 19.3R1 版中引入的操作模式数据包捕获。请参阅 从操作模式捕获数据包。
在 SRX 系列防火墙上,数据包会经历一系列事件,这些事件涉及从入口到出口处理的不同组件。
借助数据路径调试功能,您可以在处理路径上的不同数据点跟踪和调试(捕获数据包)。数据包处理路径中的可用事件包括:NP 入口、负载平衡线程 (LBT)、jexec、数据包排序线程 (POT) 和 NP 出口。如果设置了特定模块的安全流跟踪标志,您还可以启用流模块追踪。
在每次事件中,您都可以指定四个操作(计数、数据包转储、数据包摘要和追踪)中的任何一个。数据路径调试提供过滤器来定义要捕获的数据包,并且仅跟踪匹配的数据包。数据包过滤器可以根据逻辑接口、协议、源 IP 地址前缀、源端口、目标 IP 地址前缀和目标端口过滤掉数据包。
SRX1400、SRX3400、SRX3600、SRX4600、SRX5400、SRX5600 和 SRX5800 支持数据路径调试。
要启用端到端调试,必须执行以下步骤:
定义捕获文件并指定最大捕获大小。
定义数据包过滤器,以便根据需求仅跟踪特定类型的流量。
定义操作配置文件,指定捕获数据包的处理路径上的位置(例如,LBT 或 NP 入口)。
启用数据路径调试。
捕获流量。
禁用数据路径调试。
查看或分析报告。
端口和接口选项的数据包过滤行为如下所示:
如果仅 port 指定了,数据包过滤器会同时跟踪 IPv4 和 IPv6 流量。
如果仅 interface 指定了,数据包过滤器会跟踪 IPv4、IPV6 和非 IP 流量。
从操作模式捕获数据包
数据路径调试或端到端调试在数据包处理路径上的多个处理单元提供跟踪和调试。数据包捕获是数据路径调试功能之一。您可以从操作模式执行数据包捕获,而不提交配置,对生产系统的影响最小。
您可以使用过滤器捕获数据包,以定义要捕获的数据包。数据包过滤器可以根据逻辑接口、协议、源 IP 地址前缀、源端口、目标 IP 地址前缀和目标端口过滤掉数据包。您可以修改数据包捕获输出的文件名、文件类型、大小和捕获大小。您还可以将过滤器扩展到两个过滤器,然后交换过滤器的值。
SRX4600、SRX5400、SRX5600 和 SRX5800 支持从操作模式捕获数据包。
要从操作模式捕获数据包,必须执行以下步骤:
- 在操作模式下,定义数据包过滤器,以使用
request packet-capture start
CLI 命令根据您的需求跟踪流量类型。有关可用的数据包捕获过滤器选项,请参阅 request packet-capture start 。 - 捕获所需的数据包。
- 您可以使用
request packet-capture stop
CLI 命令停止数据包捕获,也可以在收集请求数量的数据包后自动停止数据包捕获。 - 查看或分析捕获的数据包数据报告。
从操作模式捕获数据包的局限性包括:
配置模式数据包捕获和操作模式数据包捕获不能共存。
操作模式数据包捕获是一次性操作,系统不存储此命令的历史记录。
您应该在低流量速率下使用操作模式数据包捕获。
另请参阅
了解使用追踪选项的安全调试
Junos OS 追踪功能允许应用程序将安全调试信息写入文件。此文件中显示的信息基于您设置的标准。您可以使用这些信息来分析安全应用程序问题。
追踪功能以分布式方式运行,每个线程都会写入自己的追踪缓冲区。然后,在一个点收集这些追踪缓冲区,对其进行排序,并写入跟踪文件。跟踪消息使用进程间通信 (IPC) 协议进行交付。跟踪消息的优先级低于控制协议数据包(如 BGP、OSPF 和 IKE),因此交付并不可靠。
了解使用追踪选项的流调试
对于流追踪选项,您可以使用 、 destination-port、 、 protocolsource-portdestination-prefixinterface和source-prefix的组合来定义数据包过滤器。如果为某个模块设置了安全流跟踪标志,则匹配特定数据包过滤器的数据包将触发流跟踪,并将调试信息写入跟踪文件。
调试数据路径(CLI 过程)
SRX1400、SRX3400、SRX3600、SRX5400、SRX5600 和 SRX5800 支持数据路径调试。
要配置设备进行数据路径调试:
设置流调试跟踪选项(CLI 过程)
以下示例显示可以使用设置 security flow traceoptions
的选项。
要匹配 filter1 数据包过滤器的 imap 目标端口,请使用以下语句:
[edit] user@host# set security flow traceoptions packet-filter filter1 destination-port imap
要为 filter1 数据包过滤器设置 1.2.3.4 目标 IPv4 前缀地址,请使用以下语句:
[edit] user@host# set security flow traceoptions packet-filter filter1 destination-prefix 1.2.3.4
要为 filter1 数据包过滤器设置 fxp0 逻辑接口,请使用以下语句:
[edit] user@host# set security flow traceoptions packet-filter filter1 interface fxp0
要匹配 filter1 数据包过滤器的 TCP IP 协议,请使用以下语句:
[edit] user@host# set security flow traceoptions packet-filter filter1 protocol tcp
要匹配 filter1 数据包过滤器的 HTTP 源端口,请使用以下语句:
[edit] user@host# set security flow traceoptions packet-filter filter1 source-port http
要为 filter1 数据包过滤器设置 5.6.7.8 IPv4 前缀地址,请使用以下语句:
[edit] user@host# set security flow traceoptions packet-filter filter1 source-prefix 5.6.7.8
设置安全跟踪选项(CLI 过程)
使用以下配置语句在 CLI 配置编辑器中配置安全跟踪选项。
要禁用远程跟踪,请输入以下语句:
[edit] user@host# set security traceoptions no-remote-trace
要向本地文件写入跟踪消息,请输入以下语句。系统将跟踪文件 /var/log/ 保存在目录中。
[edit] user@host# set security traceoptions use-local-files
要为跟踪文件指定名称,请输入以下语句。有效值的范围从 1 到 1024 个字符。名称不能包含空格、/或 % 字符。默认文件名是安全性。
[edit] user@host# set security traceoptions file filename
要指定可累积的最大追踪文件数,请输入以下语句。有效值的范围从 2 到 1000。默认值为 3。
[edit] user@host# set security traceoptions file files 3
要指定系统在将信息记录到文件中时使用的匹配标准,请输入以下语句。输入正则表达式。接受通配符 (*) 字符。
[edit] user@host# set security traceoptions file match *thread
要允许任何用户读取跟踪文件,请输入语句
world-readable
。否则,输入no-world-readable
语句。[edit] user@host# set security traceoptions file world-readable user@host# set security traceoptions file no-world-readable
要指定追踪文件可增长到的最大大小,请输入以下语句。一旦文件达到指定大小,它将压缩并重命名 filename为 0.gz,下一个文件命名为 filename1.gz,以如此命名。有效值的范围从 10240 到 1,073,741,824。
[edit] user@host# set security traceoptions file size 10240
要打开追踪选项并执行多个跟踪操作,请设置以下标志。
[edit] user@host# set security traceoptions flag all user@host# set security traceoptions flag compilation user@host# set security traceoptions flag configuration user@host# set security traceoptions flag routing-socket
要指定这些跟踪选项设置适用于或不适用的组,请输入以下语句:
[edit] user@host# set security traceoptions apply-groups value user@host# set security traceoptions apply-groups-except value
显示日志和跟踪文件
输入命令以显示 monitor start
对系统日志和跟踪文件的实时添加信息:
user@host> monitor start filename
设备将记录添加到指定的 filename
文件中时,记录会显示在屏幕上。例如,如果您配置了名为 system-log
的系统日志文件(包括 syslog
[edit system
] 层次结构级别的语句),则可以输入 monitor start system-log
命令以显示添加到系统日志中的记录。
要显示正在监控的文件列表,请输入 monitor list
命令。要停止显示指定文件的记录,请输入 monitor stop filename
命令。
显示安全追踪选项的输出
目的
显示安全追踪选项的输出。
行动
show security traceoptions
使用命令显示追踪文件的输出。例如:
[edit] user@host # show security traceoptions file usp_trace user@host # show security traceoptions flag all user@host # show security traceoptions rate-limit 888
此示例的输出如下所示:
Apr 11 16:06:42 21:13:15.750395:CID-906489336:FPC-01:PIC-01:THREAD_ID-01:PFE:now update 0x3607edf8df8in 0x3607e8d0 Apr 11 16:06:42 21:13:15.874058:CID-1529687608:FPC-01:PIC-01:THREAD_ID-01:CTRL:Enter Function[util_ssam_handler] Apr 11 16:06:42 21:13:15.874485:CID-00:FPC-01:PIC-01:THREAD_ID-01:CTRL:default1: Rate limit changed to 888 Apr 11 16:06:42 21:13:15.874538:CID-00:FPC-01:PIC-01:THREAD_ID-01:CTRL:default1: Destination ID set to 1 Apr 11 16:06:42 21:13:15.874651:CID-00:FPC-01:PIC-01:THREAD_ID-01:CTRL:default2: Rate limit changed to 888 Apr 11 16:06:42 21:13:15.874832:CID-00:FPC-01:PIC-01:THREAD_ID-01:CTRL:default2: Destination ID set to 1 Apr 11 16:06:42 21:13:15.874942:CID-00:FPC-01:PIC-01:THREAD_ID-01:CTRL:default3: Rate limit changed to 888 Apr 11 16:06:42 21:13:15.874997:CID-00:FPC-01:PIC-01:THREAD_ID-01:CTRL:default3: Destination ID set to 1
显示组播跟踪操作
要监控和显示组播跟踪操作,请输入 mtrace monitor
命令:
user@host> mtrace monitor
Mtrace query at Apr 21 16:00:54 by 192.1.30.2, resp to 224.0.1.32, qid 2a83aa packet from 192.1.30.2 to 224.0.0.2 from 192.1.30.2 to 192.1.4.1 via group 224.1.1.1 (mxhop=60) Mtrace query at Apr 21 16:00:57 by 192.1.30.2, resp to 224.0.1.32, qid 25dc17 packet from 192.1.30.2 to 224.0.0.2 from 192.1.30.2 to 192.1.4.1 via group 224.1.1.1 (mxhop=60) Mtrace query at Apr 21 16:01:00 by 192.1.30.2, resp to same, qid 20e046 packet from 192.1.30.2 to 224.0.0.2 from 192.1.30.2 to 192.1.4.1 via group 224.1.1.1 (mxhop=60) Mtrace query at Apr 21 16:01:10 by 192.1.30.2, resp to same, qid 1d25ad packet from 192.1.30.2 to 224.0.0.2 from 192.1.30.2 to 192.1.4.1 via group 224.1.1.1 (mxhop=60)
此示例仅 mtrace
显示查询。但是,当设备捕获响应 mtrace
时,显示屏会类似,但也会显示完整 mtrace
响应(与命令输出中 mtrace from-source
显示的完全一样)。
表 1 汇总了显示的输出字段。
字段 |
说明 |
---|---|
|
|
|
发出查询的主机的 IP 地址。 |
|
|
|
|
|
|
|
|
|
|
|
|
显示设备列表
要显示设备与指定目标主机之间的设备列表,请输入 traceroute
使用以下语法的命令:
user@host> traceroute host <interface interface-name> <as-number-lookup> <bypass-routing> <gateway address> <inet | inet6> <no-resolve> <routing-instance routing-instance-name> <source source-address> <tos number> <ttl number> <wait seconds>
表 2 介绍了 traceroute
命令选项。
选项 |
说明 |
---|---|
|
将 traceroute 数据包发送到您指定的主机名或 IP 地址。 |
|
(可选)在指定的接口上发送 traceroute 数据包。如果未包含此选项,则所有接口上都会发送 traceroute 数据包。 |
|
(可选)显示设备和目标主机之间每个中间跃点的自治系统 (AS) 编号。 |
|
(可选)绕过路由表,仅将 traceroute 数据包发送至直连接口上的主机。如果主机不在直连接口上,将返回错误消息。 使用此选项可以通过没有路由的接口显示到本地系统的路由。 |
|
(可选)使用您指定的网关进行路由。 |
|
(可选)强制将追踪路由数据包传输至 IPv4 目标。 |
|
(可选)强制将追踪路由数据包传输至 IPv6 目标。 |
|
(可选)抑制显示路径上跃点的主机名。 |
|
(可选)使用您为 traceroute 指定的路由实例。 |
|
(可选)使用您在 traceroute 数据包中指定的源地址。 |
|
(可选)设置 traceroute 数据包的 IP 标头中的服务类型 (TOS) 值。指定从到 |
|
(可选)设置 traceroute 数据包的生存时间 (TTL) 值。指定从到的 |
|
(可选)设置等待响应的最大时间。 |
要退出 traceroute
命令,按 Ctrl-C。
以下是命令输出 traceroute
的示例:
user@host> traceroute host2
traceroute to 173.24.232.66 (172.24.230.41), 30 hops max, 40 byte packets 1 173.18.42.253 (173.18.42.253) 0.482 ms 0.346 ms 0.318 ms 2 host4.site1.net (173.18.253.5) 0.401 ms 0.435 ms 0.359 ms 3 host5.site1.net (173.18.253.5) 0.401 ms 0.360 ms 0.357 ms 4 173.24.232.65 (173.24.232.65) 0.420 ms 0.456 ms 0.378 ms 5 173.24.232.66 (173.24.232.66) 0.830 ms 0.779 ms 0.834 ms
显示中的字段与 J-Web traceroute 诊断工具显示的字段相同。
示例:在 SRX 系列设备上配置端到端调试
此示例说明如何在带有 SRX5K-MPC 的 SRX 系列防火墙上配置和启用端到端调试。
要求
此示例使用以下硬件和软件组件:
SRX5600 设备,装有 SRX5K-MPC,并配备 100 千兆以太网 CFP 收发器
适用于 SRX 系列防火墙的 Junos OS 12.1X47-D15 或更高版本
开始之前:
请参阅 了解 SRX 系列设备的数据路径调试。
配置此功能之前,不需要除设备初始化之外的特殊配置。
概述
数据路径调试通过在数据包处理路径上的多个处理单元提供跟踪和调试,增强了故障排除能力。借助数据路径调试功能,您可以在处理路径上的不同数据点跟踪和调试(捕获数据包)。您可以在每个事件中指定操作(计数、数据包转储、数据包摘要和跟踪),还可以设置过滤器来定义要捕获的数据包。
在此示例中,定义流量过滤器,然后应用操作配置文件。操作配置文件指定了处理单元上的各种操作。入口和出口被指定为处理路径上的位置,用于捕获传入和传出流量的数据。
接下来,在操作模式下启用数据路径调试,最后查看数据捕获报告。
SRX1400、SRX3400、SRX3600、SRX5400、SRX5600 和 SRX5800 支持数据路径调试。
配置
程序
CLI 快速配置
要快速配置此示例,请复制以下命令,将其粘贴到文本文件中,删除所有换行符,更改详细信息,以便与网络配置匹配,将命令复制并粘贴到层级的 [edit]
CLI 中,然后从配置模式进入 commit
。
set security datapath-debug traceoptions file e2e.trace size 10m set security datapath-debug capture-file e2e.pcap format pcap set security datapath-debug maximum-capture-size 1500 set security datapath-debug capture-file files 10 set security datapath-debug action-profile profile-1 preserve-trace-order set security datapath-debug action-profile profile-1 record-pic-history set security datapath-debug action-profile profile-1 event np-ingress trace set security datapath-debug action-profile profile-1 event np-ingress count set security datapath-debug action-profile profile-1 event np-ingress packet-summary set security datapath-debug action-profile profile-1 event np-egress trace set security datapath-debug action-profile profile-1 event np-egress count set security datapath-debug action-profile profile-1 event np-egress packet-summary
逐步过程
以下示例要求您在配置层次结构中的各个级别上导航。有关如何操作的说明,请参阅《Junos OS CLI 用户指南》中的在配置模式下使用 CLI 编辑器。
要配置数据路径调试:
编辑数据包处理路径上的多个处理单元的安全数据路径调试选项:
[edit] user@host# edit security datapath-debug
启用捕获文件、文件格式、大小和文件数量。
[edit security datapath-debug] user@host# set traceoptions file e2e.trace size 10m user@host# set capture-file e2e.pcap format pcap; user@host# set maximum-capture-size 1500 user@host# set capture-file files 10
为操作配置文件配置操作配置文件、事件类型和操作。
[edit security datapath-debug] user@host# set action-profile profile-1 preserve-trace-order user@host# set action-profile profile-1 record-pic-history user@host# set action-profile profile-1 event np-ingress trace user@host# set action-profile profile-1 event np-ingress count user@host# set action-profile profile-1 event np-ingress packet-summary user@host# set action-profile profile-1 event np-egress trace user@host# set action-profile profile-1 event np-egress count user@host# set action-profile profile-1 event np-egress packet-summary
结果
在配置模式下,输入命令以确认 show security datapath-debug
您的配置。如果输出未显示预期的配置,请重复此示例中的配置说明,以便进行更正。
traceoptions { file e2e.trace size 10m; } capture-file e2e.pcap format pcap; maximum-capture-size 1500; capture-file files 10; action-profile { profile-1 { preserve-trace-order; record-pic-history; event np-ingress { trace; packet-summary; packet-dump; } event np-egress { trace; packet-summary; packet-dump; } } }
完成设备配置后,请从配置模式进入 commit
。
启用数据路径调试
程序
逐步过程
配置数据路径调试后,必须从操作模式在设备上启动进程。
启用数据路径调试。
user@host> request security datapath-debug capture start
datapath-debug capture started on file datapcap
在验证配置和查看报告之前,必须禁用数据路径调试。
user@host> request security datapath-debug capture stop
datapath-debug capture succesfully stopped, use show security datapath-debug capture to view
注:捕获完数据后,必须停止调试过程。如果尝试在不停止调试进程的情况下打开捕获的文件,则通过任何第三方软件(例如,tcpdump 和 wireshark)都无法打开获取的文件。
验证
确认配置工作正常。
验证数据路径调试数据包捕获详细信息
目的
通过启用数据路径调试配置来验证捕获的数据。
行动
在操作模式下,输入 show security datapath-debug capture
命令。
Packet 8, len 152: (C2/F2/P0/SEQ:57935:np-ingress) 00 10 db ff 10 02 00 30 48 83 8d 4f 08 00 45 00 00 54 00 00 40 00 40 01 9f c7 c8 07 05 69 c8 08 05 69 08 00 91 1f 8f 03 2a a2 ae 66 85 53 8c 7d 02 00 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f 20 21 22 23 24 25 26 27 28 29 2a 2b 2c 2d 2e 2f 30 31 32 33 34 35 36 37 Packet 9, len 152: (C2/F2/P0/SEQ:57935:np-egress) 00 30 48 8d 1a bf 00 10 db ff 10 03 08 00 45 00 00 54 00 00 40 00 3f 01 a0 c7 c8 07 05 69 c8 08 05 69 08 00 91 1f 8f 03 2a a2 ae 66 85 53 8c 7d 02 00 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f 20 21 22 23 24 25 26 27 28 29 2a 2b 2c 2d 2e 2f 30 31 32 33 34 35 36 37....
为简洁起瞻博网络 show
,命令输出被截短,仅显示几个示例。其他示例已替换为椭圆 (...)。
要查看结果,请从 CLI 操作模式访问本地 UNIX shell 并导航至目录 /var/log/<file-name>。可以使用实用程序读取 tcpdump
结果。
user@host>start shell %tcpdump -nr/var/log/e2e.pcap
21:50:04.288767 C0/F3 event:1(np-ingress) SEQ:1 IP 192.168.14.2 > 192.168.13.2: ICMP echo request, id 57627, seq 0, length 64 21:50:04.292590 C0/F3 event:2(np-egress) SEQ:1 IP 192.168.14.2 > 192.168.13.2: ICMP echo request, id 57627, seq 0, length 64 1:50:04.295164 C0/F3 event:1(np-ingress) SEQ:2 IP 192.168.13.2 > 192.168.14.2: ICMP echo reply, id 57627, seq 0, length 64 21:50:04.295284 C0/F3 event:2(np-egress) SEQ:2 IP 192.168.13.2 > 192.168.14.2: ICMP echo reply, id 57627, seq 0, length 64
完成数据路径调试故障排除后,请移除所有 traceoptions
(不限于流跟踪选项)和完整的数据路径调试配置,包括需要手动启动/停止的数据包捕获(packet-转储)的数据路径调试配置。如果调试配置的任何部分保持活动状态,它将继续使用设备的资源(CPU/内存)。