URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID12
Нить номер: 6687
[ Назад ]

Исходное сообщение
"Ubuntu Server. Ограничение скорости клиентов"

Отправлено Azerhud , 10-Авг-11 11:03 
Доброго всем времени суток. Прошу помочь в решении некой проблемы.
Server Ubuntu 11.04
DNS Bind9
Squid
clamav + havp + sarg
интернет 512kb/s

Проблема такая:

Мне необходимо ограничить скорость скачиваемых файлов по типу и размеру. При этом у пользователя direktor (1-3) не должно быть ни каких ограничений. А у остальных скорость 100% по куда они не начинают качать, при этом первые 3Mb при максимуме а остальные на скорости 64kb/s
Но как это сделать не пойму :(

Сделал так;

acl direktor1 src 192.168.0.20/32
acl direktor2 src 192.168.0.21/32
acl direktor3 src 192.168.0.22/32
acl lan1 src 192.168.0.0/24

http_access allow direktor1
http_access allow direktor2
http_access allow direktor3
http_access allow lan1

delay_pools 2
delay_class 1 1
delay_class 2 3

delay_access 1 allow direktor1
delay_access 1 allow direktor2
delay_access 1 allow direktor3
delay_access 1 deny all
delay_access 2 allow lan1
delay_access 2 deny all

а дальше не пойму что и как, куда вставить acl media urlpath_regex -i \.mp3$ \.asf$ \.wma$ \.avi$ \.mpg$ что бы  всё заработало?


Содержание

Сообщения в этом обсуждении
"Ubuntu Server. Ограничение скорости клиентов"
Отправлено ipmanyak , 11-Авг-11 08:45 
>[оверквотинг удален]
> delay_class 1 1
> delay_class 2 3
> delay_access 1 allow direktor1
> delay_access 1 allow direktor2
> delay_access 1 allow direktor3
> delay_access 1 deny all
> delay_access 2 allow lan1
> delay_access 2 deny all
> а дальше не пойму что и как, куда вставить acl media urlpath_regex
> -i \.mp3$ \.asf$ \.wma$ \.avi$ \.mpg$ что бы  всё заработало?

Для твоего случая, порядок команд delay_access важен:

acl boss src 192.168.0.20  192.168.0.21  192.168.0.22  
acl media urlpath_regex -i \.mp3$ \.asf$ \.wma$ \.avi$ \.mpg$  

delay_pools 3
delay_class 1 1
delay_class 2 1
delay_class 3 1

delay_access 1 allow boss
delay_access 1 deny all
delay_access 2 allow media
delay_access 2 deny all
delay_access 1 allow lan1
delay_access 1 deny all

# для боссов
delay_parameters 1 -1/-1
#для мультимедия
delay_parameters 2 8000/3000000
#для юзеров
delay_parameters 3 -1/-1

-1/-1    означает анлим, но весь канал сквиду отдавать не стоит, поскольку есть и другие сервисы, например почта, отдай сквиду  процентов 80 от канала или еще меньще, но это уже твое дело.

При дележе пулов нужно знать толщину канала в инет!
Допустим канал в инет 2 мегабита, то есть 256000 байт/сек. Сквиду отдаем 184000 байт/сек. Я бы сделал примерно так без привязки к мультимедиа:

delay_pools 2
delay_class 1 1
delay_class 2 2

delay_access 1 allow boss
delay_access 1 deny all
delay_access 2 allow lan1
delay_access 2 deny all

# для боссов
delay_parameters 1 184000/184000 128000/128000
#для юзеров
delay_parameters 2 184000/184000 8000/56000

184000/184000 - ведро на весь пул 184000 байта, скорость на весь пул максимум 184000 байт/сек
8000/56000 - на каждого юзера ведерки по 56000 байт, а струйка в него в 8000 байт/сек  - быстро будет усасывать объекты размером до 56000 байт , объекты больше 56000 будет сосать на скорости 8000 байт/сек



"Ubuntu Server. Ограничение скорости клиентов"
Отправлено Azerhud , 13-Авг-11 19:24 
Что то это правило никак не хочет работать. Как только я прописываю его в конце конфиг файла и перегружаю squid не одна страница не открывается. :(.

В данный момент у меня сейчас установлена связка: Squid + dansguardian + ClamAV + havp + webmin. А так же настроено правило NAT. При необходимости могу скинуть конфиги. Совсем уже запутался. :(


"Ubuntu Server. Ограничение скорости клиентов"
Отправлено ipmanyak , 15-Авг-11 12:21 
> Что то это правило никак не хочет работать. Как только я прописываю
> его в конце конфиг файла и перегружаю squid не одна страница
> не открывается. :(.
> В данный момент у меня сейчас установлена связка: Squid + dansguardian +
> ClamAV + havp + webmin. А так же настроено правило NAT.
> При необходимости могу скинуть конфиги. Совсем уже запутался. :(

покажи последний конфиг сквида


"Ubuntu Server. Ограничение скорости клиентов"
Отправлено Azerhud , 16-Авг-11 10:57 
> покажи последний конфиг сквида

В конце конфига добавил:

acl boss src 192.168.0.20  192.168.0.21  192.168.0.22  
acl media urlpath_regex -i \.mp3$ \.asf$ \.wma$ \.avi$ \.mpg$  
acl lan1 src 192.168.0.0/24

delay_pools 3
delay_class 1 1
delay_class 2 1
delay_class 3 1

delay_access 1 allow boss
delay_access 1 deny all
delay_access 2 allow media
delay_access 2 deny all
delay_access 1 allow lan1
delay_access 1 deny all

# для боссов
delay_parameters 1 -1/-1
#для мультимедия
delay_parameters 2 8000/3000000
#для юзеров
delay_parameters 3 -1/-1

cache_peer 127.0.0.1 parent 8080 0 no-query no-digest no-netdb-exchange default
cache_peer_access 127.0.0.1 allow all
acl Scan_HTTP proto HTTP
never_direct allow Scan_HTTP

Если не обходимо выложу весь файл, но он длинный....



"Ubuntu Server. Ограничение скорости клиентов"
Отправлено Убунтовский хомячок , 16-Авг-11 14:59 
Быть может и мне поможете с моей "бедой". :)
Версия Squid: 3.1.6-1.2
GNU\Linux debian 2.6.32-5-68
======
Имеются следюущие acl'ы
Под acl'ом для пояснения указываю содержимое.
acl super_users src "/etc/squid3/acl/super_users"
192.168.0.86
192.168.0.100
192.168.0.56
###########
acl banned src "/etc/squid3/acl/deny_all_users"
192.168.20.250
##########
acl rents_net src "/etc/squid3/acl/rents_net"
192.168.20.0/24
#############
acl office_net src "/etc/squid3/acl/office_net"
192.168.0.0/24
#######
#
acl mobile urlpath_regex -i (\.thm|\.sis|\.swf|\.jad|\.jar|\.3gp|\.mp4)((\#|\&|\?|\s){1}|$)
acl multimedia urlpath_regex -i (\.swf|\.mp3|\.m3u|\.flv|\.wav|\.vqf|\.avi|\.wmv|\.mpeg|\.mp|\.asf|\.mpe|\.dat|\.mpg|\.wma|\.midi|\.aiff|\.au|$
acl archive urlpath_regex -i (\.tar.gz|\.gz|\.tar|\.zip|\.rar|\.cab|\.arj|\.lzh|\.ace|\.7-zip|\.gzip|\.uue|\.bz2|\.iso)((\#|\&|\?|\s){1}|$)
acl mp3 urlpath_regex -i (\.wav|\.mp3|\.mp4)((\#|\&|\?|\s){1}|$)
acl soft urlpath_regex -i (\.exe|\.msi|\.rpm|\.deb|\.bat|\.cmd)((\#|\&|\?|\s){1}|$)
acl documents urlpath_regex -i (\.doc|\.docx|\.xls|\.xlsx|\.odf|\.odt|\.pdf)((\#|\&|\?|\s){1}|$)
##############################################
##############################################
delay_pools 5
#Office
delay_class 1 3
#Rents
delay_class 2 3
#Multimedia
delay_class 3 3
#Super users
delay_class 4 1
#Banned
delay_class 5 1
#####
delay_access 1 allow office_net
delay_access 1 allow documents
delay_access 1 allow archive
delay_access 1 allow soft
delay_access 1 deny all
###
delay_access 2 allow rents_net
delay_access 2 allow documents
delay_access 2 allow archive
delay_access 2 allow soft
delay_access 2 deny all
####
delay_access 3 allow office_net
delay_access 3 allow rents_net
delay_access 3 allow multimedia
delay_access 3 allow mp3
delay_access 3 deny all
####
delay_access 4 allow super_users
delay_access 4 deny all
####
delay_access 5 allow banned
delay_access 5 allow mp3
delay_access 5 allow multimedia
delay_access 5 allow archive
delay_access 5 allow soft
delay_access 5 allow documents
delay_access 5 deny all
###
delay_parameters 1 400000/800000 150000/450000 400000/800000
delay_parameters 2 600000/1200000 300000/600000 600000/120000
delay_parameters 3 1000/1500 500/1000 1000/1500
delay_parameters 4 -1/-1
delay_parameters 5 1000/1500
====
Собственно в 2-х словах задача.
Имеются 2 подсети.
192.168.0.0/24 - office_net
192.168.20.0/24 - rents_net
На office_net отдаем ~4Мбита, с ограничением в ~1.5Мбита на хост при привышении буфера передачи.
Аналогично и для rents_net.
Однако хочется сделать так, что бы из этих 2-х подсетей не было возможности просматривать какой либо мультимедийный контент, обрезав скорость.
Разумеется имеются некоторые люди (super_users), которым ограничивать ничего не надо.
Ну и последний вариант - условный "бан".
Собственно squid3 корректно обрабатывает office_net, rents_net. А вот остальные ограничения банально не действуют. И вот как бы осуществить задуманное пока что не соображу...
Относительно delay_parameters в squid.conf пишется, что изначально идет Общая скорость на пул, затем индивидуальная, затем подсеть.
На мой взгляд проблема кроется где то в ACL'ах. По крайней мере когда мы задаем подсеть /24, к примеру. Т.е. если я правильно понял, то squid3 увидев ip в каком либо из ACL'ов дальше уже не обрабатывает правила. Как быть в моем случае? :-[