Как управлять 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

Пожалуйста, прочитайте больше:

http://wiki.squid-cache.org/Features/DelayPools

http://www.squid-cache.org/Doc/config/delay_parameters/

Другие вопросы по тегам