結論から言うと、Hyper-VでもNAPT(IPマスカレード型NAT)は可能です。
ただし、通常のGUI設定だけではできず、PowerShellの New-NetNat を使う方法が一般的です。
NAPTという言葉はあまりUIでは使われず、Hyper-Vでは単に NAT と呼ばれていますが、実装としては ポート変換を含むNAPT です。
構成イメージ
VM (192.168.100.10) │ │Hyper-V Internal Switch │Host (192.168.100.1) │ │ NAT / NAPT │インターネット
ホストが ルータ + NAPT装置 になります。
手順
1 Hyper-VでInternal Switchを作る
Hyper-V Manager↓Virtual Switch Manager↓Internal
例
名前: NATSwitch
2 ホスト側にIPを設定
PowerShell
New-NetIPAddress ` -IPAddress 192.168.100.1 ` -PrefixLength 24 ` -InterfaceAlias "vEthernet (NATSwitch)"
3 NAT (NAPT) を作成
New-NetNat ` -Name VMNAT ` -InternalIPInterfaceAddressPrefix 192.168.100.0/24
これで
VM → 192.168.100.1 → NAPT → Internet
になります。
VM側設定
VMのIP例
IP 192.168.100.10MASK 255.255.255.0GW 192.168.100.1DNS 8.8.8.8
ポートフォワード(必要なら)
例えば
ホスト:2222 → VM:22
Add-NetNatStaticMapping ` -NatName VMNAT ` -Protocol TCP ` -ExternalIPAddress 0.0.0.0 ` -ExternalPort 2222 ` -InternalIPAddress 192.168.100.10 ` -InternalPort 22
注意(Hyper-Vの罠)
Hyper-Vには実は3種類のNAT系構成があります。
ICS NAT(インターネット共有)
New-NetNat(推奨)
Default Switch(Windowsが勝手に作るNAT)
この中で
Default Switch は内部仕様がブラックボックスなのでラボ用途には向きません。
TryHackMeや検証環境なら
Internal Switch + New-NetNat が一番安定します。
この記事へのコメント