Networking Forums

Networking Forums > Computer Networking > Linux Networking > Rate limiting (old way and new)

Reply
Thread Tools Display Modes

Rate limiting (old way and new)

 
 
D. Stussy
Guest
Posts: n/a

 
      03-03-2008, 07:42 PM
Under the old way (using a "shaper#" pseudo-network-device), all one had to
do was to attach it, set the desired speed/maximum bandwidth, then route the
desired destination address(es) through it. The new way uses the "tc"
program from the iproute2 package. I have searched for examples on how to
do this with "tc" and have found some, but am still unclear. The manual
page for "tc" doesn't seem to list all the permutations (or options) of the
command, nor does it really explain what the different queueing disciplines
are. I also don't fully follow what the "classes" are and why they're
needed. The filter subsystem makes sense but also isn't fully explained. I
would have liked to have found an example of the old, depreciated "shaper0"
interface and its comparable "tc" setup but such has eluded me.

Where's a GOOD resource that explains ALL the workings of "tc"?

The resources I printed so far are:
http://linux.die.net/man/8/tc-tbf
http://www.linuxdocs.org/HOWTOs/Adv-...-HOWTO-14.html
http://www.topwebhosts.org/tools/traffic-control.php
http://www.linux.org/docs/ldp/howto/...it.single.html

None of these explain why I need to state the bandwidth for the main device
in the qdisc line. If the value is really used, I have an added
complication of that I cannot necessarily determine the value that will be
used for an ethernet interface (it's a 100Mbit, but the colocation provider
sometimes attaches a slower ethernet segment (10Mbit or effective 20Mbit as
10 full-duplex)). I could just follow the examples, but they're meaningless
unless I understand what they're doing.


 
Reply With Quote
 
 
 
 
loki harfagr
Guest
Posts: n/a

 
      03-05-2008, 05:16 PM
On Mon, 03 Mar 2008 12:42:21 -0800, D. Stussy wrote:


Quick and dirty answer as I don't know what exactly you want
to shape and which parms you want to tune, and sorry but I have
not much time to devine why you didn't find the "lartc" documents
clear enough ;-)
anyway:

> Under the old way (using a "shaper#" pseudo-network-device), all one had
> to do was to attach it, set the desired speed/maximum bandwidth, then
> route the desired destination address(es) through it. The new way uses
> the "tc" program from the iproute2 package.


This was the previous "new" way, you may prefer to try
the "new" new way which uses the 'hashlimit' module and its
relatives. Sincerely I used the 'tc' way for a lot of different
trix and am almost done transfering the most of them rules to
use the new modules. The 'tc' is a really good tool but the
"recent (somehow)" modules are easier to describe to outsourcers ;-)
 
Reply With Quote
 
buck
Guest
Posts: n/a

 
      03-05-2008, 05:47 PM
On Mon, 3 Mar 2008 12:42:21 -0800, "D. Stussy" <(E-Mail Removed)>
wrote:

>Under the old way (using a "shaper#" pseudo-network-device), all one had to
>do was to attach it, set the desired speed/maximum bandwidth, then route the
>desired destination address(es) through it. The new way uses the "tc"
>program from the iproute2 package. I have searched for examples on how to
>do this with "tc" and have found some, but am still unclear. The manual
>page for "tc" doesn't seem to list all the permutations (or options) of the
>command, nor does it really explain what the different queueing disciplines
>are. I also don't fully follow what the "classes" are and why they're
>needed. The filter subsystem makes sense but also isn't fully explained. I
>would have liked to have found an example of the old, depreciated "shaper0"
>interface and its comparable "tc" setup but such has eluded me.
>
>Where's a GOOD resource that explains ALL the workings of "tc"?


My opinion: Where is good documentation for anything in Linux?
Programmers are poor authors and good authors usually have no clue
what a program really does.

>The resources I printed so far are:
>http://linux.die.net/man/8/tc-tbf
>http://www.linuxdocs.org/HOWTOs/Adv-...-HOWTO-14.html
>http://www.topwebhosts.org/tools/traffic-control.php
>http://www.linux.org/docs/ldp/howto/...it.single.html
>
>None of these explain why I need to state the bandwidth for the main device
>in the qdisc line. If the value is really used, I have an added
>complication of that I cannot necessarily determine the value that will be
>used for an ethernet interface (it's a 100Mbit, but the colocation provider
>sometimes attaches a slower ethernet segment (10Mbit or effective 20Mbit as
>10 full-duplex)). I could just follow the examples, but they're meaningless
>unless I understand what they're doing.


I think you're looking in the wrong place. For simple rate limiting,
check iptables.

TC has no decent docs. You have found what there is. Your situtation
prevents the use of a queueing discipline because these only work when
the available bitrate has an absolute maximum that never varies.
--
buck

 
Reply With Quote
 
D. Stussy
Guest
Posts: n/a

 
      03-06-2008, 01:39 AM
"buck" <(E-Mail Removed)> wrote in message
news:(E-Mail Removed)...
> On Mon, 3 Mar 2008 12:42:21 -0800, "D. Stussy" <(E-Mail Removed)>

wrote:
> >Under the old way (using a "shaper#" pseudo-network-device), all one had

to
> >do was to attach it, set the desired speed/maximum bandwidth, then route

the
> >desired destination address(es) through it. The new way uses the "tc"
> >program from the iproute2 package. I have searched for examples on how

to
> >do this with "tc" and have found some, but am still unclear. The manual
> >page for "tc" doesn't seem to list all the permutations (or options) of

the
> >command, nor does it really explain what the different queueing

disciplines
> >are. I also don't fully follow what the "classes" are and why they're
> >needed. The filter subsystem makes sense but also isn't fully explained.

I
> >would have liked to have found an example of the old, depreciated

"shaper0"
> >interface and its comparable "tc" setup but such has eluded me.
> >
> >Where's a GOOD resource that explains ALL the workings of "tc"?

>
> My opinion: Where is good documentation for anything in Linux?
> Programmers are poor authors and good authors usually have no clue
> what a program really does.
>
> >The resources I printed so far are:
> >http://linux.die.net/man/8/tc-tbf
> >http://www.linuxdocs.org/HOWTOs/Adv-...-HOWTO-14.html
> >http://www.topwebhosts.org/tools/traffic-control.php

>
>http://www.linux.org/docs/ldp/howto/...atelimit.singl

e.html
> >
> >None of these explain why I need to state the bandwidth for the main

device
> >in the qdisc line. If the value is really used, I have an added
> >complication of that I cannot necessarily determine the value that will

be
> >used for an ethernet interface (it's a 100Mbit, but the colocation

provider
> >sometimes attaches a slower ethernet segment (10Mbit or effective 20Mbit

as
> >10 full-duplex)). I could just follow the examples, but they're

meaningless
> >unless I understand what they're doing.

>
> I think you're looking in the wrong place. For simple rate limiting,
> check iptables.


Actually, using iptables doesn't do the job as I want the additional packets
queued or delayed (but still eventually sent), not dropped or rejected.

> TC has no decent docs. You have found what there is. Your situtation
> prevents the use of a queueing discipline because these only work when
> the available bitrate has an absolute maximum that never varies.


I have continued to explore and found that only the cbq qdisc had this
brain-dead arrangement. The htb and tbf qdiscs were much more reasonable,
and I think I figured out something that works for me using them. However,
getting all the parameters correctly stated took about an hour as for many
of them, the man pages dont' really cover them well. I probably have some
that are unnecessary - carried from the examples I found.

I really liked the reference to the "tc-filters" man page which doesn't even
exist!

What I needed to do was to rate-limit outbound packets to a particular
destination IP. That should have been obvious from my reference to the
depreciated "shaper0" virtual interface.


 
Reply With Quote
 
 
 
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Need some expert advice with iptables port 25 (rate limiting) orusing tcp_wrappers Linux_User01 Linux Networking 0 01-16-2011 11:27 PM
Rate limiting with "tc"? Ravenpi Linux Networking 9 09-27-2008 05:28 PM
Jeff Liebermann -- "BIT-rate" and "SAMPLE-rate" are two totally different things. Radium Wireless Internet 8 07-23-2007 10:33 AM
NTL limiting uploads ? Jackeline D Broadband 4 05-14-2004 10:47 AM
** Help REQ: Rate Limiting on Virtual Interfaces NoNameHere Linux Networking 1 12-10-2003 08:15 PM



1 2 3 4 5 6 7 8 9 10 11