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

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

тройка моментов по поводу текущей реализации:

так как сети могут перекрываться, то в limiting попадет первая наиболее специфичная, просмотр идет начиная от /32 до /0. 0.0.0.0/0 сеть тоже допустима.

через ',' можно перечислить несколько сетей, как это и было ранее с ip без CIDR.

в разных правилах сети не могут повторяться.

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


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

запустил в прод

 

cat /proc/net/ipt_ratelimit/users_to | wc -l
1064
cat /proc/net/stat/ipt_netflow | grep Rate:
Rate: 874588972 bits/sec, 135383 packets/sec; Avg 1 min: 912832655 bps, 138416 pps; 5 min: 915385917 bps, 138266 pps

 

изменение нагрузки с ratelimit CIDR и без ratelimit, порядка 2-4% CPU. четко выраженной ступеньки на графике нет.

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


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

Ubuntu 16.04

Вроде как установил все, но вот дальше во время настройки

root@ubuntu:/# modinfo xt_ratelimit

modinfo: ERROR: Module xt_ratelimit not found.

 

root@ubuntu:/# iptables -A FORWARD -m ratelimit --ratelimit-set allusers --ratelimit-mode src -j DROP

iptables: No chain/target/match by that name.

 

root@ubuntu:/# echo +10.0.0.0/24 1000000 > /proc/net/ipt_ratelimit/allusers

-bash: /proc/net/ipt_ratelimit/allusers: No such file or directory

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


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

modinfo: ERROR: Module xt_ratelimit not found.

Нет вашего модуля там где ищет его modinfo. Возможно вы его собрали, но не установили/зарегистрировали в системе.

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


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

modinfo: ERROR: Module xt_ratelimit not found.

Нет вашего модуля там где ищет его modinfo. Возможно вы его собрали, но не установили/зарегистрировали в системе.

Попробовал сделать еще раз по порядку, при "make all install" вот что происходит

root@ubuntu:~/ipt-ratelimit# make all install
make: Nothing to be done for 'all'.
make -C /lib/modules/4.4.0-78-generic/build/ M=/root/ipt-ratelimit modules_install INSTALL_MOD_PATH=
make[1]: Entering directory '/usr/src/linux-headers-4.4.0-78-generic'
 INSTALL /root/ipt-ratelimit/xt_ratelimit.ko
At main.c:222:
- SSL error:02001002:system library:fopen:No such file or directory: bss_file.c:175
- SSL error:2006D080:BIO routines:BIO_new_file:no such file: bss_file.c:178
sign-file: certs/signing_key.pem: No such file or directory
 DEPMOD  4.4.0-78-generic
make[1]: Leaving directory '/usr/src/linux-headers-4.4.0-78-generic'
install -D libxt_ratelimit.so /lib/xtables/libxt_ratelimit.so

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


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

Вот уж новость - 0.3 версия с ipv6 + CIDR

собрал, установил, вроде всё работает.

Только не совсем понял, почему:

# modinfo xt_ratelimit
filename:       /lib/modules/4.4.6-gentoo/extra/xt_ratelimit.ko
alias:          ip6t_ratelimit
alias:          ipt_ratelimit
version:        0.2-12-g9ce0149
license:        GPL
description:    iptables ratelimit policer mt module
author:         <abc@telekom.ru>
srcversion:     471F63E616EFDA166CF57D4
depends:        
vermagic:       4.4.6-gentoo SMP mod_unload 
parm:           hashsize:default size of hash table used to look up IPs (uint)

version: 0.2 ?

P.s. до этого стояла 0.2. Но проверил, модуль подгружается вновь собранный. Ожидал увидеть 0.3

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

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


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

Вот уж новость - 0.3 версия с ipv6 + CIDR

собрал, установил, вроде всё работает.

Только не совсем понял, почему:

# modinfo xt_ratelimit
filename:       /lib/modules/4.4.6-gentoo/extra/xt_ratelimit.ko
alias:          ip6t_ratelimit
alias:          ipt_ratelimit
version:        0.2-12-g9ce0149
license:        GPL
description:    iptables ratelimit policer mt module
author:         <abc@telekom.ru>
srcversion:     471F63E616EFDA166CF57D4
depends:        
vermagic:       4.4.6-gentoo SMP mod_unload 
parm:           hashsize:default size of hash table used to look up IPs (uint)

version: 0.2 ?

P.s. до этого стояла 0.2. Но проверил, модуль подгружается вновь собранный. Ожидал увидеть 0.3

 

Это версия из git, она однозначно идентифицирует коммит, который вы используете. Я не делал тег v0.3, поэтому там версия относительно 0.2. Надеялся, что люди потестят и тогда можно будет сделать релиз 0.3. Но пока никто не репортит успех.

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


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

я правильно понимаю, dual stack нарезку теперь можно будет реализовать?

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


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

Это версия из git, она однозначно идентифицирует коммит, который вы используете

Ясно. Спасибо. К сожалению нет пока возможности потестировать в продакшене.

Есть ли планы по дальнейшему развитию?

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


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

я правильно понимаю, dual stack нарезку теперь можно будет реализовать?

 

Да.

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


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

Прошу прощения. пропустил момент.

Как работают подсети в данный момент? Так же как и записи вида +10.10.10.1,10.10.10.2 etc? т.е. режут суммарно скорость на все ИП в подсети или на каждый в отдельности?

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


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

Прошу прощения. пропустил момент.

Как работают подсети в данный момент? Так же как и записи вида +10.10.10.1,10.10.10.2 etc? т.е. режут суммарно скорость на все ИП в подсети или на каждый в отдельности?

 

разумеется суммарно. одна строка - один шейпер.

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


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

разумеется суммарно. одна строка - один шейпер.

Благодарю.

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


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

Не думали добавить ограничение не только в битах, но и в pps?

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


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

Не думали добавить ограничение не только в битах, но и в pps?

Похожие предложения уж были, а так же с классификациями, для QOS. Но результат будет вряд ли.

Автор, на сколько я понял из ветки форума, писал проэкт под заказ. После окончания, и сдачи, оставил как есть, и не развивает активно.

Так что спасибо ему за существующий код.

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

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


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

Не думали добавить ограничение не только в битах, но и в pps?

 

нет.

 

 

Автор, на сколько я понял из ветки форума, писал проэкт под заказ. После окончания, и сдачи, оставил как есть, и не развивает активно.

 

вроде все что было обещано, уже сделано... даже без "под заказ".

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


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

вроде все что было обещано, уже сделано... даже без "под заказ".

Безусловно. За что автору огромное спасибо. Никто иного не утверждает.

Но вы не совсем верно истолковали смысл моих слов.

Я хотел донести, что проэкт активно не завивается, выполнены поставленные требования в начале работы, и всё. Остальное по необходимости на усмотрение автора или вновь поставленных задачах.

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


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

Тут мелькнул собственный патч некого a290, для ограничения по pps. Но потом сообщение куда то испарилось. Прочему так? Кто то пользовался?

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


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

Тут мелькнул собственный патч некого a290, для ограничения по pps. Но потом сообщение куда то испарилось. Прочему так? Кто то пользовался?

не только сообщение, но и наработка в git испарилась )))

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


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

Тут мелькнул собственный патч некого a290, для ограничения по pps. Но потом сообщение куда то испарилось. Прочему так? Кто то пользовался?

не только сообщение, но и наработка в git испарилась )))

 

https://gist.github.com/a290/642eb2374ca28eb8c95c0e41e3e9183d

 

А наработка испарилась, потому что репу до более раннего коммита откатил. Мне нужно скорость резать по интерфейсу вместо IP (vlan-per-user), а для этого проще поправить версию без CIDR/IPv6.

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


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

Мне нужно скорость резать по интерфейсу вместо IP (vlan-per-user), а для этого проще поправить версию без CIDR/IPv6.

Так а патч зачем потёрли? Старая репа - это тоже не плохо. А работающий к ней патч с изменением/добавлением ф-ционала, только плюс. Мало ли кому сгодился б. Да к тому же спрашивали. А там быть может если всё хорошо, и автор добавил бы в новые версии.

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


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

Мне нужно скорость резать по интерфейсу вместо IP (vlan-per-user), а для этого проще поправить версию без CIDR/IPv6.

Так а патч зачем потёрли? Старая репа - это тоже не плохо. А работающий к ней патч с изменением/добавлением ф-ционала, только плюс. Мало ли кому сгодился б. Да к тому же спрашивали. А там быть может если всё хорошо, и автор добавил бы в новые версии.

 

При git reset --hard стирается всё что было после указанного коммита, потом отдельно патч перезалить на gist забыл. Выложенный патч - для самой последней версии 9ce0149 (для 80837a9 тоже подойдет, но надо одну строчку поправить)

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


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

для 80837a9 тоже подойдет, но надо одну строчку поправить

какую?

Предлогаю, выложить старую версию и патч для нее, или же оригинал и пропатченную версию.

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


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

для 80837a9 тоже подойдет, но надо одну строчку поправить

какую?

Предлогаю, выложить старую версию и патч для нее, или же оригинал и пропатченную версию.

 

Форк последней версии с патчем:

https://github.com/a290/ipt-ratelimit-pps

 

Версию без CIDR/IPv6 с нарезкой по интерфейсу пока у себя тестирую, если будет нормально работать, то потом выложу в отдельную репу.

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


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

 

Форк последней версии с патчем:

https://github.com/a...t-ratelimit-pps

Прекрасно. Проверил.

iptables v1.6.1

Всё работает.

P.s. сохранил старый Ваш патч, наложил на последнюю версию. Так же всё работает.

Версию без CIDR/IPv6 с нарезкой по интерфейсу пока у себя тестирую, если будет нормально работать, то потом выложу в отдельную репу

Отлично. Было б не плохо.

Изменено пользователем 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 смайлов.

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

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

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