-- Ben Armstrong, Virtualization Program Manager
Talking about core virtualization at Microsoft (Hyper-V, Virtual PC and Virtual Server).
I regularly get asked about how networking works under Virtual PC and Virtual Server - so today I will attempt to provide generic overview of how virtual networking works.
Each virtual machine is created with one emulated network adapter by default (and can have up to 4 emulated network adapters). These network adapters are assigned psuedo-unique MAC addresses in the 00-03-FF-xx-xx-xx range (there is potential for conflict here - though we do try to avoid this). We then use our 'Virtual Machine Network Services' driver to move packets to and from the emulated network card.
The 'Virtual Machine Network Services' driver is an intermediate NDIS filter that is installed on the physical network adapter. It is responsible for three things:
All of this means that virtual machines have their own unique MAC address and appear and function like completely separate computers on the network. Anything that you can do with a physical computer on a network - we expect to work with a virtual machine. It is also worth pointing out that we are only tracking networking at the MAC level (OSI Layer 2) - so that anything higher than that (like TCP/IP, IPX, NetBIOS, etc...) should 'just work'.
Cheers,Ben
How does networking work under Virtual PC / Virtual Server on windows 7?
Thanks you just helped me finish my project for computer lit.
Chris O. -
Yes, the host operating system firewall does protect the host from the virtual machine. With Shared Networking a virtual machine cannot connect to the host operating system at any time.
Helge -
This should work.
nayan -
This is pretty much unchanged for Windows 7.
Cheers,
Ben
I understand that what you write here about the driver covers incoming packets as well as packets outgoing from the guest.
However can you say what is the behavior of the driver with regards to outgoing traffic from the host to a guest machine? Do these packets get filtered and passed to the guest or are they also sent out to the network? My testing so far seem to show the second which is inherently duplicate and causes flooding...
Is there any way to ensure packets from the host to the guest will not be transmitted out the NIC? As I use a hub this floods my network unnecessarily.
Hi Ben,
Nice Explanation. Thanks for the post !
I have a question. I need to test a web application on my laptop. The laptop has a VM running on Linux and the main OS of the laptop is Windows 7. Is it possible to call a client from Windows host to Linux VM host ? If yes, how to achieve that ? I am stuck at the moment due to this.
Irregardless is not a word. If it was, it would mean the opposite of what you intend here.