From: Rokas <rokasz@centras.lt>
To: lartc@vger.kernel.org
Subject: [LARTC] Policy routing with IPTABLES MARK
Date: Thu, 30 Oct 2003 10:06:56 +0000 [thread overview]
Message-ID: <marc-lartc-106750858223242@msgid-missing> (raw)
In-Reply-To: <marc-lartc-106738078728361@msgid-missing>
Hello,
I have a LINUX server with two internet connections available.
I want all the traffic to go over the default route, but HTTP traffic
to go over ISP2 line.
Interfaces:
eth1 192.168.2.254 - LAN 192.168.2.x
ppp0 x.x.x.106 - remote gateway x.x.x.6 - ISP1 (default route)
eth0 192.168.164.254 - remote gateway 192.168.164.113 - ISP2 (a
hardware router)
I have the following configuration:
echo 200 gate2 >> /etc/iproute2/rt_tables
server:/etc/network# ip route
x.x.x.6 dev ppp0 proto kernel scope link src x.x.x.106
192.168.2.0/24 dev eth1 proto kernel scope link src 192.168.2.254
192.168.164.0/24 dev eth0 proto kernel scope link src 192.168.164.254
default via x.x.x.6 dev ppp0
server:/etc/network# ip route list table gate2
default via 192.168.164.113 dev eth0
server:/etc/network# ip rule
0: from all lookup local
32765: from all fwmark 1 lookup gate2
32766: from all lookup main
32767: from all lookup default
The script:
-----------------------------------------------------
#!/bin/bash
iptables -t nat -F
iptables -t mangle -F
iptables -F
iptables -P FORWARD ACCEPT
ip route flush table gate2
ip route add default via 192.168.164.113 dev eth0 table gate2
ip rule add fwmark 0x01 table gate2
ip route flush cache
iptables -t nat -A POSTROUTING -s 192.168.2.0/24 -j MASQUERADE
iptables -t mangle -A PREROUTING -i eth1 -s 192.168.2.0/24 -p icmp -j MARK --set-mark 0x01
iptables -t mangle -A PREROUTING -i eth1 -s 192.168.2.0/24 -p tcp -m tcp --dport 80 -j MARK --set-mark 0x01
iptables -t mangle -A PREROUTING -i eth1 -s 192.168.2.0/24 -p tcp -m tcp --dport 443 -j MARK --set-mark 0x01
for f in /proc/sys/net/ipv4/conf/*/rp_filter; do
echo 0 > $f
done
-------------------------------------------------------
I also mark icmp packets, that I could test my configuration using
traceroute.
It seems that my rules are working OK, with tcpdump and traceroute I
see that HTTP traffic of LAN computers go over the ISP2 line. When I
connect to the WWW page, that shows my public IP address, I see the
ISP2 line address. But after some time, part of the HTTP traffic
begins going over the default ISP1 line. I see that some HTTP traffic
goes over ISP2 line (that's good), but also it goes over default route.
And after some time, if I connect to the WWW page, that shows my
public IP address, I see the default ISP1 IP address (that's bad). I
do my test browsing from one of my LAN computers, there are other
computers working in the LAN, and perhaps their HTTP traffic goes OK
(over the ISP2 line), because with
tcpdump -i eth0 net 192.168.164 and port 80
I see that there are much HTTP traffic on the ISP2 line. Then I reboot
my server, for some time (about 10 minutes) everything works OK, but
then there comes my problem... :(
I am totally lost, I don't know how to solve this problem.... :(
I would be very grateful if you helped me with this issue.
Rokas Zakarevicius
_______________________________________________
LARTC mailing list / LARTC@mailman.ds9a.nl
http://mailman.ds9a.nl/mailman/listinfo/lartc HOWTO: http://lartc.org/
next prev parent reply other threads:[~2003-10-30 10:06 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-10-28 22:37 [LARTC] Policy routing with IPTABLES MARK Rokas
2003-10-30 10:06 ` Rokas [this message]
2003-10-31 9:20 ` [LARTC] Policy routing with IPTABLES MARK (please help me) Rokas
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=marc-lartc-106750858223242@msgid-missing \
--to=rokasz@centras.lt \
--cc=lartc@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox