Использование Squid для ограничения доступа по скорости компьютеров локальной сети в Internet.

Мясищев А.А. Технологический университет Подолья, г.Хмельницкий

 Большие организации, например университеты, имеют локальные сети, состоящие из нескольких сотен компьютеров. Обычно компьютерам сети присваиваются локальные ip-адреса не маршрутизируемые в Internet. Для организации их доступа в Internet обычно используют сервера доступа (прокси сервера),  которым присваивают реальные ip-адреса. Наиболее продвинутым в настоящее время кеширующим прокси сервером является Squid. Он работает под управлением операционной системы Unix и позволяет кроме ограничения доступа к внешним серверам по ip-адресам, времени работы, портам, протоколам и т.д. организовать ограничение и по скорости доступа компьютеров сети к Internet (последние версии).
 Предположим, что локальная сеть организации логически разделена на сети в том числе:
1.Класса С – 192.168.80.0, 192.168.90.0;
2.Класса В -  172.20.0.0;
3.Отдельные компьютеры – 192.168.20.3, 192.168.30.10, которые могут выступать в качестве прокси серверов для входящих в унверситет подразделений. И им нужно выделить больше скорости, чем обычным клиентам в сети.
Необходимо для сетей класса С выделить скорости 3000 и  5000байт/c соответственно, каждому компьютеру в них – 500 и 1000 байт/c. Для сети класса В – 16000байт/c, входящим подсеткам в нее класса С – 8000байт/с и каждому компьютеру по 800байт/c. Для отдельных компьютеров выделить скорость по 2000байт/с.
 Для того чтобы Squid мог работать со скоростными ограничениями, он должен быть скомпилирован с опцией –enable-delay-pools. Затем в конфигурационный файл /usr/local/squid/etc/squid.conf необходимо внести дополнения:

# Опишем нужные нам сети и компьютеры
acl net80         src 192.168.80.0/255.255.255.0
acl net90         src 192.168.90.0/255.255.255.0
acl net172       src 172.20.0.0/255.255.0.0
acl host20_3   src 192.168.20.3/255.255.255.255
acl host30_10 src 192.168.30.10/255.255.255.255
# Выделим для них 5 pool-ов (иначе - емкостей ограниченного размера)
delay_pools  5
# Присвоим каждому выделенному pool-у соответствующий класс.
# 1-й класс соответствует конкретному компьютеру, второй класс - сети
#  класса С , третий класс – сети класса В.
delay_class 1 2
delay_class 2 2
delay_class 3 3
delay_class 4 1
delay_class 5 1
# Опишем, к какому номеру pool-а должны иметь доступ соответствующие
# сети и компьютеры:
delay_access 1 allow net80
delay_access 1 deny all
delay_access 2 allow net90
delay_access 2 deny all
delay_access 3 allow net172
delay_access 3 deny all
delay_access 4 allow host20_3
delay_access 4 deny all
delay_access 5 allow host30_10
delay_access 5 deny all
# Описываем параметры для каждого pool-а:
delay_parameters 1 3000/3000 500/500
delay_parameters 2 5000/5000 1000/1000
delay_parameters 3 16000/16000 8000/8000 800/800
delay_parameters 4 2000/2000
delay_parameters 5 2000/2000
# Например для 3-го pool-а первая дробь соответственно скорость
# втекания в емкость 16000байт в сеть 172.20.0.0, вторая дробь-
# скорость втекания в подсетки класса С этой сети в емкость
# 8000байт, третья дробь – скорость втекания в байт/c в емкость
# 800байт на один компьютер.
#
# Открываем HTTP доступ
http_access allow net80
http_access allow net90
http_access allow net172
http_access allow host20_3
http_access allow host30_10

 Как показал опыт работы локальной сети Технологического университета Подолья, содержащей свыше 400 компьютеров по предложенной схеме скоростных ограничений, сеть стала работать значительно стабильней. Причем каждый пользователь при условии стабильной работы внешних каналов смог получить гарантированный доступ в Internet.