ADC

如何在 NetScaler 上记录数据包跟踪

您可以使用 NetScaler GUI 记录数据包跟踪。跟踪存储在 nstrace.cap 中。

  1. 导航至“系统”>“诊断”。
  2. 单击“技术支持工具”下的“开始新跟踪”。
  3. 在“开始跟踪”页面 中,更新以下字段:

    1. 数据包大小 -输入跟踪期间要捕获的数据包的大小。输入 0 表示完整的数据包跟踪。

      • 默认值:164
      • 最小值:0
      • 最大值:1514
    2. 捕获 .pcap 格式的跟踪 -您可以选择以 nstrace (.cap) 或 TCP 转储 (.pcap) 格式捕获数据包跟踪。默认情况下,数据包跟踪以 nstrace 格式 (.cap) 捕获,这是推荐的格式。要以 TCP 转储格式捕获跟踪,请选择“以 .pcap 格式捕获跟踪”。
    3. 捕获 SSL 主密钥 -要更好地分析跟踪,请启用“捕获 SSL 主密钥”选项。此设置会捕获当前会话的 SSL 密钥,这些密钥是解密加密数据所必需的。SSL 密钥存储在名为 nstrace.sslkeys 的文件中。

      • 在启用了捕获 SSL 主密钥选项的情况下单击“开始”启动跟踪时,会显示一条安全警告消息。确认 此警告后继续。
      • 当私钥不可用或未共享时,可以考虑导出 SSL 会话密钥作为私钥的替代方案。
    4. 跟踪文件数 -输入要在跟踪期间生成的跟踪文件数量。

      • 默认值:24
      • 最小值:1
      • 最大值:100
    5. 跟踪文件名 -输入跟踪文件的名称。
    6. 跟踪文件 ID -输入跟踪文件的文件 ID。
    7. 每个文件的数据持续时间(秒) -输入捕获每个跟踪文件数据的时间(以秒为单位)。

      • 默认值:3600
      • 最小值:1
    8. 文件大小 -输入每个跟踪文件的文件大小(以 MB 为单位)。

      • 默认值:1024
      • 最小值:0
      • 最大值:10240

      当跟踪达到指定的文件大小时,将开始新的跟踪。如果可用磁盘空间小于 2 GB,则跟踪将停止。

    9. 跟踪缓冲区 -输入用于存储数据包捕获的跟踪缓冲区(临时存储)的数量。每个缓冲区约为 16 KB。

      • 默认值:5000
      • 最小值:1000
  4. 输入 筛选表达式

    为 IP 地址、端口、VLAN 或接口添加过滤器表达式可确保仅捕获相关流量,并减少数据包跟踪期间的 NetScaler 负载。

  5. 从列表中选择“合并”选项。

    • ONSTOP -临时跟踪文件合并到单个跟踪文件中。
    • NOMERGE - 跟踪文件未合并。
    • ONTHEFLY -在不创建任何临时文件的情况下合并跟踪文件。

    默认值:ONSTOP

  6. 从其他可用的数据包捕获选项中选择相关选项。

    默认值:执行运行时清理

  7. 在“捕捉模式”中选择所需的选项。

    默认情况下,选择缓冲传输的数据包 (TXB)在 NIC 流水线之后接收数据包 (NEW_RX)。要在没有私钥的情况下解密跟踪,请选择解密的 SSL 数据包 (SSLPLAIN)

  8. 单击开始开始记录网络数据包跟踪。

  9. 在“停止跟踪”页面中,单击“停止并下载”,以便在测试完成后停止记录网络数据包跟踪。

  10. 在“删除/下载跟踪文件”页面中,选择文件,单击“下载”,然后单击“关闭”。

    使用 Wireshark 实用程序打开跟踪文件以显示该文件的内容。

我们建议您使用以下网页中自动构建部分中的最新Wireshark版本:http://www.wireshark.org/download/automated

使用虚拟服务器 IP 过滤器(前端和后端)捕获数据包跟踪的使用案例

使用虚拟服务器 IP 地址的筛选器并在 CLI 中启用“—link”选项或在 GUI 中选择“跟踪筛选的连接对等流量”选项,您可以捕获该 IP 地址的前端和后端流量。

start nstrace -size 0 -filter "CONNECTION.IP.EQ(1.1.1.1)" -link ENABLED

show nstrace
        State:  RUNNING          Scope:  LOCAL            TraceLocation:  "/var/nstrace/24Mar2017_16_00_19/..." Nf:  24                  Time:  3600              Size:  0                 Mode:  TXB NEW_RX
        Traceformat:  NSCAP      PerNIC:  DISABLED        FileName:  24Mar2017_16_00_19 Filter:  "CONNECTION.IP.EQ(1.1.1.1)" Link:  ENABLED           Merge:  ONSTOP           Doruntimecleanup:  ENABLED
        TraceBuffers:  5000      SkipRPC:  DISABLED       Capsslkeys:  DISABLED    InMemoryTrace:  DISABLED
<!--NeedCopy-->

捕获循环轨迹

对间歇性问题进行故障排除总是具有挑战性的。循环跟踪最适合间歇性问题。跟踪可以在问题出现之前的几个小时或几天内运行。此外,您还可以使用特定的筛选器,并在长时间运行之前评估生成的跟踪文件的大小。

从 CLI 运行以下命令:

start nstrace -nf 60 -time 30 -size 0
This particular trace will create 60 files each of them for 30 sec. This means the files will start getting overwritten after 60 trace files or 30 mins
Show nstrace - To check the status of the nstrace
Stop nstrace - To stop the nstrace.

<!--NeedCopy-->

最佳做法

在每秒处理 GB 流量的单位上,捕获流量是一个非常耗费资源的过程。对资源的影响主要体现在 CPU 和磁盘空间方面。使用筛选表达式可以减少对磁盘空间的影响。但是,对CPU的影响仍然存在,有时会导致轻微增加,因为设备现在需要在捕获数据包之前根据过滤器处理数据包。

关于跟踪的最佳做法是:

  1. 当您仍然确保捕获感兴趣的数据包时,必须尽可能限制运行跟踪的持续时间。
  2. 将跟踪活动安排在用户数量(从而减少流量)的时间进行,例如在非工作时间。
如何在 NetScaler 上记录数据包跟踪