LINUX.ORG.RU
ФорумAdmin

И сново избитая тема о нарезке полосы пользователям

 , ,


0

1

Хочу простого: всем айпишникам сети /24 нарезать по 100 килобит исходящего трафика.

Сейчас реализовал так: создал классы htb для всей айпишников простым циклом. Громоздко и не красиво, но работает.

Можно ли сделать это по другому? Может есть что-то готовое для таких простых задач? Или демон может есть какой для таких целей? Или для ядра модуль какой?

да - для такой простой нарезки есть esfq
это расширенная версия sfq
просто sfq распределяет равномерно по портам - тем самым недавая одной службе перекрыть трафик другим

а esfq делает это еще и по ip - по существу равномерно нарезая траффик

но если тебе нужно точно 100кбит каждому - то не подойдет

а чего некрасивого в цикле ? единственный минус - это работа фильтров - в твоей схеме юзер ищеться линейно по всех фильтрам пока не встретит свой таргет - при бальших скоростях - это напрягает процессов
тогда хеширование применяют

ae1234 ★★
()
Ответ на: комментарий от ae1234

у мя инет через ADSL ОГО! и там скорость(реальная) меняется, тоесть четко задать максимум не могу для равного распределения исходящего канала. Решил порезать исходящий канал, - это помогло, теперь все играют в онлайн игры без проблем. Вообщим задача что-бы не захавывали канал. :)

nowherer
() автор топика
Ответ на: комментарий от nowherer

да - задача нарезать канал при неизвестной входящей скорости - эт непросто ...

ae1234 ★★
()

нарезать равномерно скорость при условии, что тебе неизвестен текущая фактическая скорость - практически нереальная задача ИМХО. Как вариант - указать минимально допустимую скорость, которая будет гарантирована в любом случае, дисциплиной взять HFSC, нужным людям отдать максимальный приоритет с минимальной задержкой, остальным - как получится...

Pinkbyte ★★★★★
()
Ответ на: комментарий от ktulhu666

Скрипт задает правила маркировки пакетов и одновременно строит дерево нарезки.

/sbin/tc qdisc add dev ppp0 root handle 1:0 htb  default 256
for ((  i = 1 ;  i <= 254;  i++  ))
do
    /sbin/tc class add dev ppp0 parent 1:0 classid 1:$i htb rate 100kbit ceil 100kbit prio 1
    /sbin/tc qdisc add dev ppp0 parent 1:$i handle $i'0': sfq perturb 10
    /sbin/tc filter add dev ppp0 parent 1:0 protocol ip handle $i fw flowid 1:$i
    /usr/sbin/iptables -A PREROUTING -t mangle -s 10.0.0.$i -j MARK --set-mark $i
done

# Other
/sbin/tc class add dev ppp0 parent 1:0 classid 1:256 htb rate 50kbit ceil 50kbit prio 5
nowherer
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.