2018年7月11日水曜日

Windows Server 2016のHyper-V: NATその他

Windows Server 2016のHyper-Vにはいくつかの新機能が追加されています。特に便利だと思った機能を紹介します。


Nested Hyper-V

Hyper-V仮想マシン上でHyper-Vが動作します。

以下のPowerShellコマンドレットを実行して、親となる仮想マシンを設定する必要があります。

Set-VMProcessor -VMName VM1 -ExposeVirtualizationExtensions $true

ここでVM1が、Hyper-Vを起動する仮想マシン(Nested Hyper-V)の名前です。


物理マシンリソースを使い込まないように制限

Hyper-Vはそのままでも物理マシンのリソースを使い切ったりはしないと聞いていますが、明示的に物理マシンのリソースを保護する機能が追加されました。以下のPowerShellコマンドレットを実行してください。

Set-VMProcessor -VMName VM1 -EnableHostResourceProtection $true

ここでVM1は、リソースの使用制限をかける仮想マシンの名前です。


内部仮想スイッチをNATデバイスとして構成(WinNAT)

VMware Workstationなどではおなじみの機能です。仮想マシンに独立したプライベートネットワークを与え、物理マシンでNAT(NAPT)を有効にすることはよくあります。

Hyper-Vでは、内部仮想スイッチに対してNATを構成できます。以下のPowerShellコマンドレットを実行してください。

New-NetNat -Name mynat -InternalIPInterfaceAddressPrefix 172.16.1.0/24

ここで、172.16.1.0/24はプライベートネットワークの範囲を示します。
また、mynatはNATに対して付けられた名前です。

これで、内部ネットワークに割り当てられた物理マシンの仮想NICがルーターとなります。内部仮想スイッチに接続された仮想マシンのデフォルトゲートウェイとして指定してください。

なお、DHCPサーバーの機能は持たないため、IPアドレスの管理やDNSサーバーアドレスの設定は手動で行なうか、別途DHCPサーバーを立てる必要があります。

現時点では、インテルのプロセッサが必須で、Hyper-Vの構成バージョンは8(以上)でなければいけません。