#!/bin/sh # # Paweł Maziarz echo "Starting htb -> ograniczanie pasma..." tc qdisc del root dev eth1 tc qdisc add dev eth1 root handle 1: htb tc class add dev eth1 parent 1: classid 1:1 htb rate 1400Kbps ceil 1400Kbps # 128kbps -> .4 - .20 for i in `seq 4 20`; do tc class add dev eth1 parent 1:1 classid 1:$i htb rate 16Kbps ceil 16Kbps done # testowe .2 -> 128kbps tc class add dev eth1 parent 1:1 classid 1:2 htb rate 16Kbps ceil 16Kbps # 128kbps -> .105, .102 tc class add dev eth1 parent 1:1 classid 1:102 htb rate 16Kbps ceil 16Kbps tc class add dev eth1 parent 1:1 classid 1:105 htb rate 16Kbps ceil 16Kbps # 128kbps dla dwóch, po połowie. -> .106, .107 tc class add dev eth1 parent 1:1 classid 1:300 htb rate 16Kbps ceil 16Kbps tc class add dev eth1 parent 1:300 classid 1:106 htb rate 8Kbps ceil 16Kbps tc class add dev eth1 parent 1:300 classid 1:107 htb rate 8Kbps ceil 16Kbps for i in `seq 4 20`; do tc filter add dev eth1 protocol ip parent 1:0 prio 1 u32 match ip dst 192.168.0.$i flowid 1:$i done # to to testowe tc filter add dev eth1 protocol ip parent 1:0 prio 1 u32 match ip dst 192.168.0.2 flowid 1:2 tc filter add dev eth1 protocol ip parent 1:0 prio 1 u32 match ip dst 192.168.0.102 flowid 1:102 tc filter add dev eth1 protocol ip parent 1:0 prio 1 u32 match ip dst 192.168.0.105 flowid 1:105 tc filter add dev eth1 protocol ip parent 1:0 prio 1 u32 match ip dst 192.168.0.106 flowid 1:106 tc filter add dev eth1 protocol ip parent 1:0 prio 1 u32 match ip dst 192.168.0.107 flowid 1:107 # i jeszcze troche sprawiedliwości dla połącze7 for i in `seq 4 20`; do tc qdisc add dev eth1 parent 1:$i handle $i:0 sfq perturb 10 done tc qdisc add dev eth1 parent 1:2 handle 2:0 sfq perturb 10 tc qdisc add dev eth1 parent 1:102 handle 102:0 sfq perturb 10 tc qdisc add dev eth1 parent 1:105 handle 105:0 sfq perturb 10 tc qdisc add dev eth1 parent 1:107 handle 106:0 sfq perturb 10 tc qdisc add dev eth1 parent 1:106 handle 107:0 sfq perturb 10