いとおかし仮想化

VMware製品に関する情報発信など

VMCとかESXiでのパケットキャプチャ

こんばんわ。

 

ネットワーク安定してますか。

困ったときに使える小技として、パケットキャプチャの手順を(己のために)記しておきます。

 

 

■VMC側

VMC側は管理コンソールから「Port Mirroring」を使います。

f:id:TANGWAAAA:20220111140844p:plain

Sourceでパケットをミラーする「Segment Port」(NIC)を選択します。

(パケットを解析したい元の仮想マシンを選択します。)

f:id:TANGWAAAA:20220111140943p:plain

NICが複数ある場合は、「View Detail」から接続されたセグメント情報を見れるので、そこからミラーしたいNICを判別します。

f:id:TANGWAAAA:20220111141213p:plain

 

つづいてDestination側。こちらは、例えばWiresharkなどをインストールしたWindowsサーバを指定します。

↑で設定したミラートラフィックがこちらに流れてきます。


Destination側は、グループでの指定になるので、グループが内場合は赤枠から作成します。

f:id:TANGWAAAA:20220111141757p:plain

こんな感じで、Wiresharkサーバ側のIPアドレスを入れます。

f:id:TANGWAAAA:20220111141915p:plain

グループを作ったら、先程のDestination設定で、そのグループを選択しApplyとすれば、トラフィックミラーリングされます。

 

あとはDestination側のサーバでWireshark等を起動すればパケットが見れるはずです!

 

■オンプレESXi側

オンプレミス側は、NSX Autonomous EdgeやHCX NET-EXTが稼働しているESXiにSSHで接続し、コマンドを実行することでパケットキャプチャが可能です。

 

最終的に実施するコマンドはコレ

# pktcap-uw --switchport [NICのPort ID] --ip [フィルタしたIPアドレス] --dir 2  -o "/vmfs/volumes/datastore/[保存先]/xxxxxxxxxx.pcap"

dir 2というのは双方向を意味しています。

 

より詳細のオプションはこちらを参照

パケットのキャプチャ用 pktcap-uw コマンドの構文

パケット フィルタ用 pktcap-uw オプション

 

NICのPort IDの判別のためのコマンドはコレ

# net-stats -l| grep [仮想マシン名]

 

複数NICがあるマシンでは、複数の表示がありますので、MACアドレスどっちがどっちか判別しましょう

PortNum   Type SubType   SwitchName       MACAddress         ClientName

67108935     5       7            vDS01               00:50:56:00:00:15      wintest
67108936     5       7            vDS01               00:50:56:00:00:01      wintest

(1行目がパケットキャプチャで指定するID)

 

ちなみに、取得したパケットキャプチャはWiresharkでも見れますし、簡易的に以下コマンドでもデコードできます。

# tcpdump-uw -r [ファイル名]

 

これで取得したパケットキャプチャをWiresharkなどで開いてて、どんなパケットが流れているか、はたまたロストしているか解析するわけですね。

 

なにかのお役に立てれば。