#!/bin/bash # # downloaded from: http://www.interadek.info/ #lokalizacje TC="/sbin/tc" #PPP0 #resetowanie ustawien KOLEJKA=`$TC qdisc show dev ppp0 | awk '{print $2}'` if [[ $KOLEJKA != "pfifo_fast" ]] then $TC qdisc del dev ppp0 root handle 1: fi #ksztaltownie ruchu wychodzacego $TC qdisc add dev ppp0 root handle 1: htb default 30 $TC class add dev ppp0 parent 1: classid 1:1 htb rate 288kbit burst 15k $TC class add dev ppp0 parent 1:1 classid 1:10 htb rate 128kbit ceil 256kbit burst 15k $TC class add dev ppp0 parent 1:1 classid 1:20 htb rate 128kbit ceil 256kbit burst 15k $TC class add dev ppp0 parent 1:1 classid 1:30 htb rate 32kbit ceil 256kbit burst 15k $TC qdisc add dev ppp0 parent 1:10 handle 10: sfq perturb 10 $TC qdisc add dev ppp0 parent 1:20 handle 20: sfq perturb 10 $TC qdisc add dev ppp0 parent 1:30 handle 30: sfq perturb 10 U32_1="$TC filter add dev ppp0 protocol ip parent 1:0 prio 1 u32" $U32_1 match ip dport 22 0xffff flowid 1:10 $U32_1 match ip protocol 17 0xff flowid 1:10 U32_2="$TC filter add dev ppp0 protocol ip parent 1:0 prio 2 u32" $U32_2 match ip dport 80 0xffff flowid 1:20 $U32_2 match ip dport 445 0xffff flowid 1:20 $U32_2 match ip dport 21 0xffff flowid 1:20 $U32_2 match ip dport 25 0xffff flowid 1:20 $U32_2 match ip dport 465 0xffff flowid 1:20 $U32_2 match ip dport 110 0xffff flowid 1:20 $U32_2 match ip dport 995 0xffff flowid 1:20 $U32_2 match ip protocol 1 0xff flowid 1:20 echo "Kolejki dla ppp0 - OK" #ETH0 KOLEJKA=`$TC qdisc show dev eth0 | awk '{print $2}'` if [[ $KOLEJKA != "pfifo_fast" ]] then $TC qdisc del dev eth0 root handle 1: fi $TC qdisc add dev eth0 root handle 1: htb default 50 #ksztaltowanie ruchu z LAN $TC class add dev eth0 parent 1: classid 1:1 htb rate 100Mbit burst 100k $TC qdisc add dev eth0 parent 1:1 handle 2: sfq perturb 10 $TC filter add dev eth0 protocol ip parent 1:0 prio 1 u32 match ip src xx.xx.xx.xx/xx flowid 1:1 $TC filter add dev eth0 protocol ip parent 1:0 prio 1 u32 match ip src xx.xx.xx.xx/xx flowid 1:1 #ksztaltownie ruchu z WAN $TC class add dev eth0 parent 1: classid 1:3 htb rate 1088kbit burst 15k $TC class add dev eth0 parent 1:3 classid 1:30 htb rate 512kbit ceil 1024kbit burst 15k $TC class add dev eth0 parent 1:3 classid 1:40 htb rate 512kbit ceil 1024kbit burst 15k $TC class add dev eth0 parent 1:3 classid 1:50 htb rate 64kbit ceil 1024kbit burst 15k $TC qdisc add dev eth0 parent 1:30 handle 10: sfq perturb 10 $TC qdisc add dev eth0 parent 1:40 handle 20: sfq perturb 10 $TC qdisc add dev eth0 parent 1:50 handle 30: sfq perturb 10 U32_1="$TC filter add dev eth0 protocol ip parent 1:0 prio 2 u32" $U32_1 match ip sport 22 0xffff flowid 1:30 $U32_1 match ip protocol 17 0xff flowid 1:30 U32_2="$TC filter add dev eth0 protocol ip parent 1:0 prio 3 u32" $U32_2 match ip sport 80 0xffff flowid 1:40 $U32_2 match ip sport 445 0xffff flowid 1:40 $U32_2 match ip sport 21 0xffff flowid 1:40 $U32_2 match ip sport 25 0xffff flowid 1:40 $U32_2 match ip sport 465 0xffff flowid 1:40 $U32_2 match ip sport 110 0xffff flowid 1:40 $U32_2 match ip sport 995 0xffff flowid 1:40 $U32_2 match ip protocol 1 0xff flowid 1:40 echo "Kolejki dla eth0 - OK" #WLAN0 KOLEJKA=`$TC qdisc show dev wlan0 | awk '{print $2}'` if [[ $KOLEJKA != "pfifo_fast" ]] then $TC qdisc del dev wlan0 root handle 1: fi $TC qdisc add dev wlan0 root handle 1: htb default 50 #ksztaltowanie ruchu z LAN $TC class add dev wlan0 parent 1: classid 1:1 htb rate 100Mbit burst 100k $TC qdisc add dev wlan0 parent 1:1 handle 2: sfq perturb 10 $TC filter add dev wlan0 protocol ip parent 1:0 prio 1 u32 match ip src xx.xx.xx.xx/xx flowid 1:1 $TC filter add dev wlan0 protocol ip parent 1:0 prio 1 u32 match ip src xx.xx.xx.xx/xx flowid 1:1 #ksztaltownie ruchu z WAN $TC class add dev wlan0 parent 1: classid 1:3 htb rate 1088kbit burst 15k $TC class add dev wlan0 parent 1:3 classid 1:30 htb rate 512kbit ceil 1024kbit burst 15k $TC class add dev wlan0 parent 1:3 classid 1:40 htb rate 512kbit ceil 1024kbit burst 15k $TC class add dev wlan0 parent 1:3 classid 1:50 htb rate 64kbit ceil 1024kbit burst 15k $TC qdisc add dev wlan0 parent 1:30 handle 10: sfq perturb 10 $TC qdisc add dev wlan0 parent 1:40 handle 20: sfq perturb 10 $TC qdisc add dev wlan0 parent 1:50 handle 30: sfq perturb 10 U32_1="$TC filter add dev wlan0 protocol ip parent 1:0 prio 2 u32" $U32_1 match ip sport 22 0xffff flowid 1:30 $U32_1 match ip protocol 17 0xff flowid 1:30 U32_2="$TC filter add dev wlan0 protocol ip parent 1:0 prio 3 u32" $U32_2 match ip sport 80 0xffff flowid 1:40 $U32_2 match ip sport 445 0xffff flowid 1:40 $U32_2 match ip sport 21 0xffff flowid 1:40 $U32_2 match ip sport 25 0xffff flowid 1:40 $U32_2 match ip sport 465 0xffff flowid 1:40 $U32_2 match ip sport 110 0xffff flowid 1:40 $U32_2 match ip sport 995 0xffff flowid 1:40 $U32_2 match ip protocol 1 0xff flowid 1:40 echo "Kolejki dla wlan0 - OK"