OK, so this was something I needed to do with CentOS 6: https://vivithemage.com/2014/08/08/centos-6-multiple-vlans-with-one-eth-device/
This is how to do it in CentOS 7. There are some slight changes required compared to CentOS 6, but they’re nominal. It’s possible it will work for CentOS 8, but it is untested. Where there is a command like vi bla/bla/file you will enter the following information in the line.
vi /etc/sysctl.conf net.ipv4.ip_forward = 1 net.ipv4.conf.default.accept_source_route = 1 net.ipv4.conf.all.accept_source_route = 1 cd /etc/sysconfig/network-scripts/ vi ifcfg-em1 TYPE=Ethernet DEVICE=em1 BOOTPROTO=none ONBOOT=yes vi ifcfg-em1.29 DEVICE=em1.29 BOOTPROTO=none ONBOOT=yes IPADDR=192.119.161.2 PREFIX=24 NETWORK=192.119.161.0 GATEWAY=192.119.161.1 VLAN=yes ARPCHECK=no NM_CONTROLLED=no vi ifcfg-em1.33 DEVICE=em1.33 BOOTPROTO=none ONBOOT=yes IPADDR=192.119.165.2 PREFIX=24 GATEWAY=192.119.165.1 NETWORK=192.119.165.0 VLAN=yes ARPCHECK=no NM_CONTROLLED=no vi ifcfg-em1.35 DEVICE=em1.35 BOOTPROTO=none ONBOOT=yes IPADDR=192.119.167.2 PREFIX=24 NETWORK=192.119.167.0 GATEWAY=192.119.167.1 VLAN=yes ARPCHECK=no NM_CONTROLLED=no vi ifcfg-em1.29-range IPADDR_START=192.119.161.3 IPADDR_END=192.119.161.254 PREFIX=24 CLONENUM_START=3 ARPCHECK=no vi ifcfg-em1.33-range IPADDR_START=192.119.165.3 IPADDR_END=192.119.165.254 NETMASK=255.255.255.0 CLONENUM_START=254 ARPCHECK=no vi ifcfg-em1.35-range IPADDR_START=192.119.167.3 IPADDR_END=192.119.167.254 NETMASK=255.255.255.0 CLONENUM_START=506 ARPCHECK=no echo ‘default via 192.119.161.1 dev em1.29 table 1’ > route-em1.29 echo ‘default via 192.119.165.1 dev em1.33 table 2’ > route-em1.33 echo ‘default via 192.119.167.1 dev em1.35 table 3’ > route-em1.35 echo ‘from 192.119.161.2 tab 1 priority 500’ > rule-em1.29 echo ‘from 192.119.165.2 tab 2 priority 501’ > rule-em1.33 echo ‘from 192.119.167.2 tab 3 priority 502’ > rule-em1.35 echo ‘from 192.119.161.0/24 table 1’ >> rule-em1.29 echo ‘from 192.119.165.0/24 table 2’ >> rule-em1.33 echo ‘from 192.119.167.0/24 table 3’ >> rule-em1.35
THIS WORKS FOR TESTING
ip route add default via 192.119.161.1 dev em1.29 table 1 ip route add default via 192.119.165.1 dev em1.33 table 2 ip route add default via 192.119.167.1 dev em1.35 table 3 ip rule add from 192.119.161.2 tab 1 priority 500 ip rule add from 192.119.165.2 tab 2 priority 501 ip rule add from 192.119.167.2 tab 3 priority 502 ip rule add from 192.119.161.0/24 table 1 ip rule add from 192.119.165.0/24 table 2 ip rule add from 192.119.167.0/24 table 3
THIS IS REQUIRED TO PING DURING TEST – THIS ONE WIL NOT SUSTAIN REBOOT
ip route add default via 198.50.31.1
## THIS WILL SUSTAIN REBOOT – ONLY NEEDED FOR TESTING
echo 'default via 198.50.31.1' > route-em1.15