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 <数字> | キャプチャ対象のポート番号を指定 |
tcp | TCPの通信だけキャプチャ |
udp | UDPの通信だけキャプチャ |
例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つ目のファイルが上書きされているところです。
うっかり、せっかくキャプチャした結果が消えないように、
サイズと世代数を工夫したり、退避したりする必要があります。
Comments