In this guide, you will learn how to create a Hyper-V switch that uses NAT for network access.
NAT will provide virtual machines access to network resources (internet access) using the host computers network adapter.
For this guide, I’ll use the below network settings. When the configuration is complete the VMs on the 192.168.100.0/24 network will use the Hyper-V Host IP 192.168.1.4 for accessing the internet.
Step 1: Create an Internal Virtual Switch
Open PowerShell and run the below command. Change “SWITCHNAME” to whatever you want to name your switch, I’ve called mine “nat-switch”.
New-VMSwitch -Name SWITCHNAME -SwitchType Internal
Step 2: Get the Interface Index Number (ifIndex)
Next, you need to find the index number of the virtual switch created in step 1. Run the below command.
My index number is 28, you will probably have a different number than mine.
Step 3: Configure NAT Gateway
I have my VMs configured on the 192.168.100.0/24 network. I’m going to use the 1st address of this network for the gateway. The gateway will be used n your VMs so they can send traffic outside of their network.
New-NetIPAddress –IPAddress 192.168.100.1 -PrefixLength 24 -InterfaceIndex 28
Step 4: Configure NAT Network
Now configure the network you want to NAT. Again I want to NAT the 192.168.100.0/24 network. You can name anything you like, I named mine “Nat-Switch-Outside”.
New-NetNat -Name Nat-Switch-Outside -InternalIPInterfaceAddressPrefix 192.168.100.0/24
Step 5: Configure VM with New Virtual Switch
In Hyper-v you can now change your VMs to use the new virtual switch.
Step 6: VM Network Settings
Now configure your VM with an IP address from the network configured in step 4. In my case, this is the 192.168.100.0/24 network.
I’ll give my VM the IP 192.168.100.10 and the gateway 192.168.100.1 (step 3).
Now your hyper-v VMs will use NAT when accessing a different network. The diagram below is an example of how NAT works. All of the VMs on my 192.168.100.0/24 network will use the Hyper-V host physical Adapter when accessing the internet.
View NAT Settings
To view existing NAT settings run the below command.
View Hyper-V Virtual Switches
Run this command to view your Hyper-V virtual switch.