Обсуждение статьи тематического каталога: Ограничение скорости трафика по ipnet адресам в ОС Linux. (linux slackware shaper bandwidth)Ссылка на текст статьи: http://www.opennet.me/base/net/rshaper.txt.html
А есть ли способ менять значение HZ на лету, не пересобирая ядро?
sysctl -ц kernel.HZ=<value>
Неудачник не осилил HTB :)А ведь это было проще чем все эти извращения.
красиво :-)
Осилил, но оно чертовски неудобно ;)
HTB в этом плане проще. Но вот как сделать ограничение по скорости не всей подсети а какждому компьтеру в отдельности из этой подсети вот в ч`м задача ))
Так-же как и подсети...
Отличная заметка! Написана нормальным человеческим языком, а все "сложности" относятся не к настройке rshaper (который, в отличие от микроскопов для забивания гвоздей типа HTB ещё и "просто работает"), а к проблемам его совместимости с ядрами 2.6. Собственно, по идее к статье должен был бы прилагаться соответствующий патч или ссылка на него: версию ядра и пути легче поправить в небольшом по объёму выводе diff'а, чем непосредственно в Makefile'е с исходниками. Да и разработчику нужно такой патч прислать - авось в CVS поддержку новых ядер включит.
QoS это не лоад балансинг вобсчето
Не умею патчи писать :) ЛОЛ. Умею только молотком пользоваться. :)
Спасибо всем за оценку статьи.
Лоад не Лоад - какая разница :)
Использовал rshaper под старым ядром 2.4. Все бы ничего, но как только клиентов стало более 2700 - система перестала справляться с нагрузкой (P-IV 3.2Mhz). Попробовал на Xeon-3.4MHz x 2 - но на двухпроцессорной машине система падает в кору... а под kernel 2.6 нигде не мог найти rshaper.
Ну, думаю, HTB меня спасет, но не тут-то было. Написал скрипты с использованием фильтров через метки в iptables, стал загружать на работающий PC (канал дуплекс 100Mb). Так вот, уже при загрузке 1500-го клиентского правила начались жуткие тормоза, а при загрузке 2000-го правила оба Xeon процессора ушли в задумчивую загруженность на 99-100%, машина практически умерла. Так что HTB и метки хороши там где и канал слабый и клиентов мало. :(
А клиентов сейчас уже более 5000 и чем их шейпить ума не приложу. Может кто что подсказать, что применять ?
спасибо за подробные объяснения, установил, вроде работает :)
У меня вот такой вопрос - наверняка сталкивались когда-нибудь с тем, что в инете висит свободный видео или MP3 портал, и юзера из внутренней сети начинают высасывать оттуда так, что перекрывают весь канал. Убеждения снизить скорость скачки на них не действуют; при отключении в файерволе по айпи-адресам вообще от инета - начинаются обиды :)
теперь сам вопрос - может кто-нибудь подскажет простой способ ограничения скорости отдачи траффика во внутреннюю сеть с определенного внешнего (публичного) айпи-адреса?
Заранее благодарен.
squid + delay_pools как вариант
А как вообще-то определять эту "реальную скорость" соединения?
Вот, например, у меня rshaper на том же ядре 2.6.18 нормально собрался, работает, но... я не могу понять, правильно ли он работает? Есть ли какая-нибудь утилита, позволяющая достаточно точно оценить скорость интернет-соединения?
Поставил, работает! На гигабитной сетевой фтп сервера загрузка syslog 70%. Полечилось коментированием строк PDEBUG("packet: from %d.%d.%d.%d:%d to %d.%d.%d.%d:%d\n",NIPQUAD(saddr), sport, NIPQUAD(daddr), dport);
PIV (Dual Core) + HTB rules ~14000 +Traffic up to 600MBps (in and out sum) CPU Load ~50-70%.
USE hashing tables for HTB!
>>Добавьте в /etc/rc.d/rc.local строку: insmod /lib/modules/2.6.x/misc/rshaper.koу меня скомпилилось в /lib/modules/2.6.x/extra/rshaper.ko
директория /lib/modules/2.6.x/misc вообще не понадобилась
<<<< Полечилось коментированием строк PDEBUG("packet: from %d.%d.%d.%d:%d to %d.%d.%d.%d:%d\n",NIPQUAD(saddr), sport, NIPQUAD(daddr), dport); >>>>
Здорово полечилось, шейпер перестал шейпить по крайней мере последняя версия rshaper на ядре 2.6.21.5 ... Правильно лечить надо в syslog.conf
добавить в пункт о *=debug; rshaper.none
И тогда syslog перестает писать о каждом пакетике пройденном через rshaper в debug файл
Переделал под свежее 2.6.(24) Linux ядро (теперь требуется alloc_netdev(), добавлено везде static, полностью переписал Makefile для пущей наглядности и простоты).
ftp://ftp.simtreas.ru/pub/my/rshaper.tgz
root@klanserv:~/rshaper/rshaper# sudo make install
make -C /usr/src/linux M=`pwd` modules
make[1]: Entering directory `/usr/src/linux-source-2.6.20'WARNING: Symbol version dump /usr/src/linux-source-2.6.20/Module.symvers
is missing; modules will have no dependencies and modversions.Building modules, stage 2.
MODPOST 1 modules
/bin/sh: scripts/mod/modpost: not found
make[2]: *** [__modpost] Ошибка 127
make[1]: *** [modules] Ошибка 2
make[1]: Leaving directory `/usr/src/linux-source-2.6.20'
make: *** [rshaper.ko] Ошибка 2как исправлять?
запустить sudo make modules в самом ядре и не делать make clean если Вы собираетесь и далее модули добавлять
localhost rshaper # make
make -C /usr/src/linux M=`pwd` modules
make[1]: Entering directory `/usr/src/linux-2.6.25-gentoo-r2'
CC [M] /111/rshaper/rshaper/rshaper.o
/111/rshaper/rshaper/rshaper.c:417: ошибка: ‘NF_IP_PRE_ROUTING’ undeclared here (not in a function)
/111/rshaper/rshaper/rshaper.c:424: ошибка: ‘NF_IP_POST_ROUTING’ undeclared here (not in a function)
make[2]: *** [/111/rshaper/rshaper/rshaper.o] Ошибка 1
make[1]: *** [_module_/111/rshaper/rshaper] Ошибка 2
make[1]: Leaving directory `/usr/src/linux-2.6.25-gentoo-r2'
make: *** [rshaper.ko] Ошибка 2как лечить ?
В rshaper.c после инклудов добавь#define NF_IP_PRE_ROUTING 0
#define NF_IP_POST_ROUTING 4
Когда я применил этот шейпер у меня почему-то получается при ограничении скорости ниже 30 кб сек, очередь забивается кучей служебных ACK пакетов. Смотрел через TcpDump. И получаеся что скорость трафик жестко ограничивается до 30 кб сек, а реально с внешки качает 2-3 кб сек, вся остальная полоса почемуто забивается этими служебными пакетами.
Почему так происходит не понятно.
Может перекомпилить исходник и добавить там проверку чтобы служебные пакеты пересылал без ограничений и без очереди, а задерживались именно пакеты с данными.
Подскажите где можно реально скачать rshaper для ядер 2.6. Пробовал скачать по ссылке http://cvs.gnudd.com/index.cgi/rshaper/ не качается ((( искал через гугл,а там только для ядер 2.0, 2.2, 2.4.
>Подскажите где можно реально скачать rshaper для ядер 2.6. Пробовал скачать по
>ссылке http://cvs.gnudd.com/index.cgi/rshaper/ не качается ((( искал через гугл,а там только
>для ядер 2.0, 2.2, 2.4.http://deadnet.ru/rshaper.tgz - Под 2.6.24-2.6.26 собирается и даже работает, на более новых ядрах не пробовал )
Блин сколько можно пилить этот rshaper уже 5 лет никак никто не допилит. Все бы там хорошо уже почти все доделано - ссылка выше в сообщении на самую последнюю версию. Вот только понять не могу почему он иногда в kernel panic падает. Спин локами в коде вроде все защищено.... сам не знаю куда копать уже.
на 2.6.27.7 тоже работает
Для начала напиши что этот велосипед ненужен там где есть squid + авторизация.
Вообщето это не велосипед. rshaper появился еще в 2000 году, когда htb,cbq,tbf,imq и прочее еще даже не родились. Да и кстати шейпить синхронно трафик входящий и исходящий rshaper умеет сходу, а для cbq или htb надо еще прикручивать imq - и то для последних версий iptables и kernel его просто нету :) Лучше бы помогли дотестить и довести до конца правильный симметричный rshaper.
у меня керел 2.4.18 после make install выдаёт ошибка 1.
помогите похалуста поподробней
Для 2.4 ядра у меня версии к сожалению нет. Эти новые версии на 2.4 ядре работать не будут.Вам нужна версия 2.0.1 - она будет работать на ядре 2.4 - попробуйте найти в гугле
http://www.google.ru/search?hl=ru&newwindow=1&q=rshaper+2.01...
А ведь же гениально !! Это же на 80% машин которые шейпят можно смело выкидывать tc на свалку.
games:~# uname -a
Linux games 2.6.26-2-686 #1 SMP Fri Aug 14 01:27:18 UTC 2009 i686 GNU/Linuxдебиан ленни
кернел паникмодуль скомпилился, в ядро добавил с mode=2
шайпил на 256кбит/с(надо было 128, но роутер ведь)
кернел паник not syncing
mode=2 вообще не надо использовать...http://deadnet.ru/rshaper.tgz - вот версия последняя я чуток допилил.
Но все равно он будет падать в kernel panic ну мультипроцессорной машине.
Не смотря на то, что у нас уже программисты на Си ради интереса его ковыряли на предмет ошибок с блокировками, так никто и не смог разобраться почему в панику падает.Если отключить в ядре мультипроцессорность SMP то все будет работать без kernel panic, если Вам надо только шейпить да считать трафик, то Вам хватит и однопроцессорной машины даже на 1000 компьютеров, которые будут выходить в интернет через данный роутер.
>http://deadnet.ru/rshaper.tgz - вот версия последняя я чуток допилил.будет ли вариант не симметричного ограничения, когда можно отдельно указать вх\исх скорость?
>http://deadnet.ru/rshaper.tgz - вот версия последняя я чуток допилил.К сожалению не открывается ссылка... И Google тоже отказался помочь. Народ, поделитесь версией для ядра 2.6!