The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Ограничение скорости трафика по ip/net адресам в ОС Linux. (linux slackware rshaper shaper bandwidth)


<< Предыдущая ИНДЕКС Исправить src / Печать Следующая >>
Ключевые слова: linux, slackware, rshaper, shaper, bandwidth,  (найти похожие документы)
From: raver <a.kuvshinov@tele-house.ru.> Newsgroups: email Date: Mon, 8 Oct 2006 14:31:37 +0000 (UTC) Subject: Ограничение скорости трафика по ip/net адресам в ОС Linux. Shaping - Ограничение скорости трафика по ip/net адресам в ОС Linux. Релиз. Заметка: Предыдущая статья на этом месте уже сильно устарела. Варианты rshaper: Под ядро 2.6.24 Скачать - ftp://ftp.simtreas.ru/pub/my/rshaper.tgz Автор версии - vodz Под ядро 2.6.26 Скачать - ftp://deadnet.ru/rshaper.tgz Автор версии - raver,vodz Доработки rshaper.c: После include в начале файла добавлено: #define NF_IP_PRE_ROUTING 0 #define NF_IP_POST_ROUTING 4 В функции static int enqueue_packet изменено: Это - int size = skb->tail - skb->data; На Это - int size = skb_tail_pointer(skb) - skb->data; Пока Все. Тестирование: Ядро 2.6.26 SMP Шейпилось pptpd клиенты и eth клиенты. До kernel panic довести не удалось. Заметка: Для включения DEBUG режима раскомментируйте в rshaper.c следующее: // #define RSHAPER_DEBUG Сборка модуля rshaper: make && make install Загрузка модуля: modprobe rshaper Управление шейпером: rshaperctl 192.168.1.10/32 131072 Где 131072 = 128 KB/s P.S. у кого будет возможность потестируйте эти версии rshaper На SMP машинах и отпишите комментарии к этой статье. Кстати если выпадет kernel panic отпишите плиз мне на почту лог паники.

<< Предыдущая ИНДЕКС Исправить src / Печать Следующая >>

Обсуждение [ Линейный режим | Показать все | RSS ]
  • 1.1, hexmaker (?), 14:34, 09/10/2006 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А есть ли способ менять значение HZ на лету, не пересобирая ядро?
     
  • 1.2, basil (??), 16:19, 09/10/2006 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    sysctl -ц kernel.HZ=<value>
     
  • 1.3, Аноним (-), 09:22, 10/10/2006 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Неудачник не осилил HTB :)

    А ведь это было проще чем все эти извращения.

     
  • 1.4, крендель (?), 09:50, 10/10/2006 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    красиво :-)
     
  • 1.5, raver (??), 16:11, 10/10/2006 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Осилил, но оно чертовски неудобно ;)
     
  • 1.6, Герман (??), 22:55, 10/10/2006 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    HTB в этом плане проще. Но вот как сделать ограничение по скорости не всей подсети а какждому компьтеру в отдельности из этой подсети вот в ч'м задача ))
     
     
  • 2.7, citius (?), 06:56, 11/10/2006 [^] [^^] [^^^] [ответить]  
  • +/
    Так-же как и подсети...
     

  • 1.8, DRVTiny (ok), 12:50, 11/10/2006 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Отличная заметка! Написана нормальным человеческим языком, а все "сложности" относятся не к настройке rshaper (который, в отличие от микроскопов для забивания гвоздей типа HTB ещё и "просто работает"), а к проблемам его совместимости с ядрами 2.6. Собственно, по идее к статье должен был бы прилагаться соответствующий патч или ссылка на него: версию ядра и пути легче поправить в небольшом по объёму выводе diff'а, чем непосредственно в Makefile'е с исходниками. Да и разработчику нужно такой патч прислать - авось в CVS поддержку новых ядер включит.
     
  • 1.9, xasm (?), 14:28, 11/10/2006 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    QoS это не лоад балансинг вобсчето
     
  • 1.10, raver (??), 00:30, 14/10/2006 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Не умею патчи писать :) ЛОЛ. Умею только молотком пользоваться. :)
      Спасибо всем за оценку статьи.
    Лоад не Лоад - какая разница :)
     
  • 1.11, CROC (?), 00:09, 26/10/2006 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Использовал 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 и чем их шейпить ума не приложу. Может кто что подсказать, что применять ?
     
  • 1.12, ZT (?), 13:35, 29/10/2006 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    спасибо за подробные объяснения, установил, вроде работает :)
    У меня вот такой вопрос - наверняка сталкивались когда-нибудь с тем, что в инете висит свободный видео или MP3 портал, и юзера из внутренней сети начинают высасывать оттуда так, что перекрывают весь  канал. Убеждения снизить скорость скачки на них не действуют; при отключении в файерволе по айпи-адресам вообще от инета - начинаются обиды :)
    теперь сам вопрос - может кто-нибудь подскажет простой способ ограничения скорости отдачи траффика во внутреннюю сеть с определенного внешнего (публичного) айпи-адреса?
    Заранее благодарен.
     
     
  • 2.13, Jagulator (?), 14:19, 03/11/2006 [^] [^^] [^^^] [ответить]  
  • +/
    squid + delay_pools как вариант
     

  • 1.14, DRVTiny (??), 18:37, 08/11/2006 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А как вообще-то определять эту "реальную скорость" соединения?
    Вот, например, у меня rshaper на том же ядре 2.6.18 нормально собрался, работает, но... я не могу понять, правильно ли он работает? Есть ли какая-нибудь утилита, позволяющая достаточно точно оценить скорость интернет-соединения?
     
  • 1.15, duzer (??), 15:43, 19/12/2006 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Поставил, работает! На гигабитной сетевой фтп сервера загрузка syslog 70%. Полечилось коментированием строк PDEBUG("packet: from %d.%d.%d.%d:%d to %d.%d.%d.%d:%d\n",NIPQUAD(saddr), sport, NIPQUAD(daddr), dport);
     
  • 1.16, Labb (?), 11:11, 20/03/2007 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    PIV (Dual Core) + HTB rules ~14000 +Traffic up to 600MBps (in and out sum) CPU Load ~50-70%.
    USE hashing tables for HTB!
     
  • 1.17, anchovy (??), 10:55, 08/08/2007 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    >>Добавьте в /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 вообще не понадобилась

     
  • 1.18, raver (??), 10:30, 13/12/2007 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    <<<< Полечилось коментированием строк 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 файл
     
  • 1.19, vodz (?), 17:18, 19/03/2008 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Переделал  под  свежее  2.6.(24) Linux ядро (теперь требуется alloc_netdev(), добавлено везде static, полностью переписал Makefile для пущей наглядности и простоты).
    ftp://ftp.simtreas.ru/pub/my/rshaper.tgz
     
  • 1.20, nWo (?), 14:11, 25/03/2008 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    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

    как исправлять?

     
     
  • 2.21, vodz (?), 12:59, 26/03/2008 [^] [^^] [^^^] [ответить]  
  • +/
    запустить sudo make modules в самом ядре и не делать make clean если Вы собираетесь и далее  модули добавлять
     

  • 1.22, alex (??), 00:06, 08/05/2008 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    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

    как лечить ?                

     
     
  • 2.24, Pentium02 (?), 15:41, 11/08/2008 [^] [^^] [^^^] [ответить]  
  • +/
    В rshaper.c после инклудов добавь

    #define NF_IP_PRE_ROUTING     0
    #define NF_IP_POST_ROUTING    4

     

  • 1.23, Radus (?), 09:40, 16/05/2008 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Когда я применил этот шейпер у меня почему-то получается при ограничении скорости ниже 30 кб сек, очередь забивается кучей служебных ACK пакетов. Смотрел через TcpDump. И получаеся что скорость трафик жестко ограничивается до 30 кб сек, а реально с внешки качает 2-3 кб сек, вся остальная полоса почемуто забивается этими служебными пакетами.
    Почему так происходит не понятно.
    Может перекомпилить исходник и добавить там проверку чтобы служебные пакеты пересылал без ограничений и без очереди, а задерживались именно пакеты с данными.
     
     
  • 2.25, kot (??), 16:37, 24/09/2008 [^] [^^] [^^^] [ответить]  
  • +/
    Подскажите где можно реально скачать rshaper для ядер 2.6. Пробовал скачать по ссылке  http://cvs.gnudd.com/index.cgi/rshaper/ не качается ((( искал через гугл,а там только для ядер 2.0, 2.2, 2.4.


     
     
  • 3.26, raver (ok), 16:37, 10/02/2009 [^] [^^] [^^^] [ответить]  
  • +/
    >Подскажите где можно реально скачать 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 собирается и даже работает, на более новых ядрах не пробовал )

     
     
  • 4.27, raver (ok), 16:41, 10/02/2009 [^] [^^] [^^^] [ответить]  
  • +/
    Блин сколько можно пилить этот rshaper уже 5 лет никак никто не допилит. Все бы там хорошо уже почти все доделано - ссылка выше в сообщении на самую последнюю версию. Вот только понять не могу почему он иногда в kernel panic падает. Спин локами в коде вроде все защищено.... сам не знаю куда копать уже.  
     

  • 1.28, raver (??), 11:12, 11/02/2009 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    на 2.6.27.7 тоже работает
     
  • 1.29, lol (??), 14:13, 11/02/2009 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Для начала напиши что этот велосипед ненужен там где есть squid + авторизация.

     
  • 1.30, raver (??), 00:38, 17/02/2009 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Вообщето это не велосипед. rshaper появился еще в 2000 году, когда htb,cbq,tbf,imq и прочее еще даже не родились. Да и кстати шейпить синхронно трафик входящий и исходящий rshaper умеет сходу, а для cbq или htb надо еще прикручивать imq - и то для последних версий iptables и kernel его просто нету :) Лучше бы помогли дотестить и довести до конца правильный симметричный rshaper.  
     
  • 1.31, zenik (?), 21:26, 18/02/2009 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    у меня керел 2.4.18 после make install выдаёт ошибка 1.
    помогите похалуста поподробней
     
     
  • 2.32, raver (??), 15:58, 19/02/2009 [^] [^^] [^^^] [ответить]  
  • +/
    Для 2.4 ядра у меня версии к сожалению нет. Эти новые версии на 2.4 ядре работать не будут.

    Вам нужна версия 2.0.1 - она будет работать на ядре 2.4 - попробуйте найти в гугле

    http://www.google.ru/search?hl=ru&newwindow=1&q=rshaper+2.01&btnG=%D0�

     

  • 1.33, Аноним (-), 21:45, 02/08/2009 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А ведь же гениально !! Это же на 80% машин которые шейпят можно смело выкидывать tc на свалку.
     
  • 1.35, c0re (??), 22:04, 02/09/2009 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    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

     
     
  • 2.36, raver (??), 14:20, 03/09/2009 [^] [^^] [^^^] [ответить]  
  • +/
    mode=2 вообще не надо использовать...

    http://deadnet.ru/rshaper.tgz - вот версия последняя я чуток допилил.
    Но все равно он будет падать в kernel panic ну мультипроцессорной машине.
    Не смотря на то, что у нас уже программисты на Си ради интереса его ковыряли на предмет ошибок с блокировками, так никто и не смог разобраться почему в панику падает.

    Если отключить в ядре мультипроцессорность SMP то все будет работать без kernel panic, если Вам надо только шейпить да считать трафик, то Вам хватит и однопроцессорной машины даже на 1000 компьютеров, которые будут выходить в интернет через данный роутер.

     
     
  • 3.37, alexdob (?), 23:38, 21/11/2009 [^] [^^] [^^^] [ответить]  
  • +/
    >http://deadnet.ru/rshaper.tgz - вот версия последняя я чуток допилил.

    будет ли вариант не симметричного ограничения, когда можно отдельно указать вх\исх скорость?

     
  • 3.38, Igor (??), 17:07, 06/12/2009 [^] [^^] [^^^] [ответить]  
  • +/
    >http://deadnet.ru/rshaper.tgz - вот версия последняя я чуток допилил.

    К сожалению не открывается ссылка... И Google тоже отказался помочь. Народ, поделитесь версией для ядра 2.6!

     

    лог модерирования

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:




    Спонсоры:
    MIRhosting
    Inferno Solutions
    Hosting by Ihor
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2019 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру