Nested Virtualization環境におけるvSwitchの設定
前回はESXi on ESXi環境において、vt-xを仮想マシン上のESXiにも利用可能にする設定をしました。
今回はの仮想マシン上のESXiに作成した仮想マシンと通信を行うための設定についてです。
前回の記事はこちらzokibayashi.hatenablog.com
ESXiの通信の流れ
ESXiでは物理NIC(vmnic)と仮想マシンのNICは、仮想スイッチ(vSwitch)を介して通信されます。
仮想スイッチの種別は標準スイッチと分散スイッチがあり、前者はVLANが切れる安価なスイッチ、
後者は複数のESXiで構成が共有できたり、ミラーが組めたりする高機能なスイッチです。
前者は無償のESXi Hypervisorから使えますが、後者はEnterprise Plusでないと使えません。
詳しい内容はVMWare社のblogを見ると理解が深まると思います。
新卒 SE 社員が贈る vSphere のキソ!第2回 ~仮想環境におけるネットワークとストレージ~ | Japan Cloud Infrastructure Blog - VMware Blogs
押さえておきたいvSphere の基本~ネットワーク編 第2回~ | Japan Cloud Infrastructure Blog - VMware Blogs
Nested環境でゲストOSと通信できない
Nested環境における通信の流れは基本的に上記のフローが2段になるという考えで問題ありません。
ただし、仮想スイッチを2つ経由して通信しているという点に注意が必要です。
例えば、、、
Nested上のESXiに仮想マシンを作成し、IP(192.168.10.31)を付与した状態で
デフォルト設定で外部から通信をしようとすると以下のような感じになります。
C:\Users\PC>ping 192.168.10.31 192.168.10.31 に ping を送信しています 32 バイトのデータ: 要求がタイムアウトしました。 要求がタイムアウトしました。 要求がタイムアウトしました。 要求がタイムアウトしました。 192.168.10.31 の ping 統計: パケット数: 送信 = 4、受信 = 0、損失 = 4 (100% の損失)、
これは、プロミスキャス・モードが有効になっていないことに起因します。
つまり、2段目のvSwitchに繋がっている仮想マシンのポートが1段目のvSwitchでは検知することができないため、1段目のvSwitchをプロミスキャス・モードにしないと2段目に転送されない、ということです。
プロミスキャス・モード(無差別モード)を設定する
ESXiではポートグループまたはvSwitchに対してプロミスキャス・モードを設定可能です。
その時の挙動については公式サイトに解説があります。
また、設定方法についても公式サイトに解説があります。
ポートグループに対して設定した場合は以下のようになります。
無差別モードを設定することでping通信が正常に行えるようになります。
C:\Users\PC>ping 192.168.10.31 192.168.10.31 に ping を送信しています 32 バイトのデータ: 192.168.10.31 からの応答: バイト数 =32 時間 =3ms TTL=62 192.168.10.31 からの応答: バイト数 =32 時間 =3ms TTL=62 192.168.10.31 からの応答: バイト数 =32 時間 =3ms TTL=62 192.168.10.31 からの応答: バイト数 =32 時間 =3ms TTL=62 192.168.10.31 の ping 統計: パケット数: 送信 = 4、受信 = 4、損失 = 0 (0% の損失)、 ラウンド トリップの概算時間 (ミリ秒): 最小 = 3ms、最大 = 3ms、平均 = 3ms