ADC

跟踪 Citrix ADC 群集的数据包

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

ns trace 实用程序的一些突出方面是:

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

您可以使用 Citrix ADC 命令行或 Citrix ADC 外壳中的 ns 跟踪实用程序。

跟踪独立设备的数据包

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

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

注意

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

跟踪群集的数据包

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

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

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

群集跟踪

合并多个跟踪文件

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

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

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

其中,

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

示例

以下是使用 ns trace 实用程序过滤数据包的一些示例。

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

    使用经典表达式:

     > 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))\"
    

注意

有关 ns trace 中使用的过滤器的更多信息,请参阅 ns trace

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

运行 “start ns trace” 命令时,可以设置新 capsslkeys 参数来捕获所有 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
Example
> start nstrace -capsslkeys ENABLED
> show nstrace
      State:  RUNNING          Scope:  LOCAL            TraceLocation:  "/var/nstrace/04May2016_17_51_54/..."
      Nf:  24                  Time:  3600              Size:  164               Mode:  TXB NEW_RX
      Traceformat:  NSCAP      PerNIC:  DISABLED        FileName:  04May2016_17_51_54 Link:  DISABLED
      Merge:  ONSTOP           Doruntimecleanup:  ENABLED TraceBuffers:  5000      SkipRPC:  DISABLED
      SkipLocalSSH:  DISABLED  Capsslkeys:  ENABLED     InMemoryTrace:  DISABLED
 Done

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

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

将 SSL 主密钥导入到 Wireshark

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

跟踪 Citrix ADC 群集的数据包