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)