Hi. Before start i need to say that i lost a lot of weekends trying every
single posible solution on the net. So this i s my last resource.
This is NOT an ERROR, is just help to make something work. (sorry for my
english)
Hi have 3 zones
loc eth0 => here we have 192.168.1.0/24 with 12 IP''s/PC''s
I can subdivide in 2 tematics zones but if not needed there is no reason
to do it.
net ppp0 => adsl 512 Kb by contract and working
net2 ppp1 => adsl 256 Kb by contract with another ISP and working but
working at ¿512? (I will explain that later)
I need to split the access to the internet between this 2 connections.
I want to make 2 things Split by IP ==> 192.168.1.9-192.168.1.12 to ppp1
And split by port ==> port 21,... (ftp,...) to ppp1
I have tested and read a lot of loadbalancing but dont works well, maybe
some kernel compiling issue but i think that this is not what i want to do.
What i want to do:
if ( (traffic comes from selectedIPlist) OR (traffic comes from
selectedPORTlist ) )
route by ppp1
else
route by ppp0
I think that linux must do this in an easy way. Dont seems to be so
dificult but i dont have any clue. So i''m here asking.
when i reboot the linux server this is what i get from "route"
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use
Iface
host144.200-3-6 * 255.255.255.255 UH 0 0 0
ppp0
host144.200-3-6 * 255.255.255.255 UH 0 0 0
ppp1
192.168.1.0 * 255.255.255.0 U 0 0 0
eth0
default * 0.0.0.0 U 0 0 0
ppp0 // look here ppp0 as default
default * 0.0.0.0 U 0 0 0
ppp1
default host144.200-3-6 0.0.0.0 UG 0 0 0
ppp0
I have masqueraded in shorewall all eth0 traffic to ppp0 and all the
internet request travels via ppp0. Thats fine.
If i masquerade some IP''s or the entire network to ppp1 traffic to the
internet from this IP''s (excluding www traffic becouse i have squid
that
use ppp0) traffic does not travels to any way. (only www throw ppp0).
I''m suppose that this is becouse the first default gateway that route
finds is ppp0. So I test this:
route del default
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use
Iface
host144.200-3-6 * 255.255.255.255 UH 0 0 0
ppp0
host144.200-3-6 * 255.255.255.255 UH 0 0 0
ppp1
192.168.1.0 * 255.255.255.0 U 0 0 0
eth0
default * 0.0.0.0 U 0 0 0
ppp1 // look here ppp0 as default
default host144.200-3-6 0.0.0.0 UG 0 0 0
ppp0
i leave the ppp1 as the default gateway so:
Masquerading eth0 by ppp0 does not work, even www traffic.
Masquerading eth0 by ppp1 does work very well
Spliting some IP''s by ppp0 and default ppp1 dont work for the first
case.
So, i conclude that the problem is the default route becouse.
How can i do a conditional default gateway i think that this is not
posible with shorewall i must do some script that runs together with
shorewall.
Maybe marking packets with tcrules and then asignning to some mark the
gateway ppp1 and ppp0 for all others. Is this posible? how do i specify
the mark when adding the default gateway?
Some any other idea?
I will really apreciate any help that you can provide me.