[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [SOLVED] Ограничение максимальной скорости по IP



Покотиленко Костик wrote:
Так сложнее получается. Чем мне не нравится править классы HTB, так это
постоянным пересчётом a1=a11+a12+a13... Конечно, понятно, что это один
раз надо сделать, но,

каждая команда делает 256 правил автоматом (`seq 1 254` - для примера )

for i in `seq 1 254`; do echo "tc class add dev eth0 parent 1: classid 1:$i htb rate 64kbps ceil 128kbps burst 150k" >> tc.conf; done;

 опять же, придётся забить кучу классов, большая
часть из которых будет простаивать, а следовательно, придётся ещё думать
как не используемую ширину канала одалживать

это делает htb автоматом - вы можете указать каждому клиенту свою минимальную и максимальную ширину, можно максимальную не указывать (ceil) - htb разделит дополнительную скорость пропорционально. Если суммарная выделенная клиентам ширина канала, наоборот, больше реальной - htb тоже все пересчитает пропорционально (при нагрузке, а пока клиентов мало всем даст столько сколько в правиле для клиента прописанно).

Вы можете делать "деревья" - root сделать 1:, первую ветвь 1:888 для обычных поьзователей и вторую для анлимит 1:777

http://www.opennet.ru/docs/RUS/LARTC/x1075.html#THEQDISCFAMILYROOTSHANDLESSIBLINGSANDPARENTS


tc qdisc add dev eth0 root handle 1: htb default 1 tc class add dev eth0 parent 1: classid 1:9999 htb rate 2mbit burst 15k tc class add dev eth0 parent 1:9999 classid 1:888 htb rate 1mbit ceil 1mbit burst 15k tc class add dev eth0 parent 1:9999 classid 1:777 htb rate 1mbit ceil 1mbit burst 15k


и определять общую скорость для всех пользователей группы + для каждого пользователя в группе.

tc class add dev eth0 parent 1:777 classid 1:71 htb rate 128kbit ceil 256kbit burst 15k
...
tc class add dev eth0 parent 1:777 classid 1:7254 htb rate 128kbit ceil 256kbit burst 15k и т.д.

в этом примере комада для создания правила будет тоже с семеркой перед "номером хоста" (1-254) for i in `seq 1 254`; do echo "tc class add dev eth0 parent 1:777 classid 1:7$i htb rate 128kbps ceil 256kbps burst 150k" >> tc.conf; done;

надо сказать что 4 правила для каждого из 255 ip для двух подситей (4*255*2=2040) совсем не "грузят" htb.

С уважением, Николай.

PS

rrd tool как раз и ведет статистику, а графики рисует по требованию.
Основная идея - снимать статистику удобнее именно tc (htb) - наименее затратный и наиболее точный способ (так как это не "грузит" процессор вы можете ее снимать как угодно часто).

tc -s -d qdisc show dev eth0

--
Sincerely,
	Nicholas


Reply to: