Why ethtool Shows Limited NIC Properties on VMware ESXi Guests (CentOS 5.8) and How to Fix It


11 views

When running ethtool eth0 on a CentOS 5.8 guest under VMware ESXi 5.1, you might only see:

[root@foo ~]# ethtool eth0
Settings for eth0:
        Current message level: 0x00000007 (7)
        Link detected: yes

This is strikingly different from the detailed output we typically expect from physical NICs:

# ethtool eth0
Settings for eth0:
        Supported ports: [ TP ]
        Supported link modes:   10baseT/Half 10baseT/Full
                                100baseT/Half 100baseT/Full
                                1000baseT/Full
        Supports auto-negotiation: Yes
        Advertised link modes:  10baseT/Half 10baseT/Full
                                100baseT/Half 100baseT/Full
                                1000baseT/Full
        Advertised auto-negotiation: Yes
        Speed: 100Mb/s
        Duplex: Full
        Port: Twisted Pair
        PHYAD: 1
        Transceiver: internal
        Auto-negotiation: on
        Supports Wake-on: d
        Wake-on: d
        Link detected: yes

The limited output occurs because:

  • The "Flexible" adapter type in ESXi presents a synthetic NIC without physical layer details
  • VMware Tools aren't installed, preventing proper communication with the hypervisor
  • Older CentOS 5.8 may lack proper drivers for complete NIC statistics reporting

Option 1: Install VMware Tools

# For CentOS 5.8:
yum install perl
mount /dev/cdrom /mnt
cd /mnt
tar zxpf VMwareTools-*.tar.gz -C /tmp
cd /tmp/vmware-tools-distrib/
./vmware-install.pl

Option 2: Change NIC Type in ESXi

Shut down the VM and change the adapter type from "Flexible" to "VMXNET3" in vSphere Client.

Option 3: Alternative Commands

Try these commands to gather network information:

# Check kernel module information
ethtool -i eth0

# View driver statistics
ethtool -S eth0

# Check kernel ring buffer
ethtool -g eth0

# Alternative: use mii-tool (if available)
mii-tool -v eth0

After implementing any of these changes, you should see more detailed output:

[root@foo ~]# ethtool eth0
Settings for eth0:
        Speed: 1000Mb/s
        Duplex: Full
        Auto-negotiation: on
        Link detected: yes
        [Additional details based on configuration]

Understanding virtual NIC behavior is crucial because:

  • Network performance tuning requires accurate speed/duplex information
  • Troubleshooting connectivity issues becomes difficult without proper NIC stats
  • Capacity planning needs realistic network throughput measurements

Remember that virtual NICs behave differently than physical hardware, and the hypervisor ultimately controls the network characteristics.


When working with virtualized environments, particularly VMware ESXi guests, you might encounter situations where ethtool shows minimal information about your network interface. The typical output you'd expect includes detailed specifications like:

# ethtool eth0
Settings for eth0:
        Supported ports: [ TP ]
        Supported link modes:   10baseT/Half 10baseT/Full
                                100baseT/Half 100baseT/Full
                                1000baseT/Full
        Speed: 1000Mb/s
        Duplex: Full
        Port: Twisted Pair
        PHYAD: 0
        Transceiver: internal
        Auto-negotiation: on
        Link detected: yes

But instead you get:

Settings for eth0:
         Current message level: 0x00000007 (7)
         Link detected: yes

This behavior is indeed related to the virtualized environment and VMware's network adapter implementation. The "Flexible" adapter type in ESXi is essentially a synthetic adapter that presents itself differently to the guest OS compared to physical NICs.

Key factors affecting ethtool output in VMware environments:

  • The vmxnet3 driver typically provides more detailed ethtool information
  • The older "Flexible" adapter (which uses the vmxnet driver) shows limited details
  • VMware Tools installation can affect how the adapter presents itself

1. Check the Current Driver

# ethtool -i eth0
driver: vmxnet
version: 
firmware-version: 
bus-info: 0000:03:00.0
supports-statistics: no
supports-test: no
supports-eeprom-access: no
supports-register-dump: no
supports-priv-flags: no

2. Change to vmxnet3 Adapter Type

In your VMware ESXi host configuration:

  1. Shut down the VM
  2. Edit VM settings → Network adapter → Change type to "vmxnet3"
  3. Power on the VM
  4. Check if the driver changed:
# modinfo vmxnet3
filename:       /lib/modules/2.6.18-308.el5/kernel/drivers/net/vmxnet3/vmxnet3.ko
version:        1.1.16.0-k
license:        GPL v2
description:    VMware vmxnet3 virtual NIC driver

3. Alternative Methods to Get Network Info

When ethtool doesn't provide enough information, consider these alternatives:

# mii-tool eth0
eth0: negotiated 1000baseT-FD flow-control, link ok

# cat /proc/net/vmxnet3/eth0/stats
(Only available with vmxnet3 driver)

# vmware-toolbox-cmd stat raw speed
(Requires VMware Tools installed)

Here's what to expect after changing adapter types:

# ethtool eth0
Settings for eth0:
        Supported ports: [ TP ]
        Supported link modes:   1000baseT/Full
        Supports auto-negotiation: No
        Advertised link modes:  Not reported
        Speed: 10000Mb/s
        Duplex: Full
        Port: Twisted Pair
        PHYAD: 0
        Transceiver: internal
        Auto-negotiation: off
        Current message level: 0x00000007 (7)
        Link detected: yes

Complete network interface information is crucial for:

  • Performance tuning
  • Troubleshooting connectivity issues
  • Capacity planning
  • Validating network configuration

While the limited ethtool output doesn't necessarily indicate a problem, having complete information gives you better visibility into your virtual network environment.

Remember that in virtualized environments, the "Speed" reported might not reflect actual physical network speeds but rather the maximum capability of the virtual adapter.