I've configured Windows Server 2016 with the Hyper-V role. The host machine is connected to two networks:

  • (dept.local link-local only network)
  • (ad.company.com internet-connected network)

I created a NAT network and some Internal vSwitches underneath that for guests to communicate through the NAT. Each Virtual Machine has only one network interface connecting to a single vSwitch which provides the interface to the NAT network. Their IP address and DNS servers are set manually. Each guest adds a DNS server from each connected network.

From Linux guests behind the NAT, I can reach both networks connected to the host at the same time, no problem. The Server 2016 management OS can also connect to both networks, no problem. However, the principle problem is that Windows guests appear to only be able to communicate with one of the two networks on the host at any given time and will switch between them seemingly undeterminably.

For example, on Linux (RHEL 7) I can communicate with hosts on both networks simultaneously. However, on Windows guests (testing with Windows 8.1 and Server 2016 guests), I can only reach one of the two networks connected to the host at any given time. Connections destined for one network will work fine, while connections destined for the other will always time out.

The network that has connectivity also seems to 'switch' occasionally. If I do a tracert to a destination on the network without connectivity, it will hang for a good while (30s to maybe a minute or two), but eventually it will gain connectivity. To me, it appears just to be a roll of the dice to which network I happen to be connected. Though, when this 'switch' happens, connectivity will be lost to the other network. When the connection is regularly in use, the active network connection seems relatively stable...

I have tried changing the connection DNS suffix settings and have also tried enabling/disabling NetBIOS. I have checked the routing tables on the guests and host, nothing seems to be amiss. Not sure where to go troubleshooting from here. I am not running any of the dhcp/routing roles on the management os.


I was able to resolve (kind of) the principle issue by adding a second network interface dedicated for traffic to local network, deleted the default routes, and manually added a new 'default' route to use a specific interface and another route for the dept.local network.

I executed the following commands, where is the IP of the virtual switch and if 4 is used for the 'default' route and if 7 is used for the dept.local network.

route delete
route add -p mask metric 200 if 4
route add -p mask metric 100 if 7

It is still unclear to me, however, why traffic doesn't work when attempting to route through the same interface, even though the gateway is the same and further why it's not an issue on Linux. If anyone can explain this to me and/or provide a better solution that doesn't require a second interface, I'll be happy to accept the answer.

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.