Jump to content

Recommended Posts

Posted (edited)

[...] bps это битрейт, но почему-то он не всегда правильно отображает иногда режет в половину

 

Как вы это поняли?

я прогнал тестом с 128 кбит и дальше на каждом шаге умножая на 2 и получил вот что.

На первый взгляд работает верно.

Сохранил картинку только для малых скоростей правда ограничив по вертикальной оси - иначе тяжело что то понять было.

Тест единственной сессией TCP? Возможно похоже на "биение" скорости, типично если нет PID алгоритма(или его аналога) в TCP congestion control на передающем устройстве и в шейпере.

Нет, тест по моему в 5 или 10 сессий но да - TCP и запущенных практически одновременно. iperf но параметры смогу сказать позже.

Запускался на виртуалках с целью грубой оценки.

 

Но на тех же ВМках на той же лабе HTC/HFSC работало как ожидаемо.

Edited by sirmax
  • Replies 380
  • Created
  • Last Reply

Top Posters In This Topic

Top Posters In This Topic

Posted Images

Posted

Есть, но это увеличит нагрузку, что не целесообразно. Просто знайте, что bps это средняя скорость за весь период. В крайнем случае, можно это убрать из статистики раз это вводит в заблуждение.

 

как на счёт параметра как HTB

options sch_htb htb_rate_est=1

кому надо выводить, а по (default 0)

Posted

Есть, но это увеличит нагрузку, что не целесообразно. Просто знайте, что bps это средняя скорость за весь период. В крайнем случае, можно это убрать из статистики раз это вводит в заблуждение.

 

как на счёт параметра как HTB

options sch_htb htb_rate_est=1

кому надо выводить, а по (default 0)

 

А зачем это, если не секрет? Такая статистика никак не будет отражать работу полисинга. (По-моему даже у cisco такого нет.)

Только ради прикола, посмотреть на меняющиеся цифры?

Posted

А зачем это, если не секрет? Такая статистика никак не будет отражать работу полисинга. (По-моему даже у cisco такого нет.)

Только ради прикола, посмотреть на меняющиеся цифры?

 

прост привык, есть абоненты в потолок грузят свой канал, вот и сделал вывод в биллинг просмотр статистики в режиме онлайн, тот же спидтест я вижу что он замеряет.

Posted (edited)

А зачем это, если не секрет? Такая статистика никак не будет отражать работу полисинга. (По-моему даже у cisco такого нет.)

Только ради прикола, посмотреть на меняющиеся цифры?

 

прост привык, есть абоненты в потолок грузят свой канал, вот и сделал вывод в биллинг просмотр статистики в режиме онлайн, тот же спидтест я вижу что он замеряет.

 

Можно сделать сброс статистики в 0. Хотя...

 

Хотя, можно даже без сброса выводить статистику, которую вы хотите парся уже существующие файлы - счётчики трафика же есть (и в пакетах, и в байтах).

 

Правильная идеология состоит в том, что модуль ядра должен хорошо выполнять свою прямую функцию, а то, что можно делать в userspace должно быть там. Модуль предоставляет статистику из которой можно подсчитать битерйты perl скриптиком.

 

ps. EWMA rate эстиматор нужен для работы CBQ для определения состояния overlimit. Так как "HTB is meant as a more understandable and intuitive replacement for the CBQ", то по "историческим причинам" они тоже сделали рассчет ewma rate, но, так как он там не необходим, то он отключаем через htb_rate_est. В ipt-ratelimit используется более простой алгоритм TBF, где эта эстимация изначально вообще не была нужна.

Edited by aabc
Posted

Автору огромное спасибо за разработку и успехов в дальнейшей разработке. Отличная штука.

Надеюсь проэкт не осеротеет, и будет развиваться.

  • 2 weeks later...
Posted (edited)

есть возможность вывести реальный битрейт для отслеживания онлайн

Сделал (в git), средний битрейт за последние ~8 секунд.

Edited by aabc
Posted

скажите, а функционал "echo :hotdrop > /proc/net/ipt_ratelimit/name0" (и прочих :flush, :match, :nomatch) в будущем, несмотря на удаление из документации, сохранится? очень полезная фича. экономит пару правил и позволяет не использовать ipset.

Posted

скажите, а функционал "echo :hotdrop > /proc/net/ipt_ratelimit/name0" (и прочих :flush, :match, :nomatch) в будущем, несмотря на удаление из документации, сохранится? очень полезная фича. экономит пару правил и позволяет не использовать ipset.

А можно вас попросить поподробнее рассказать как вы hotdrop используете? Я чёт сходу не приудмал, но может мысль куда-то не в ту сторону пошла...

Posted

А можно вас попросить поподробнее рассказать как вы hotdrop используете? Я чёт сходу не приудмал, но может мысль куда-то не в ту сторону пошла...

пишем всего два правила на весь фаервол

-A FORWARD -i eth0 -m ratelimit --ratelimit-set download --ratelimit-mode dst -j DROP
-A FORWARD -i eth1 -m ratelimit --ratelimit-set upload --ratelimit-mode src -j DROP

делаем дроп не присутствующих в сетах адресов. и все, готов poor man's шейпер для клиентов. добавляешь клиента в сеты - трафик клиента ходит. удаляешь - заблокировал, типа. =)

 

любители развесистых фаерволов, наверное, осудят. но по сути от железки (в моем случае) нужно только это - открыть/закрыть доступ в сеть и нарезать полосу.

 

дурацкая идея: а можно добавить в модуль функционал ограничения не только bps, но и pps? а то, знаете ли, бывают любители пофлудить. =)

Posted

есть возможность вывести реальный битрейт для отслеживания онлайн

Сделал (в git), средний битрейт за последние ~8 секунд.

 

очень очень хорошо работает, спасибо

Posted (edited)

А можно вас попросить поподробнее рассказать как вы hotdrop используете? Я чёт сходу не приудмал, но может мысль куда-то не в ту сторону пошла...

пишем всего два правила на весь фаервол

-A FORWARD -i eth0 -m ratelimit --ratelimit-set download --ratelimit-mode dst -j DROP
-A FORWARD -i eth1 -m ratelimit --ratelimit-set upload --ratelimit-mode src -j DROP

делаем дроп не присутствующих в сетах адресов. и все, готов poor man's шейпер для клиентов. добавляешь клиента в сеты - трафик клиента ходит. удаляешь - заблокировал, типа. =)

 

любители развесистых фаерволов, наверное, осудят. но по сути от железки (в моем случае) нужно только это - открыть/закрыть доступ в сеть и нарезать полосу.

Наконецто у линукса родился нормальный шейпер, такой же красивый как фришний дамминет

Edited by GrandPr1de
Posted

Спасибо.

 

А как обстоят дела с внедрением поддержки префиксов?

 

В процессе.

 

дурацкая идея: а можно добавить в модуль функционал ограничения не только bps, но и pps? а то, знаете ли, бывают любители пофлудить. =)

 

 

Какие хотели бы значения ставить?

 

А подмена nexthop это наверное уже наглость будет?

 

Какая связь с ratelimit?

Posted

Чтобы iptables использовать по минимуму - в случае отсутствия правила все ip переадресуются на другой сервер (подменить dst ip), а он уже показывает браузеру страницу - мол так и так - заблокирован.

Posted

А подмена nexthop это наверное уже наглость будет?

 

Чтобы iptables использовать по минимуму - в случае отсутствия правила все ip переадресуются на другой сервер (подменить dst ip), а он уже показывает браузеру страницу - мол так и так - заблокирован.

 

Так nexthop или dst ip?

Posted

делаем дроп не присутствующих в сетах адресов. и все, готов poor man's шейпер для клиентов. добавляешь клиента в сеты - трафик клиента ходит. удаляешь - заблокировал, типа. =)

А, ну так-то да.

Я думал может в "развесистом" варианте нашлось какое-то применение :)

Спасибо всё равно :)

Posted

дурацкая идея: а можно добавить в модуль функционал ограничения не только bps, но и pps? а то, знаете ли, бывают любители пофлудить. =)

Какие хотели бы значения ставить?

эмпирически. =) скажем если у товарища аплоад 10 мбит и от него прет 20кппс (примерно столько влезет 60-байтовых пакетиков в такую полосу), то это явно синфлуд. у нас average packet size около 700 байт. вот от этого значения бы и плясал.

 

Я думал может в "развесистом" варианте нашлось какое-то применение :)

да точно такое же. =)

Posted

А подмена nexthop это наверное уже наглость будет?

 

Чтобы iptables использовать по минимуму - в случае отсутствия правила все ip переадресуются на другой сервер (подменить dst ip), а он уже показывает браузеру страницу - мол так и так - заблокирован.

 

Так nexthop или dst ip?

 

А что сделать проще? Хотелось бы решить вопрос с показом абоненту страницы блокировки. Я так понимаю это можно решить либо подменой nexthop (пакет прилетит на сервер с страницей блокировки) либо с подменой dst ip (пакет так же прилетит сервер с страницей блокировки)

Или этот вопрос вообще никак не относится к ipt-ratelimit и должен решаться другими способами?

Posted (edited)

Или этот вопрос вообще никак не относится к ipt-ratelimit и должен решаться другими способами?

ИМХО, Да.

Ограничение pps, понятно. Возможно пригодится. А вот перенаправление - уже как по мне лишнее в модуле полисера.

Edited by bomberman

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...