Re: DUAL wan issue, destination-based routing

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



jeev wrote:
Hey guys, i was reading on the netfilter site.

I saw Patrick McHardy wrote about having 2 cable modems... i'm in the
same situation... my only problem is that I dont want to do load
balancing, i've just come from using PFSENSE/freebsd to use
ClarkConnect on CentOS i guess.. i've never used iptables before. i've
tried things like:

"iptables -A POSTROUTING -t nat -o eth2 -s 192.168.2.0/24 -d
67.17.117.0/24 -j MASQUERADE" and it still doesn't work.

192.168.2.0/24 dev eth1  proto kernel  scope link  src 192.168.2.1
24.x.x.0/23 dev eth2  proto kernel  scope link  src 24.x.x.23
71.x.x.0/23 dev eth3  proto kernel  scope link  src 71.x.x.6
default via 71.x.x.1 dev eth3

so right now i have all traffic go out eth3, i'd love to have the ips
and ipblocks i select and have it go out one of the cable interfaces.
so for the example above, i want www.speedtest.net (because it shows
the ip) to go out eth2 but it's still going out eth3.

If you only want to distribute outgoing traffic, thats quite easy:

- set up routing rules and tables for both connections:

ip rule add fwmark 0x1 lookup 100
ip route add default via ... dev <dev1> table 100

ip rule add fwmark 0x2 lookup 200
ip route add default via ... dev <dev2> table 200

- set up distribution, in this case using iptables and equal
shares:

iptables -t mangle -A PREROUTING -m connmark --mark 0x0 \
				 -m statistic --mode nth --every 2 \
				 -j CONNMARK --set-mark 0x1
iptables -t mangle -A PREROUTING -m connmark --mark 0x0 \
				 -j CONNMARK --set-mark 0x2

iptables -t mangle -A PREROUTING -j CONNMARK --restore-mark

^ duplicate these three rules with OUTPUT instead of PREROUTING
for locally generated traffic.

You can use any criteria you like for distribution, the important
thing is to make sure connections stay on one connection when using
NAT (since many providers don't allow spoofed addresses), which is
done by checking whether the connection has already been routed
using "-m connmark --mark 0x0" before marking. You might also want
to check out the RATEEST target and match, they allow to include
the current load in the decision.

Dealing with incoming connections on both internet connections
is trickier because you need to make sure they go out the same
way they came in, so I'll skip this because I'm short on time
right now :)

--
To unsubscribe from this list: send the line "unsubscribe netfilter" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Netfilter Development]     [Linux Kernel Networking Development]     [Netem]     [Berkeley Packet Filter]     [Linux Kernel Development]     [Advanced Routing & Traffice Control]     [Bugtraq]

  Powered by Linux