Todor wrote: Чети по-долу.
> > > 256K > --------------| > | > | > 128K | 512K > --------------|-------------- > 64K | > --------------| > 64K | > --------------| > > > Възможни ли да се направи такова разпределение на трафика. > > Линия с капацитет 512K > Разделя се на 4 класа. > - 256К > - 128К > - 2x64 > > 1. клас (256К) се използва само от USER1 > 2. клас (128К) се използва само от USER2 и не се дели с друг > 3. клас (64К) се използва само от USER3 и не се дели с друг > 4. клас (64К) се използва от всички останали участващи в мрежата > > При неизползване на 1. клас (256К) от USER1 > тя да може да се използва от всички останали > но при влизане на USER1 да се заема пак от него. > > Всичко това се отнася за download трафик. > > Благодаря на всички помогнали. Прилагам примерен скрипт, който може да ти свърши работа. Общо взето е коментиран, така че ще ти трябва минимална намеса. За повече информация виж на www.lartc.org и www.docum.org. ________________________________________________________________________ Всичко най-хубаво, Никола
#!/bin/bash # изходящ интерфейс dev=eth0 # път до tc tc=/sbin/tc htb_stats () { # show class stats $tc -s -d class show dev $dev # show qdisc stats $tc -s -d qdisc show dev $dev } #htb_stats htb_stop () { # remove all qdiscs from $dev $tc qdisc del dev $dev root &>/dev/null } # htb_stop htb_start () { set -x # attach root discipline $tc qdisc add dev $dev root handle 1: htb default 1000 r2q 10 # клас за клиент с гарантирани 256Кбита $tc class add dev $dev parent 1: classid 1:10 htb rate 256Kbit $tc filter add dev $dev protocol ip parent 1:0 prio 4 u32 \ match ip dst <ip на клиента с 256Кбита> flowid 1:10 $tc qdisc add dev $dev parent 1:10 handle 10: sfq perturb 20 # клас за клиент с гарантирани 128Кбита $tc class add dev $dev parent 1: classid 1:20 htb rate 128Kbit $tc filter add dev $dev protocol ip parent 1:0 prio 4 u32 \ match ip dst <ip на клиента с 128Кбита> flowid 1:20 $tc qdisc add dev $dev parent 1:20 handle 20: sfq perturb 20 # клас за клиент с гарантирани 64Кбита $tc class add dev $dev parent 1: classid 1:30 htb rate 64Kbit $tc filter add dev $dev protocol ip parent 1:0 prio 4 u32 \ match ip dst <ip на клиента с 64Кбита> flowid 1:30 $tc qdisc add dev $dev parent 1:30 handle 30: sfq perturb 20 # default клас, в който попадат всички останали # за него заделяме 64Кбита $tc class add dev $dev parent 1:0 classid 1:1000 htb \ rate 64Kbit ceil 64Kbit $tc qdisc add dev $dev parent 1:1000 handle 1000: sfq perturb 20 } # htb_start case "$1" in ### START ### start) htb_start ;; ### STOP ### stop) htb_stop ;; ### RESTART ### restart) $0 stop $0 start ;; ### STATS ### stats) htb_stats ;; ### default ### *) echo "Usage: " `basename $0` "{start|stop|restart|stats}" esac
pgp00000.pgp
Description: PGP signature