ESXi の通信をキャプチャする方法(tcpdump-uw)

ESXi の通信をキャプチャする方法(tcpdump-uw)

ESXi には、tcpdump は入っていませんが、
代わりに、tcpdump-uw というコマンドが使えます。

Capturing a network trace in ESXi using Tech Support Mode or ESXi Shell
http://kb.vmware.com/kb/1031186

まずは、インターフェース名を確認します。
KBでは、インターフェイス名を
esxcfg-vmknic -l
で確認していますが、esxcli でも確認可能です。
※下記は、VMkernelポートを1つしか構成していないので vmk0 だけ表示されています。

~ # esxcfg-vmknic -l
Interface Port Group/DVPort IP Family IP Address Netmask Broadcast MAC Address MTU TSO MSS Enabled Type
vmk0 Management Network IPv4 192.168.0.XX 255.255.255.0 192.168.0.255 XX:XX:XX:XX:XX:XX 1500 65535 true STATIC

~ # esxcli network ip interface list
vmk0
   Name: vmk0
   MAC Address: XX:XX:XX:XX:XX:XX
   Enabled: true
   Portset: vSwitch0
   Portgroup: Management Network
   VDS Name: N/A
   VDS UUID: N/A
   VDS Port: N/A
   VDS Connection: -1
   MTU: 1500
   TSO MSS: 65535
   Port ID: 33554436

ESXi のインターフェースを指定して、キャプチャしてみます。
tcpdump-uw  -i  <VMkernelポート名>
です。

VMkernelポート vmk0 をキャプチャする場合は、
下記のコマンドになります。

~ # tcpdump-uw -i vmk0


このまま実行すると、SSHなどできれば省きたいパケットも出力されるので、

実際は host や port で絞り込みをするケースが多いと思います。


オプションをまとめてみました。

オプション

説明
-i <インターフェース名>キャプチャ対象のインターフェース名(VMkernelポート)
-c <数字>キャプチャするパケット数。-c 5 とすると、5行まで表示して終了する。
-n表示されるIPアドレスの名前解決OFF
-s <数字>サイズ指定(ジャンボフレームをキャプチャしたい場合など)
-w <ファイル名>指定したファイル名で保存(わかりやすいように .pcap とつけておいたほうが良い)
-C <数字>M指定サイズでキャプチャファイル分割。MB→Mで指定。Kはだめでした。(指定例: 10M)
-W <数字>キャプチャファイル数を制限
-v詳細な情報を表示する(verbose detail)
-vvさらに詳細表示
-vvvさらにさらに詳細表示
host <ホスト名 or IPアドレス>キャプチャ対象のホスト名 or IPアドレスを指定
port <数字>キャプチャ対象のポート番号を指定
tcpTCPの通信だけキャプチャ
udpUDPの通信だけキャプチャ
※ host、port、tcp、udp は and で条件を組み合わせることができます。


例1: DNSの名前解決をキャプチャ

DNSサーバ「192.168.5.10」への通信(UDPの53番ポート)をキャプチャするときの実行例です。
「-c」を指定しない場合は、 Ctrl + C で停止します。

~ # tcpdump-uw  -n -i vmk0 host 192.168.5.10 and port 53 and udp


例:2 キャプチャ結果をファイルに保存

たとえば、下記のコマンドでは、
vmk0 インターフェースの通信を、1MBごとに3世代までtestcapt.pcapファイルに保存します。
ファイルサイズと世代数を制限することで、
長時間キャプチャしてもESXiのディスク領域を溢れさせないようにできます。

~ # tcpdump-uw -i vmk0 -C 1M -W 3 -w testcapt.pcap

~ # ls -lh testcapt*
-rw-r--r--    1 root     root      976.7K Nov 23 15:23 testcapt.pcap0
-rw-r--r--    1 root     root      245.6K Nov 23 15:24 testcapt.pcap1
-rw-r--r--    1 root     root      976.6K Nov 23 15:22 testcapt.pcap2

指定した世代数まで到達すると、ローテーションして、
古いファイルを上書きしてしまいます。
上記も、3世代(-W 3)を回りきって、2つ目のファイルが上書きされているところです。


うっかり、せっかくキャプチャした結果が消えないように、
サイズと世代数を工夫したり、退避したりする必要があります。

Version history
Revision #:
1 of 1
Last update:
‎11-23-2012 08:11 AM
Updated by: