VMware virtual machines (VM) can be configured with different network adapter types. Depending on the system you're running, its version, those adapter types may vary. In this post, I'll try to explain which type adapter exists.
There are some exotic and older virtual network adapters, such as Vlance, or Flexible, but most of the time everyone's using VMXNET 3 or E1000e. We'll list the differences and details too.
Having the right adapter for the application running within the guest OS you can optimize the performance and perhaps achieve a lower latency.
It's pretty straightforward to pick the right adapter for most common guest OS, but when dealing with some older OS, older legacy OS and VMs, it's good to know the options. Let's get started.
VMware Network Adapter Types
SR-IOV passthrough – let's start with this one. As you can see on the image below, there is an option for this adapter (screenshot from the lab). This kind of adapter is usefull for VMs which runs latency-sensitive applications.
This adapter is basically able to send and receive data via the physical adapter without using VMkernel as an intermediary. SR-IOV passthrough was introduced in vSphere 5.5. Small gotcha, when using SR-IOV there is no vMotion of FT usage possible.
E1000 – Emulated version of the Intel 82545EM Gigabit Ethernet Network Interface Card (NIC). There is a guest OS support for those NICs, so when installing VMware tools isn't an option, then this adapter will still assure a network connectivity. Systems such as Windows XP and later and Linux versions 2.4.19 and later can use this adapter natively.
E1000e – This is emulated version of the Intel 82574 Gigabit Ethernet NIC. E1000E is the default adapter for Windows 8 and Windows Server 2012. But installing VMware tools in those systems changes this adapter type and installs VMXNET3.
VMXNET – you must install VM tools in order to use this network adapter type in your environment. It's an older version.
VMXNET2 – It's an enhanced version of VMXNET, and allows high-performance, has support for jumbo frames and hardware offloads. Still older card though.
VMXNET3 – latest, also called paravirtualized NIC which is the most performant and most advanced virtual NIC. Has everything you can find in VMXNET2 and provides multi-queue support (Receive Side Scaling in Windows), IPv6 offloads, and MSI/MSI-X interrupt delivery.
View of HTML5 Web Client on vSphere 6.5 U1 …
PVRDMA – This nic supports remote direct memory access (RDMA) between VMs through Open Fabric Enterprise Distribution (OFED) verbs API which is basically a specific fabric developed for high-speed technologies.
quote from Wikipedia:
OpenFabrics Alliance is a non-profit organization that promotes remote direct memory access (RDMA) switched fabric technologies for server and storage connectivity. These high-speed data-transport technologies are used in high-performance computing facilities, in research and various industries.
Flexible – shows as Vlance adapter when VM boots, but then shows within the VM as Vlance or VMXNET. It depends which driver is initialized. If you have VMware tools installed, then VMXNET shows up. VMXNET is more performant than Vlance.
Vlance – for legacy 32bit systems. An emulated version of the AMD 79C970 PCnet32 LANCE NIC, an older 10 Mbps NIC with native drivers within an OS.
If you're looking for a compatibility, you might want to check VMware Compatibility guide.
Virtual network adapters or network interface cards (vNICS) assure connectivity of your VMs with external world. When creating new VM, it's important to choose the right OS from the list as VMware picks the right adapter type. If you have specific OS or running specific (ex. Low-latency) application you might need other, then the default vNIC. Otherwise, you can just stick with the default.
Sometimes you're using some old, also called “legacy” VMs. The default network adapter types for all legacy virtual machines depending on the adapters available and compatible with the guest operating system and the version of virtual hardware on which the virtual machine was created. This post has simply took the recap of all available adapters one can use.
For test/dev and VMware Workstation product, this is not really applicable as VMware Workstation does not expose the network type within the GUI. But it does not mean that you cannot change it. You can look in your VMs .vmx file. There may be a line like this:
ethernet0.virtualDev = “vmxnet”
If not, you can add it. The latest is vmxnet3. But you should have a driver for it installed in your guest OS before changing this. In the guest, you can look at the PCI device list to see which one is being used. If the line is not there, I think the default vNIC is e1000. The default type is set when you create the VM, but it can be changed by editing the config file.
More from ESX Virtualization:
- What is VMware vMotion?
- What is VMware Orchestrated Restart?
- What is VMware DRS (Distributed Resource Scheduler)?
- How To Install VMware Mirage Management Server