iptables -A OUTPUT --set-mark , routing

Dmitry Melekhov dm@belkam.com
Wed, 21 Jul 2004 14:03:40 +0500


Hello!

I need to route traffic to specific port from localhost to specific gateway.

I'm testing this on icmp.

I wrote rules:

iptables -t mangle -A OUTPUT -p icmp -j MARK --set-mark 80
ip rule add prio 221 table 221 fwmark 80
ip route add default table 221 proto static  nexthop via 192.168.22.221 
dev eth0


Then I try to ping something from different subnet:

ping 10.1.1.1
connect: Network is unreachable


If I add rule
iptables -t mangle -A PREROUTING -p icmp -j MARK --set-mark 80

Then I can successefully ping 10.1.1.1 from another host (my host is 
default gw for it, it's address is 192.168.22.229).

Hmmm.

How can I route marked packets from localhost?

ping 10.1.1.1
PING 10.1.1.1 (10.1.1.1) from 192.168.22.254 : 56(84) bytes of data.
 From 192.168.22.229: icmp_seq=1 Redirect Host(New nexthop: 192.168.22.221)