Hi, I have been trying to do something simular using 2 gre tunnels between linux
routers. I have used Policy based routing with seperate routing tables, with
kernel patches such as http://www.ssi.bg/~ja/#multigw.
I also tried both per flow/per packet based balancing. So far everything tends
to be very inconsistant; packets seem to be dictated by the route cache (?).
Here are some suggestions you might try:
Teql
using nth or random from iptables
if you do find an answer I would be intrested.
thx jason
________________________________
From: lartc-bounces@mailman.ds9a.nl on behalf of ronnie sahlberg
Sent: Thu 11/24/2005 2:52 AM
To: lartc@mailman.ds9a.nl
Subject: [LARTC] ip route mpath rr problem
Hi list,
I have tried google but just cant get this to work or figure it out.
My setup
=======vanilla 2.6.13 kernel with
CONFIG_IP_ROUTE_MULTIPATH=y
CONFIG_IP_ROUTE_MULTIPATH_CACHED=y
CONFIG_IP_ROUTE_MULTIPATH_RR=y
CONFIG_IP_ROUTE_MULTIPATH_RANDOM=y
CONFIG_IP_ROUTE_MULTIPATH_WRANDOM=y
CONFIG_IP_ROUTE_MULTIPATH_DRR=y
My configuration:
A host with two ppp links.
Ontop of these two ppp dialup links i have created two CIPE tunnels,
one on each link.
Both A and B are under my control.
+----+ cipcb0/ppp0 +-----+
| |----------------------| |
| A | | B |
| | cipcb1/ppp1 | |
| |----------------------| |
+----+ +-----+
>From A''s perspective
ppp0 : local ip:10.1.1.1 peer:10.1.1.254
ppp1 : local ip:10.1.1.2 peer:10.1.1.254
(my ISP givesd me the same peer for concurretn dialupsa)
The two tunnels:
cipcb0: local:10.2.2.1 peer:10.2.2.2
cipcb1: local:10.2.2.5 peer:10.2.2.6
Both CIPE tunnels work fine. I can ping my other box B fine using
either 10.2.2.2 or 10.2.2.6 and the traffic goes across the correct
interface.
What I want
==========I would like packet by packet load-balancing between A and B.
Traffic originating from A going to B will be load balanced packet by
packet across cipcb0 and cipcb1.
What I have tried
================ip route add 10.3.3.3/32 equalize nexthop via 10.2.2.2 dev
cipcb0
nexthop via 10.2.2.6 dev cipcb1
I also run a tcpdump on each of the two itnerfaces cipcb0 and cipcb1
to see where the traffic goes.
On A : ping 10.3.3.3 : this makes all outgoing traffic go through a single link.
I tried it while at the same time i ran while true;do ip route flush
cache; done but that just made tcpdump show the echo reply packet
coming back jump back and forth between cipcb0/cipcb1 with a
granularity of changing every 2 seconds or so. weird.
All outgoing traffic from A still went through the same cipcb interface.
What i have searched for but failed to find
==========================I have found posts that refer to something like
ip route add ... mpath rr
but can not find which iproute2 package that contains the mpath arguments.
Request for help:
================I currently use 2.6.13 with the config options i listed above.
How can I do packet by packet load balancing from packets from A to B?
I am willing to change to whatever 2.6 kernel known to work.
Where can i find an iproute2 tool that supports mpath argument? i
suppose i need this?
Anyone willing to help me?
best regards
ronnie sahlberg, ethereal developer
_______________________________________________
LARTC mailing list
LARTC@mailman.ds9a.nl
http://mailman.ds9a.nl/cgi-bin/mailman/listinfo/lartc
_______________________________________________
LARTC mailing list
LARTC@mailman.ds9a.nl
http://mailman.ds9a.nl/cgi-bin/mailman/listinfo/lartc