Подготовим сетевой интерфейс. В моем случае это /etc/sysconfig/network-scripts/ifcfg-eno1:
DEVICE=eno1
TYPE=Ethernet
BOOTPROTO=none
ONBOOT=yes
Создадим VLAN интерфейс с тегом 100 /etc/sysconfig/network-scripts/ifcfg-eno1.100:
VLAN=YES
PHYSDEV=eno1
DEVICE=eno1.100
BOOTPROTO=static
ONBOOT=yes
IPADDR=192.168.1.8
PREFIX=24
NETWORK=192.168.0.0
DEFROUTE=no
Создадим VLAN интерфейс с тегом 600, через который будем ходить в интернет /etc/sysconfig/network-scripts/ifcfg-eno1.600:
VLAN=YES
PHYSDEV=eno1
DEVICE=eno1.600
BOOTPROTO=static
ONBOOT=yes
IPADDR=192.168.6.8
PREFIX=24
NETWORK=192.168.6.0
DEFROUTE=yes
GATEWAY=192.168.6.1
DNS1=8.8.8.8
DNS2=8.8.4.4
Перезапускаем сетевые интерфейсы "systemctl restart network".
И все вроде бы хорошо. Все интерфейсы работают и нормально пинаются в локалке…до тех пор пока дело не дойдет до более сложной маршрутизации например между разными сетями или через VPN. Тут уже начинаются игры с default gateway на каждом интерфейсе и установкой метрики. Сложно. Или нет? Недавно наткнулся на следующий документ и это работает. Если бы не дудос, то вообще бы все изначально работало. Итак, добавляем в /etc/sysctl.conf:
net.ipv4.conf.default.rp_filter = 2
Применяем настройки sysctl -p и все интерфейсы начинают нормально работать без default gateway на каждом интерфейсе. Теперь сервер отвечает клиенту по тому интерфейсу, с которого и поступил запрос.