配置数据路径调试和追踪选项

了解 SRX 系列设备的数据路径调试

数据路径调试或端到端调试支持在数据包处理路径上的多个处理单元上提供跟踪和调试。可以在执行数据包过滤时对生产系统产生最小的影响。

在 SRX 系列防火墙上,数据包要经历一系列事件,这些事件涉及从入口到出口处理的不同组件。

使用数据路径调试功能,您可以在处理路径上的不同数据点跟踪和调试(捕获数据包)。数据包处理路径中可用的事件包括:NP 入口、负载平衡线程 (LBT)、jexec、数据包排序线程 (POT) 和 NP 出口。如果设置了特定模块的安全流跟踪标志,您还可以启用流模块跟踪。

在每个事件中,您可以指定四个操作(计数、数据包转储、数据包摘要和跟踪)中的任何一个。数据路径调试提供过滤器来定义要捕获的数据包,并且仅跟踪匹配的数据包。数据包过滤器可以根据逻辑接口、协议、源 IP 地址前缀、源端口、目标 IP 地址前缀和目标端口过滤掉数据包。

SRX4600、SRX4700、SRX5400、SRX5600 和 SRX5800 支持数据路径调试。

要启用端到端调试,您必须执行以下步骤:

  1. 定义捕获文件并指定最大捕获大小。

  2. 根据要求定义数据包过滤器以仅跟踪特定类型的流量。

  3. 定义操作配置文件,指定处理路径上从何处捕获数据包的位置(例如,LBT 或 NP 入口)。

  4. 启用数据路径调试。

  5. 捕获流量。

  6. 禁用数据路径调试。

  7. 查看或分析报告。

端口和接口选项的数据包过滤行为如下:

  • 如果仅指定 了端口 ,数据包过滤器会同时跟踪 IPv4 和 IPv6 流量。

  • 如果仅指定 接口 ,则数据包过滤器将跟踪 IPv4、IPV6 和非 IP 流量。

了解使用追踪选项进行安全性调试

Junos OS 追踪功能允许应用程序将安全调试信息写入文件。此文件中显示的信息基于您设置的条件。您可以使用这些信息来分析安全应用问题。

跟踪函数以分布式方式运行,每个线程都写入自己的跟踪缓冲区。然后,在某一点收集这些跟踪缓冲区,进行排序并写入跟踪文件。跟踪消息使用进程间通信 (IPC) 协议传递。追踪消息的优先级低于控制协议数据包(如 BGP、OSPF 和 IKE),因此传递不那么可靠。

了解使用追踪选项的流调试

对于流跟踪选项,您可以使用 目标端口、 目标前缀、 接口、 协议、 源端口和 源前缀的组合来定义数据包过滤器。如果设置了某个模块的安全流跟踪标志,则与特定数据包过滤器匹配的数据包将触发流跟踪,并将调试信息写入跟踪文件。

设置数据路径调试(CLI 过程)

SRX5400、SRX5600 和 SRX5800 支持数据路径调试。

要配置设备以进行数据路径调试:

  1. 指定以下请求命令,以设置数据包处理路径沿线多个处理单元的数据路径调试:
  2. 使用以下命令指定数据路径调试的跟踪选项:
  3. 使用 request security packet-filter 命令,您可以设置数据包过滤器以指定相关数据包以执行数据路径调试操作。最多同时支持四个过滤器。例如,以下命令设置第一个数据包过滤器:
  4. 使用 request security action-profile 命令,可以设置指定过滤器的数据包匹配操作。仅支持默认操作配置文件,即网络处理器 ezchip 入口、ezchip 出口、spu.lbt 和 spu.pot 的追踪选项:

设置流调试追踪选项(CLI 过程)

以下示例显示了可以使用 security flow traceoptions设置的选项。

  • 要匹配 filter1 数据包过滤器的 imap 目的端口,请使用以下语句:

  • 要为 filter1 数据包过滤器设置 1.2.3.4 目标 IPv4 前缀地址,请使用以下语句:

  • 要为 filter1 数据包过滤器设置 fxp0 逻辑接口,请使用以下语句:

  • 要匹配 filter1 数据包过滤器的 TCP IP 协议,请使用以下语句:

  • 要匹配 filter1 数据包过滤器的 HTTP 源端口,请使用以下语句:

  • 要为 filter1 数据包过滤器设置 5.6.7.8 IPv4 前缀地址,请使用以下语句:

设置安全性跟踪选项(CLI 过程)

使用以下配置语句在 CLI 配置编辑器中配置安全跟踪选项。

  • 要禁用远程跟踪,请输入以下语句:

  • 要将跟踪消息写入本地文件,请输入以下语句。系统将跟踪文件保存在 /var/log/ 目录中。

  • 要为跟踪文件指定名称,请输入以下语句。有效值范围为 1 到 1024 个字符。名称不能包含空格、/ 或 % 字符。默认文件名为 security。

  • 要指定可以累积的最大跟踪文件数,请输入以下语句。有效值范围为 2 到 1000。默认值为 3。

  • 要指定您希望系统在将信息记录到文件时使用的匹配标准,请输入以下语句。输入正则表达式。接受通配符 (*) 字符。

  • 要允许任何用户读取跟踪文件,请输入语 world-readable 句。否则,请输入 no-world-readable 语句。

  • 要指定跟踪文件可以增长到的最大大小,请输入以下语句。一旦文件达到指定的大小,它就会被压缩并重命名 filename为 0.gz,下一个文件被命名 filename为 1.gz,依此类推。有效值范围为 10240 到 1,073,741,824。

  • 若要打开跟踪选项并执行多个跟踪操作,请设置以下标志。

  • 要指定这些追踪选项设置应用到或不适用的组,请输入以下语句:

显示日志和跟踪文件

输入命令 monitor start 以显示对系统日志和跟踪文件的实时添加:

当设备将记录添加到指定的filename文件时,记录将显示在屏幕上。例如,如果配置了名为(通过在 [edit system] 层次结构级别包含syslog语句)的系统system-log日志文件,则可以输入命令monitor start system-log来显示添加到系统日志中的记录。

要显示正在监控的文件列表,请输入命令 monitor list 。要停止显示指定文件的记录,请输入命令 monitor stop filename 。

显示安全性跟踪选项的输出

目的

显示安全追踪选项的输出。

行动

使用命令 show security traceoptions 显示跟踪文件的输出。例如:

此示例的输出如下:

显示组播追踪操作

要监控和显示组播追踪操作,请输入以下 mtrace monitor 命令:

此示例仅 mtrace 显示查询。但是,当设备捕获响应 mtrace 时,显示是相似的,但也会出现完整的 mtrace 响应(与命令输出中 mtrace from-source 显示的完全相同)。

表 1 汇总了显示器的输出字段。

表 1:CLI mtrace 监控命令输出摘要

字段

描述

Mtrace operation-type at time-of-day

  • operation-type—组播追踪操作的类型: query 或 response。

  • time-of-day- 捕获组播追踪查询或响应的日期和时间。

by

发出查询的主机的 IP 地址。

resp to address

address—响应目标地址。

qid qid

qid- 查询 ID 号。

packet from source to destination

  • source— 查询或响应源的 IP 地址。

  • destination— 查询或响应目标的 IP 地址。

from source to destination

  • source— 组播源的 IP 地址。

  • destination— 组播目标的 IP 地址。

via group address

address- 正在跟踪的组地址。

mxhop=number

number- 最大跃点设置。

显示设备列表

要显示设备与指定目标主机之间的设备列表,请输入 traceroute 具有以下语法的命令:

表 2 介绍 traceroute 了命令选项。

表 2:CLI traceroute 命令选项

选项

描述

host

将 traceroute 数据包发送到您指定的主机名或 IP 地址。

interface interface-name

(选答)在您指定的接口上发送 traceroute 数据包。如果不包含此选项,则会在所有接口上发送 traceroute 数据包。

as-number-lookup

(选答)显示设备与目标主机之间每个中间跃点的自治系统 (AS) 编号。

bypass-routing

(选答)绕过路由表,仅将 traceroute 数据包发送至直接连接接口上的主机。如果主机不在直接连接的接口上,则返回一条错误消息。

使用此选项可显示通过没有路由通过的接口到本地系统的路由。

gateway address

(选答)使用您指定的网关进行路由。

inet

(选答)强制将 traceroute 数据包发送至 IPv4 目标。

inet6

(选答)强制将 traceroute 数据包发送到 IPv6 目标。

no-resolve

(选答)抑制显示路径上跃点的主机名。

routing-instance routing-instance-name

(选答)使用您为 traceroute 指定的路由实例。

source address

(选答)使用您在 traceroute 数据包中指定的源地址。

tos number

(选答)在 traceroute 数据包的 IP 报头中设置服务类型 (TOS) 值。指定到 255的值0。

ttl number

(选答)设置 traceroute 数据包的生存时间 (TTL) 值。指定从 0 到 128的跃点计数。

wait seconds

(选答)设置等待响应的最长时间。

要退出命令 traceroute ,请按 Ctrl-C。

以下是命令输出 traceroute 的示例:

显示中的字段与 J-Web traceroute 诊断工具显示的字段相同。

示例:在 SRX 系列设备上配置端到端调试

此示例说明如何在高端 SRX 系列防火墙上配置数据包捕获,以及如何在带有 SRX5K-MPC 的 SRX 系列防火墙上启用端到端调试。

要求

此示例使用以下硬件和软件组件:

  • SRX5600 设备,安装了 SRX5K-MPC 和 100 千兆以太网 CFP 收发器

  • 适用于 SRX 系列防火墙的 Junos OS 12.1X47-D15 或更高版本

开始之前:

配置此功能之前,不需要除设备初始化之外的特殊配置。

概述

数据路径调试通过在数据包处理路径上的多个处理单元提供跟踪和调试,增强了故障排除功能。使用数据路径调试功能,您可以在处理路径上的不同数据点跟踪和调试(捕获数据包)。在每个事件中,您可以指定一个操作(计数、数据包转储、数据包摘要和跟踪),并且可以设置过滤器来定义要捕获的数据包。

在此示例中,您将定义流量过滤器,然后应用操作配置文件。操作配置文件指定对处理单元的各种操作。入口和出口被指定为处理路径上的位置,以捕获传入和传出流量的数据。

接下来,在操作模式下启用数据路径调试,最后查看数据捕获报告。

注意:

SRX5400、SRX5600 和 SRX5800 支持数据路径调试。

配置

过程

CLI 快速配置

要快速配置此示例,请复制以下命令,将其粘贴到文本文件中,删除所有换行符,更改详细信息,以便与网络配置匹配,将命令复制并粘贴到层次结构级别的 [edit] CLI 中,然后从配置模式进入。commit

分步程序

下面的示例要求您在各个配置层级中进行导航。有关如何执行此操作的说明,请参阅《Junos OS CLI用户指南》中的在配置模式下使用CLI编辑器。

要配置数据路径调试:

  1. 编辑数据包处理路径上多个处理单元的安全数据路径调试选项:

  2. 启用捕获文件、文件格式、文件大小和文件数。

  3. 为操作配置文件配置操作配置文件、事件类型和操作。

结果

在配置模式下,输入 show security datapath-debug 命令以确认您的配置。如果输出未显示预期的配置,请重复此示例中的配置说明进行更正。

如果完成设备配置,请从配置模式进入。commit

示例:配置数据包捕获以进行数据路径调试

此示例说明如何配置数据包捕获以监控通过设备的流量。然后,数据包捕获会将数据包转储为 PCAP 文件格式,tcpdump 实用程序稍后可以检查该格式。

要求

概述

定义过滤器用于过滤流量;然后,操作配置文件将应用于过滤后的流量。操作配置文件指定对处理单元的各种操作。支持的操作之一是数据包转储,它将数据包发送到路由引擎,并将其存储为专用形式,以便使用命令读取 show security datapath-debug capture 。

配置

过程
CLI 快速配置

要快速配置此示例,请复制以下命令,将其粘贴到文本文件中,删除所有换行符,更改详细信息,以便与网络配置匹配,将命令复制并粘贴到层次结构级别的 [edit] CLI 中,然后从配置模式进入。commit

分步程序

下面的示例要求您在各个配置层级中进行导航。有关操作说明,请参阅《Junos OS CLI 用户指南》中的在配置模式下使用CLI编辑器。

要配置数据包捕获:

  1. 编辑数据包处理路径上多个处理单元的安全 datapath-debug 选项:

  2. 启用捕获文件、文件格式、文件大小和文件数。大小编号限制捕获文件的大小。达到限制大小后,如果指定了文件号,则捕获文件将旋转到 filename x,其中 x 自动递增,直到达到指定的索引,然后返回零。如果未指定文件索引,则在达到大小限制后丢弃数据包。默认大小为 512 KB。

  3. 启用操作配置文件并设置事件。将操作配置文件设置为 do-capture,将事件类型设置为 np-ingress:

  4. 为操作配置文件启用数据包转储:

  5. 启用数据包过滤、操作和过滤选项。数据包过滤器设置为 my-filter,操作配置文件设置为 do-capture,过滤器选项设置为 source-prefix 10.2.3.4/32。

结果

在配置模式下,输入 show security datapath-debug 命令以确认您的配置。如果输出未显示预期的配置,请重复此示例中的配置说明进行更正。

如果完成设备配置,请从配置模式进入。commit

验证

确认配置工作正常。

验证数据包捕获
目的

验证数据包捕获是否正常工作。

行动

在操作模式下,输入 request security datapath-debug capture start 命令以启动数据包捕获,并输入命令 request security datapath-debug capture stop 以停止数据包捕获。

要查看结果,请在 CLI 操作模式下访问本地 UNIX shell 并导航至目录 /var/log/my-capture。可以使用 tcpdump 实用程序读取结果。

验证数据路径调试捕获
目的

验证数据路径调试捕获文件的详细信息。

行动

在操作模式下,输入命令 show security datapath-debug capture 。

完成故障排除后,请确保删除或停用所有 traceoptions 配置(不限于流 traceoptions)和完整的安全数据路径调试配置部分。如果任何调试配置保持活动状态,它们将继续使用设备的 CPU 和内存资源。

验证数据路径调试计数器
目的

验证数据路径调试计数器的详细信息。

行动

在操作模式下,输入命令 show security datapath-debug counter 。

启用数据路径调试

过程

分步程序

配置数据路径调试后,您必须从操作模式在设备上启动该进程。

  1. 启用数据路径调试。

  2. 在验证配置和查看报告之前,必须禁用数据路径调试。

    注意:

    完成捕获数据后,必须停止调试过程。如果尝试在不停止调试过程的情况下打开捕获的文件,则无法通过任何第三方软件(例如 tcpdump 和 wireshark)打开获取的文件。

验证

确认配置工作正常。

验证数据路径调试数据包捕获详细信息

目的

验证通过启用数据路径调试配置捕获的数据。

行动

在操作模式下,输入命令 show security datapath-debug capture 。

为简洁起见, show 命令输出被截短以仅显示几个样本。其他样本已替换为椭圆 (...)。

要查看结果,请CLI操作模式下访问本地 UNIX shell 并导航到目录 /var/log/<file-name>。可以使用实用程序读取 tcpdump 结果。

注意:

如果完成数据路径调试故障排除,请删除所有 traceoptions (不限于流跟踪选项)和完整的数据路径调试配置,包括需要手动启动/停止的数据包捕获(数据包转储)数据路径调试配置。如果调试配置的任何部分保持活动状态,它将继续使用设备的资源(CPU/内存)。