vSphere環境で動作検証を行いたい場合、物理で行う場合サーバーやストレージなどHWが環境分必要となってきますが、Nested ESXiを利用するとすでにあるHWを利用し仮想的にvSphereの検証環境を用意することができます。Nested ESXiを利用した検証環境の構築は、様々なvSphereのテクニックを利用しているため、構築方法についてまとめてみたいと思います。
構成
- vCenter 7.0 U2
- ESXi 7.0 Update 3 Virtual Appliance
事前準備
トランクポートのポートグループの作成
Nested ESXi上の仮想マシンとネットワーク疎通を取るために、トランクポートのポートグループを作成します。
- vSphere Clientにログインします。
- vDSを右クリックし、新規ポートグループをクリックします。
- 新規分散ポート グループにて、VLAN タイプにVLANトランクを選択します。
- デフォルト ポリシー設定をカスタマイズしますを選択し、次へをクリックします。
- セキュリティにて、無差別モードと偽装転送を承諾に選択します。
- 他の設定はすべてデフォルトのままとし、完了をクリックします。
DHCPサーバーの用意
Nested ESXiのIPアドレスの設定を楽にするために、DHCPサーバーを用意しておきます。
自宅ではEdgeRouterのDHCPを利用していますが、VyOSなどでDHCPサーバーを利用するのも良いかと思います。
Nested ESXi Virtual Applianceのダウンロード
まずは、以下のサイトからNested ESXi Virtual Applianceをダウンロードします。
VMwareの中の人が、Nested ESXiに必要な設定入れビルドしたovaイメージを公開してくれています。
コンテンツライブラリの公開ライブラリも公開されています。
Nested ESXi Virtual Applianceのデプロイ
Nested ESXi Virtual ApplianceをvCenterにデプロイしていきます。
- vSphere Clientにログインします。
- デプロイ先のオブジェクトを選択し、右クリックし、OVF テンプレートのデプロイをクリックします。
- ローカル ファイルでダウンロードしたovaイメージを選択します。
- コンピューティングリソースやストレージを選択します。
- ネットワークの選択で先ほど作成したトランクポートのポートグループを選択します。
- テンプレートのカスタマイズでNetworkingはDHCPを有効にしているため、空白にしておきます。
- テンプレートのカスタマイズでFollow Hardware MAC Addressを有効にしておきます。
- 設定の確認にて、完了をクリックします。
Nested ESXi内部にゲストOSを作成
Nested ESXi内部にゲストOSを作成し、pingを実行します。
- Nested ESXiのHost Clientにログインします。
- ゲストOSが接続するポートグループのVLANIDを検証環境のVLANIDと合わせておきます。
- ゲストOSは軽量のほうがテストしやすいので、Photon OSのovaイメージを利用しデプロイします。
- ゲストOSが起動後、ゲストOS内でpingの応答ができるように、FWの設定を変更します。
- ゲストOSに対してpingを実行し、応答があるか確認します。
ポートグループの動作について確認
セキュリティにて、無差別モードと偽装転送を承諾に選択しましたが、すべて拒否にするとどうなるか確認してみます。 すべて拒否すると、pingの応答が返ってこないことがわかります。
標準スイッチのトラフィックは、仮想マシンのネットワークアダプタの MACアドレスモードの一部を制限することで、レイヤー2攻撃から保護することができます。 vSwitchの各ポート配下ではNested ESXiと、Nested ESXi内部のゲストOSのMACアドレスが使用されるため、Nested ESXiのVMのvNICのMACアドレスとは異なるMACアドレスが送信的や宛先に設定されたEthernetフレームがvNICで送受信されることになります。そのため、標準スイッチのセキュリティオプションにより、フレームが破棄されますが、偽装転送を承諾することでvNICと異なる送信元MACアドレスのフレームが送信を許可し、無差別モードを承諾することで、vNICのMACアドレスと異なる宛先MACアドレスのフレームを受診することができるようになります。
物理スイッチ側の動作について確認
物理スイッチ側でNested ESXiのVMとNested ESXi内部にゲストOSのMACアドレスについて、MACアドレステーブルの確認します。
フレームがNested ESXiと同じポートから送出されていることが分かります。
#show mac address-table 50 0050.5664.ec6e DYNAMIC Gi0/6 #Eested ESXiのvmk0 50 000c.296c.6351 DYNAMIC Gi0/6 #ゲストOSのeth0
Nested ESXiの展開方法について
以前は、Nested ESXiのVMに設定を入れ、テンプレート化しクローンによる展開が可能でしたが、ESXi7.0 Update2以降はクローンの作成が安全ではなくなりました。ESXiのUUIDが重複することで、ESXiからVMFSを共有するとVMFSが破損する可能性があるようです。
利用する検証環境の構成次第では影響が出ないようにできるかもしれないですが、シンプルに対応しようとすると、Nested ESXi Virtual Applianceを電源を一度も上げずにVMのテンプレート化し、構築するたびに設定を入れるのがよさそうに見えています。
How to properly clone a Nested ESXi VM?
また、/Net/FollowHardwareMac
の設定ではvmk0しかMACアドレスをvNICに追従できないため、追加のVMkernelを設定したい場合は、 クローン後に追加する必要があります。