New shaping program - ist-shaper

Linux Advanced Routing and Traffic Control

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi al..
I just write program that helps to configure tc with HTB and iptables CLASS
extension.
Its written in perl and uses Apache like config files.
Program can be found on http://sourceforge.net/projects/ist-shaper/ or
http://www.ingwar.eu.org/ist-shaper/

In few days will be new version with time aware rules.

The simply config file looks like this.

############################################################################
###
# It's a simple example of a config file for Ist Shaper
# It only prioritizes outgoing traffic on interface eth0 (128Kbit bandwidth)
# by source and destination port.
#
#
+--------------------------------------------------------------------------+
# |                             htb 1:1 128Kbit
|
#
+------------------------+------------------------+------------------------+
# | htb 1:10 96Kbit prio 1 | htb 1:10 64Kbit prio 2 | htb 1:10 32Kbit prio 3
|
#
+------------------------+------------------------+------------------------+
# |   ssh/telnet/dns       |  http/https/pop3/smtp  |         rest
|
#
+------------------------+------------------------+------------------------+
#
# Root rule (htb 1:1) divides into 3 classess, each allocating part of total
# bandwidth (96Kbit, 64Kbit, 32Kbit).
#
# More complex and working example can by found in file complex.conf
#
############################################################################
###

# location of log file
Log_file = /var/log/ist.log

# use RETURN target for each rule in class to avoid re-classifing of packets
# generaly it's good idea
Return_Rules = 1

############################################################################
###
# interfaces
############################################################################
###

# outgoing interface (128Kbit)
<Device eth0>
    # Total bandwidth for a device (default 128Kbit)
    Rate = 128Kbit

    # default class for qdisc, it is used only if NO OTHER rule will match.
    # It should be empty, used only by tc
    Default = 30

 
###########################################################################
    # classes
 
###########################################################################

    # Highest priority rule, for interactive sessions, like SSH/telnet/etc
    <Class 10>
        Rate = 96Kbit
        Prio = 1
        Rule = -p tcp --source-port ssh
        Rule = -p tcp --destination-port ssh
        Rule = -p tcp --source-port telnet
        Rule = -p tcp --destination-port telnet
        Rule = -p udp --source-port domain
        Rule = -p udp --destination-port domain
    </Class>

    # Next rule for services that need some bandwidth, but not so demanding
    # as interactive sessions (like www browsing... you wouldn't notice
    # page being loaded 0.5 second longer, but in SSH you would)
    <Class 20>
        Rate = 64Kbit
        Prio = 2
        Rule = -p tcp --source-port http
        Rule = -p tcp --destination-port http
        Rule = -p tcp --source-port https
        Rule = -p tcp --destination-port https
        Rule = -p tcp --source-port pop3s
        Rule = -p tcp --destination-port pop3s
        Rule = -p tcp --source-port smtp
        Rule = -p tcp --destination-port smtp
    </Class>

    # all of the rest.... (of corse you could add more classes, look for
them in
    # complex.conf example)
    # This class is default one (See line above defining "Default"), it is
not
    # defined in iptables, used only in tc.
    <Class 30>
        Rate = 32Kbit
        Prio = 3
    </Class>
</Device>

-- 
Lemmings don't grow older, they just die.



_______________________________________________
LARTC mailing list
LARTC@xxxxxxxxxxxxxxx
http://mailman.ds9a.nl/cgi-bin/mailman/listinfo/lartc

[Index of Archives]     [LARTC Home Page]     [Netfilter]     [Netfilter Development]     [Network Development]     [Bugtraq]     [GCC Help]     [Yosemite News]     [Linux Kernel]     [Fedora Users]
  Powered by Linux