Yes, I know it’s a free product.
Yes, I know it works really well for most common applications
Yes, I’m grumbling because I’m fighting basics late at night!
BUT, why go and release a product to the community minus a basic feature such as proper VLAN support.
Ok, so how do we fix this:
- Create the appropriate vlan’s in your linux distribution
- Install vmware server as you normally would
- Add a bridge for each vlan in vmware
- Make sure all the bits work as they’re supposed to (excluding VLANS)
At this point we need to make some mods. So, get a shell open and do the following:
cd /tmp/
cp /usr/lib/vmware/modules/source/vmnet.tar .
tar -xvf vmnet.tar
cd vmnet-only
Now edit bridge.c, and find the line that reads
if (bridge->dev->hard_header_len != ETH_HLEN) {
and change that to read
if (bridge->dev->hard_header_len != ETH_HLEN && bridge->dev->hard_header_len != ETH_HLEN +4) {
Now, we can pack and recompile the bits
cd ..
rm vmnet.tar
tar -cf vmnet.tar vmnet-only/
cp vmnet.tar /usr/lib/vmware/modules/source/
vmware-config.pl
That’s done.
Oh, if you’re running Debian lenny or similar and get a bitch about kernel versions you can enter
export CC=/usr/bin/gcc-4.1
directly before calling vmware-config.pl works like a charm (assuming gcc-4.1 is installed of course).
I’ll flesh out this article when I am feeling better.