跟踪 Citrix ADC 群集的数据包

Citrix ADC 操作系统提供了一个名为 nstrace 的实用工具,用于转储设备接收和发出的数据包。该实用程序将数据包存储在跟踪文件中。您可以使用这些文件调试流向群集节点的数据包中的问题。跟踪文件必须使用 Wireshark 应用程序查看。

nstrace 实用程序的一些显著方面是:

  • 可以配置为通过使用经典表达式和默认表达式有选择性地跟踪数据包。
  • 可以捕获多种格式的跟踪:nstrace 格式(.cap)和 TCP 转储格式(.pcap)。
  • 可以聚合配置协调器上所有群集节点的跟踪文件。
  • 可以将多个跟踪文件合并为单个跟踪文件(仅适用于 .cap 文件)。

您可以从 Citrix ADC 命令行或 Citrix ADC 外壳使用 nstrace 实用程序。

跟踪独立设备的数据包

在设备上运行启动 nstrace 命令。该命令在 /var/nstrace/ <date-timestamp> 目录中创建跟踪文件。跟踪文件名的形式为 nstrace <id> .cap。

您可以通过执行 show nstrace 命令来查看状态。您可以通过执行 stop nstrace 命令停止跟踪数据包。

注意

还可以通过执行 nstrace.sh 文件从 Citrix ADC 外壳运行 nstrace 实用程序。但是,建议您通过 Citrix ADC 命令行界面使用 nstrace 实用程序。

跟踪群集的数据包

您可以跟踪所有群集节点上的数据包,并获取配置协调器上的所有跟踪文件。

在群集 IP 地址上运行启动 nstrace 命令。该命令将在所有群集节点上传播并执行。跟踪文件存储在 /var/nstrace/ <date-timestamp> 目录中的单个群集节点中。跟踪文件名的形式为 nstrace <id> _node <id> .cap。

您可以使用每个节点的跟踪文件来调试节点操作。但是,如果您希望在一个位置中的所有群集节点的跟踪文件,则必须在群集 IP 地址上运行 stop nstrace 命令。所有节点的跟踪文件都会在 /var/nstrace/ <date-timestamp> 目录的群集配置协调器上下载,如下所示:

本地化后的图片

合并多个跟踪文件

您可以从从群集节点获取的跟踪文件(仅支持 .cap 文件)准备单个文件。单个跟踪文件为您提供了群集数据包跟踪的累积视图。单个跟踪文件中的跟踪条目根据群集上接收数据包的时间进行排序。

要合并跟踪文件,请在 Citrix ADC 外壳中键入:

> nstracemerge.sh -srcdir \<DIR\> -dstdir \<DIR\> -filename \<name\> -filesize \<num\>

其中,

  • srcdir 是合并跟踪文件的目录。此目录中的所有跟踪文件合并为一个文件。
  • dstdir 是创建合并跟踪文件的目录。
  • 文件名是创建的跟踪文件的名称。
  • 文件大小是跟踪文件的大小。

示例

以下是使用 nstrace 实用程序筛选数据包的一些示例。

  • 跟踪三个节点的背板接口上的数据包:

    使用经典表达式:

    > start nstrace -filter "INTF == 0/1/1 && INTF == 1/1/1 && INTF == 2/1/1"
    

    使用默认表达式:

    > start nstrace -filter "CONNECTION.INTF.EQ("0/1/1") && CONNECTION.INTF.EQ("1/1/1") && CONNECTION.INTF.EQ("2/1/1")"
    
  • 从源 IP 地址 10.102.34.201 或源端口大于 80 且服务名称不是 “s1” 的系统跟踪数据包:

    使用经典表达式

    > start nstrace -filter "SOURCEIP == 10.102.34.201 || (SVCNAME != s1 && SOURCEPORT > 80)"
    

    使用默认表达式

    > start nstrace -filter "CONNECTION.SRCIP.EQ(10.102.34.201) || (CONNECTION.SVCNAME.NE("s1") && CONNECTION.SRCPORT.GT(80))"
    

注意 有关 nstrace 中使用的筛选器的更多信息,请参阅 恩斯特拉斯

在跟踪过程中捕获 SSL 会话密钥

运行“start nstrace”命令时,您可以设置新的“capsslkey”参数以捕获所有 SSL 会话的 SSL 主密钥。如果包含此参数,将生成名为 nstrace.sslkeys 的文件以及数据包跟踪。此文件可以导入到 Wireshark 中,以解密相应跟踪文件中的 SSL 流量。

此功能与导出会话密钥的 Web 浏览器类似,这些会话密钥稍后可导入到 Wireshark 中以解密 SSL 流量。

使用 SSL 会话密钥的优势

以下是使用 SSL 会话密钥的优点:

  1. 生成不包括由 SSLPLAIN 捕获模式创建的额外数据包的较小跟踪文件。
  2. 提供从跟踪中查看明文 [SP (1)] 的功能,并选择是共享主密钥文件还是通过不共享来保护敏感数据。

使用 SSL 会话密钥的限制

以下是使用 SSL 会话密钥的限制:

  1. 如果未捕获会话的初始数据包,则无法解密 SSL 会话。
  2. 如果启用了联邦信息处理标准 (FIPS) 模式,则无法捕获 SSL 会话。

使用命令行界面 (CLI) 捕获 SSL 会话密钥

在命令提示符处,键入以下命令以启用或禁用跟踪文件中的 SSL 会话密钥并验证跟踪操作。

> start nstrace -capsslkeys ENABLED
> show nstrace
示例
> start nstrace -capsslkeys ENABLED
> show nstrace
State:  RUNNING          Scope:  LOCAL            TraceLocation:  "/var/nstrace/04May2016_17_51_54/..."
Nf:  24                  时间:  3600              尺寸:  164               模式:  台湾新闻网络
Traceformat:  NSCAP      PerNIC:  DISABLED        FileName:  04May2016_17_51_54 Link:  DISABLED
合并:启用  跟踪           缓冲区:  启用跟踪缓冲区:  5000      SkiprPC:  禁用
S@@ kiplocalSSH:已  禁用的信息密钥:  已启用的     内存跟踪:已  禁用
Done

使用 Citrix ADC GUI 配置 SSL 会话密钥

  1. 导航到“配置”>“系统”>“诊断”>“技术支持工具”,然后单击“开始新跟踪”以开始跟踪设备上的加密数据包。
  2. 在“开 始跟踪”页上,选中“捕获 SSL 主密钥”复选框。
  3. 点击 确定完成

将 SSL 主密钥导入到 Wireshark

在 Wireshark GUI 上,导航至“编辑”>“首选项”>“协议”>“SSL”>“(预先)-主机密”日志文件名 ,并指定从设备获取的主密钥文件。