Nested Hyper-Vで検証基盤を準備する — 企業でよくあるWindows・M365環境を構築してみるシリーズ Part1

この記事の内容

  • Nested Hyper-V(ネスト仮想化)とは何か、有効化の手順を解説します
  • Windows Server 2022 をインストールした仮想マシンを検証基盤として構築します
  • 内部仮想スイッチと PowerShell の New-NetNat コマンドレットを使い、NAT ネットワークを構成します
  • ゲスト VM からインターネットへの疎通確認まで行います
  • 次回以降、この基盤の上に Active Directory など企業向け環境を展開していきます

シリーズの概要

このシリーズでは、Windows Server と Microsoft 365 を使った典型的な企業向け環境を構築し、ポイントを解説していきます。冗長化も考慮しながら進めていく予定です。

本記事は第1回として、後続の環境構築すべての土台となる Nested Hyper-V の検証基盤 を整えます。検証機材として Lenovo ThinkSystem SE350 を使用しています。


Nested Hyper-V とは

Nested Hyper-V(ネスト仮想化)とは、仮想マシン上で Hyper-V を動作させることです。つまり、すでに仮想化されている環境の中に、さらに仮想マシンを作成できるようになります。

有効化するには Set-VMProcessor コマンドレットに -ExposeVirtualizationExtensions $true を指定して実行します。これにより、仮想マシンに仮想化支援機能が公開され、その中で Hyper-V が利用できるようになります。


ネットワーク構成の全体像

構築するネットワーク構成は以下のとおりです。

既存の構成(SE350 上):

  • 物理ネットワーク → SE350(物理マシン)→ インターネット
  • SE350 上に Hyper-V が有効化済み
  • NatSwitch という名前の NAT スイッチが作成済み(192.168.x.x/16 のネットワーク)
  • Hyper-V ホストは NatSwitch 上に仮想 NIC を持ち、192.168.x.254 を割り当て済み

今回新たに構築する構成:

  • Nested Hyper-V を有効にした仮想マシン(Hyper-V ホストとして機能)を 1 台作成
  • その VM に NatSwitch 側の IP アドレスを固定割り当て(192.168.196.x 付近)
  • VM 内に内部仮想スイッチ NestedNatSwitch を新規作成(10.1.1.0/24 のネットワーク)
  • NestedNatSwitch に接続する仮想 NIC に 10.1.1.254 を割り当て
  • PowerShell で NAT を構成し、ゲスト VM が 10.1.1.254 をゲートウェイとしてインターネットへ出られるようにする

この構成により、ゲスト VM → Nested Hyper-V ホスト(NAT)→ 物理 Hyper-V ホスト(NAT)→ インターネット という 2 段階の NAT 経路が完成します。


手順1: Nested Hyper-V 用 VM の作成

Hyper-V マネージャーから新規仮想マシンを作成します。

項目設定値
名前NestedHyperV-VM(任意)
世代第 2 世代
メモリ200 GB 程度(多数の VM を起動する想定)
仮想プロセッサ30 個程度(環境に応じて調整)
ネットワークNatSwitch(既存の NAT スイッチ)
OS ディスク動的拡張 VHD
データ ディスク1000 GB(ゲスト VM 用、動的拡張)

仮想マシンを作成したら、OS をインストールする前に Nested Hyper-V を有効化します。


手順2: Nested Hyper-V の有効化

Hyper-V ホスト(SE350)上で PowerShell を管理者として実行し、以下のコマンドを実行します。

まず、対象の VM オブジェクトを変数に格納します。

$vm = Get-VM -Name "NestedHyperV-VM"

現在のプロセッサ設定を確認します。

Get-VMProcessor -VM $vm | Format-List

ExposeVirtualizationExtensionsFalse になっていることを確認したら、以下のコマンドで True に変更します。

Set-VMProcessor -VM $vm -ExposeVirtualizationExtensions $true

再度確認すると、設定が変更されたことを確認できます。

Get-VMProcessor -VM $vm | Format-List

これで、この仮想マシン内で Hyper-V が使えるようになりました。


手順3: Windows Server 2022 のインストール

Visual Studio サブスクリプションまたは評価版から Windows Server 2022 の ISO ファイルをダウンロードします。ISO ファイルは約 4.8 GB あります。

注意: 日本語版を選ぶと動作しないケースがある場合があります。トラブルを避けたい場合は英語版を選ぶのが無難ですが、今回は日本語版で進めます。

VM の DVD ドライブに ISO を指定し、起動します。セットアップウィザードでは以下の選択を行います。

  • エディション: Windows Server 2022 Datacenter(デスクトップ エクスペリエンス)
    • GUI 付きの方が解説しやすいため、デスクトップ エクスペリエンスを選択します
  • インストールの種類: カスタム(新規インストール)
  • インストール先: OS 用ディスク(C ドライブ用)を選択

インストール完了後、管理者パスワードを設定します。パスワード入力時は表示ボタンで意図したキーボードレイアウトになっているか確認することをお勧めします。

インストール完了後、コンピューター名を変更しておきます。


手順4: ネットワーク設定(NatSwitch 側 NIC)

VM 起動後、ネットワークアダプターのプロパティを開き、NatSwitch に接続している NIC に固定 IP を割り当てます。

項目設定値
IP アドレス192.168.196.x(任意)
サブネット マスク255.255.0.0(/16)
デフォルト ゲートウェイ192.168.x.254
DNS サーバー既存ネットワークの DNS サーバー

設定後、ブラウザを開いてインターネットへの接続を確認します。


手順5: VM 内に Hyper-V の役割を追加

VM 内でサーバーマネージャーを開き、役割と機能の追加 から Hyper-V を追加します。

  1. サーバーマネージャー → 管理 → 役割と機能の追加
  2. 役割ベースまたは機能ベースのインストール を選択
  3. サーバーとして自分自身を選択
  4. Hyper-V にチェックを入れる
  5. 仮想マシンの移行(ライブ マイグレーション)は今回は不要なのでスキップ
  6. 仮想ハードディスクと構成ファイルの保存先として D ドライブを指定

D ドライブの作成(事前準備):

D ドライブがまだ初期化されていない場合は、ディスクの管理から以下の手順で作成します。

  1. ディスクの管理を開く
  2. 未割り当てのディスクを初期化(GPT 形式を推奨)
  3. 新しいシンプル ボリュームを作成
  4. ドライブ レターを割り当て(D が使用中の場合は E など)
  5. NTFS でクイック フォーマット

補足: Azure への移行を考慮する場合、D ドライブは一時ドライブとして予約されているため、使用を避けることをお勧めします。

Hyper-V のインストール完了後、再起動します。インストールが正常に完了すると、ツールメニューに Hyper-V マネージャー が表示されます。


手順6: Nested NAT スイッチの作成

VM 内の Hyper-V マネージャーで 仮想スイッチ マネージャー を開き、内部仮想スイッチを作成します。

項目設定値
種類内部
名前NestedNatSwitch(任意)

仮想スイッチの種類について:

  • 外部: 物理 NIC に直接ブリッジする
  • 内部: Hyper-V ホストと仮想マシンの両方がアクセス可能
  • プライベート: 仮想マシン同士のみ通信可能(ホストはアクセス不可)

今回はゲスト VM からホストを経由してインターネットへ出すため、内部 を選択します。

仮想スイッチを作成すると、ホスト上に vEthernet (NestedNatSwitch) という仮想 NIC が追加されます。この NIC に IP アドレスを設定します。

項目設定値
IP アドレス10.1.1.254
サブネット マスク255.255.255.0(/24)
デフォルト ゲートウェイ設定しない(既存 NIC が持っているため)
DNS サーバー設定しない

重要: 複数の NIC がある場合、デフォルト ゲートウェイは 1 つの NIC にのみ設定してください。


手順7: NAT の構成(PowerShell)

PowerShell を管理者として実行し、NAT を構成します。

まず現在の NAT 設定を確認します(初回は何も表示されません)。

Get-NetNat

NAT を新規作成します。InternalIPInterfaceAddressPrefix には、NAT 対象となるネットワークアドレスを指定します。

New-NetNat -Name "LocalNat" -InternalIPInterfaceAddressPrefix "10.1.1.0/24"

設定を確認します。

Get-NetNat

LocalNat が定義されたことを確認できれば、NAT の設定は完了です。


手順8: ゲスト VM の作成と疎通確認

Nested Hyper-V 上に検証用のゲスト VM を作成します。

項目設定値
OSWindows Server 2022
世代第 2 世代
メモリ10 GB
ネットワークNestedNatSwitch

注意: ネットワークスイッチの選択で、必ず NAT が構成されている NestedNatSwitch を選んでください。

ISO ファイルは Nested Hyper-V ホストにコピーして指定します。コピー元の物理ホスト(SE350)への管理共有(\\192.168.x.254\d$ など)を使ってファイルを取得できます。

OS インストール完了後、ゲスト VM のネットワーク設定を行います。

項目設定値
IP アドレス10.1.1.x(任意)
サブネット マスク255.255.255.0
デフォルト ゲートウェイ10.1.1.254
DNS サーバー既存ネットワークの DNS サーバー

疎通確認:

まず Nested Hyper-V ホスト(ゲートウェイ)への ping を確認します。ホスト側の Windows Defender ファイアウォールで ICMPv4 エコー要求を有効化しておく必要があります。

ping 10.1.1.254

続いて外部ネットワークへの疎通を確認します。

ping 192.168.x.1

最後に名前解決とインターネット接続を確認します。

ping 8.8.8.8
nslookup www.example.com

すべての ping が成功すれば、ゲスト VM からインターネットへの接続が正常に機能しています。


まとめ

今回の作業で行ったことは以下のとおりです。

  1. Nested Hyper-V 用 VM の作成: 十分なスペック(メモリ・CPU・ディスク)を割り当てた仮想マシンを作成
  2. Nested Hyper-V の有効化: Set-VMProcessor -ExposeVirtualizationExtensions $true で有効化
  3. Windows Server 2022 のインストール: 検証基盤の OS としてインストール
  4. Hyper-V 役割の追加: VM 内に Hyper-V をインストールし、Nested Hyper-V として機能させる
  5. NestedNatSwitch の作成: 内部仮想スイッチを作成し、10.1.1.254 を割り当て
  6. NAT の構成: New-NetNat コマンドレットで 10.1.1.0/24 ネットワークの NAT を定義
  7. ゲスト VM の作成・疎通確認: NAT を経由してインターネットへのアクセスを確認

この基盤が完成したことで、次回以降は Nested Hyper-V の上に複数の Windows Server を展開し、Active Directory などの企業向け環境を構築していく準備が整いました。次回は効率的に複数の VM を展開するための仕組み作りを行っていく予定です。