通过捕获 vSphere 标准交换机或 vSphere Distributed Switch 与物理适配器之间路径中的某些点的数据包,监控与外部网络相关的主机流量。

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

过程

  1. (可选) 在主机适配器列表中查找要监控的物理适配器的名称。
    • vSphere Web Client 中,在主机的配置选项卡上展开网络,然后选择物理适配器
    • 在主机的 ESXi Shell 中,要查看物理适配器列表及检查适配器状态,运行以下 ESXCLI 命令:
      esxcli network nic list
      
    每个物理适配器都以 vmnicX 的形式表示。 XESXi 分配给物理适配器端口的编号。
  2. 在主机的 ESXi Shell 中,运行带有 --uplink vmnicX 参数和相应选项的 pktcap-uw 命令,监控特定点的数据包,筛选捕获的数据包并将结果保存到文件。
                pktcap-uw
                --uplink vmnicX [--capturecapture_point|--dir 0|1]  [filter_options] [--outfilepcap_file_path [--ng]] [--countnumber_of_packets]

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

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

    1. 使用 --capture 选项检查另一捕获点的数据包或使用 --dir 选项检查另一流量方向的数据包。
      pktcap-uw 命令选项 目标
      --capture UplinkSnd 在数据包进入物理适配器设备前一刻对其进行监控。
      --capture UplinkRcv 在数据包从物理适配器被接收到网络堆栈后立即对其进行监控。
      --dir 1 监控离开虚拟交换机的数据包。
      --dir 0 监控进入虚拟交换机的数据包。
    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 选项可监控一定数量的数据包。
  3. 如果未使用 --count 选项限制数据包的数量,请按 Ctrl+C 停止捕获或跟踪数据包。

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

要捕获 vmnic0 从源系统(分配的 IP 地址为 192.168.25.113)接收的前 60 个数据包并将它们保存到名为 vmnic0_rcv_srcip.pcap 的文件,请运行以下 pktcap-uw 命令:

 pktcap-uw --uplink vmnic0 --capture UplinkRcv --srcip 192.168.25.113 --outfile vmnic0_rcv_srcip.pcap --count 60

下一步做什么

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