Networknet archive Blog

VMware ESX: Set a static MAC address

Originally published Last updated 20 comments

Last week, I planned to migrate some virtual machines from a VMware Server 1.x Windows host to a VMware ESX 3.5i host.

One VM runs as a license server, and its registration key is tied to the network interface’s MAC address. I had to keep that MAC address. I first read this post.

I tried to set the MAC address manually in the VMware client, but received the following message:

"The MAC address entered is not in the valid range. Valid values are between xx:xx:xx:xx:xx" 

VMWare ESX Virtual Machine Properties

I then removed the VM from the ESX inventory, downloaded the vmx file and changed ethernet0.addressType to static. I used Notepad+ to set ethernet0.Address = "01:0C:29:B0:27:E1". I deleted the original file from the datastore and uploaded the edited vmx file. When I started the VM again, I received this message:

Please specify a static Ethernet address for ethernet0. Failed to configure ethernet0

VMWare ESX Error message static MAC

I needed an additional setting in the vmx file to assign the static MAC address. The setting I used to disable MAC address checking before boot was:

Code1 line
1
ethernetX.checkMACAddress = "false"

Thanks to Jason Nash, I fixed the problem. http://jasonnash.wordpress.com/2008/08/30/disabling-mac-address-checking-in-vmware/

My working configuration

Code3 lines
1
2
3
ethernet0.checkMACAddress = "false"
ethernet0.addressType = "static"
ethernet0.Address = "00:0C:29:B0:27:E1"

18 comments

Comments from the original WordPress site, kept read-only.

  1. Radek

    VMWare ESX 3.5i U4
    :-(

    ---------------------------
    Error
    ---------------------------
    00:0E:2E:0C:07:8F is not an allowed static Ethernet address.
    Invalid MAC address specified.
    Failed to configure ethernet1.

  2. Ivan Versluis

    ethernet0.present = "true"
    ethernet0.networkName = "vlan1"
    ethernet0.checkMACAddress = "false"
    ethernet0.addressType = "static"
    ethernet0.Address = "00:0C:29:B0:27:E1"

    This is the config I used for the NIC interface. Please check on your end.

    1. Ivan Versluis

      Well I got this solution working when migrating the VMWare Server virtual machine to ESX i.

      Please make sure that you:

      Remove virtual machine from inventory

      Download the vmx file from datastore to local drive
      Delete vmx file from datastore

      Edit the vmx file with Notepad++ with configuration settings above
      Upload the new vmx file to datastore

      Register the vmx file with ESX server

  3. Philipp

    Thank you for this info.
    I can confirm it works with ESX 3.5.0 Build 153875.

  4. chukaman

    Awesome this rocks. Working happily on ESX 3.5.0 Build 153875 for me as well. I barely obeyed your instructions, but what I needed was:

    ethernet0.checkMACAddress = “false”

    Thanks :)

  5. Tim Nordloh

    I found this same error manifested when the filesystem got full, due to a vmware.log. Anyone know how to disable this logfile?

  6. Kris

    is anyone tried to change the MAC from "00:50:56:00:00:00-00:50:56:3F:FF:FF" range as static for VMXnet 3 type NIC?

  7. Alex

    Tried all options listed here but could not set static mac address on ESX 3.5.0 U 110268.

  8. fred

    Tried this on a recently upgraded ESX 5.1 host, but can't seem to get it to work?! Removed the vm from inventory, deleted the wmx file, uploaded and added to inventory. I have got the following settings in my wmx file:

    ethernet0.present = "true"
    ethernet0.virtualDev = "e1000"
    ethernet0.wakeOnPcktRcv = "false"
    ethernet0.checkMACAddress = "false"
    ethernet0.networkName = "VM Network"
    ethernet0.addressType = "static"
    ethernet0.address = "00:0c:29:d3:aa:e3"

    1. Ivan Versluis

      Hi Fred,

      I have not tried this myself on a ESX 5 server.

      I am not able to verify suggested configuration right now. If you do find a solution somewhere else please let me know.

      Thanks.

  9. fred

    Upon further reading of the release notes (https://www.vmware.com/support/vsphere5/doc/vsphere-esx-vcenter-server-51-release-notes.html#networkingissues) I found something that seem to apply here - or have I got it all backwards?!

    "... Prefix- and range-based MAC address allocation is supported only in vCenter Server 5.1 and ESXi 5.1. If you add pre-5.1 hosts to vCenter Server 5.1, and use anything other than VMware OUI prefix- or range-based MAC address allocation, virtual machines assigned MAC addresses that are not VMware OUI prefixed fail to power on their pre-5.1 hosts. "

    I might have to rethink my approach - revert back to esx 5.0 and try to correct the misbehaving vm (it is an Ubuntu with misconfigured Samba that won't boot unless the expected MAC address is used)?

  10. fred

    So, I reverted back to 5.0 and was able to boot the vm. Followed the instruction in this post http://www.serenux.com/2009/11/howto-fix-a-missing-eth0-adapter-after-moving-ubuntu-server-from-one-box-to-another/ to get the VM to accept a vmware approved MAC. The reason I couldn't do this (without reverting to 5.0) was that the vm had a Samba automount on boot that failed and caused the machine to hang :( Seems like I'm back on track! Thanks!

  11. Ranvir (SMTP Server)

    Thanks its working like charm on my smtp server
     

    ethernet0.virtualDev = "e1000"
    ethernet0.networkName = "VM Network"
    ethernet0.present = "TRUE"
    ethernet0.checkMACAddress = "FALSE"
    ethernet0.addressType = "static"
    ethernet0.address = "00:0c:29:d3:aa:e3"

    Remove all the ethernet0 or ethernet1 instances and add the above code at the end of .vmx file and it works great even into esxi 6 + vspher clinet 6.

     

    Thanks and hoping best of luck always.

  12. BC

    Just used Ranvir's lines in Vsphere 7.0 current release - worked as desired.

    Was a Shoretel Server that I had to move to a new host as old one was dying.
    spun up and they tie license to MAC - client doesn't pay for maintenance so doubt they'd help - rekey - being it is ~5 years beyond
    (I recoomend moving away to something simple like FreePBX or other well supported cost effective platform!)

2 mentions