take a look in iproute2, lartc.org , using iptables and iproute to do it 1) create an entry in /etc/iproute2/rt_tables echo "200 fabian 2) create the route default to route fabian ip route add default via x.x.x.x dev ethX table fabian 3) create the rules iptables -t mangle -A PREROUTING -p tcp --dport 25 -j MARK --set-mark 3 4) routing the packets ip rule add from fwmark 3 lookup fabian prio 1 be happy On 5/7/05, Fabian Wolter <netfilter-ml@xxxxxxxxxxxxxxxx> wrote: > Hi, > > I want to route all outgoing port-25-traffic produced by the clients > over ppp1. The rest schould take the default route over ppp0. > > I used the following command: > > iptables -A PREROUTING -p tcp --dport 25 -t mangle -i eth0 -j ROUTE > --oif ppp1 > > But the source addresses of the packets are wrong as "tcpdump -ni ppp1" > shows: > > 01:20:24.422756 IP 192.168.0.4.32825 > 160.45.10.13.25: S > 2020082843:2020082843(0) win 5840 <mss 1460,sackOK,timestamp 266850[|tcp]> > > 192.168.0.4 is the IP adress of the client which tried to connect to the > mailserver 160.45.10.13.25. > > Masquarding is done to 192.168.0.0/24: > > # iptables -t nat -L POSTROUTING > Chain POSTROUTING (policy ACCEPT) > target prot opt source destination > MASQUERADE all -- 192.168.0.0/24 anywhere > > My default route is set to ppp0. > > So, how can I replace/masquerade the 192.168.0.4 by the official IP > address of ppp1? > > Regards, > Fabian > > -- Glaucius Djalma Pereira Junior glaucius@xxxxxxxxx