1

At work we have a dedicated Internet link for everyday use (servers use a different link) with limited upload bandwidth (currently 3Mbps). Since there are ~80 users, sometimes this upstream link shoots up to 100% utilization degrading performance noticeably. Most of the time this is due to several users trying to upload files to Dropbox, Google Drive,... simultaneously. I've tried traffic shaping for the offending services but it requires some maintenance since users seem to be very good at finding new services that eat upload bandwidth for breakfast.

I've been thinking about a different approach. Some kind of dynamic bandwidth management on a user basis. In the morning everybody would start "clean", with no traffic shaping in place (or some very basic scheme), but as the day goes by "heavy uploaders" would be shaped more and more aggressively automatically (maybe by some predefined tiers).

My idea is to set up a Linux box to act as the router (or maybe a bridge in front of the actual router). Any ideas on how to implement this?

3
  • What's your budget?
    – ewwhite
    Jan 30, 2013 at 15:41
  • What kind of router do you have?
    – Ron Maupin
    Feb 10, 2020 at 0:05
  • i mean this question is quite old bzt still need a hell mire details
    – djdomi
    Oct 9, 2021 at 15:20

1 Answer 1

0

You might look into setting up a solution using Linux's traffic control (tc). A stochastic fairness queue (http://opalsoft.net/qos/DS-25.htm) can give each user their own fair share of bandwidth in turn, ensuring that no one person hogs the line.

If you stick that on the end of a hierarchical token bucket (http://opalsoft.net/qos/DS-28.htm) to limit the speed then you should be good to go.

Its not an easy task to get your head around tc though, check out this (http://opalsoft.net/qos/DS.htm) and this (http://www.lartc.org/howto/lartc.qdisc.html) or you can take a look at a pre-built solution like wonder-shaper (http://lartc.org/wondershaper/)

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .