[VMware vSphere] IP ハッシュに基づいたルートでどの vmnic が使用されるか計算してみた

今回は IP ハッシュに基づいたルートでどの vmnic が使用されるか計算してみた結果
について記載します。

<参考>
・Troubleshooting IP-Hash outbound NIC selection (1007371)
 https://kb.vmware.com/s/article/1007371

IP ハッシュに基づいたルートでどの vmnic が使用されるかを計算

検証に使用する環境

まずは今回使う検証環境について記載します。

ESXi のネットワークは vmnic1, vmnic3 でチーミングを組み、ロードバランシング
ポリシーに [IP ハッシュに基づいたルート] を設定しています。
(対向の物理 Switch では、静的 LAG を構成してます。)

送信元の IP アドレスは [TestNetwork] に接続された WInodws10 に設定した
IP アドレス 192.168.0.25、宛先の IP アドレスが 142.250.196.99 (Google)
と 182.22.28.252 (Yahoo) で確認してみます。

<環境要約>
・vmnic1, vmnic3 がアップリンクに設定された vSwitch
・送信元の IP アドレスは 192.168.0.25
・宛先の IP アドレスは 142.250.196.99 (Google), 182.22.28.252 (Yahoo)

今回 vmnic1, vmnic3 の 2 つの vmnic がアップリンクに設定されており、
最初のアップリンク(vmnic1) に 0、2 番目のアップリンク(vmnic3) に 1 の値
が割り当てれらます。

また、送信元の IP アドレス及び宛先の IP アドレスを以下のように予め 16 進数
に変換しておきます。

192.168.0.25 -> 0xc0a80019
142.250.196.99 -> 0x8efac463
182.22.28.252 -> 0xb6161cfc
検証結果

では、送信元 IP アドレスは 192.168.0.25 -> 宛先の IP アドレスは 142.250.196.99
への通信には、どの vmnic が使用されるか計算を行ってみます。

計算には Windows 標準の電卓を使用します。
(Windows 10 の場合、標準電卓からプログラマーを選択することで可能と思います。)

まずは、電卓にて [16 進数] と [Qword] を選択します。

送信元の IP アドレスを 16 進数の形式で入力し、[Xor] を押します。

宛先の IP アドレスを 16 進数の形式で入力し、[=] を押します。

[Mod] を押します。

アップリンク数の “2” を入力し、[=] を押します。

すると、値 “0” が結果として出ます。
“0” は vmnic1 が該当しているので、送信元 IP アドレス “192.168.0.25” から
宛先 IP アドレス “142.250.196.99” への通信は、vmnic1 を使用するという
ことが分かります。

実際に ESXi からパケットキャプチャを取得すると、vmnic1 を使用して
通信が行われていることが分かります。

pktcap-uw --uplink vmnic1 --dir 1 --srcip 192.168.0.25 -o /vmfs/volumes/datastore1/vmnic1.pcap

送信元 IP アドレス “192.168.0.25” から宛先 IP アドレス “182.22.28.252”
への通信も上記と同様に計算を行うと、結果が “1” となります。
そのため、vmnic3 を使用して通信を行うということが分かります。

参考

[送信元の仮想ポートに基づいたルート] や [送信元 MAC ハッシュに基づいたルート]
を使用している際に、どの vmnic を使用して通信を行っているのかを確認する方法に
ついては以下で記事にしています。

タイトルとURLをコピーしました