forked from Minki/linux
49 lines
1.6 KiB
Plaintext
49 lines
1.6 KiB
Plaintext
|
Traffic Shaper For Linux
|
||
|
|
||
|
This is the current BETA release of the traffic shaper for Linux. It works
|
||
|
within the following limits:
|
||
|
|
||
|
o Minimum shaping speed is currently about 9600 baud (it can only
|
||
|
shape down to 1 byte per clock tick)
|
||
|
|
||
|
o Maximum is about 256K, it will go above this but get a bit blocky.
|
||
|
|
||
|
o If you ifconfig the master device that a shaper is attached to down
|
||
|
then your machine will follow.
|
||
|
|
||
|
o The shaper must be a module.
|
||
|
|
||
|
|
||
|
Setup:
|
||
|
|
||
|
A shaper device is configured using the shapeconfig program.
|
||
|
Typically you will do something like this
|
||
|
|
||
|
shapecfg attach shaper0 eth1
|
||
|
shapecfg speed shaper0 64000
|
||
|
ifconfig shaper0 myhost netmask 255.255.255.240 broadcast 1.2.3.4.255 up
|
||
|
route add -net some.network netmask a.b.c.d dev shaper0
|
||
|
|
||
|
The shaper should have the same IP address as the device it is attached to
|
||
|
for normal use.
|
||
|
|
||
|
Gotchas:
|
||
|
|
||
|
The shaper shapes transmitted traffic. It's rather impossible to
|
||
|
shape received traffic except at the end (or a router) transmitting it.
|
||
|
|
||
|
Gated/routed/rwhod/mrouted all see the shaper as an additional device
|
||
|
and will treat it as such unless patched. Note that for mrouted you can run
|
||
|
mrouted tunnels via a traffic shaper to control bandwidth usage.
|
||
|
|
||
|
The shaper is device/route based. This makes it very easy to use
|
||
|
with any setup BUT less flexible. You may need to use iproute2 to set up
|
||
|
multiple route tables to get the flexibility.
|
||
|
|
||
|
There is no "borrowing" or "sharing" scheme. This is a simple
|
||
|
traffic limiter. We implement Van Jacobson and Sally Floyd's CBQ
|
||
|
architecture into Linux 2.2. This is the preferred solution. Shaper is
|
||
|
for simple or back compatible setups.
|
||
|
|
||
|
Alan
|