VMWare-server 8-char bug
VMWare-server has a bug that doesn’t allow network interface device names to be more than 8 characters long. Yes, this is not a typo: If your interface name is more than 8 characters long, you’re out of luck.
The origin of the bug for me is unknown. Naturally, I’ve had to research this issue as it became apparent to me when I had to set up two network interfaces in bonding (Thus calling them bond0) and then putting this new virtual interface into work with two 8021q vlan’s (Thus calling them bond0.100 and bond0.101). Now, I do realize that having a 9-character long interface name is a bit on the side of the unusual, but rarely you’d spot any software which supports any less than 255 characters, right? I mean, this is just common sense these days. Pretending to hunt for bits of RAM by shaving off something like 248 bytes just SO belongs back in 1980’s computing. Not fixing this bug from version 1.0.0 to version 1.0.4 of your software belongs back at Microsoft. Not having a part of your website dedicated to bug reports belongs back in FAIL.
Anyway, this is not an opinion piece.
After spending a good part of a weeks worth of office time hunting down this bug, I finally decided to trace back my steps and see if there was something I could do to solve this problem.
When creating vlans on an interface in Linux, you usually use a tool called vconfig. Turns out that vconfig had the option to provide a custom naming scheme. Just run vconfig set_name_type VLAN_PLUS_VID_NO_PAD and you’re golden. Now your interface name is called vlan100 or something similar.
January 22nd, 2008 at 03:42
Are you talking about ESX? Version 1.0.0 and version 1.0.4? Please, VMware is not a product name, it’s a company name. Tell us what software you’re talking about.
January 22nd, 2008 at 10:35
Sorry, I’m talking about vmware-server. Fixed.
February 28th, 2008 at 11:30
“Now, I do realize that having a 9-character long interface name is a bit on the side of the unusual, but rarely you’d spot any software which supports any less than 255 characters, right? I mean, this is just common sense these days.”
I work with software that only supports 16-character long interface names every day and I haven’t had any problems so far…
From /usr/include/net/if.h on a Linux-box:
/* Length of interface name. */
#define IF_NAMESIZE 16
How often do you need an interface name that’s longer than e.g. the IP-adresse?
If you’re trying to name your interfaces “the_interface_i_use_to_connect_to_the_internal_local_area_network:”, you’re doing something very, very wrong.
But, yes, 8 characters are too short. Does POSIX say anything about this?