Jump to content
Калькуляторы

Ограничение pps с помощью iptables

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 by lan-viper

Share this post


Link to post
Share on other sites

Несколько цепочек с лимитами, по ним раскидывать IP юзая ipset.

Share this post


Link to post
Share on other sites

Осложняется ещё и тем, что тарифная скорость с 01:00 до 09:00 увеличивается в 3 раза. Придётся забить на тарифы с меньшими скоростями и сконцентрировать внимание на максимуме (они же и создают основную нагрузку). По крону в моменты смены скоростей менять правила, где фигурирует MAXPPS.

PS

и снова появляются так нелюбимые мной скриптовые подпорки в неожиданных местах, о которых через месяц забываешь, а через пол года меняешь что-нибудь... и долго вспоминаешь, из-за чего всё не работает?

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this