This note exemplifies how to configure VLAN on bonding network interface on CentOS/RHEL 7 and 8. The configuration of the switch to support VLAN tagging is not covered in this note. You do not need to do anything for configuring native VLAN on CentOS/RHEL, since it only depends on the switch configuration.

1. Check that the module is loaded by running the command:

2. If the module is not loaded, proceed to run the following command to load it:

3. Proceed to configure your physical interface in /etc/sysconfig/network-scripts/ifcfg-eth#, below the example:

For example, for eth0:

DEVICE=eth0
TYPE=Ethernet
BOOTPROTO=none
ONBOOT=yes

4. Configure the VLAN interface script in /etc/sysconfig/network-scripts. The configuration filename must be the physical interface plus a “.” character plus the VLAN id number. For example, if the VLAN id is 10, and the physical network interface is eth0, then the configuration filename should be ifcfg-eth0.10, as the example below:

DEVICE=eth0.10
BOOTPROTO=none
ONBOOT=yes
IPADDR=##.##.##.##
NETMASK=###.###.###.##
USERCTL=no
NETWORK=##.##.##.##
VLAN=yes

For more VLANs required on the same interface, add a new file with the name as in the example above and the VLAN configuration details, for example, eth0.20

5. Restart the network service, in order for the changes to take effect

# systemctl restart network

IMPORTANT: For CentOS/RHEL 7 & 8, the configuration is to be made with the conventional network service and not with NetworkManager service.

CentOS / RHEL 6 : How to configure 802.1q VLAN On NIC
CentOS / RHEL 7 : How to configure VLAN Tagging using nmcli