UPDATED: Getting VMWare Networking on Hyper-V for Windows 8 via the Fewest Possible Steps |
![]() |
![]() |
General |
Written by Darwin Sanoy |
Friday, April 10, 2015 10:41am |
Wow - sometimes you don't know how easy you've got it until you step off the cliff! That cliff for me was attempting to replace VMware Workstation with Windows 8 Hyper-V. Hey Microsoft, you really should do something about this since I see it cited ad nauseam as a primary reason many IT Pros retreat from their attempt to adopt Win 8 Hyper-V and go back to VMware. But in the meantime, I have some steps to make this as easy as possible. So what did I lose, that I would like back when using Hyper-V networking? Here's the list:
So the first bullet is adequately answered by the blog post of Thomas Vochten (and others). Essentially you disable Hyper-V with a boot configuration, install vmware player and then re-enable hyper-v. Then you configure a Hyper-V switch to connect to Vmnet8 - which is a NAT / DHCP segment that gives your VMs seamless access to the internet, no matter what the host configuration is. So that solves #1 nicely! The article is here: http://thomasvochten.com/archive/2014/01/hyper-v-nat/ and includes simple commands to temporarily disable Hyper-V. Configuring a Hyper-V switch against a physical adapter on your system causes Hyper-V to own that adapter. By using a virtual adapter installed by VMWare there are no changes made to your real adapters and therefore fewer edge cases where it causes disruptions to other networking activities on your Win 8.1 Hyper-V host. By the way, if you are hoping to use ping to verify your connections, you will need to enable ICMP echo firewall rules on any of the real or virtual machines you wish to respond to ping. They are under "Inbound Rules" and called "File and Printer Sharing (Echo Request - ICMPv4-In)" It was an unpleasant surprise to discover that 2-4 did not seem to be handled by the above changes. Jump to "UPDATE" below for new information. I followed some other advice to install a second network adapter on each VM and a second switch set to "Internal" in Hyper-V. But alas - no DHCP so a bunch of manual IP address management to get that working. Then it hit me - why not repeat the same procedure for the VMWare "Internal" network and then I should get DHCP for that segment as well. This is how to do that:
This solved #2 and #3 on my original list. Also half of #4 was handled immediately and the other half after reboots all around. The other half was name resolution of VM guests from my host laptop running hyper-V. As far as i can tell this is the minimum steps required to get the majority of VMWare networking benefits in Win8 Hype r-V. If you know how to trim it down more - please give me a shout. Microsoft - if the above (or a slight variation) is just about the simpliest way to do this - Hyper-V for Win 8 / workstations needs a nice new feature to make this much less painful. If it's already there and I'm missing it - I would love to hear about it. UPDATE - SIMPLIFIED: I figured out that the setting up the second virtual switch and host adapters is not necessary. However, if you find yourself reading this article you have probably made several changes before searching how to do it. The layering of these changes can easily get your setup in a twist where it won't work correctly. If you combine that with ARP caching and it can get confusing. So this procedure is not simplier - but the resultant configuration is. The procedure helps you get reset. FYI - I also tried to see if a simplier approach was possible with VirtualBox since it only installs a single adapter and does not require Hyper-V disablement to install. However, the out of the box NAT configuration requires manual DHCP setup and the VirtualBox NAT also seems to not configure VirtualBox's adapter as well. VirtualBox also had the concept of NAT and NAT Network and it was not clear which to configure or exactly how. I believe VMWare's NAT is equivalent to VirtualBox NAT Network. Here is a way to reset and get started from a clean working state.
|