Есть такая конфигурация:
client:
eth0 - lan
server:
eth0 - inet
eth1 - lan
tun0 - vpn over eth0
нужно маршрутизировать запросы клиента к различным портам на различные интерфейсы, например 80 - через tun0, остальное - eth0
Вначале пробую маршрутизацию всего трафика через vpn:
ip route add $vpn_external_ip via $inet_gate
ip route del default gw $inet_gate
ip route add default gw $tun0_ip
работает.
Теперь пытаюсь использовать две таблицы маршрутизации:
echo 2 myinet >> /etc/iproute2/rt_tables
ip route add default gw $inet_gate table myinet
ip rule add from all fwmark 1 table myinet
iptables -A PREROUTING -t mangle -i eth1 -p tcp --dport 80 -j MARK --set-mark 1
теперь все, кроме 80 порта работает.