仮想スイッチのロードバランシングの設定において、[送信元の仮想ポートに基づいた
ルート] や [送信元 MAC ハッシュに基づいたルート] を使用している際に、
仮想マシンがどの vmnic を使用して通信を行っているのかを確認する方法について
記載します。
仮想マシンがどの vmnic を使用して通信を行っているか確認する
以下のような仮想スイッチを使用している場合に、仮想マシンがどの vmnic を使用
して通信を行っているのかを確認する方法について記載します。
esxtop を使用した確認方法
esxtop で n キー(ネットワークパネル) を押下し、[TEAM-PNIC] の覧を確認すること
で仮想マシンがどの vmnic を使用しているのかを特定することができ、以下の画像
では各仮想マシンが vmnic0, vmnic1, vmnic3 を使用していることが分かります。
(以下環境の仮想マシンは主に Nested ESXi になってます。)
<参考>
・ネットワーク パネル
https://docs.vmware.com/jp/VMware-vSphere/7.0/com.vmware.vsphere.monitoring.doc/GUID-1A8CCD57-7919-42EA-835A-F12C16E669B4.html
vmnic1, vmnic3 をリンクダウンさせてみた場合、以下のように vmnic0 のみが
使用されるようになったことが分かります。
netdbg vswitch instance list コマンドを使用した確認方法
[netdbg vswitch instance list] コマンドを使用して “Uplink” の覧から各仮想マシン
がどの vmnic を使用しているかを特定することができます。
[netdbg vswitch instance list] コマンドの場合は、esxtop と違い、MAC アドレス
も表示されるので、複数の vNIC を構成した仮想マシンでは本コマンドでの確認の方
が分かりやすいと思います。
また、esxtop はデフォルトで 5 秒間隔で情報が更新されるのに対し、[netdbg vswitch
instance list] コマンドの場合は、コマンド実行時点での情報が取得されます。
仮想マシンの World ID から確認する
本手順では、仮想マシンの World ID から各仮想マシン毎の vNIC でどの vmnic
が使用しているのかを確認する方法となります。
まずは、以下のコマンドで仮想マシンの World ID を確認します。
esxcli network vm list
対象の仮想マシンの World ID を確認し、以下コマンドを実行する。
esxcli network vm port list -w <World ID>
コマンドの実行結果より、[Team Uplink] の箇所を確認すると、当該仮想マシン
に構成された vNIC 毎にどの vmnic が使用されているのかを確認できます。
(MAC アドレスからどの vNIC かを判別できると思います。)
雑談
ロードバランシングポリシーに [明示的なフェイルオーバー順序を使用] を設定して
いる場合、有効なアダプタ(アクティブな)に複数の vmnic を設定したとしても、
最上位の vmnic のみを使用して通信を行います。(負荷分散は行いません。)
例として、以下のような設定の場合は、vmnic3 のみを使用して通信を行うように
なり、vmnic3 がダウンしたら vmnic1、vmnic1 もダウンしたら vmnic0 を使用
するといった動作になります。
<参考>
明示的なフェイルオーバー順序を使用
https://docs.vmware.com/jp/VMware-vSphere/7.0/com.vmware.vsphere.networking.doc/GUID-41162039-13CB-48C9-A1F4-6F52EABEDC6D.html
IP ハッシュに基づいたルートでどの vmnic が使用されるかについては、以下で
記事にしています。