У меня загруженный веб-сайт на сервере Debian, который использует Shorewall для большей части управления трафиком.
Мне нужно разработать способ формирования избыточного трафика, чтобы все пользователи могли разгоняться до максимальной скорости 1 МБ / с в течение, скажем, 60 секунд. Но любой исходный IP-адрес, который продолжает использовать эту скорость в течение 60 секунд, должен быть преобразован, например, обратно в 256 Кбит / с.
Это замедлить (но не блокировать!) боты-загрузчики, которые многие из моих пользователей любят использовать для захвата огромных разделов наших каталогов ресурсов, но поддерживают полную скорость для обычных пользователей.
Я не хочу постоянно добавлять агентов пользователей в черный список, так как новые агенты-боты появляются часто, а некоторые даже лгут. Я просто хочу сформировать все, что использует слишком большую пропускную способность по прошествии определенного времени на исходный IP-адрес.
Я полагаю, что это, вероятно, можно сделать с помощью Shorewall. Однако я не понимаю, как реализовать мое конкретное требование на основе их документов TC. Я один из тех людей, которые быстро разбираются в вещах, когда работают в обратном направлении от хорошего примера, но подробные технические документы с несколькими соответствующими примерами не очень полезны для инструментов с очень сложной настройкой.
Я счастлив использовать любое другое программное обеспечение, которое я могу установить в виде пакета из стабильной версии Debian, если для этой задачи есть что-то лучше, чем Shorewall.
Спасибо!
А
Используйте iptables, чтобы сопоставить такие потоки (например, используя hashlimit / limit), а затем выберите CLASSIFY. Также создайте класс в tc (который будет иметь формат 256 Кбит / с), в котором вы будете классифицировать эти потоки.