VMCとかESXiでのパケットキャプチャ
こんばんわ。
ネットワーク安定してますか。
困ったときに使える小技として、パケットキャプチャの手順を(己のために)記しておきます。
■VMC側
VMC側は管理コンソールから「Port Mirroring」を使います。
Sourceでパケットをミラーする「Segment Port」(NIC)を選択します。
(パケットを解析したい元の仮想マシンを選択します。)
NICが複数ある場合は、「View Detail」から接続されたセグメント情報を見れるので、そこからミラーしたいNICを判別します。
つづいてDestination側。こちらは、例えばWiresharkなどをインストールしたWindowsサーバを指定します。
↑で設定したミラートラフィックがこちらに流れてきます。
Destination側は、グループでの指定になるので、グループが内場合は赤枠から作成します。
こんな感じで、Wiresharkサーバ側のIPアドレスを入れます。
グループを作ったら、先程の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というのは双方向を意味しています。
より詳細のオプションはこちらを参照
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などで開いてて、どんなパケットが流れているか、はたまたロストしているか解析するわけですね。
なにかのお役に立てれば。