使用 pktcap-uw 实用程序可监控虚拟交换机与 VMXNET3 虚拟机适配器之间的流量。

您可以指定虚拟交换机与虚拟机适配器之间的数据路径中的某个捕获点。还可以根据相对于交换机的流量方向以及与数据包源位置或目标位置的邻近程度来确定捕获点。有关支持的捕获点的信息,请参见pktcap-uw 实用程序的捕获点

前提条件

确认虚拟机适配器是 VMXNET3 类型。

过程

  1. 在主机上,使用 esxtop 实用程序查看虚拟机适配器的端口 ID。
    1. 在主机的 ESXi Shell 中,运行 esxtop 启动实用程序。
    2. 要切换到实用程序的网络面板,请按 n。
    3. 在 USED-BY 列中,找到虚拟机适配器,并记下它的 PORT-ID 值。
      USED-BY 字段包含虚拟机名称和虚拟机适配器连接的端口。
    4. 按下 Q 退出 esxtop
  2. ESXi Shell 中,运行 pktcap-uw --switchport port_ID
    port_IDesxtop 实用程序在 PORT-ID 列中显示的虚拟机适配器的 ID。
  3. ESXi Shell 中,运行带有 --switchport port_ID 参数和相应选项的 pktcap-uw 命令,监控特定点的数据包,筛选捕获的数据包并将结果保存到文件。
    pktcap-uw --switchport port_ID [--capture capture_point|--dir 0|1 --stage 0|1]  [filter_options] [--outfile pcap_file_path [--ng]] [--count number_of_packets]

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

    如果运行不带选项的 pktcap-uw --switchport port_ID 命令,您将在控制台输出中获得在交换点传入标准交换机或 Distributed Switch 的数据包的内容。

    1. 要检查客户机操作系统与虚拟交换机之间路径中的另一捕获点或方向上的数据包,请使用 --capture 选项,或者组合使用 --dir--stage 选项的值。
      pktcap-uw 命令选项 目标
      --capture VnicTx 在数据包从虚拟机传递到交换机时对其进行监控。
      --capture VnicRx 在数据包到达虚拟机时对其进行监控。
      --dir 1 --stage 0 在数据包离开虚拟交换机后立即对其进行监控。
      --dir 1 在数据包进入虚拟机前一刻对其进行监控。
      --dir 0 --stage 1 在数据包进入虚拟交换机后立即对其进行监控。
    2. 使用 filter_options 可根据源和目标地址、VLAN ID、VXLAN ID、第 3 层协议和 TCP 端口筛选数据包。
      例如,要监控来自 IP 地址为 192.168.25.113 的源系统的数据包,请使用 --srcip 192.168.25.113 筛选选项。
    3. 使用相应选项可将每个数据包的内容或部分数据包的内容保存到 .pcap.pcapng 文件中。
      • 要将数据包保存到 .pcap 文件中,请使用 --outfile 选项。
      • 要将数据包保存到 .pcapng 文件中,请使用 --ng--outfile 选项。

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

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

    4. 使用 --count 选项可监控一定数量的数据包。
  4. 如果未使用 --count 选项限制数据包的数量,请按 Ctrl+C 停止捕获或跟踪数据包。

示例: 捕获虚拟机从 IP 地址 192.168.25.113 接收的数据包

要在来自源系统(分配的 IP 地址为 192.168.25.113)的前 60 个数据包到达端口 ID 为 33554481 的虚拟机适配器时捕获这些数据包,并将它们保存到名为 vmxnet3_rcv_srcip.pcap 的文件,请运行以下 pktcap-uw 命令:

 pktcap-uw --switchport 33554481 --capture VnicRx --srcip 192.168.25.113 --outfile vmxnet3_rcv_srcip.pcap --count 60

下一步做什么

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