FireQOS... I think I did it!

"Tsaousis, Costa" <[email protected]>
Newsgroups gmane.comp.security.firewalls.firehol.user
Message-ID <CANL+Vpb0Znz74-HEMkPSXN8jN0NNtGSaLoxqAzzZMyCKCOT1rA__32516.4808812135$1394893609$gmane$org@mail.gmail.com>
Hi all,

I think I did it!

FireQOS can now be exactly like FireHOL. server/client statements and full
bi-directional interfaces.

Check this config:

--- /etc/firehol/fireqos.conf BEGIN

DEVICE=dsl0
INPUT_SPEED="$((12200 * 85 / 100))kbit"
OUTPUT_SPEED="$((890  * 95 / 100))kbit"
LINKTYPE="adsl local pppoe-llc"

server_rtp_ports="udp/10000:10100"
server_lol_ports="udp/5000:5500 tcp/8393:8400,2099,5223,5222,8088"
server_openvpn_ports="any/1195:1198"
server_mytorrent_ports="any/51414"

interface $DEVICE world-in bidirectional $LINKTYPE input rate $INPUT_SPEED
output rate $OUTPUT_SPEED

        class voip commit 100kbit pfifo
                server sip
                client sip
                server rtp
                client stun

        class interactive input commit 20% output commit 10%
                server icmp

                server dns
                client dns

                server ssh
                client ssh

                client teamviewer
                client lol

        class chat input commit 1000kbit output commit 440kbit
                client facetime

                server hangouts
                client hangouts

                client gtalk
                client jabber

        class vpns input commit 20% output commit 10%
                server pptp
                server GRE
                server openvpn

        class servers
                server http

        class surfing prio keep commit 10%
                client surfing
                client rsync

        class synacks
                match tcp syn
                match tcp ack

        class default

        class torrents
                client torrents
                server mytorrent prio 1
                match ports 16384:65535

--- /etc/firehol/fireqos.conf END

Notes:

1. server and client should be given with the INPUT interface in mind.
FireQOS will automatically invert it for the output interface.

2. services can be defined much like FireHOL. client ports are not needed
though. Only server ports are used by FireQOS.

3. there are two special keywords in interfaces and classes: input and
output. These are used to specify interface and class rates (commit, max,
etc) for each direction. If no input or output is given the rates are
applied in both directions.

I just committed it to github.

At last... a traffic shaper for humans!

Enjoy...

Costa

_______________________________________________
Firehol-support mailing list
[email protected]
http://lists.firehol.org/mailman/listinfo/firehol-support
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.