IDC知识库
IDC领域专业知识百科平台

ESXi上的抓包神器:tcpdump-uw/pktcap-uw

tcpdump-uw是传统的抓包工具,pktcap-uw是高级版的抓包及分析工具,主要用在 ESXi 5.5 以后的版本中。

cpdump-uw主要抓取流经VMkernel适配器的报文。pktcap-uw可以对虚拟交换机、VMkernel适配器、物理适配器的流都能进行抓取。

Capture Points

tcpdump-uw没有流量的概念,当你用tcpdump-uw对vmk0进行抓包时,你可以直接看到VMkernel 入向和出向的报文。pktcap-uw则引入了捕捉点的概念,来决定你在哪儿进行抓包。对VMkernel的流量,你有两个可以进行抓包的地方:

PortOutput:从虚拟交换机到VMkernel 的流量。

PortInput:从VMkernel 到虚拟交换机的流量。(默认)

这里发起一个ping操作,用tcpdump-uw可以看到ICMP请求和相应报文。

使用pktcap-uw,不指定捕捉点的话,会看到从PortInput出来的reply报文。

通过—capture PortOutput参数可以抓到ICMP echo request报文。

Packet Interpretation

这里我们同样用上面ping的例子来进行说明。tcpdump-uw抓的包比较通俗易懂,pktcap-uw的包是十六进制的原始数据包。当然,如果分别通过-w或-o输出后到某一文件后,两者的输出是一样的。如果想用tcpdump-uw输入十六进制的原始数据包,可以在尾部加-xx参数。

Protocol Knowledge

上面的例子都是采用ICMP报文来说明两者的不同。当用tcpdump-uw时可以加icmp参数来进行包过滤,而用pktcap-uw不关心报文协议,只能通过加protocol id来进行过滤。protocol id是IPv4报文头部的一部分,ICMP的protocol id从1开始。下面可以看到协议的十六进制显示。

https://en.wikipedia.org/wiki/List_of_IP_protocol_numbers这里列出了所有的协议号。当然,如果对网络协议不了解的话,也可以将抓包结果导入到wireshark中,它能通俗易懂地解析所抓到的报文。

tcpdump-uw Usage

现在学习某个命令一般都有比较友好的说明,所以成本较低,这里也就不详细列出了。也不用牢记,毕竟大脑不能当硬盘来用,具体到实际的应用时,只需加-h即可,-h搞不定的就去必应上百度一下,哈。

tcpdump-uw Examples

1、列出所有可用的VMkernel 适配器

2、tcpdump-uw默认抓取的是报文前68字节的数据,要想抓取整个报文,可通过-s来指定。如:

3、当开启了巨帧,可以加-s 9014,但由于缓冲限制,tcpdump-uw最多能抓到8138字节,通过追加-B 9的参数可以允许抓到9014字节的包。

4、主机过滤

pktcap-uw Usage & Examples

pktcap-uw较复杂,也可以通过-h来查看如何使用,这里限于篇幅我只截取了一部分。

1、VMkernel 口抓包

2、IP过滤

3、物理口抓包,具体抓哪个物理口,可以通过vsphere-client来看。

4、抓任何被丢弃的包,较为实用。

5、查看所有可抓包的点。需要说明的是有些point是和特定的流量类型(Virtual Machine traffic, VMkernel traffic,..)绑定的,有些是全局性的。

赞(0)
分享到: 更多 (0)

中国专业的网站域名及网站空间提供商

买域名买空间