Ограничение скорости в Squid(delay pools)
Как известно любому сисадмину, среднего пользователя хлебом не корми, дай какую то диверсию в сети сделать. Одна из таких диверсий – это захват одним пользователем всего канала. В принципе эта проблема решается с помощью шейпера в файерволе, но тогда отпадает возможность фильтрации трафика. В Squid есть встроенная система ограничения трафика, которые называются Delay Pools.
Настройка довольно интересна. Существуют три класса Delay Pools:
1. Первый класс – индивидуальные ограничения. Для небольшого офиса на 10 человек самое оно.
Сначала надо описать acl пользователей, примерно так:
acl dir 192.168.0.254
acl manag 192.168.0.253
acl secretutka 192.168.0.252
acl odmin 192.168.0.5Теперь опишем delay poolы:
#Описываем количество очередей delay_pools 4 #Задаем последовательно имена пулов 1, 2,3,4. #Вторая цифра описывает класс к которому принадлежит пул delay_class 1 1 delay_class 2 1 delay_class 3 1 delay_class 4 1 #Теперь описываем параметры delay poolов #Первая цифра описывает имя пула, вторая/третья - #соответственно скорость и размер буфера, все #цифры бфайтах #Директору 256 килобит delay_parameters 1 32000/32000 #Менеджеру 32 килобита delay_parameters 2 4000/4000 #Секретарю 64 килобита delay_parameters 3 8000/8000 #Админу безлимитку delay_parameters 4 -1/-1 #И соответственно припишем наших юзеров к их пулам delay_access 1 allow dir delay_access 1 deny all delay_access 2 allow manag delay_access 2 deny all delay_access 3 allow user delay_access 3 deny all delay_access 4 allow user1 delay_access 4 deny all
Индивидуальные делай пулы настраиваются просто
2. Delay pools второго класса. Предназначены для небольших сетей
Описываем acl сети
acl localnet 192.168.0.0/24
А теперь определим для нее пул и установим его параметры
delay_pools 1 delay_class 1 2 #В параметрах теперь задается шейп на всю сеть первая пара #и шейп на рабочую станцию, это вторая пара цифр delay_parameters 1 8000/8000 4000/4000 delay_access 1 allow localnet delay_access 1 deny all
Недостаток пула второго класса, это то, что нет возможности выделить индивидуального безлимитчика. Но это вполне реально если смешивать эти два класса пулов. То есть можно сделать так:
acl dir 192.168.0.254 acl localnet 192.168.0.0/24
И теперь опишем пулы
delay_pools 2 delay_class 1 2 delay_class 2 1 delay_parameters 1 8000/8000 4000/4000 #Запустим всех в 1 пул, кроме директора delay_access 1 allow localnet !dir delay_access 1 deny all #А тут мы персонально опишем директора delay_parameters 2 32000/32000 delay_access 2 allow dir delay_access 2 deny all
3. Delay pools третьего класса предназначены для больших сетей, включающих подсети.
Опишем aclи
acl net1 192.168.0.0/24 acl net2 192.168.1.0/24
Теперь переходим настройке пула.
delay_pools 1 delay_class 1 3 #Теперь параметры пула описываются тремя парами цифр #первая пара описывает общий, для всех подсетей шейп #вторая пара - шейп выделенный для подсети #третья пара - для хоста delay_parameters 1 32000/32000 16000/16000 4000/4000 delay_access 1 allow net1 delay_access 1 allow net2 delay_access 1 deny all
При грамотном применении всех 3-х классов delay poolов, можно построить гибкую и надежную систему, позволяющую пользователям комфортно работать.



