Покотиленко Костик wrote:
В iptables есть такой модуль limit, классификатор которого срабатывает, например, раз в 5 секунд. А есть модуль hashlimit, который делает то же самое, только, например, для каждого IP отправителя отдельный счётчик.
Это очень красивое решение, оно позволяет одним правилом выставить честно ограничения, а не так что один пользователь пингует сайт 10 раз в секунду, а другие не могут вообще.
Просто сделайте то, о чем я уже говорил: скрипт, создающий классы для всех IP и правила iptables, которые будут делать маркировку пакетов с помощью IPMARK или классификацию с IPCLASSIFY. Здесь просто слово "хэш" явно не употребляется, но суть такая же: одним правилом можно маркировать/классифицировать пакеты сразу со всех IP из нужной подсети. А ipset для этих целей не нужен.
По аналогии, мне бы TBF, только чтобы hashTBF. Такое есть?
Такое есть во FreeBSDшном dummynet. В Linux массовый шейпинг делается более грамотно -- классовыми дисциплинами (HTB, CBQ) и классификацией на основе полей заголовков пакетов, а не какими-то хаками в виде кучи независимых token buckets.