[ Thanks to Adam
Palmer for this link. ]
“I’ve recently optimized the scripts used for bandwidth
management in one of our UK facilities and I thought I’d post a
quick howto on it.“My setup here is a live feed entering eth0 on this linux router
and leaving eth1 into a switch connected to a collection of other
servers. This is set up as an unrestricted public router, routing
between a /30 on eth0 and a /24 on eth1.“Note: We can’t in any way restrict the amount of traffic that
eth0 receives from the outside, so instead we restrict how fast
eth0 sends data out, the same applies the other way round. So, if
we want to limit the amount of data that the local servers can
send, we shape the router’s external interface (eth0). If we want
to limit the amount of data that the local servers can receive, we
shape the router’s internal interface (eth1)“I have tried not to get bogged down with too many irrelevant
details here and would be happy to answer any questions or take any
corrections. It’s pretty simple and it works well. Install bmon and
you can confirm this yourself. The purpose of this is that I can
take a 10mbit connection and limit the traffic to 5mbit ensuring
that I don’t break the 95th percentile that I want to maintain at
the datacenter. I can increase and decrease this at any time as
traffic requires or permits respectively.”