Slashdot Mirror


Affordably Aggregating ISP Connections?

An anonymous reader writes "Has anyone setup a system to aggregate multiple ISP connections to form a high bandwidth site-to-site link? Load Sharing SCTP looked interesting, but it doesn't look like it has been widely adopted. Multi-Link PPP appears to be more widely supported for clients, but I can't find any good guides for setting up both sides of the connection for a site-to-site link. The hardware solutions I've found are expensive for a small business. Does anyone have experience using hardware solutions from Mushroom Networks (Virtual Leased Line, p2 of this document), Ecessa (site-to-Site Channel Bonding), or others?"

17 of 180 comments (clear)

  1. Bonded VPNs by Anonymous Coward · · Score: 5, Informative

    I have bonded 2 IPSec VPNs running over 2 ISP's to create a bigger (and cheaper) site-to-site link on the cheap.

    http://www.zeroshell.net/eng/faq/vpn/

    Read Point 5 in the link

  2. What are you really trying to do? by BadAnalogyGuy · · Score: 5, Insightful

    What you have presented us with here is a "B C" problem. You want to achieve C, so you ask us how to do B. Unfortunately, you never specify what A is, so the best we can do is give you some pointers for B which are probably going to be irrelevant and useless to what you are really trying to achieve.

    Most of the comments will probably be about trying to figure out what your A problem is. To that end, why don't you just get a faster line in the first place and forget about this line aggregation stuff you're asking about?

    1. Re:What are you really trying to do? by TheRaven64 · · Score: 3, Informative
      But that's the grandparent's point. What does he actually want from this setup? There are a lot of factors that will affect the best solution. Does he want:
      • Individual connections to be faster?
      • Total throughput to be more?
      • Overall reliability to be better?
      • Transparent fail-over if one connection goes down?

      If he wants the last one, does he want:

      • Existing connections to continue working?
      • New incoming connections to keep working?
      • New outgoing connections to keep working?

      Some of these are trivial, some require a little bit of client-side configuration, some require additional support from the ISP. Without knowing what he actually wants to achieve, it's impossible to make a recommendation. You can do all of these things relatively easily with a stock OpenBSD install on your router, but exactly which ones you want depends a lot more on the requirements. For somethings, you want to run a VPN between the two sites with packets sent over some of the link with the most bandwidth. For others, you could get away with just a couple of routing rules. If you want more than just the two sites and you want existing connections to work then you need the ISP to support updating the routing tables when their link to you goes down.

      --
      I am TheRaven on Soylent News
  3. Re:Don't be so cheap by adolf · · Score: 3, Insightful

    All of them?

    Um, yeah: Whatever you say, kid.

    We usually just use a Roadrunner account for the main office, just like all the other small business out there. It's faster and cheaper than a T1, and has better reliability than the PRI that handles our phones. (We also have a freebie account with a local WISP that we do some business with for manual fail-over, but we haven't had to use it in years.)

  4. tomato by angelbunny · · Score: 3, Informative

    The cheapest way to do this is use the mlppp version of tomato on a wrt type router. You can check it out here: http://fixppp.org/

    1. Re:tomato by Anonymous Coward · · Score: 5, Informative

      Only works if you've got DSL, and then again only if they use PPPoE. Then the remote DSLAM needs to support mlppp as well.

      I would suggest OpenBSD + PF and just load balance the connections using PF. Takes all of 10 lines of code to get it up and going and is well documented. This won't aggregate your bandwidth, however if you have multiple streams open, it'll bounce those between two or more connections. I've personally done 4 lines like this (2x adsl2+ and 2x DOCSIS 2) and hit about 95% utilization across all lines.

      Also with PF, both lines don't need to be the same speed, or even with the same provider, which gives you some additional fault tolerance.

  5. pfSense by adairw · · Score: 3, Interesting

    Unless you can get your ISP to bond several connections together about the best you can do is load balancing across multiple connections. I use pfsense (http://www.pfsense.com) as my router/firewall VPN solution that's free, you only supply the hardware to run it on. with it you can load balance and fail over to 2 or more connections automatically. Specif connections can even be setup to have certain traffic routed over them while all other traffic gets load balanced round robin style. there are of course other free *nix distros out there that will let you do the same type of stuff however I and many others have found pfSense to be far batter than most. AW

  6. printers/newpapers by shareme · · Score: 3, Informative

    Your local newspaper or medium sized printer will have such a setup. Buy their IT staff diner to get the information..

    --
    Fred Grott(aka shareme) http://mobilebytes.wordpress.com
    1. Re:printers/newpapers by bendodge · · Score: 3, Funny

      Even in really depressed metros, diners are still pretty expensive compared to T1's.

      --
      The government can't save you.
  7. Multiple bonded connections by davidwr · · Score: 3, Informative

    In theory, you can bond multiple DSL, multiple cable, multiple T1, or even multiple dialup connections from the same vendor.

    Even if you are in a small town where the best service you can get is 1Mbps DSL, if you've got enough wires running from the neighborhood box to your house you can ask for 2 or 3 or more separate DSL lines and see if the local telco will support bonding them.

    Even 15 years ago some telcos offered on-demand, 0-24 circuit, bonded dialup. The idea was a business would use it as up to 24 voice circuits during times of the day they talked a lot and up to 24 modem/data circuits when they needed them, typically at night for batch data exchange. It was sold as an alternative to T1 or ISDN, the first of which was very expensive and not available in all areas, and the latter of which was expensive and roughly the equivalent of 2 phone-or-data lines.

    DSL and later cable internet made this pretty much obsolete, at least in technically advanced areas.

    --
    Knowledge is how to play a game, intelligence is how to win, wisdom is knowing what game to play.
  8. Re:You can't do what you want to do by Anonymous Coward · · Score: 5, Informative

    Sure you can.

    http://www.openbsd.org/faq/pf/pools.html

    One simple example. Plenty of other options available with other software. As long as you load-balance per connection instead of per packet there aren't many issues with this, and those often don't apply outside of special use cases.

  9. Re:You can't do what you want to do by hcetSJ · · Score: 5, Funny

    a fucking book on how routing works

    Now there's a fetish you'll only run across on Slashdot.

    --

    This side up.
  10. Ask Willie Nelson, he uses Mushroom Portabella by Anonymous Coward · · Score: 4, Interesting

    Wired has an article on Willie Nelson's setup in his tour bus running, http://www.wired.com/epicenter/2009/10/willie-nelson-broadban/ "Willie Nelson has tossed the satellite dish off the back of his corn-powered tour bus in favor of a little box that fuses wireless data cards from a variety of networks into a single connection."[Mushroom Networks PortaBella 141]

  11. Re:Need More Infos by mindstrm · · Score: 5, Informative

    "TCP/IP doesn't allow for that, that I know of"

    It sure does - it doesn't care what route the packets took - just that they got there. THe problem is if you split the stream over 3 links with varying latency - you won't see the performance gains you wan t- it'll more likely hurt.

    If the goal is to end up with a virtual point-to-point link between two offices using multiple ISPs, you can certainly leverage multiple connections to do that. It also depends on the nature of the traffic.

    You can set up multiple VPN tunnels and then run whatever protocol you want - you could do MLPPP - but that'll get ugly if the links don't have very similar characteristics.

    The solution you mentioend in the end - Iv'e found that' susually the best - you can get most common *nix systems to do some kind of weighted load balancing of outgoing sessions... whether it's per-source, per-destination, per-protcol, or based on any other weird usage combination you had.

    For an office situation Iw as once in - we had 1 2mbps and 1 x 4mbps lines (from separate providers) and a very high latency 1Mbps satellite connection.
    I gave them a web page that had four buttons on it.
    The first was "normal operation - 2MB + 4 MB". TCP sessions would be randomly routed over one orhte other, with double rpeference given to the 4 meg line.
    The ohters were "ISP1, ISP2, and Satellite" respectively. At the push of a button the routes would flip, the state tables would flush, and everything would work. For practical puproess, it worked really well.

    There is no magic way to simply aggregate bandwidth from separate providers over consumer connections with meaningful results... not like bonding multiple direct lines or anything like that.... 2 + 2 won't equal 4.... but depending on the use case, it can be just about as good.

  12. Mac OS X? by appleguru · · Score: 4, Interesting

    Admittedly, I have no idea if it works, nor do I have any idea how it decides to load balance between the connections.. But I ran across the feature the other day and it looked pretty cool.

    In Mac OS X you can create a new "Aggregate" network device from any other devices and, in theory, do exactly what your describing. Again, I just ran across this the other day in Network Preferences and have no idea if/how it works, but it might be worth a shot (especially since it seems a lot easier to configure than a roll your own router with dd-wrt or tomato, though those likely offer more fine-tuned configuration).

  13. LISP Routing by paul248 · · Score: 3, Interesting

    Some people (Cisco, etc.) are working on developing the Locator/ID Separation Protocol as a core component of the Internet infrastructure.

    If that ever takes off, you'll be able to buy a Provider Independent IP address block, advertise it through multiple ISPs (even Cable/DSL), and transparently load balance your upstream and downstream traffic across them, without bloating the core BGP tables.

    The downside is, you'll have to use an MTU that's smaller than 1500, but I'd say it's a fair trade.

  14. Linux Iproute2 is all you need by SectoidRandom · · Score: 3, Informative

    A few years back I did this with a colleague, we actually investigated 3 solutions; 2 commercial and one linux script based, in the end the one that won easily was the Linux script.

    Basically using iproute2 and some nice scripts gives you the ability to load balance your outbound packets and then using some relatively simple scripts to monitor each remote peer for automatic failover.

    A quick google turns up this blogger who sounds (from a quick skim) like he's doing the same thing: http://blog.taragana.com/index.php/archive/how-to-load-balancing-failover-with-dual-multi-wan-adsl-cable-connections-on-linux/

    Unfortunately I can't remember the commercial solutions we tested (this was 4-5 years ago!), but although they did exactly what you wanted perfectly, our problem was that we were doing this for a managed services company who ran 150+ IPSEC VPN's over those (at the time) 3 bonded ADSL connections, needless to say the commercial solutions had never imagined anyone trying to statefully balance that many VPNs! However with some tweaking (to be honest a LOT of tweaking) we got the Linux solution working a treat, even with nearly seamless failover.

    Google is your friend on this one.