lan-viper Posted January 5, 2012 Posted January 5, 2012 (edited) IPT=/sbin/iptables MAXPPS=555 MAXPPS_IN=$MAXPPS $IPT -N LIMITPPS_IN $IPT -A LIMITPPS_IN -m hashlimit --hashlimit ${MAXPPS_IN}/sec --hashlimit-burst ${MAXPPS_IN} \ --hashlimit-mode dstip --hashlimit-name customer_in -j RETURN $IPT -A LIMITPPS_IN -j DROP MAXPPS_OUT=$MAXPPS $IPT -N LIMITPPS_OUT $IPT -A LIMITPPS_OUT -m hashlimit --hashlimit ${MAXPPS_OUT}/sec --hashlimit-burst ${MAXPPS_OUT} \ --hashlimit-mode srcip --hashlimit-name customer_out -j RETURN $IPT -A LIMITPPS_OUT -j DROP $IPT -A FORWARD -o ppp+ -j LIMITPPS_IN $IPT -A FORWARD -i ppp+ -j LIMITPPS_OUT Значение MAXPPS подобрал экспериментально, исходя из макс. тарифной скорости в 4Мбит. Недостаток такого решения - pps режется только для тех, у кого имеется этот самый тариф в 4Мбита. Те, у кого скоростя меньше соотв. имеют возможность забивать свой канал мелкими пакетами до значения MAXPPS. Как ещё можно сделать, что-бы обойти данный вопрос или помогите посмотреть на проблему с другой стороны? Кто как сам ограничивает, если стоит такая задача? И покритикуйте данный способ, который применяется у меня сейчас. Застрял на месте, в голову ни чего нового не приходит. Приветствуются любые комментарии. Edited January 5, 2012 by lan-viper Вставить ник Quote
NiTr0 Posted January 5, 2012 Posted January 5, 2012 Несколько цепочек с лимитами, по ним раскидывать IP юзая ipset. Вставить ник Quote
lan-viper Posted January 5, 2012 Author Posted January 5, 2012 Осложняется ещё и тем, что тарифная скорость с 01:00 до 09:00 увеличивается в 3 раза. Придётся забить на тарифы с меньшими скоростями и сконцентрировать внимание на максимуме (они же и создают основную нагрузку). По крону в моменты смены скоростей менять правила, где фигурирует MAXPPS. PS и снова появляются так нелюбимые мной скриптовые подпорки в неожиданных местах, о которых через месяц забываешь, а через пол года меняешь что-нибудь... и долго вспоминаешь, из-за чего всё не работает? Вставить ник Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.