ADC

跟踪 NetScaler 群集的数据包

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

ns trace 实用程序的一些重要方面是:

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

您可以从 NetScaler 命令行或 NetScaler shell 中使用 ns trace 实用程序。

跟踪独立设备的数据包

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

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

注意

您也可以通过运行 nstrace.sh 文件从 NetScaler shell 中运行 ns trace 实用程序。但是,建议您通过 NetScaler 命令行界面使用 ns trace 实用程序。

跟踪群集的数据包

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

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

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

群集跟踪

合并多个跟踪文件

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

要合并跟踪文件,请在 NetScaler 外壳中键入以下内容:

> 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 会话的初始数据包,则无法解密 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

使用 NetScaler GUI 配置 SSL 会话密钥

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

将 SSL 主密钥导入 Wireshark

在 Wireshark GUI 上,导航到“编辑”>“首选项”>“协议”>“SSL”>(Pre)-Master-Secret 日志文件名,然后指定从设备获取的主密 钥文件。

跟踪 NetScaler 群集的数据包