Hyper-VでNAT接続できるスイッチを作成する方法

Hyper-VでNAT接続できるスイッチを作成する方法。

Windows 11のHyper-Vでは、デフォルトでNAT接続が可能な仮想スイッチ「Default Switch(既定のスイッチ)」が利用できますが、Default Switchは、DHCPサーバー機能が利用できる便利さがある反面、ホストマシンが再起動するたびにIPアドレス帯が変更されてしまうため、仮想マシンに固定IPアドレスを割り当てたい場合に不便です。

そこでここでは、Windows 11のHyper-VでNAT接続できる仮想スイッチをコマンド操作で作成する方法を解説します。

1.内部仮想スイッチの作成

まず、管理者としてターミナル(PowerShell)を起動し、以下のコマンドレットを実行して内部仮想スイッチを作成します。(SwitchNameは、任意の分かりやすい名前を指定します。)

> New-VMSwitch -SwitchName WinNAT1 -SwitchType Internal

2.NATゲートウェイを構成

次に、作成した仮想スイッチにIPアドレスを割り当てます。このIPアドレスが、仮想マシンから見た場合のデフォルトゲートウェイになります。

Get-NetAdapterコマンドレットを実行し、上で作成した仮想スイッチのネットワークインターフェース番号(ifIndex)を確認します。

> Get-NetAdapter

Name                      InterfaceDescription                    ifIndex Status       MacAddress             LinkSpeed
----                      --------------------                    ------- ------       ----------             ---------
vEthernet (WinNAT1)       Hyper-V Virtual Ethernet Adapter #2          31 Up           00-12-34-56-78-90        10 Gbps
vEthernet (既定のスイ...  Hyper-V Virtual Ethernet Adapter             15 Up           12-34-56-78-90-12        10 Gbps
イーサネット              Realtek PCIe GBE Family Controller            5 Up           23-45-67-89-01-23         1 Gbps

ネットワークインターフェース番号(ifIndex)を確認したら、New‐NetIPAddressコマンドレットで、NATゲートウェイを構成します。下のコマンドは、ゲートウェイのIPアドレスを「172.16.1.1/24」とした場合の実行例です。

> New-NetIPAddress -IPAddress 172.16.1.1 -PrefixLength 24 -InterfaceIndex 31

3.NATネットワークの作成

次に、以下のコマンドを実行して、NATの対象となるIPアドレスの範囲を指定します。

> New-NetNat -Name WinNAT1 -InternalIPInterfaceAddressPrefix 172.16.1.0/24

以上でNATの設定完了です。

「172.16.1.1/24」「172.16.2.1/24」「172.16.3.1/24」というように複数の内部仮想スイッチを作成して、それらを全部含むようなアドレスマスクをNew-NetNatコマンドレットで指定(172.16.0.0/16)すれば、それらを全部まとめてNATの変換対象にするといったこともできます。

あとは、作成した内部仮想スイッチを仮想マシンのネットワークインターフェースとして割り当てるだけです。なお、作成した内部仮想スイッチではDHCP機能はないので、仮想マシンのIPアドレスなどは手動で設定する必要があります。

    備考

    NATネットワークの状態確認

    現在のNATネットワークの設定状況を確認するときは、以下のコマンドレットを実行します。

    > Get-NetNat

    動作状況を確認するときは、以下のコマンドレットを実行します。

    > Get-NetNatSession

    NATネットワークの削除

    NATネットワークの設定を削除したいときは、以下のコマンドレットを実行します。

    > Remove-NetNat -Name WinNAT1