Мар 31 2009

Ограничение скорости в 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ов, можно построить гибкую и надежную систему, позволяющую пользователям комфортно работать.

Добавить в закладки:

google.com bobrdobr.ru del.icio.us technorati.com linkstore.ru news2.ru rumarkz.ru memori.ru moemesto.ru

Украинская Баннерная Сеть