I maintain internet for a small business in a developing country, and I am forever struggling with unreliable service from our ISPs. Our current setup uses a Peplink Balance 580 for load balancing, but it has a hard time when one of the ISPs isn't providing the amount of bandwidth they should. Currently, I have it set for failover, so when one ISP goes down, it falls back on the other, but that doesn't work when one of them drops to providing less than a Mbps. Is there any way to use both ISPs independent of the amount of bandwidth that they are providing?

  • 5
    You can configure a router to test the link and choose the one with the best performance. Cisco calls this performance routing. But mostly you're at the mercy of your ISP.
    – Ron Trunk
    Aug 29, 2017 at 19:59
  • Did any answer help you? If so, you should accept the answer so that the question doesn't keep popping up forever, looking for an answer. Alternatively, you could provide and accept your own answer.
    – Ron Maupin
    Feb 21, 2018 at 16:42
  • Have you tried connection bonding or load balancing? Sep 3, 2021 at 12:45
  • Of the available load-balancing algorithms available (see peplink.com/technology/load-balancing-algorithms) none of them gracefully handle the case where an ISP is providing significantly less bandwidth than they are configured to provide. I experimented a bit with the different algorithms, but they all had their own downsides that prevented them from being a silver-bullet solution. Sep 3, 2021 at 15:33
  • Sounds like you want to use their Weighted Balance option, though does it test the actual connection speed? If not, then it looks like a bespoke load-balancing solution might be needed. You certainly need a real-time-bandwidth-aware load balancing solution. I expect this would be useful to many people, so if you were to open source it and do it in Python, I'd be up for helping. Sep 6, 2021 at 6:22

2 Answers 2


The problem is that your router doesn't know why the traffic is coming in slowly. Maybe your ISP is flaking out, maybe the server is slow, maybe that particular data stream just doesn't have very much traffic.

You could have a script that periodically ran speed tests of course but aside from wasting bandwidth the network conditions between you and the speed test server may not be the same as those between you and the sites you actually want to visit.

A possible solution to this is some form of multichannel VPN, the VPN is hosted on a reliable internet connection elsewhere. Since the multichannel VPN system controls both ends of the connection it has a far better chance of being able to intelligently balance the load. The downside of course is that there will be ongoing costs in maintaining the VPN and there may be extra latency involved.

Unfortunately having not been in this situation myself I can't provide reconsiderations for particular multichannel VPN solutions.

  • Unfortunately, in my situation, hardware at another location is not an option. Feb 22, 2018 at 17:11

You could run continuous tests on the links and factor those results into deciding how to route traffic, you could use IP SLA on Cisco routers for this however this will lead to you sending traffic continuously over the links (although a small amount). Even open-source routers such as PFSense have built in triggers based on latency to specific destination over WAN links.

  • The problem isn't that latency increases, but that the available bandwidth decreases. Feb 22, 2018 at 17:09

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.