Setting up Internal vSwitch NATing in Hyper-V

Powershell FTW

Being used to VMware Workstation, where NATing is a few GUI clicks away, I couldn’t find a GUI way of configuring it in Hyper-V.

inside local outside hokey pokey; Turn yourself around

I don’t mind the command line and actually prefer it sometimes. The PowerShell equivent didn’t end up being too bad. Not like the first time doing Cisco NAT from the CLI 🙂

Setting up NAT

The first code block is the generic commands from the Microsoft reference document the second one is what I used in my lab.

# Create Internal vSwitch for NAT
New-VMSwitch -SwitchName "SwitchName" -SwitchType Internal
# Configure the NAT gateway
New-NetIPAddress -IPAddress <NAT Gateway IP> -PrefixLength <NAT Subnet Prefix Length> -InterfaceIndex <ifIndex>
# Configure the NAT network
New-NetNat -Name <NATOutsideName> -InternalIPInterfaceAddressPrefix <NAT subnet prefix>


New-VMSwitch –SwitchName “NATvSwitch” –SwitchType Internal
New-NetIPAddress –IPAddress -PrefixLength 24 -InterfaceAlias "vEthernet (NATSwitch)"
New-NetNat –Name myNATnetwork –InternalIPInterfaceAddressPrefix


Windows (WinNAT) only supports one internal NAT subnet prefix, trying to create multiple NATs will place the system into an unknown state. 1.


Scott Bollinger / kfalconspb /