Loading balancing with more than one ISP.

Dinesh Nair dinesh at alphaque.com
Sat Jan 17 21:20:31 PST 2004


On Wed, 14 Jan 2004, Antoine Jacoutot wrote:

> I have one ethernet <--> router and one ethernet <--> dsl modem
> connections to connect to my ISPs. As you said, you're not sure about
> routed... Actually, I did not find anyone who actually make this

i've got exactly the same setup as you do, and am trying to do this as
well. short end of the stick is, the only way to do proper best path
routing is by using BGP and having your ISPs (both of them) play ball and
advertise BGP routes to you. without this, you'd never be able to do it
yourself.

as previously stated, FreeBSD does not support multipath routing by
default, though there is a patch which adds this functionality into the
kernel. i have not tried this patch at all, so i won't comment on it.

what i do today is i set the default route to the ISP i am more convinced
off, with static routes of certain large CIDR address blocks going out to
the other ISP. i decided on those large blocks after checking the global
route tables, AS PATH diagrams and experience of link quality. you can do
this by using tools such as the Looking Glass servers, RouteViews.Org and
even Netlantis.org for your situation. i'm not running routed,
zebra/bgpd/ospfd on this at all, since it's all static routes and i can't
find an ISP ospf/bgp router willing to exchange routes with me.

i've tried exploring round robin routing using ipfw's fwd rulesets, but
this does not change the src address of the packet, and sending a packet
with the wrong src address down the wire can be detrimental to the
packet's wellbeing. :)

i'd be very interested though if someone else had succeeded in doing this.

Regards,                           /\_/\   "All dogs go to heaven."
dinesh at alphaque.com                (0 0)    http://www.alphaque.com/
+==========================----oOO--(_)--OOo----==========================+
| for a in past present future; do                                        |
|   for b in clients employers associates relatives neighbours pets; do   |
|   echo "The opinions here in no way reflect the opinions of my $a $b."  |
| done; done                                                              |
+=========================================================================+



More information about the freebsd-questions mailing list