Using Config Files
Asuming the VLAN ID is 5. You need to copy file /etc/sysconfig/network-scripts/ifcfg-eth0 to /etc/sysconfig/network-scripts/ifcfg-eth0.5
cp /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/network-scripts/ifcfg-eth0.5
Now, We have network card (eth0) and it needs to use tagged network traffic for VLAN ID 5.
eth0 - Your regular network interface eth0.5 - Your virtual interface that use untagged frames
Do NOT modify /etc/sysconfig/network-scripts/ifcfg-eth0 file. Now open file /etc/sysconfig/network-scripts/ifcfg-eth0.5 using vi text editor:
vi /etc/sysconfig/network-scripts/ifcfg-eth0.5
Find DEVICE=ifcfg-eth0line and replace with:
DEVICE=ifcfg-eth0.5
Append line:
VLAN=yes
Also make sure you assign correct IP address using DHCP or static IP. Save the file. Remove gateway entry from all other network config files. Only add gateway to /etc/sysconfig/network file. Save and close the file. Restart network:
/etc/init.d/network restart
Please note that if you need to configure for VLAN ID 2 then copy the copy file /etc/sysconfig/network-scripts/ifcfg-eth0 to /etc/sysconfig/network-scripts/ifcfg-eth0.2 and do the above procedure again.
Using vconfig command
Above method is perfect and works with Red hat Enterprise Linux / CentOS / Fedora Linux without any problem. However, you will notice that there is a command called vconfig. The vconfig program allows you to create and remove vlan-devices on a vlan enabled kernel. Vlan-devices are virtual ethernet devices which represents the virtual lans on the physical lan.
Please note that this is yet another method of configuring VLAN. If you are happy with above method no need to read below.
Add VLAN
Add VLAN ID 5 with follwing command for eth0:
vconfig add eth0 5
The vconfig add command creates a vlan-device on eth0 which result into eth0.5 interface. You can use normal ifconfig command to see device information:
ifconfig eth0.5
Use ifconfig to assign IP address to vlan interfere :
ifconfig eth0.5 192.168.1.100 netmask 255.255.255.0 broadcast 192.168.1.255 up
Get detailed information about VLAN interface:
cat /proc/net/vlan/eth0.5
Delete VLAN
If you wish to delete VLAN interface delete command:
ifconfig eth0.5 down vconfig rem eth0.5
Linux VLAN Configuration Issue
- Not all network drivers support VLAN. You may need to patch your driver.
- MTU may be another problem. It works by tagging each frame i.e. an Ethernet header extension that enlarges the header from 14 to 18 bytes. The VLAN tag contains the VLAN ID and priority. See Linux VLAN site for patches and other information.
- Do not use VLAN ID 1 as it may be used for admin purpose.
Errors
sudo vconfig add eth0 15 WARNING: Could not open /proc/net/vlan/config. Maybe you need to load the 8021q module, or maybe you are not using PROCFS?? Added VLAN with VID == 15 to IF -:eth0:-
Solution
modprobe 8021q
VLAN HOWTO:
The fist step to enable the VLAN support in Linux. The config file is /etc/sysconfig/network. What you need there is :
VLAN=yes
VLAN_NAME_TYPE=DEV_PLUS_VID_NO_PAD
The fist line makes the linux kernel load the necessary modules for enabling
VLAN support. In Redhat that is usually the 8021q module.
For
initail setup you can load the module manually with the following command
modprobe 8021q
The second line is the specification of the naming convention for how the vlan interfaces will be presented on the file system. Generally there most commonly used conventions are VLAN_PLUS_VID - example suffix for interface name is vlan0005 VLAN_PLUS_VID_NO_PAD - example suffix for interface name is vlan5 DEV_PLUS_VID - example suffix for interface name is eth0.0005 DEV_PLUS_VID_NO_PAD - example suffix for interface name is eth0.5 I personally prefer the last naming method - DEV_PLUS_VID_NO_PAD
1. Connect the eth0 interface of your linux machine to the switch. 2. Remove the IP Address information on the eth0 interface # ifconfig eth0 0.0.0.0 # ifconfig eth0 up 3. Configure 2 VLANs on the eth0 interface using vconfig as follows (100,200 are the VLAN id's). If the 8021q.o module is not loaded, the vconfig command (when invoked first time) will automatically load the module. # vconfig add eth0 100 # vconfig add eth0 200 4. Configure IP on the VLAN interfaces # ifconfig eth0.100 xxx.xxx.xxx.xxx netmask 255.255.252.0 up # ifconfig eth0.200 yyy.yyy.yyy.yyy netmask 255.255.255.0 up 5. Preserve the vlan configuration across reboots by adding it to configuration files. Create the appropriate ifcfg files for eth0, eth0.100 and eth0.200 in /etc/sysconfig/network-scripts/ # cd /etc/sysconfig/network-scripts/ Contents of ifcfg-eth0 DEVICE=eth0 ONBOOT=no TYPE=Ethernet Contents of ifcfg-eth0.100 DEVICE=eth0.100 IPADDR=xxx.xxx.xxx.xxx NETMASK=255.255.252.0 VLAN=yes ONBOOT=yes BOOTPROTO=none Contents of ifcfg-eth0.200 DEVICE=eth0.200 IPADDR=yyy.yyy.yyy.yyy NETMASK=255.255.0.0 VLAN=yes ONBOOT=yes BOOTPROTO=none Update /etc/sysconfig/network file to make the GATEWAYDEV use the public vlan interface. Contents of /etc/sysconfig/network NETWORKING=yes HOSTNAME=un1xf00 GATEWAY=xxx.xxx.xxx.1 DOMAINNAME=dev.un1xf00.com GATEWAYDEV=eth0.100 6. The VLAN configuration on the server can be verified in the file /proc/net/vlan/config. Sample contents are shown below. VLAN Dev name | VLAN ID Name-Type: VLAN_NAME_TYPE_RAW_PLUS_VID_NO_PAD eth0.100 | 100 | eth0 eth0.200 | 200 | eth0 More at unix linux & storage