I've released an alpha of 'pyshaper' - a python prog which simplifies traffic-shaping.
Requires python2.2 or later, a 2.4 or later Linux kernel with QoS options compiled in, the iproute2 suite and optionally GeoIP as well.
pyshaper periodically netstats the current TCP connections, matches them against your rules, and dynamically calculates/generates/executes 'tc' commands in the background to control both inbound and outbound traffic to your general requirements.
Configuration file syntax is very simple, and eliminates 98% of the pain one normally goes through when hand-writing 'tc' scripts. In fact, you don't need to know tc at all to use it.
In the pyshaper config file, you declare devices, set in/out limits, and simple boolean expressions which can matching connections against criteria such as:
- local/remote host/port
- local program on the local end of the connection
- the username under which each local prog is running
- the local prog's invocation arguments (and its pid)
- country in which remote host resides
With this flexibility, it is possible to detect and traffic-shape programs which are otherwise hard to police (eg certain p2p apps which talk on different ports), and for which there are no adequate protocol-detecting shaper plugins available.
Intended usage of pyshaper is home systems/networks, where bandwidth is limited, traffic consumption is a concern (eg internet connections with strict traffic caps), and where there is a desire to have potentially bandwidth-guzzling programs (eg p2p apps like Freenet) running 24/7), and where one wants to guarantee good bandwidth for critical communications (eg web/mail server).
GPL (of course)
Info and downloads at http://www.freenet.org.nz/python/pyshaper
Caveats: - it's in alpha - only tested on Debian sid with kernel 2.6.4 - worst-case scenario - no system damage, but possible bugs might cause it to not work as well as desired.
Enjoy!
--
Kind regards David
--
leave this line intact so your email gets through my junk mail filter
_______________________________________________ LARTC mailing list / LARTC@xxxxxxxxxxxxxxx http://mailman.ds9a.nl/mailman/listinfo/lartc HOWTO: http://lartc.org/