I'm playing around with Hyper-V on a Windows Server 2012 machine. It has 3 NIC's. #0 is dedicated to the host, #1 is on a virtual switch with all VM's on it.
I want NIC #2 to be dedicated to a particular VM, e.g. the host shouldn't bother with it and it should only have 1 MAC and IP for the client VM. (as if the VM was a physical machine with that particular NIC)
The only way to do this I see now is to create a "external" virtual network and place only that VM on the network. This of course has advantages but also leaves me to deal with 2 IP's and 2 MAC's: one for the host and one for the VM.
Is this possible and if so how (and is it recommended?)
Creating an external network won't create two MAC addresses and two IP addresses unless you also choose "Allow management operating system to share this network adapter." If you leave that box unchecked (or the equivalent operations in PowerShell) then the management OS won't bind anything to it except the switch. If you enable VMQ or SR-IOV on it, then you'll even have dedicated hardware routing the traffic into the VM.
I realize this question has been asked years ago, but I recently discovered a new solution to this problem that has yet to appear anywhere else.
If you create a virtual switch for NIC #2, bind your VM (or VMs) to this virtual switch and then use the control panel in the host to disable this adapter (the virtual switch, not the physical adapter), then the host will completely ignore it, but it will still work properly (without even a warning or anything) for the guest(s).
In other words, you can "reserve" a physical NIC for Hyper-V by first binding a virtual switch to it (which will prevent the host from using the physical NIC directly) and then disabling the virtual switch. It's an odd behaviour in my opinion, but it works and persists across reboots, and that's what matters.