通过使用 pktcap-uw 实用程序捕获丢弃的数据包,可对失去连接问题进行故障排除。

数据包可能会在网络流中的某个点被丢弃。导致这一问题的原因很多,例如防火墙规则、IOChain 和 DVfilter 中使用了过滤功能、VLAN 不匹配、物理适配器故障、校验和错误等等。您可以使用 pktcap-uw 实用程序检查丢弃数据包的位置以及丢包的原因。

过程

  1. 在主机的 ESXi Shell 中,运行带有相应选项的 pktcap-uw --capture Drop 命令,监控特定点的数据包,筛选捕获的数据包并将结果保存到文件。
    pktcap-uw --capture Drop [filter_options] [--outfile pcap_file_path [--ng]] [--count number_of_packets]

    其中方括号 [] 中所括的是 pktcap-uw--capture Drop 命令的选项,竖线 | 表示替代值。

    1. 使用 filter_options 可根据源和目标地址、VLAN ID、VXLAN ID、第 3 层协议和 TCP 端口筛选数据包。
      例如,要监控来自 IP 地址为 192.168.25.113 的源系统的数据包,请使用 --srcip 192.168.25.113 筛选选项。
    2. 使用相应选项可将每个数据包的内容或部分数据包的内容保存到 .pcap.pcapng 文件中。
      • 要将数据包保存到 .pcap 文件中,请使用 --outfile 选项。
      • 要将数据包保存到 .pcapng 文件中,请使用 --ng--outfile 选项。

      可以在 Wireshark 等网络分析器工具中打开该文件。

      默认情况下,pktcap-uw 实用程序会将数据包文件保存到 ESXi 文件系统的根文件夹。

      注: 只有将捕获的数据包输出到控制台后,才能查看丢弃数据包的原因和位置。 pktcap-uw 实用程序仅将数据包的内容保存到 .pcap.pcapng 文件。
    3. 使用 --count 选项可监控一定数量的数据包。
  2. 如果未使用 --count 选项限制数据包的数量,请按 Ctrl+C 停止捕获或跟踪数据包。

结果

除了丢弃的数据包的内容,pktcap-uw 实用程序的输出内容中还显示丢包原因和网络堆栈中最后处理该数据包的功能。

下一步做什么

如果已将数据包的内容保存到某个文件中,请将该文件从 ESXi 主机复制到运行图形分析器工具(如 Wireshark)的系统上,然后在该工具中将其打开以检查数据包详细信息。