3o Script (iproute)
#!/bin/bash
#
# Binaries
#
PATH="/bin:/sbin:/usr/bin"
#
# QOS DOWNLOAD
#
#
# Mark Packets
#
iptables -t mangle -A SHAPEIN -p all -d $DB -j MARK --set-mark 3
iptables -t mangle -A SHAPEIN -p all -d $NICK -j MARK --set-mark 4
iptables -t mangle -A OUTPUT -o $LAN -p all -d 192.168.0.0/24 -j MARK --set-mark 5
iptables -t mangle -A SHAPEIN -p tcp --tcp-flags SYN,RST,ACK SYN -j MARK --set-mark 1
iptables -t mangle -A SHAPEIN -p icmp -j MARK --set-mark 1
iptables -t mangle -A SHAPEIN -p tcp -m length --length :64 -j MARK --set-mark 1
iptables -t mangle -A SHAPEIN -p tcp --dport 22 -j MARK --set-mark 1 #ssh
iptables -t mangle -A SHAPEIN -p tcp --sport 22 -j MARK --set-mark 1 #ssh
iptables -t mangle -A SHAPEIN -p udp --dport 53 -j MARK --set-mark 1 #dns
iptables -t mangle -A SHAPEIN -p udp --sport 53 -j MARK --set-mark 1 #dns
iptables -t mangle -A SHAPEIN -p tcp --sport 20 -j MARK --set-mark 2 #ftp
iptables -t mangle -A SHAPEIN -p tcp --dport 20 -j MARK --set-mark 2 #ftp
iptables -t mangle -A SHAPEIN -p tcp --dport 21 -j MARK --set-mark 2 #ftp
iptables -t mangle -A SHAPEIN -p tcp --sport 21 -j MARK --set-mark 2 #ftp
iptables -t mangle -A SHAPEIN -p tcp --dport 80 -j MARK --set-mark 2 #web
iptables -t mangle -A SHAPEIN -p tcp --sport 80 -j MARK --set-mark 2 #web
iptables -t mangle -A SHAPEIN -p tcp --dport 6901 -j MARK --set-mark 2 #msn
iptables -t mangle -A SHAPEIN -p tcp --sport 6901 -j MARK --set-mark 2 #msn
iptables -t mangle -A SHAPEIN -p tcp -m tcp --sport 6891:6900 -j MARK --set-mark 2 #msn
iptables -t mangle -A SHAPEIN -p tcp -m tcp --dport 6891:6900 -j MARK --set-mark 2 #msn
iptables -t mangle -A SHAPEIN -p udp --dport 6901 -j MARK --set-mark 2 #msn
iptables -t mangle -A SHAPEIN -p udp --sport 6901 -j MARK --set-mark 2 #msn
iptables -t mangle -A SHAPEIN -p udp --dport 6801 -j MARK --set-mark 2 #msn
iptables -t mangle -A SHAPEIN -p udp --sport 6801 -j MARK --set-mark 2 #msn
iptables -t mangle -A SHAPEIN -p udp -m udp --sport 2001:2120 -j MARK --set-mark 2 #msn
iptables -t mangle -A SHAPEIN -p udp -m udp --dport 2001:2120 -j MARK --set-mark 2 #msn
iptables -t mangle -A SHAPEIN -p udp --sport 5060 -j MARK --set-mark 2 #voipbuster
iptables -t mangle -A SHAPEIN -p udp --dport 5060 -j MARK --set-mark 2 #voipbuster
iptables -t mangle -A SHAPEIN -p udp --sport 11113 -j MARK --set-mark 2 #voipbuster
iptables -t mangle -A SHAPEIN -p udp --dport 11113 -j MARK --set-mark 2 #voipbuster
iptables -t mangle -A SHAPEIN -p udp -m udp --sport 10300:10311 -j MARK --set-mark 2 #voipbuster
iptables -t mangle -A SHAPEIN -p udp -m udp --sport 10300:10311 -j MARK --set-mark 2 #voipbuster
iptables -t mangle -A SHAPEIN -p udp -m udp --sport 6901:6920 -j MARK --set-mark 2 #msn-voipbuster
iptables -t mangle -A SHAPEIN -p udp -m udp --sport 6901:6920 -j MARK --set-mark 2 #msn-voipbuster
iptables -t mangle -A SHAPEIN -p tcp -m multiport --ports 6667,6668,6669,7000 -j MARK --set-mark 2 #irc
iptables -t mangle -A SHAPEIN -p tcp --dport 10001 -j MARK --set-mark 2 #dreambox
iptables -t mangle -A SHAPEIN -p tcp --sport 10001 -j MARK --set-mark 2 #dreambox
#
# Classify Packets
#
iptables -t mangle -A SHAPEIN -m mark --mark 1 -j CLASSIFY --set-class 1:10
iptables -t mangle -A SHAPEIN -m mark --mark 2 -j CLASSIFY --set-class 1:20
iptables -t mangle -A SHAPEIN -m mark --mark 3 -j CLASSIFY --set-class 1:31
iptables -t mangle -A SHAPEIN -m mark --mark 4 -j CLASSIFY --set-class 1:32
iptables -t mangle -A OUTPUT -o $LAN -p all -d 192.168.0.0/24 -m mark --mark 5 -j CLASSIFY --set-class 1:40
#
# TOS
#
iptables -t mangle -A SHAPEIN -m mark --mark 1 -j TOS --set-tos Minimize-Delay
iptables -t mangle -A SHAPEIN -m mark --mark 2 -j TOS --set-tos Maximize-Reliability
iptables -t mangle -A SHAPEIN -m mark --mark 3 -j TOS --set-tos Maximize-Throughput
iptables -t mangle -A SHAPEIN -m mark --mark 4 -j TOS --set-tos Maximize-Throughput
iptables -t mangle -A OUTPUT -o $LAN -p all -d 192.168.0.0/24 -m mark --mark 5 -j TOS --set-tos Maximize-Throughput
#
# QOS UPLOAD
#
#
# Mark Packets
#
iptables -t mangle -A SHAPEOUT -p all -s $DB -j MARK --set-mark 6
iptables -t mangle -A SHAPEOUT -p all -s $NICK -j MARK --set-mark 7
iptables -t mangle -A OUTPUT -o $INET -p all -j MARK --set-mark 8
#
# Classify Packets
#
iptables -t mangle -A SHAPEOUT -m mark --mark 6 -j CLASSIFY --set-class 1:10
iptables -t mangle -A SHAPEOUT -m mark --mark 7 -j CLASSIFY --set-class 1:20
iptables -t mangle -A OUTPUT -o $INET -m mark --mark 8 -j CLASSIFY --set-class 1:30
#
# TOS
#
iptables -t mangle -A SHAPEOUT -m mark --mark 6 -j TOS --set-tos Minimize-delay
iptables -t mangle -A SHAPEOUT -m mark --mark 7 -j TOS --set-tos Minimize-delay
iptables -t mangle -A SHAPEOUT -m mark --mark 8 -j TOS --set-tos Maximize-Throughput
# DOWNLOAD
tc qdisc add dev $LAN root handle 1: htb default 40
tc class add dev $LAN parent 1: classid 1:1 htb rate 100mbit ceil 100mbit
tc class add dev $LAN parent 1:1 classid 1:10 htb rate 256bit ceil 10mbit prio 1
tc class add dev $LAN parent 1:1 classid 1:20 htb rate 256kbit ceil 10mbit prio 2
tc class add dev $LAN parent 1:1 classid 1:30 htb rate 512kbit ceil 10mbit prio 4
tc class add dev $LAN parent 1:30 classid 1:31 htb rate 256kbit ceil 10mbit prio 4
tc class add dev $LAN parent 1:30 classid 1:32 htb rate 256kbit ceil 10mbit prio 4
tc class add dev $LAN parent 1:1 classid 1:40 htb rate 512kbit ceil 100mbit prio 4
tc qdisc add dev $LAN parent 1:10 handle 10: sfq perturb 10
tc qdisc add dev $LAN parent 1:20 handle 20: sfq perturb 10
tc qdisc add dev $LAN parent 1:31 handle 31: sfq perturb 10
tc qdisc add dev $LAN parent 1:32 handle 32: sfq perturb 10
tc qdisc add dev $LAN parent 1:40 handle 40: sfq perturb 10
#
# UPLOAD
tc qdisc add dev $INET root handle 1: htb
tc class add dev $INET parent 1: classid 1:1 htb rate 384kbit ceil 384kbit
tc class add dev $INET parent 1:1 classid 1:10 htb rate 32kbit ceil 384kbit prio 1
tc class add dev $INET parent 1:1 classid 1:20 htb rate 32kbit ceil 32kbit prio 8
tc class add dev $INET parent 1:1 classid 1:30 htb rate 128kbit ceil 384kbit prio 4
tc qdisc add dev $INET parent 1:10 handle 10: sfq perturb 10
tc qdisc add dev $INET parent 1:20 handle 20: sfq perturb 10
tc qdisc add dev $INET parent 1:30 handle 30: sfq perturb 10
No comments:
Post a Comment