# obliczenia
WANDOWN=$[$WANDOWN*98/100]
WANUP=$[$WANUP*98/100]
LANSPD=$[$LANSPD*95/100]
LOCAL=$[$LANSPD-$WANDOWN]
ACKSPD=$[$WANDOWN/20]
CNT=1
for ii in `cat $htb_config|grep [0123456789] | cut -d "#" -f1 |awk '{print $1}'`;do
CNT=$[$CNT+1]
done
# tu trzeba zmienic
USERDOWN=$[$WANDOWN-$suma_gwarantowanych]
USERDOWN=$[$UERDOWN/$CNT]
USERUP=$[$WANUP-$ACKSPD-$ICMPSPD-$SERVSPD]
USERUP=$[$USERUP-$suma_gwarantowanych]
USERUP=$[$USERUP/$CNT]
# Userzy
CNT=1
MARK=$[$STARTMRK+2]
grep "^" $htb_config | grep -v "^#"|grep [0123456789] | while read IP USERDOWN[1] USERUP[1] USERDOWN[2] USERUP[2] USERDOWN[3] USERUP[3] REM; do
USERDOWN0=$USERDOWN
USERUP0=$USERUP
if [ $USERDOWN -gt ${USERDOWN[$pora]} ]; then
USERDOWN0=${USERDOWN[$pora]}
fi
if [ $USERUP -gt ${USERUP[$pora]} ]; then
USERUP0=${USERUP[$pora]}
fi
#-- Gwarancja
if [ $IP = 192.168.0.5 ]; then
USERDOWN0=128 # wartosc w kbit/s
USERUP0=64 ## wartosc w kbit/s
fi
# i tak dalej dla nastepnych IP
# -- KONIEC
$h class add dev $LANINT parent 1:2 classid 1:$[10+$CNT] htb rate ${USERDOWN0}kbit ceil ${USERDOWN[$pora]}kbit prio 3 quantum 1500
$h qdisc add dev $LANINT parent 1:$[10+$CNT] $SFQ
$h filter add dev $LANINT protocol ip prio 5 parent 1:0 u32 match ip dst $IP flowid 1:$[10+$CNT]
$i -t mangle -A PREROUTING -s $IP -j MARK --set-mark $MARK
$h class add dev $WANINT parent 2:1 classid 2:$[10+$CNT] htb rate ${USERUP0}kbit ceil ${USERUP[$pora]}kbit prio 4 quantum 1500
$h qdisc add dev $WANINT parent 2:$[10+$CNT] $SFQ
$h filter add dev $WANINT parent 2:0 protocol ip prio 5 handle $MARK fw flowid 2:$[10+$CNT]
MARK=$[$MARK+1]
CNT=$[$CNT+1]
done
Bacz tylko by nie dac jako gwarantowany wiecej niz jest pasmo lacza
Dla sprawdzenie wystarczy odplotkowac:
h=/sbin/rchtb_tc
#h=echo #<--- Tu
i=iptables
#i=echo #<--- i tu
i skrypt zamiast ustawiac wypisze reguly na ekranie (mozna przekierowac do pliku)
Cytuj:
ale kilka spraw nie dopracowanych w tym nowym go zniecheca.
Cytuj:
mozna odczuc ze jest to dynamicznie dzielony transfer a nie jak w starym na ilosc userow wpisanych do serwera.
Tam nie ma nic dynamicznego, jest to zrobione dokladnie jak w starym, jego podstawowym zadaniem w porownaniu do starego htb jest ODRANICZANIE predkosci do takiej za jaka placa userzy.
Jesli naprawde chcesz to miec super dynamicznie to zainwestuj troche czsu w poznanie niceshapra lub shapera. On co kilka sekund sprawdza ruch i odpowiednio modyfikuje reguly.
_________________
Nie jestem NEKROMANTĄ, nie wróżę z flaków!
Alkohol pity z umiarem nie szkodzi nawet w największych ilościach!
Przeczytaj nim zapytasz