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
ExposeVirtualizationExtensions が False になっていることを確認したら、以下のコマンドで 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 を追加します。
- サーバーマネージャー → 管理 → 役割と機能の追加
- 役割ベースまたは機能ベースのインストール を選択
- サーバーとして自分自身を選択
- Hyper-V にチェックを入れる
- 仮想マシンの移行(ライブ マイグレーション)は今回は不要なのでスキップ
- 仮想ハードディスクと構成ファイルの保存先として D ドライブを指定
D ドライブの作成(事前準備):
D ドライブがまだ初期化されていない場合は、ディスクの管理から以下の手順で作成します。
- ディスクの管理を開く
- 未割り当てのディスクを初期化(GPT 形式を推奨)
- 新しいシンプル ボリュームを作成
- ドライブ レターを割り当て(D が使用中の場合は E など)
- 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 を作成します。
| 項目 | 設定値 |
|---|---|
| OS | Windows 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 からインターネットへの接続が正常に機能しています。
まとめ
今回の作業で行ったことは以下のとおりです。
- Nested Hyper-V 用 VM の作成: 十分なスペック(メモリ・CPU・ディスク)を割り当てた仮想マシンを作成
- Nested Hyper-V の有効化:
Set-VMProcessor -ExposeVirtualizationExtensions $trueで有効化 - Windows Server 2022 のインストール: 検証基盤の OS としてインストール
- Hyper-V 役割の追加: VM 内に Hyper-V をインストールし、Nested Hyper-V として機能させる
- NestedNatSwitch の作成: 内部仮想スイッチを作成し、
10.1.1.254を割り当て - NAT の構成:
New-NetNatコマンドレットで10.1.1.0/24ネットワークの NAT を定義 - ゲスト VM の作成・疎通確認: NAT を経由してインターネットへのアクセスを確認
この基盤が完成したことで、次回以降は Nested Hyper-V の上に複数の Windows Server を展開し、Active Directory などの企業向け環境を構築していく準備が整いました。次回は効率的に複数の VM を展開するための仕組み作りを行っていく予定です。