VMware Cloud Community
TheBigQ
Contributor
Contributor

VMXNET3 - Setting custom MAC Address

All,

Need some help! We've upgraded to ESXi 4 with vSphere. Our VMs have had their tools & virtual hardware upgraded, and all went fine.

We've got a Vista 32-bit SP2 VM that needs a specific MAC address on the ethernet card (licensing issue). I removed the existing MAC, and switch it a VMXNET 3 based one as a test. I logged in, went into device manager and entered the new MAC address (it doesn't start 005056 so I can't do it at the VM level). It accepts the value, but ipconfig doesn't notice and the address is still 005056 so it isn't actually taking affect.

Any ideas how why this isn't working?

Thanks!

Tags (2)
0 Kudos
9 Replies
vmroyale
Immortal
Immortal

Hello.

I removed the existing MAC, and switch it a VMXNET 3 based one as a test.

Did you remove the ghosted NIC from Vista? Can you be more specific on the steps taken to remove one NIC and add the other?

Good Luck!

Brian Atkinson | vExpert | VMTN Moderator | Author of "VCP5-DCV VMware Certified Professional-Data Center Virtualization on vSphere 5.5 Study Guide: VCP-550" | @vmroyale | http://vmroyale.com
0 Kudos
TheBigQ
Contributor
Contributor

Sure.

I shutdown the machine, removed the existing e1000 NIC and then added the VMXNET3 NIC.

On boot-up, the new NIC was detected and drivers were automatically installed. I set the MAC, nothing happened. I checked for hidden devices in device manager, and didn't see anything obvious to reflect the e1000 NIC.

I then did a registry search for the custom MAC address and found instances refering to the e1000 NIC. I deleted all registry keys mentioning this MAC, apart from the ones referring to the VMXNET3 interface. Rebooted again, MAC address of the VMXNET3 interface was still 005056.

So I did the same in reverse to re-add the e1000 NIC, and it worked fine.

To me, it seems like a bug in the VMXNET3 driver.

0 Kudos
RParker
Immortal
Immortal

To me, it seems like a bug in the VMXNET3 driver.

The MAC is actually configured in the vmx configuration file. The driver is not the issue. It may have been a bug or something that didn't quite complete, but normally this works fine.

0 Kudos
TheBigQ
Contributor
Contributor

How to do that in ESXi? Go into the unsupported ESXi console?

I will say the vmxnet3 driver has somewhere in the device manager that allows you to enter a custom MAC. The same is true for the e1000 driver, which works just fine when you change it in the driver.

0 Kudos
RParker
Immortal
Immortal

How to do that in ESXi? Go into the unsupported ESXi console?

Well not sure about that. But if you are doing a custom MAC in Windows, then its Windows acting silly not VM Ware. This is normal. Microsoft has been with this problem since Windows 95, and it still haunts us.

If you edit the configuration for your VM you can EDIT the MAC there as well, but there is a certain range you have to use, not just any number will work. Drivers are just DLL's. Configuration is in the registry which you cleaned out, but that's NOT a part of VM Ware process, the vmware tools are an msi Windows installer. They are just initiating the changes in Windows, but VM Ware didn't rewrite how Windows handles configuration.

I just know the SAME thing will happen on physical boxes with a change to drivers / MAC / Network configuration, etc... This is 100% a Windows bug. Yes it should be cleaner, but there isn't much VM Ware can do about it. The work around is what you did, manipulate the registry.

0 Kudos
TheBigQ
Contributor
Contributor

Basically:

1. VMWare doesn't allow me to change the MAC address to anything, only just a specific range.

2. e1000 driver allows me to change a MAC in Windows just fine.

3. vmxnet gives me the option to change the MAC, but it doesn't work.

So I've got to use #2 as it stands.

0 Kudos
RParker
Immortal
Immortal

So I've got to use #2 as it stands.

Guess so, if that's your only option, those limitations are Windows limitations.

But if you can set a range for VM Ware, it's the same as for static IP, you don't want to mix the two. You keep a range of static and a range of pool addresses, if you mix them you will have a mess on your hands, because you won't know where one starts and the other ends.

So you can still use a MAC range that will produce the same result. Instead of using a normal MAC you can set it to another MAC. In the end you are doing the same thing, except NOW you have a range of MAC addresses you can reserve for this purpose.

0 Kudos
BradL
Contributor
Contributor

I have this same issue with the VMXNet3

Thanks BigQ for the work around

seems like the programmers for the E1000 did a better job making those dlls work with windows and all of its flaws than the VMXNet3 programmers...

0 Kudos
Texiwill
Leadership
Leadership

Hello,

TO change a Mac to outside the VMware Mac Address range you need to change the MAc from within the Guest OS not the VMX file.

e1000 driver is actually from Microsoft.

vmxnet3 may not allow this change.

Moved to the Virtual Machine and Guest OS forum.


Best regards,
Edward L. Haletky VMware Communities User Moderator, VMware vExpert 2009, 2010

Now Available: 'VMware vSphere(TM) and Virtual Infrastructure Security'[/url]

Also available 'VMWare ESX Server in the Enterprise'[/url]

Blogging: The Virtualization Practice[/url]|Blue Gears[/url]|TechTarget[/url]|Network World[/url]

Podcast: Virtualization Security Round Table Podcast[/url]|Twitter: Texiwll[/url]

--
Edward L. Haletky
vExpert XIV: 2009-2023,
VMTN Community Moderator
vSphere Upgrade Saga: https://www.astroarch.com/blogs
GitHub Repo: https://github.com/Texiwill
0 Kudos