While browsing the (unofficial) VMware Reddit this morning and came across a thread where the OP was asking for a recommendation on USB network adapters that can be used with ESXi with their Intel NUC, which many replied with their recommendations and a pointer over to the USB Network Native Driver for ESXi Fling, which would be required if you are using one of the supported chipsets.
The community already covered all the basics and I did not have anything to add until I saw the following comment:
To my knowledge at least, there are zero drivers for USB network interfaces without using a fling.
Although this was certainly true a few years back, that the only way for ESXi to see a USB network adapter was to first install the USB Network Native Driver, this is technically no longer accurate due to some recent enhancements with ESXi that may not be very well known.
With the release of ESXi 7.0, a USB CDCE (Communication Device Class Ethernet) driver was added to enable support for hardware platforms that now leverages a Virtual EEM (Ethernet Emulation Module) for their out-of-band (OOB) management interface, which was the primary motivation for this enhancement.
One interesting and beneficial side effect of this enhancement is that for any USB network adapters that conforms to the CDCE specification, they would automatically get claimed by ESXi and show up as an available network interface demonstrated in my homelab with the screenshot below.
This can certainly benefit VMware Homelabs, especially if you have a hardware platform that does not currently have the required driver installed for networking. In fact, this capability was also heavily relied upon during the early days of developing the ESXi on Arm Fling, as the onboard network adapter was not fully supported yet.
Given the primary use case for introducing the CDCE driver was for OOB management, one thing you will notice is that speed will always negotiate to 100Mbps and that is currently hardcoded. Once you have installed ESXi, customers are still recommend to install the USB Network Native Driver for ESXi Fling as that will give you better performance but also broader support for other USB based network adapters.
CDCE USB Network Adapters
As mentioned earlier, I regularly rely on this capability and I personally own two different USB network adapters that support the CDCE specification which customers may find interesting, especially as the Reddit OP was looking for some options.
Option 1: Cable Matters USB-A to 1GbE Adapter (Pictured Left)
Option 2: Belkin USB-C to 1GbE Adapter (Pictured Right)
Both of these USB network adapters uses a Realtek 8153 chipset and it is possible that other RTL8153-based USB network adapters could also be supported with the CDCE driver, these two are confirmed to be functional. In addition, once you install the USB Network Native Driver for ESXi Fling, these adapters will automatically be claimed by that driver and will negotiate at 1GbE instead of 100Mbps.
michele domanico (@MicheleDomanico) says
Thanks for the article. This reflects my experience as well with Intel NUC and various adapters I tried all based on Realtek 8152/3 chipsets. Very easy to find online and also great performance. Have been using them for more than 5 years, 24/7 on 8 Intel NUC devices (gen6/gen8)! I'm wondering if it's possible to have more control on the power options to check the temperature of these adapters as they tend to get hot 🙂 Maybe through the device drivers? Or the power modes in the Intel NUC BIOS?
Looking forward to the next additions to the NUC family!
William Lam says
Thanks for sharing Michele. Temperature and other hardware sensors are provided through a hardware vendor CIM provider and since Intel NUC are not officially supported, such a driver does not exists. I know some folks have also looked into passive/fanless cooling based on their needs or similiar system but not using Intel NUC case (as thats just a reference design) and you can obtain both the boards/compute elements separately or purchase from 3rd party vendors custom cases. It is also worth mentioning to ensure you've got good airflow where your NUCs are placed, I heard a few stories where simply by moving it to different location, the system immediately cooled down as they were next to other electronics that generated heat as well
Hi William, just as I was browsing to buy and install anm USB nic you made this post so I this really helped me a lot!
I've never considered using a USB NIC on any of my Intel NUCs, it's an interesting idea. Since they already have a built-in network adapter, I've always set them up like a router-on-a-stick. Create a single vSwitch and add a bunch of VLANs. The native, untagged VLAN is management, VLAN 2 is WAN, 3 is servers, 4 is NFS, etc. You then connect a physical, L2 managed switch with the same VLAN setup and you have all the ports your heart desires. You can even run a firewall/router appliance on your NUC ESXi such as Fortinet, Sophia, SonicWALL, etc and have a nice little homelab/dev environment in a box.
Steve Ballmer says
William, VMware should update the CDCE driver to 1Gbps, 100Mbps is from the 90's even though supposed to be for OOB Management. This way the Fling driver could be avoided. Thanks.
Hi William, Thank you for sharing this info. Do you know if it is possible to disable this OOB/CDCE driver and how? I have been using USB/Passthrough for a long time so I can have Link status directly on my Windows VM. Since I upgraded to 7.0 this weekend my lab is broken because the host claimed theses usb NIC.
William Lam says
Yea, you can disable kernel modules. Take a look at https://kb.vmware.com/kb/2147565 for details
Hi William, which module do we need to disable to disable CDCE driver? esxcli system module list output does not show anything explicitly related to CDCE. Thanks!
Shawn Cornelius says
I'm having the same issue, where the CDCE driver takes over my USB NICs instead of having them available for passthrough. What is the name of the module we need to disable?
I tried this on my MacBook Pro (with the belkin adapter) and I just get an error say "no network adapters are physically connected .. The adapter works just fine on windows and mac. I tried the latest version of ESXI as well as the original version.. No luck. Any suggesttiongs. (I have also tried using the USB fling and injected it into a custom ISO.. still no luck).
I connected my Huawei E3372h-320 adapter to my ESXI 7.03 host and it was claimed by the cdce driver and shows up as vusb0 physical nic.
This specific USB dongle emulates a ethernet nic and works in both Linux and Os/x.
But when i try to add it as uplink to a vswitch i git the error "Not a valid pnic: vusb0"
Any idea what causes this ?
Here is the adapter info from esxcfg-nics
Name PCI Driver Link Speed Duplex MAC Address MTU Description
vmnic6 0000:04:00.0 ixgben Up 10000Mbps Full ac:1f:6b:6d:17:66 1500 Intel(R) Ethernet Connection X552 10 GbE SFP+
vmnic7 0000:04:00.1 ixgben Down 0Mbps Half ac:1f:6b:6d:17:67 1500 Intel(R) Ethernet Connection X552 10 GbE SFP+
vusb0 Pseudo cdce Up 100Mbps Full 00:1e:10:1f:00:00 1500 HUAWEIMOBILE HUAWEIMOBILE
Ups! Sorry noob mistake. ESXI host was not in maintenance mode 🙂
Ahmed Essam says
Thanks for the informative blog, could you please help me regarding the supported physical cards or USB model that I can buy for my home lap either on a laptop or PC
William Lam says
Did you read the article, it literally mentions two options
Ahmed Essam says
Thanks, i will use Tp-Link UE300 (Chipset RTL8153) ESXI 7.03, my last question can i use two USB with the same model to test Teaming ?
Is CDCE limited to just USB ethernet adapters? Would it be possible that onboard Realtek NICs that are unsupported on ESXi 7.0+ to have the functionality, so we aren't reliant on external ethernet adapters for networking?
William Lam says
USB only and there’s no plans for non-CDCE, especially Realtek.
Realtek needs to provide drivers if they wish to support ESXi and they’ve not shown any interests when asked in past
Hi William, thanks for all your knowledge and experience!
I used a USB nic and it was recognized succesfully.
However it shows as 100 mbps instead of 1000 mbps. I followed instructions mentioned here https://vmscribble.com/esxi/esxi-8-usb-network-driver-vusb0-link-speed-100-mbps/ and then it was fixed.
It basicly means installing the latest driver from Esxi 7. Hope this helps someone.
Is the driver fling still needed for ESXi 8? I am building an ESXi 8 virtualization server on my Hades Canyon NUC and want to use the two Thunderbolt ports for additional network connections.
William Lam says