On Monday 09 February 2009 12:34:01 Aleksey V. Kunitskiy wrote:
> Hi Gentoo community,
> I have several computers at home and one Gentoo-powered router. I want to
> setup a very simple traffic shaper that will give each computer almost
> equal(the best choice - with some weight coefficient on each ip address)
> speed, without counting number of connections and etc. So, someone using
> torrent won't load whole pipe. One most important problem with it that I
> have fixed speed to the world and fixed speed to local resourses in my
> city, so I can't fix my up/down link speed to one fixed number, I actually
> have 2 speeds, depending on the IP address I'm accessing to.
>
> Any suggestions?

First, when you say you have a "Gentoo-powered router," what exactly do you 
mean?  Are you running a dedicated hardware router where you've installed 
Gentoo or are you using a PC with multiple NICs as a router?  This may or may 
not be important, depending on exactly what you end up implementing.  
Personally, I'd recommend using purpose built router software, such as DD-WRT 
or Tomato.  They're Linux based but they're specifically customize for routing 
and are probably going to be much easier to configure, and they run on a lot 
of different commercially available hardware.  A $50 Linksys WRT54G with DD-
WRT can match a $1000 Cisco router in capability and performance in many 
circumstances.  

Second, how familiar are you with networking in general and traffic shaping in 
particular?  If I'm understanding you correctly, what you're trying to do 
above would be difficult and quite inefficient.  For example, if you do a hard 
limit on bandwidth per IP, then much of your capacity will be idle because 
it'll be reserved for systems which aren't using it.  For example, if system A 
is downloading a file, it would be restricted in speed if bandwidth is being 
reserved for systems B, C, etc., even if no one is using those systems!  So 
unless all of your systems are in use maxing out their allotted bandwidth at 
the same time, you're always going to have bandwidth that is sitting idle.  
That's quite inefficient.

If your goal is to ensure that a bittorrent download on one system doesn't bog 
down a VoIP call or a WOW gaming session on another system, then you'd be much 
better off going with some sort of CBQ (Class Based Queuing.)  This won't put 
a hard limit on the bandwidth usable by any particular system or IP, but it 
will prioritize traffic and prevent bittorrent, etc. from clobbering all your 
bandwidth.

There's a good introduction to traffic shaping with Linux here:

http://lartc.org/howto/

Note that manually configuring traffic shaping with iproute2 can get quite 
technical and require some indepth rule writing.  Depending on your level of 
knowledge and the time and effort you're willing to put in, that may or may 
not be an issue.  



Reply via email to