ESXI主机之pktcap-uw抓包(ESXI主机之pktcap-uw抓包)

1、使用 pktcap-uw 工具

注意:

  1. pktcap 是单向的,且仅默认为入站方向。
  2. 在 vSphere 6.5 及更早版本中,入站流量方向使用 --dir 0 指定,出站流量方向使用 --dir 1 指定。无法同时指定两个方向的流量。但是在 vSphere 6.7 及更高版本中,入站流量方向使用 --dir 0 指定,出站流量方向使用 --dir 1 指定,--dir 2为双向。
  3. 可以并行运行两个(或更多个)单独跟踪,但稍后需要在 wireshark 中合并。
  • 要获得基本的帮助和语法信息,请使用 -h 选项:# pktcap-uw -h |more
  • 要查看对 vmkernel 端口流量的实时捕获:# pktcap-uw --vmk vmkX例如,要捕获 vmk0 上的帧/数据包:# pktcap-uw --vmk vmk0
  • 要查看主机 vmnic 上的特定物理网卡的实时捕获:# pktcap-uw --uplink vmnicX例如,要捕获 vmnic7 上的帧/数据包:# pktcap-uw --uplink vmnic7
  • 要查看对虚拟机特定 vSwitch 端口的实时捕获,请使用--switchport选项:# pktcap-uw --switchport switchportnumber例如,要捕获在连接到dvSwitchport 8的虚拟机之间往返的帧或数据包:# pktcap-uw --switchport 8
  • 要捕获对文件的输出,请使用-o选项:# pktcap-uw --vmk vmk# -ofile.pcap例如,要捕获来自 vmk0 的数据包,并保存到 /tmp 目录下的 test.pcap 文件:# pktcap-uw --vmk vmk0 -o /tmp/test.pcap注意:当您使用 -o 选项时,无论其他设置如何,输出都采用 pcap 格式。要指定 pktcap-uw 运行的秒数,使用 -G <seconds>。要指定 pktcap-uw 运行时需要达到的输出文件大小(单位为兆字节),使用 -C <file_size>。要结束捕获,请务必使用 Ctrl-C 多次,而不是 Ctrl-Z,因为 Ctrl-Z 可能会使后台进程持续运行,从而阻止后续的 pktcap-uw 命令运行,并会报告错误:错误: 无法创建会话,正在退出 (error: Can't create the session, Exiting)

捕获丢弃的数据包:

pktcap-uw --capture Drop [filter_options] [--outfile pcap_file_path [--ng]] [--count number_of_packets]

2、高级用法:同时跟踪多个端口

例如,同时跟踪特定的 vSwitch 端口及其关联的上行链路:

  1. 要获取 vSwitch 端口号,请运行以下命令:net-stats -l
  2. 标识并记下以下参数:

esxtop 命令返回的端口 ID —--switchport 50331665

要跟踪的 vmnic2 物理端口 —--uplink vmnic2 -

pcap 输出文件的位置 —/tmp/vmnic2.pcap

  1. 运行 pktcap-uw 命令,在两个点同时捕获数据包:pktcap-uw --switchport 50331665 -o /tmp/50331665.pcap & pktcap-uw --uplink vmnic2 -o /tmp/vmnic2.pcap &注意:此处假定命令 shell 为 Bash shell。因此,如果在 vswitch 上有多个上行链路,则只需在结尾 & 后添加命令,并在结尾处添加一个 &。
  2. 您可以使用 kill 命令停止pktcap-uw跟踪。kill $(lsof |grep pktcap-uw |awk '{print $1}'| sort -u)
  3. 运行此命令,检查是否所有的pktcap-uw跟踪都已停止:lsof |grep pktcap-uw |awk '{print $1}'| sort -u
3、实操3.1物理网卡抓包

查看物理适配器列表:

esxcli network nic list

查询虚拟机网口对应的物理网卡:

esxtop -> n 与 net-stats -l配合使用通过PORT-ID确认虚拟机eth口与物理网卡的vmnic的对应关系

物理网卡抓包:

pktcap-uw --uplink [vmnic1] -o Snd2-1.pcap (--dir 1:监控离开VDS的数据包;--dir 0:监控进入VDS的数据包 (不指定默认为进入VDS的包) ;--count 100:限制数据包数量)

3.2VDS抓包

查看虚拟机端口对应的VDS端口:

esxtop –> n

查看虚拟机VDS入口:

net-stats -l

VDS抓包:

pktcap-uw --switchport [PORT-ID] -o Rcv12.pcap

3.3vmkernel抓包

vmknic抓包:

pktcap-uw –vmk vmk0 –c 25 –o vmknic_capture.pcap

3.4常用可选参数

--stage {0|1}

捕获更靠近其源或目标的数据包。使用此信息可检查数据包在遍历堆栈中各个点时的变化情况,0 表示更靠近源的流量,1 表示更靠近目标的流量。

--dir {0|1|2}

根据流量相对于虚拟交换机的方向捕获数据包。

0 代表入站流量,1 代表出站流量,2 代表双向流量。

默认情况下,pktcap-uw 实用程序捕获输入的流量。

--capture capture_point

-A | --availpoints

查看 pktcap-uw 实用程序支持的所有捕获点。

ESXI主机之pktcap-uw抓包(ESXI主机之pktcap-uw抓包)(1)

-c数目

-C大小

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页