Как управлять Squid на основе пропускной способности для каждого пользователя
Я хочу управлять пропускной способностью и трафиком в зависимости от действий пользователя на прокси-сервере Squid.
Я провел некоторое исследование, но не смог найти решение, которое хочу.
Например, пользователи с трафиком более 256 Кб должны быть ограничены от сервера.
Вы можете мне помочь?
Спасибо
1 ответ
Я предполагаю, что Squid 3.x:
Предоставить способ ограничения пропускной способности определенных запросов на основе любого списка критериев.
class: класс пула задержки определяет, как применяется задержка, т. е. обрабатываются ли разные клиентские IP отдельно или как группа (или оба)
класс 1: пул задержек класса 1 содержит единое объединенное ведро, которое используется для всех запросов от хостов, на которые распространяется пул
класс 2: пул задержки класса 2 содержит один объединенный блок и 255 блоков, по одному для каждого хоста в 8-битной сети (класс C IPv4)
класс 3: содержит 255 сегментов для подсетей в 16-битной сети и отдельные сегменты для каждого хоста в этих сетях (класс B IPv4)
класс 4: как класс 3, но, кроме того, есть для каждой аутентифицированной группы пользователей, по одной на пользователя.
класс 5: пользовательский класс, основанный на значениях тегов, возвращаемых помощниками external_acl_type в http_access. Одно ведро на используемое значение тега.
Задержка пулов позволяет вам ограничивать трафик для клиентов или групп клиентов с различными функциями:
Можно указать одноранговые хосты, на которые не влияют пулы задержки, т. Е. Локальный пиринг или другой "бесплатный" трафик (с опцией без задержки однорангового).
поведение задержки выбирается списками ACL (трафик с низким и высоким приоритетом, персонал против учеников или ученик против аутентифицированного ученика и т. д.).
- у каждой группы пользователей есть количество сегментов, в блоке содержится количество, приходящее на него в секунду, и максимальное количество, которое может вырасти; когда он достигает нуля, чтение объектов откладывается до тех пор, пока один из клиентов объекта не получит некоторое разрешение на трафик.
- для каждого класса может быть настроено любое количество пулов, и любой набор ограничений внутри пулов может быть отключен, например, вам может потребоваться использовать только совокупные и групповые группы сегментов 3, а не сетевые группы.
В вашем случае вы можете использовать:
For a class 4 delay pool:
delay_pools pool 4
delay_parameters pool aggregate network individual user
Последний параметр delay_pool можно настроить в прокси-сервере squid:
например; Каждый пользователь будет ограничен 128 Кбит / с независимо от того, на скольких рабочих станциях он зарегистрирован:
delay_pools 1
delay_class 1 2
delay_access 1 allow all
delay_parameters 4 32000/32000 8000/8000 600/64000 16000/16000
Пожалуйста, прочитайте больше: