Как ограничить скорость для подключения к серверу?
Доброго дня. Имеется приложение висящее на определенном порту на сервере. Из-за специфики приложения оно должно обязательно смотреть "само" в нужный внешний порт (через reverse proxy оно не работает)
К приложению имеют доступ множество клиентов, и иногда они могут забивать целиком весь канал инета, если их провайдер достаточно быстрый))
Вопрос - как можно ограничить скорость для входящих подключений на определенный порт? я так понимаю что это можно сделать с помощью Iptables, но моих знаний не хватает для написания правил.
Я предполагаю что надо как то промаркировать входящее соединение, а потом его уже обработать?
Подскажите, куда смотреть \ копать. может какой то пример есть ?
Наверняка есть минимальные требования по скорости для этого приложения, а значит зная ширину канала можно посчитать примерное количество одновременных подключений. Если на всех поделить - будет работать?
Vladislav, там есть момент со скачиванием файлов. и в этот момент идет большой скачок трафика.
вот поэтому и хочу ограничить скорость для каждого подключившегося клиента \ IP
Drno, сложно без понимания архитектуры приложения. А все одновременно качают? Скачивание по запросу или как обновление? Трафик растёт зато количество подключений не растёт, а если скорость порезать - будет расти и серверу уже может не хватить памяти, например. Напрашивается механизм очереди либо отделение "файлового сервера" в другую инфраструктуру, в облаке, чтобы трафик при скачивание был отделён.
Vladislav, сервак используется как промежуточный. поэтому надо именно ограничить скорость для каждого отдельного подключения.
представь что у тебя приходит запрос на порт 8080, дальше он NATится.
вот скорость входящих\исходящих запросов на порт 8080 и надо ограничить
тоесть мы делаем редирект с помощью iptables на какой то фейковый интерфейс, и на нём уже шейпим?
для каждого подключения на свой интерфейс? или всех на 1 интерфейс?
как тогда выглядит цепочка в iptables?
типо порт 8080 редиректим на такой то IP (фейковый интерфейс)
далее с фейкового интерфейса редиректим уже на само приложение?