IDC知識庫
IDC領域專業(yè)知識百科平臺

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

tcpdump-uw是傳統(tǒng)的抓包工具,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 到虛擬交換機的流量。(默認)

這里發(fā)起一個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字節(jié)的數據,要想抓取整個報文,可通過-s來指定。如:

3、當開啟了巨幀,可以加-s 9014,但由于緩沖限制,tcpdump-uw最多能抓到8138字節(jié),通過追加-B 9的參數可以允許抓到9014字節(jié)的包。

4、主機過濾

pktcap-uw Usage & Examples

pktcap-uw較復雜,也可以通過-h來查看如何使用,這里限于篇幅我只截取了一部分。

1、VMkernel 口抓包

2、IP過濾

3、物理口抓包,具體抓哪個物理口,可以通過vsphere-client來看。

4、抓任何被丟棄的包,較為實用。

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

贊(6)
分享到: 更多 (0)

中國專業(yè)的網站域名及網站空間提供商

買域名買空間