Creating a Private Network with Hyper-V

At Web Active Directory we create private networks to simulate the different kinds of server environments of our customers.

On our OSX machines and servers we happily use VMWare Fusion to create Windows Domain Controller, Member, and Client environments.  It’s apparently not legal to run OSX on a Hyper-V host.  Apple authorizes OSX virtualization with VMWare Fusion only.

On the PC side we also used VMWare’s Workstation until recently when we tried Microsoft’s Hyper-V.  This article outlines some resources that were helpful to do this and outlines our experiences with this attempt.

A Cost Savings Motive

Windows 10 Professional and Server versions include Hyper-V.  Since we already pay for Windows 10 licenses we can avoid the additional cost for VMWare.  As of the time of this writing there is some loss of functionality that won’t make the move work for everyone.  There is also some advantages with Hyper-V.  We’ll discuss that in this article too.

This article does a great job describing setup of Virtual Machines in Hyper-V:  https://technet.microsoft.com/en-us/library/hh846766(v=ws.11).aspx.  Though it only discusses setting up for Windows Server versions, installing on Windows 10 Professional is similar.  You’ll be asked whether you want to create a “generation 1” or “generation 2” machine when you create new virtual machines using Hyper-V.  This article describes the difference:  https://technet.microsoft.com/windows-server-docs/compute/hyper-v/plan/should-i-create-a-generation-1-or-2-virtual-machine-in-hyper-v?f=255&MSPPError=-2147217396.

We like members of our support and development teams to be mobile.  That is, we want them to be able to carry their networks with them wherever there is Internet access without them having to tie back to the home office with a VPN.  For this, we create environments with their own private networks.  In Hyper-V as it is in VMWare Workstation and Fusion, this involves configuring a NAT network.

Beware of Outdated Instructions

The ability to do this is a relatively new part of Hyper-V, as Microsoft has changed how this has done fairly recently.  This can’t completely be done through the Hyper-V manager GUI.  It requires some light PowerShell work.  There are some articles on the internet describing outdated methods to set up NAT since the functionality has been in flux.

We won’t link to the article(s) with outdated information, but will link to one that tells us what happened:  https://blogs.technet.microsoft.com/virtualization/2016/05/14/what-happened-to-the-nat-vmswitch/.  Microsoft removed the “NAT” VM Switch as it caused some problems.

In May of 2016, Microsoft published an article outlining the correct way to do it:  https://docs.microsoft.com/en-us/virtualization/hyper-v-on-windows/user-guide/setup-nat-network.

Unrelated to Hyper-V but Important

When setting up a private network, this article describes the range of IP addresses that you should use:  http://superuser.com/questions/905660/what-other-ip-addresses-can-should-i-use-for-my-home-network.

If you’re familiar with VMWare, on clients there is an install for guest machines.  This provides special support for displays, devices, etc. that makes the virtualization experience much more pleasant.  I assumed their might be the same concept in Hyper-V.  Indeed, there apparently used to be the need to install “Integration Services” on the client machines.  Apparently, however, this need has gone away.

We installed evaluation versions of Windows 2016 server.  When we used a valid key with the GUI to make them valid registered versions, we would receive a “this edition cannot be upgraded” error.  This article helped us with this:  https://social.technet.microsoft.com/Forums/windowsserver/en-US/5418a7cd-23d1-48c3-acbd-9300211e2508/upgrading-from-windows-server-2016-standard-evaluation-to-a-fully-registered-version?forum=ws2016.

When we installed our Windows 2016 DCs and wanted them to work at Windows Server 2016 functional levels, we had an unsettling choice.  In the dropdowns where we would normally make this choice, the GUI says “Windows Server Technical Preview”.  The GUI still had this condition in our experience even though Windows Server 2016 has been released officially.  Luckily it’s all good:  https://dirteam.com/sander/2016/10/15/knowledgebase-active-directory-domain-services-configuration-wizard-shows-windows-server-technical-preview-functional-levels/.  Though I haven’t verified this, apparently installing KB3194789 resolves this.

Should You Consider Hyper-V?

In my view, the possible negatives from moving to Hyper-V from VMWare is the inability to use “Unity”.  If you like that function in VMWare where your applications blend seamlessly in your host OS regardless of their operating system, then you’ll want to stick with VMWare Workstation.

Hyper-V relies on Remote Desktop into guest machines for an effective display.  There is a non-Remote Desktop that Hyper-V Manager can use to connect to your guest machines, but the UI is clunky.  It won’t take advantage of your full screen resolution.  The fact that Hyper-V relies on Remote Desktop means that your guest OS machines must be running “Professional” versions of operating systems such as Windows 10.  Windows 10 Home supports remoting out of the machine, but not into it which is a requirement here.  There are ways around this, but I’m not sure they are legal.  Microsoft kept the functionality out of their Home versions for a reason.

VMWare Workstation may also have better support for devices, sound, etc.; this is less of a concern as we virtualize machines such as servers and development machines which don’t need this.