Featured image of post Utilizing USB to Eth for VMWare

Utilizing USB to Eth for VMWare

USB to Eth on ESXI hosts as a solution to additional Network Interfaces.

Overview

I stumbled upon a collection of affordable Dell Optiplex 7060 Micros, equipped with exceptional specs for a homelab cluster ESXi environment. However, I faced a challenge in having only one Ethernet interface on each host, when I needed dedicated ISCSI storage on a separate interface. I found a solution using custom drivers for specific USB to Ethernet adapters, supported unofficially by VMware staff.

Choosing the Adapters

Make sure to select a USB to Ethernet adapter that’s compatible. See a list of officially unsupported but working adapters on VMware’s site, or choose the one I used from Amazon.

  • The adapter I chose, is a TP-Link E300, with a Realtek RTL8153 chip, that supports 10/100/1000MB speeds.

Physical and SSH Access

You’ll need physical access to install the adapters and connect them to the network (either directly to the ISCSI interface or through a dedicated VLAN). On the ESXi host(s), go to https://ip.address:443 to enable SSH if needed.

Installing the VMware Driver

  • Download the driver from VMware. Ensure the correct version based on the ESXi hosts.

    • Do a quick check on the host with vmware -v
  • Transfer it to the host(s) and install:

    1
    2
    3
    4
    
    scp /file/location <user>@<ip-esxi-host>:/location/to/put/file
    ssh <user>@<ip>
    esxcli software component apply -d /path/to/the component zip
    reboot
    

Configuring USB to Ethernet Usage

  • After rebooting, create a new NIC on the ESXi host or in vSphere.

  • Confirm proper configuration within the GUI, then run within the SSH console:

    1
    
    esxcli system module parameters set -p "usbBusFullScanOnBootEnabled=1" -m vmkusb_nic_fling
    
  • Edit the local.sh file:

    1
    
    vi /etc/rc.local.d/local.sh
    

    Add this snippet:

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    
    vusb0_status=$(esxcli network nic get -n vusb0 | grep 'Link Status' | awk '{print $NF}')
    count=0
    while [[ $count -lt 20 && "${vusb0_status}" != "Up" ]]
    do
        sleep 10
        count=$(( $count + 1 ))
        vusb0_status=$(esxcli network nic get -n vusb0 | grep 'Link Status' | awk '{print $NF}')
    done
    
    esxcfg-vswitch -R
    
  • Add the provided code, and if you need support for multiple adapters, see more details here.

Conclusion

Verify the network connectivity, and you’ll now have a dedicated management port and an additional ISCSI NAS port for HA failover. Additionally, if you are like me, an affordable solution created to creating additional network interfaces on a Dell Optiplex 7060 Micro!

Enthusiastic guy who enjoys the outdoors, flying drones, homelabbing, and of course, all things tech!
Built with Hugo
Theme Stack designed by Jimmy