Re: [SOLVED] Ограничение максимальной скорости по IP
В Чтв, 31/01/2008 в 13:14 -0500, Nicholas пишет:
> Покотиленко Костик wrote:
> > - Добавляем только ещё один HTB класс со скоростью, например 1kbit/s -
> > это для приземления превышения скорости.
>
> Логичнее дать каждому пользователю соразмерную минимально
> гарантированную (rate) и максимальную (ceil) ширину канала.
> (rate 64kbps ceil 128kbps, как вариант)
Так сложнее получается. Чем мне не нравится править классы HTB, так это
постоянным пересчётом a1=a11+a12+a13... Конечно, понятно, что это один
раз надо сделать, но, опять же, придётся забить кучу классов, большая
часть из которых будет простаивать, а следовательно, придётся ещё думать
как не используемую ширину канала одалживать классу обычных
пользователей, например.
К тому же человеку заводящему клиентов в биллинг нужно будет постоянно
помнить кому какие IP давать. А так он назначил тариф 128+ или 256+ и
забыл.
Хотя, конечно, ваш вариант - тоже вариант.
> >> Вопрос: есть ли дисциплина позволяющая ограничивать максимальную
> >> скорость до указанного значения для каждого IP отдельно,
>
> Возможно стоить выдавать анлимитчикам ip из определенной подсети и
> заранее сделать правила для всех (каждого) ip этой подсети.
> (клас, дисциплина и фильтры входящий/исходящий - по 4 правила)
>
> Процесс можно автоматизировать, примерно, так:
>
> echo "tc qdisc add dev eth0 root handle 1: htb default" > tc.conf
>
> 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;
>
> for i in `seq 1 254`; do echo "tc qdisc add dev eth0 parent 1:$i handle
> $i: sfq perturb 10" >> tc.conf; done;
>
> for i in `seq 1 254`; do echo "tc filter add dev eth0 parent 1: protocol
> ip prio 1 u32 match ip src xx.xx.xx.$i flowid 1:$i" >> tc.conf; done;
>
> for i in `seq 1 254`; do echo "tc filter add dev eth0 parent 1: protocol
> ip prio 1 u32 match ip dst xx.xx.xx.$i flowid 1:$i" >> tc.conf; done;
>
>
> Если вы будете использовать openvpn для авторизации, то eth0 можно
> заменить на tap0
>
> Кроме того, если вы используете дисциплину htb, удобно с ее подружить с
> rrd и смотреть графики нагрузки по ip.
Для авторизации используется биллинг со встроенной функцией авторизации
+ у клиентов в трее висит клиент-авторизатор.
Графики по каждому клиенту рисовать часто - это сильно ресурсоёмко. А не
часто смысла нет, так как эту статистику биллинг ведёт.
Спасибо за то что поделились опытом.
--
Покотиленко Костик <casper@meteor.dp.ua>
Reply to: