ESXi の pktcap-uw コマンドでパケットキャプチャをするときなどに、
VM の vNIC が接続している Port ID を指定することがあります。
Port ID は、esxtop の Network パネル(esxtop を起動して「n」キー)から確認することができますが、
VM の名前が長すぎたり、vNIC の数が多すぎたりすると Port ID の判別が大変です。
下記の例だと「dev-test-deploy-vm-001」という VM が起動していますが、
名前が長いため、VM 名の末尾や eth0~eth2 といった対応する vNIC が見切れています。
本来の見切れない状態では、下記のように VM 名と vNIC が表示されます。
vm12 という短い名前の、vNIC が1つだけある VM では下記のように見えます。
そこで、esxcli で Port ID を確認してみようと思います。
まず、VM の一覧を表示します。
今回の環境では、ESXi ホストに 1台だけ VM が起動しています。
- vNIC は 3つ接続されています。
- VM の World ID がわかります。
[root@hv-n13:~] esxcli network vm list
World ID Name Num Ports Networks
-------- ---------------------- --------- --------------------------------------------
34601814 dev-test-deploy-vm-001 3 VM Network, dvportgroup-491, dvportgroup-464
esxcli network vm port list で Port ID を確認してみます。
下記のように VM の Port ID が表示されます。
MAC アドレスなども一緒に表示されるので、esxtop よりも見分けやすいと思います。
[root@hv-n13:~] esxcli network vm port list -w 34601814
Port ID: 33554440
vSwitch: vSwitch0
Portgroup: VM Network
DVPort ID:
MAC Address: 00:50:56:8a:d3:cc
IP Address: 0.0.0.0
Team Uplink: vmnic0
Uplink Port ID: 33554434
Active Filters: vmware-sfw
Port ID: 67108884
vSwitch: vds01
Portgroup: dvportgroup-491
DVPort ID: 71
MAC Address: 00:50:56:8a:f8:64
IP Address: 0.0.0.0
Team Uplink: vmnic1
Uplink Port ID: 67108866
Active Filters: vmware-sfw, dvfilter-generic-vmware-swsec
Port ID: 67108885
vSwitch: vds01
Portgroup: dvportgroup-464
DVPort ID: 8
MAC Address: 00:50:56:8a:80:54
IP Address: 0.0.0.0
Team Uplink: vmnic1
Uplink Port ID: 67108866
Active Filters: vmware-sfw, dvfilter-generic-vmware-swsec
そして pktcap-uw で、この Port ID を指定したりします。
[root@hv-n13:~] pktcap-uw --switchport 67108885 --dir 1 -o /vmfs/volumes/ds_nfs_lab01/vnic3-67108885.pcap
ちなみに今回の環境は ESXi 6.5 U1 でした。
[root@hv-n13:~] vmware -vl
VMware ESXi 6.5.0 build-5969303
VMware ESXi 6.5.0 Update 1
以上、esxcli で VM の Port ID を確認してみる話でした。