Нужно почту пустить по одному каналу (eth2), а инет по другому (eth0).
eth1 - локальная сеть, eth0 - интернет канал №1, eth2 IP 172.17.17.2 - интернет канал №2echo 200 post >> /etc/iproute2/rt_tables
/sbin/iptables -I FORWARD -j ACCEPT -i eth1
/sbin/iptables -I FORWARD -j ACCEPT -o eth1 -m state --state RELATED,ESTABLISHED
/sbin/iptables -t mangle -I PREROUTING -i eth1 -p tcp -m multiport --dports 25,110 -j MARK --set-mark 25
/sbin/ip route add default via 172.17.17.2 table post
/sbin/ip rule add fwmark 25 table post
/sbin/ip route flush cache
Пробовал сделать так как написано. Всеравно почта и инет уходят в один канал (eth0).
[root@w conf]# iptables -L FORWARD -vxn
Chain FORWARD (policy DROP 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
0 0 ACCEPT all -- eth2 * 0.0.0.0/0 0.0.0.0/0
59 8117 ACCEPT all -- * eth1 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
46 3232 ACCEPT all -- eth1 * 0.0.0.0/0 0.0.0.0/0
0 0 tcp_outbound tcp -- eth1 * 0.0.0.0/0 0.0.0.0/0
0 0 udp_outbound udp -- eth1 * 0.0.0.0/0 0.0.0.0/0
0 0 ACCEPT all -- eth1 * 0.0.0.0/0 0.0.0.0/0
0 0 ACCEPT all -- eth0 * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
0 0 LOG all -- * * 0.0.0.0/0 0.0.0.0/0 limit: avg 3/min burst 3 LOG flags 0 level 4 prefix `FORWARD packet died: '
[root@w conf]# iptables -t mangle -L -vxn
Chain PREROUTING (policy ACCEPT 35054 packets, 6175996 bytes)
pkts bytes target prot opt in out source destination
1334 58953 MARK tcp -- eth1 * 0.0.0.0/0 0.0.0.0/0 multiport dports 25,110 MARK set 0x19
Chain INPUT (policy ACCEPT 19391010 packets, 10575974159 bytes)
pkts bytes target prot opt in out source destination
Chain FORWARD (policy ACCEPT 1540575 packets, 563988042 bytes)
pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 41076 packets, 9796077 bytes)
pkts bytes target prot opt in out source destination
Chain POSTROUTING (policy ACCEPT 24088277 packets, 12226257240 bytes)
pkts bytes target prot opt in out source destination
Вроде пакеты маркируются, но что-то не разруливаются