Julien wrote:
Good Morning,
I have a linux box with two dsl modems on it (connection is done via pppoe), I'm trying to route default traffic on the primary connection (ppp0) and mail traffic on another one (ppp1).
This traffic should be able to come from the localhost or the lan via NAT.
I run Slackware 9.1 (Kernel 2.4.22), recompiled with necessary options for using iproute2.
According to the advanced routing howto, I did the following :
iptables âA PREROUTING âi eth0 ât mangle âp tcp ââdport 25 âj MARK ââsetâmark 1
iptables âA PREROUTING âi lo ât mangle âp tcp ââdport 25 âj MARK ââsetâmark 1
I'm not sure whether "lo" is needed.
echo 201 mail.out >> /etc/iproute2/rt_tables ip rule add fwmark 1 table mail.out
/sbin/ip route add default via [Second's ISP Gateway] dev ppp1 table mail.out
I get no error message, and ip rule ls and ip route show params where recorded.
But if I do telnet somemail.server.com 25, I get a timeout and no data is sent via ppp1 (seen using ifconfig ppp1 or tcpdump -i ppp1).
I can't figure what can be wrong nor where I should start looking for. I also looked in the ip-cref doc and found nothing that could help me.
Feel free to ask me on any point I would have forgotten.
Do you have an idea in order to solve this problem ?
Thanks, in advance !
Julien.
Now I changed iptables line to :
iptables âA OUTPUT ât mangle âp tcp ââdport 25 âj MARK ââsetâmark 1
in order to mangle packets locally generated, that works better since I want to route local postfix's traffic.
When I do telnet smtp.someisp.com 25, I see with tcpdump the packets going out through the interface ppp1 :
14:32:40.693429 62.212.120.196.34515 > 193.252.22.80.smtp: S 4069327741:4069327741(0) win 5808 <mss 1452,sackOK,timestamp 929359 0,nop,wscale 0> (DF) [tos 0x10]
But the problem is that there are originated from 62.212.120.196, which is the ip of ppp0, not ppp1. So packets can't take the way back.
How can I change the "from" ip of packets that are routed through ppp1 ?
Thanks for your help.
Julien