Here is how I configure 802.1q frame tagging for a Redhat Linux AS 3.0:
The necessary kernel module, 8021q, is already available in the 2.4 kernel.
To use both tagged an untagged frames, create additional ifcfg-ethX.Y file, where X is the interface on which you will use the VLAN and Y is the VLAN ID. For example, on a system with one network card (eth0) that needs to use tagged network traffic only for VLAN ID 10, you'll need these two files:
/etc/sysconfig/network-scripts/ifcfg-eth0
/etc/sysconfig/network-scripts/ifcfg-eth0.10
These files will configure your system to have a regular Ethernet interface called eth0 that uses untagged frames and a virtual interface call eth0.10 that uses tagged frames. To create the configuration file for the virtual tagged interface, copy the contents of your original ifcfg-eth0 file to ifcfg-eth0.10. Your original ifcfg-eth0 file should remain unedited, as it will set up your interface to communicate using untagged frame. Next, edit the DEVICE= line in the ifcfg-eth0.10 file so that it reads eth0.10. Add the line VLAN=yes to the file. Finish configuring the virtual adapter with the correct IP address and subnet mask for the VLAN, or with a BOOTPROTO=dhcp line if addresses are given out via DHCP. Don't forget to include a default gate in /etc/sysconfig/network. It's important to remember that you can only have one default gateway.
Issue the command:
service network restart
to complete the process. The VLAN=yes entry causes the network startup scripts to automatically run the vconfig command to add the necessary VLAN entry in /proc/net/vlan for the VLAN tag.
If you accidentally created a virtual adapter with the wrong VLAN ID, you may need to use the vconfig command to remove it from the /proc filesystem. Just restarting the network service won't do that for you. For example, if you accidentally created a virtual adapter call eth0.12, the following command will remove it from /proc/net/vlan:
vconfig rem eth0.12
Once this is completed, reconfigure VMware
/usr/bin/vmwareconfig.pl
Use the editor to configure the vmnet and assign the VLAN ID to a vmnet.
Example:
vmnet0 is bridged to eth0
vmnet1 is bridged to eth0.10
Configure the Network connection to use Custom: Specific virtual network and choose
/dev/vmnet0
Add another NIC, again choose Specific virtual network, but this time choose
/dev/vmnet0.10
During my test, adding 2 NIC is the only way I got it work.