Перейти к содержимому
Калькуляторы

ipt-ratelimit трафик полисинг в iptables

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

 

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

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

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

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

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

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

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

 

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

Изменено пользователем sirmax

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

 

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

options sch_htb htb_rate_est=1

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

 

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

options sch_htb htb_rate_est=1

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

 

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А зачем это, если не секрет? Такая статистика никак не будет отражать работу полисинга. (По-моему даже у 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, где эта эстимация изначально вообще не была нужна.

Изменено пользователем aabc

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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

Изменено пользователем aabc

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

boco

Хорошо, что вы сказали. Думаю оставить.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А можно вас попросить поподробнее рассказать как вы 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? а то, знаете ли, бывают любители пофлудить. =)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Использую с пару месяцев - шикарно

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А можно вас попросить поподробнее рассказать как вы 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 шейпер для клиентов. добавляешь клиента в сеты - трафик клиента ходит. удаляешь - заблокировал, типа. =)

 

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

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

Изменено пользователем GrandPr1de

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

 

 

что за подмена nexthop?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Спасибо.

 

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

 

В процессе.

 

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

 

 

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

 

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

тогда уж опционально mark пакетам добавлять, которые попали/не попали на правило полисера...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

 

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

 

Так nexthop или dst ip?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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

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

 

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

 

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

 

Так nexthop или dst ip?

 

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

ИМХО, Да.

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

Изменено пользователем bomberman

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Join the conversation

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

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.