Simple QoS Script, ktory nam vytvori na zadanom interface take v celku jednoduche QoS :)
#
# Simple QoS Script
# Verzia : 0.2b (17 sep. 09)
#
# Script by Tokk
#
# Historia Verzii :
# 0.1b - Pridane Queue pre Garant...
# 0.1b - Prva verzia...
#
#
#
# PREMENNE ZACIATOK
#
# Interface APcka, resp. LANKY na ktoru chceme aplikovat QoS
:local iface "24_ap"
# Garantovany Limit na Interface
:local ifacelimit "4M"
# Upload Limit-at
:local uplimit "1M"
# Upload Max-Limit
:local upmaxlimit "3M"
# Download Limit-at
:local downlimit "2M"
# Download Max-Limit
:local downmaxlimit "4M"
# Vytvor PCQ (hodnoty:Y,N), ak je PCQ uz raz vytvorene, tak nastavime hodnotu N
:local makepcq "Y"
#
# PREMENNE KONIEC
#
#
# SCRIPT ZACIATOK
#
:if ($makepcq = "Y") do {
/queue type
add kind=pcq name=pcq_upload pcq-classifier=src-address pcq-limit=50 \
pcq-rate=0 pcq-total-limit=2000
add kind=pcq name=pcq_download pcq-classifier=dst-address pcq-limit=50 \
pcq-rate=0 pcq-total-limit=2000
}
/ip firewall mangle
add action=jump chain=prerouting comment="" disabled=no jump-target=("QoS_" . $iface . "_up") \
in-interface=$iface
add action=jump chain=postrouting comment="" disabled=no jump-target=("QoS_" . $iface . "_down") \
out-interface=$iface
add action=change-dscp chain=("QoS_" . $iface . "_up") comment="" disabled=no new-dscp=0
add action=change-dscp chain=("QoS_" . $iface . "_up") comment=ssh disabled=no dst-port=22 \
new-dscp=1 protocol=tcp
add action=change-dscp chain=("QoS_" . $iface . "_up") comment=telnet disabled=no dst-port=23 \
new-dscp=1 protocol=tcp
add action=change-dscp chain=("QoS_" . $iface . "_up") comment=bgp disabled=no dst-port=179 \
new-dscp=1 protocol=tcp
add action=change-dscp chain=("QoS_" . $iface . "_up") comment="" disabled=no dst-port=5060 \
new-dscp=1 protocol=udp
add action=change-dscp chain=("QoS_" . $iface . "_up") comment="" disabled=no dst-port=4569 \
new-dscp=1 protocol=udp
add action=change-dscp chain=("QoS_" . $iface . "_up") comment=DNS disabled=no dst-port=53 \
new-dscp=1 protocol=udp
add action=change-dscp chain=("QoS_" . $iface . "_up") comment="" disabled=no dst-port=4569 \
new-dscp=1 protocol=tcp
add action=change-dscp chain=("QoS_" . $iface . "_up") comment="POP3" disabled=no dst-port=110 \
new-dscp=1 protocol=tcp
add action=change-dscp chain=("QoS_" . $iface . "_up") comment="IMAP" disabled=no dst-port=143 \
new-dscp=1 protocol=tcp
add action=change-dscp chain=("QoS_" . $iface . "_up") comment="SMTP" disabled=no dst-port=25 \
new-dscp=1 protocol=tcp
add action=change-dscp chain=("QoS_" . $iface . "_up") comment="SSMTP" disabled=no dst-port=465 \
new-dscp=1 protocol=tcp
add action=change-dscp chain=("QoS_" . $iface . "_up") comment="IMAP4-SSL" disabled=no dst-port=585 \
new-dscp=1 protocol=tcp
add action=change-dscp chain=("QoS_" . $iface . "_up") comment="IMAPS" disabled=no dst-port=993 \
new-dscp=1 protocol=tcp
add action=change-dscp chain=("QoS_" . $iface . "_up") comment="SSL-POP" disabled=no dst-port=995 \
new-dscp=1 protocol=tcp
add action=change-dscp chain=("QoS_" . $iface . "_up") comment=ospf disabled=no new-dscp=1 \
protocol=ospf
add action=change-dscp chain=("QoS_" . $iface . "_up") comment=icmp disabled=no new-dscp=1 \
protocol=icmp
add action=change-dscp chain=("QoS_" . $iface . "_up") comment=irc disabled=no dst-port=6667 \
new-dscp=2 protocol=tcp
add action=change-dscp chain=("QoS_" . $iface . "_up") comment="" disabled=no dst-port=6668 \
new-dscp=2 protocol=tcp
add action=change-dscp chain=("QoS_" . $iface . "_up") comment="" disabled=no dst-port=6697 \
new-dscp=2 protocol=tcp
add action=change-dscp chain=("QoS_" . $iface . "_up") comment="" disabled=no dst-port=7324 \
new-dscp=2 protocol=tcp
add action=change-dscp chain=("QoS_" . $iface . "_up") comment="" disabled=no dst-port=7325 \
new-dscp=2 protocol=tcp
add action=change-dscp chain=("QoS_" . $iface . "_up") comment="" disabled=no dst-port=64738 \
new-dscp=2 protocol=tcp
add action=change-dscp chain=("QoS_" . $iface . "_up") comment="" disabled=no dst-address=\
172.16.1.1 dst-port=80 new-dscp=2 protocol=tcp
add action=change-dscp chain=("QoS_" . $iface . "_up") comment=HTTP disabled=no dst-port=80 \
new-dscp=2 protocol=tcp
add action=change-dscp chain=("QoS_" . $iface . "_up") comment=HTTPS disabled=no dst-port=443 \
new-dscp=2 protocol=tcp
add action=change-dscp chain=("QoS_" . $iface . "_up") comment=FTP disabled=no dst-port=22 \
new-dscp=2 protocol=tcp
add action=change-dscp chain=("QoS_" . $iface . "_up") comment="WINBOX - Mark DSCP as 1" \
disabled=no dst-port=8291 new-dscp=1 protocol=tcp
add action=change-dscp chain=("QoS_" . $iface . "_up") comment="SNMP - Mark DSCP as 1" disabled=\
no dst-port=161 new-dscp=1 protocol=udp
add action=change-dscp chain=("QoS_" . $iface . "_up") comment="SNMP - Mark DSCP as 1" disabled=\
no new-dscp=1 protocol=udp src-port=161
add action=change-dscp chain=("QoS_" . $iface . "_up") comment="COH - Mark DSCP as 2" disabled=\
no dst-port=30260 new-dscp=2 protocol=udp
add action=change-dscp chain=("QoS_" . $iface . "_up") comment="COH - Mark DSCP as 2" disabled=\
no dst-port=9100 new-dscp=2 protocol=udp
add action=change-dscp chain=("QoS_" . $iface . "_up") comment="HL2 - Mark DSCP as 2" disabled=\
no dst-port=27000-27065 new-dscp=2 protocol=udp
add action=change-dscp chain=("QoS_" . $iface . "_up") comment="COD4 - Mark DSCP as 2" disabled=\
no dst-port=28960 new-dscp=2 protocol=udp
add action=change-dscp chain=("QoS_" . $iface . "_up") comment="WAR3 - Mark DSCP as 2" disabled=\
no dst-port=6112 new-dscp=2 protocol=tcp
add action=change-dscp chain=("QoS_" . $iface . "_up") comment=UT2004 disabled=no dst-port=\
7777-7778 new-dscp=2 protocol=udp
add action=change-dscp chain=("QoS_" . $iface . "_up") comment=Diablo2 disabled=no dst-port=4000 \
new-dscp=2 protocol=tcp
add action=change-dscp chain=("QoS_" . $iface . "_up") comment=Quake3 disabled=no dst-port=\
27960-27965 new-dscp=2 protocol=udp
add action=change-dscp chain=("QoS_" . $iface . "_up") comment=Time disabled=no dst-port=123 \
new-dscp=1 protocol=udp
add action=change-dscp chain=("QoS_" . $iface . "_up") comment="Icecast / Shoutcast" disabled=no \
dst-port=8000 new-dscp=2 protocol=tcp
add action=change-dscp chain=("QoS_" . $iface . "_up") comment=ShoutCaster disabled=no dst-port=\
8001 new-dscp=2 protocol=tcp
add action=change-dscp chain=("QoS_" . $iface . "_up") comment=Teamspeak disabled=no dst-port=\
8767 new-dscp=2 protocol=udp
add action=change-dscp chain=("QoS_" . $iface . "_up") comment=SpaceSiege disabled=no dst-port=4 \
new-dscp=2 protocol=udp
add action=change-dscp chain=("QoS_" . $iface . "_up") comment="" disabled=no new-dscp=3 p2p=\
all-p2p
add action=mark-connection chain=("QoS_" . $iface . "_up") comment=\
"Prio1 - Change DSCP 1 into connection mark Prio1-Conn" disabled=no dscp=\
1 new-connection-mark=("" . $iface . "_Prio1_u-Conn") passthrough=yes
add action=mark-packet chain=("QoS_" . $iface . "_up") comment=\
"Prio1 - Change connection mark Prio1-Conn into packet mark Prio1" \
connection-mark=("" . $iface . "_Prio1_u-Conn") disabled=no new-packet-mark=("" . $iface . "_Prio1_u") \
passthrough=yes
add action=mark-connection chain=("QoS_" . $iface . "_up") comment=\
"Prio2 - Change DSCP 2 into Connection mark Prio2-Conn" disabled=no dscp=\
2 new-connection-mark=("" . $iface . "_Prio2_u-Conn") passthrough=yes
add action=mark-packet chain=("QoS_" . $iface . "_up") comment=\
"Prio2 - Change connection mark Prio2-Conn to packet mark Prio2" \
connection-mark=("" . $iface . "_Prio2_u-Conn") disabled=no new-packet-mark=("" . $iface . "_Prio2_u") \
passthrough=yes
add action=mark-connection chain=("QoS_" . $iface . "_up") comment=\
"Prio3 - Change DSCP 3 into Connection mark Prio3-Conn" disabled=no dscp=3 \
new-connection-mark=("" . $iface . "_Prio3_u-Conn") passthrough=yes
add action=mark-packet chain=("QoS_" . $iface . "_up") comment=\
"Prio3 - Change connection mark Prio3-Conn to packet mark Prio3" \
connection-mark=("" . $iface . "_Prio3_u-Conn") disabled=no new-packet-mark=("" . $iface . "_Prio3_u") \
passthrough=yes
add action=mark-connection chain=("QoS_" . $iface . "_up") comment=\
"Other - Change DSCP 0 into connection mark Other-Conn" disabled=no dscp=\
0 new-connection-mark=("" . $iface . "_Other_u-Conn") passthrough=yes
add action=mark-packet chain=("QoS_" . $iface . "_up") comment=\
"Other - Change connection mark Other-Conn into packet mark Other" \
connection-mark=("" . $iface . "_Other_u-Conn") disabled=no new-packet-mark=("" . $iface . "_Other_u") \
passthrough=yes
add action=passthrough chain=("QoS_" . $iface . "_up") comment="" disabled=no dscp=4 \
ipv4-options=any
add action=set-priority chain=("QoS_" . $iface . "_up") comment=\
"Translate DSCP Values into WMM Priorities" disabled=no new-priority=\
from-dscp passthrough=yes
add action=return chain=("QoS_" . $iface . "_up") comment="" disabled=no
add action=change-dscp chain=("QoS_" . $iface . "_down") comment="" disabled=no new-dscp=0
add action=change-dscp chain=("QoS_" . $iface . "_down") comment=ssh disabled=no new-dscp=1 \
protocol=tcp src-port=22
add action=change-dscp chain=("QoS_" . $iface . "_down") comment=telnet disabled=no new-dscp=1 \
protocol=tcp src-port=23
add action=change-dscp chain=("QoS_" . $iface . "_down") comment=bgp disabled=no new-dscp=1 \
protocol=tcp src-port=179
add action=change-dscp chain=("QoS_" . $iface . "_down") comment="" disabled=no new-dscp=1 \
protocol=udp src-port=5060
add action=change-dscp chain=("QoS_" . $iface . "_down") comment="" disabled=no new-dscp=1 \
protocol=udp src-port=4569
add action=change-dscp chain=("QoS_" . $iface . "_down") comment=DNS disabled=no new-dscp=1 \
protocol=udp src-port=53
add action=change-dscp chain=("QoS_" . $iface . "_down") comment="POP3" disabled=no src-port=110 \
new-dscp=1 protocol=tcp
add action=change-dscp chain=("QoS_" . $iface . "_down") comment="IMAP" disabled=no src-port=143 \
new-dscp=1 protocol=tcp
add action=change-dscp chain=("QoS_" . $iface . "_down") comment="SMTP" disabled=no src-port=25 \
new-dscp=1 protocol=tcp
add action=change-dscp chain=("QoS_" . $iface . "_down") comment="SSMTP" disabled=no src-port=465 \
new-dscp=1 protocol=tcp
add action=change-dscp chain=("QoS_" . $iface . "_down") comment="IMAP4-SSL" disabled=no src-port=585 \
new-dscp=1 protocol=tcp
add action=change-dscp chain=("QoS_" . $iface . "_down") comment="IMAPS" disabled=no src-port=993 \
new-dscp=1 protocol=tcp
add action=change-dscp chain=("QoS_" . $iface . "_down") comment="SSL-POP" disabled=no src-port=995 \
new-dscp=1 protocol=tcp
add action=change-dscp chain=("QoS_" . $iface . "_down") comment="" disabled=no new-dscp=1 \
protocol=tcp src-port=4569
add action=change-dscp chain=("QoS_" . $iface . "_down") comment=ospf disabled=no new-dscp=1 \
protocol=ospf
add action=change-dscp chain=("QoS_" . $iface . "_down") comment=icmp disabled=no new-dscp=1 \
protocol=icmp
add action=change-dscp chain=("QoS_" . $iface . "_down") comment=irc disabled=no new-dscp=2 \
protocol=tcp src-port=6667
add action=change-dscp chain=("QoS_" . $iface . "_down") comment="" disabled=no new-dscp=2 \
protocol=tcp src-port=6668
add action=change-dscp chain=("QoS_" . $iface . "_down") comment="" disabled=no new-dscp=2 \
protocol=tcp src-port=6697
add action=change-dscp chain=("QoS_" . $iface . "_down") comment="" disabled=no new-dscp=2 \
protocol=tcp src-port=7324
add action=change-dscp chain=("QoS_" . $iface . "_down") comment="" disabled=no new-dscp=2 \
protocol=tcp src-port=7325
add action=change-dscp chain=("QoS_" . $iface . "_down") comment="" disabled=no new-dscp=2 \
protocol=tcp src-port=64738
add action=change-dscp chain=("QoS_" . $iface . "_down") comment="" disabled=no dst-address=\
172.16.1.1 new-dscp=2 protocol=tcp src-port=80
add action=change-dscp chain=("QoS_" . $iface . "_down") comment=HTTP disabled=no new-dscp=2 \
protocol=tcp src-port=80
add action=change-dscp chain=("QoS_" . $iface . "_down") comment=HTTPS disabled=no new-dscp=2 \
protocol=tcp src-port=443
add action=change-dscp chain=("QoS_" . $iface . "_down") comment=FTP disabled=no new-dscp=2 \
protocol=tcp src-port=22
add action=change-dscp chain=("QoS_" . $iface . "_down") comment="WINBOX - Mark DSCP as 1" \
disabled=no new-dscp=1 protocol=tcp src-port=8291
add action=change-dscp chain=("QoS_" . $iface . "_down") comment="SNMP - Mark DSCP as 1" \
disabled=no new-dscp=1 protocol=udp src-port=161
add action=change-dscp chain=("QoS_" . $iface . "_down") comment="COH - Mark DSCP as 2" \
disabled=no new-dscp=2 protocol=udp src-port=30260
add action=change-dscp chain=("QoS_" . $iface . "_down") comment="COH - Mark DSCP as 2" \
disabled=no new-dscp=2 protocol=udp src-port=9100
add action=change-dscp chain=("QoS_" . $iface . "_down") comment="HL2 - Mark DSCP as 2" \
disabled=no new-dscp=2 protocol=udp src-port=27000-27065
add action=change-dscp chain=("QoS_" . $iface . "_down") comment="COD4 - Mark DSCP as 2" \
disabled=no new-dscp=2 protocol=udp src-port=28960
add action=change-dscp chain=("QoS_" . $iface . "_down") comment="WAR3 - Mark DSCP as 2" \
disabled=no new-dscp=2 protocol=tcp src-port=6112
add action=change-dscp chain=("QoS_" . $iface . "_down") comment=UT2004 disabled=no new-dscp=2 \
protocol=udp src-port=7777-7778
add action=change-dscp chain=("QoS_" . $iface . "_down") comment=Diablo2 disabled=no new-dscp=2 \
protocol=tcp src-port=4000
add action=change-dscp chain=("QoS_" . $iface . "_down") comment=Quake3 disabled=no new-dscp=2 \
protocol=udp src-port=27960-27965
add action=change-dscp chain=("QoS_" . $iface . "_down") comment=Time disabled=no new-dscp=1 \
protocol=udp src-port=123
add action=change-dscp chain=("QoS_" . $iface . "_down") comment="Icecast / Shoutcast" disabled=\
no new-dscp=2 protocol=tcp src-port=8000
add action=change-dscp chain=("QoS_" . $iface . "_down") comment=ShoutCaster disabled=no \
new-dscp=2 protocol=tcp src-port=8001
add action=change-dscp chain=("QoS_" . $iface . "_down") comment=Teamspeak disabled=no new-dscp=\
2 protocol=udp src-port=8767
add action=change-dscp chain=("QoS_" . $iface . "_down") comment=SpaceSiege disabled=no \
new-dscp=2 protocol=udp src-port=4
add action=change-dscp chain=("QoS_" . $iface . "_down") comment="" disabled=no new-dscp=3 p2p=\
all-p2p
add action=mark-connection chain=("QoS_" . $iface . "_down") comment=\
"Prio1 - Change DSCP 1 into connection mark Prio1_d-Conn" disabled=no \
dscp=1 new-connection-mark=("" . $iface . "_Prio1_d-Conn") passthrough=yes
add action=mark-packet chain=("QoS_" . $iface . "_down") comment=\
"Prio1 - Change connection mark Prio1_d-Conn into packet mark Prio1_d" \
connection-mark=("" . $iface . "_Prio1_d-Conn") disabled=no new-packet-mark=("" . $iface . "_Prio1_d") \
passthrough=yes
add action=mark-connection chain=("QoS_" . $iface . "_down") comment=\
"Prio2 - Change DSCP 2 into Connection mark Prio2_d-Conn" disabled=no \
dscp=2 new-connection-mark=("" . $iface . "_Prio2_d-Conn") passthrough=yes
add action=mark-packet chain=("QoS_" . $iface . "_down") comment=\
"Prio2 - Change connection mark Prio2-Conn to packet mark Prio2" \
connection-mark=("" . $iface . "_Prio2_d-Conn") disabled=no new-packet-mark=("" . $iface . "_Prio2_d") \
passthrough=yes
add action=mark-connection chain=("QoS_" . $iface . "_down") comment=\
"Prio3 - Change DSCP 3 into Connection mark Prio3-Conn" disabled=no dscp=3 \
new-connection-mark=("" . $iface . "_Prio3_d-Conn") passthrough=yes
add action=mark-packet chain=("QoS_" . $iface . "_down") comment=\
"Prio3 - Change connection mark Prio3_d-Conn to packet mark Prio3" \
connection-mark=("" . $iface . "_Prio3_d-Conn") disabled=no new-packet-mark=("" . $iface . "_Prio3_d") \
passthrough=yes
add action=mark-connection chain=("QoS_" . $iface . "_down") comment=\
"Other - Change DSCP 0 into connection mark Other-Conn" disabled=no dscp=\
0 new-connection-mark=("" . $iface . "_Other_d-Conn") passthrough=yes
add action=mark-packet chain=("QoS_" . $iface . "_down") comment=\
"Other - Change connection mark Other-Conn into packet mark Other" \
connection-mark=("" . $iface . "_Other_d-Conn") disabled=no new-packet-mark=("" . $iface . "_Other_d") \
passthrough=yes
add action=passthrough chain=("QoS_" . $iface . "_down") comment="" disabled=no dscp=4 \
ipv4-options=any
add action=set-priority chain=("QoS_" . $iface . "_down") comment=\
"Translate DSCP Values into WMM Priorities" disabled=no new-priority=\
from-dscp passthrough=yes
add action=return chain=("QoS_" . $iface . "_down") comment="" disabled=no
/queue tree
add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=$ifacelimit \
max-limit=$ifacelimit name=("Q_" . $iface . "_link") packet-mark="" parent=global-out priority=\
8 queue=default
add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=$uplimit \
max-limit=$upmaxlimit name=("Q_" . $iface . "_up") packet-mark="" parent=("Q_" . $iface . "_link") priority=8 \
queue=default
add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=$downlimit \
max-limit=$downmaxlimit name=("Q_" . $iface . "_down") packet-mark="" parent=("Q_" . $iface . "_link") priority=8 \
queue=default
add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 \
max-limit=0 name=("" . $iface . "_Garant_OUT") packet-mark="" parent=("Q_" . $iface . "_down") priority=2 \
queue=pcq_download
add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 \
max-limit=0 name=("" . $iface . "_Prio1_d") packet-mark=("" . $iface . "_Prio1_d") parent=("Q_" . $iface . "_down") priority=1 \
queue=pcq_download
add burst-limit=256k burst-threshold=64k burst-time=10s disabled=no limit-at=0 \
max-limit=0 name=("" . $iface . "_Prio2_d") packet-mark=("" . $iface . "_Prio2_d") parent=("Q_" . $iface . "_down") priority=3 \
queue=pcq_download
add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 \
max-limit=0 name=("" . $iface . "_Prio3_d") packet-mark=("" . $iface . "_Prio3_d") parent=("Q_" . $iface . "_down") priority=4 \
queue=pcq_download
add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 \
max-limit=0 name=("" . $iface . "_Other_d") packet-mark=("" . $iface . "_Other_d") parent=("Q_" . $iface . "_down") priority=8 \
queue=pcq_download
add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 \
max-limit=0 name=("" . $iface . "_Garant_IN") packet-mark="" parent=("Q_" . $iface . "_up") priority=2 \
queue=pcq_upload
add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 \
max-limit=0 name=("" . $iface . "_Prio1_u") packet-mark=("" . $iface . "_Prio1_u") parent=("Q_" . $iface . "_up") priority=1 \
queue=pcq_upload
add burst-limit=256k burst-threshold=64k burst-time=10s disabled=no limit-at=0 \
max-limit=0 name=("" . $iface . "_Prio2_u") packet-mark=("" . $iface . "_Prio2_u") parent=("Q_" . $iface . "_up") priority=3 \
queue=pcq_upload
add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 \
max-limit=0 name=("" . $iface . "_Prio3_u") packet-mark=("" . $iface . "_Prio3_u") parent=("Q_" . $iface . "_up") priority=4 \
queue=pcq_upload
add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 \
max-limit=0 name=("" . $iface . "_Other_u") packet-mark=("" . $iface . "_Other_u") parent=("Q_" . $iface . "_up") priority=8 \
queue=pcq_upload
#
# SCRIPT KONIEC
#