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

Исходное сообщение
"Squid не режет скорость."

Отправлено BRO36 , 27-Апр-16 15:23 
Всем привет!
Имеется Ubuntu Server 14.04.1 x86_64. Локальная сеть имеет маску нестандартной длины 10.0.16.0/22. На нем стоит DansGuardian и Squid. Почему то Squid не режет трафик.
Причем если вместо "delay_access 1 allow allowed_hosts" написать "delay_access 1 allow all" порезка скорости срабатывает. Ума не приложу почему не работет, помогите пожалуйста разобраться.

Вот полный конфиг сквида.

acl SSL_ports port 443
acl Safe_ports port 80            # http
acl Safe_ports port 21            # ftp
acl Safe_ports port 443            # https
acl Safe_ports port 70            # gopher
acl Safe_ports port 210            # wais
acl Safe_ports port 1025-65535    # unregistered ports
acl Safe_ports port 280            # http-mgmt
acl Safe_ports port 488            # gss-http
acl Safe_ports port 591            # filemaker
acl Safe_ports port 777            # multiling http
acl CONNECT method CONNECT

acl allowed_hosts src 10.0.16.0/22

http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access deny to_localhost

http_access allow localhost manager
http_access deny manager
http_access allow SSL_ports

http_access allow localhost
http_access allow allowed_hosts
http_access deny all

delay_pools 1
delay_class 1 2
delay_access 1 allow allowed_hosts
delay_access 1 deny all
delay_parameters 1 500000/500000 -1/-1

http_port 3128
cache_mem 256 MB
cache_dir ufs /var/spool/squid3 300 16 256
maximum_object_size 4 MB
maximum_object_size_in_memory 512 KB
access_log daemon:/var/log/squid3/access.log squid
logfile_rotate 20
forwarded_for transparent
dns_v4_first on


Содержание

Сообщения в этом обсуждении
"Squid не режет скорость."
Отправлено Дум Дум , 27-Апр-16 16:56 
Доброго дня.

Т.е. ведёт себя так, как-будто клиент не попадает в delay_access? Заменить "allowed_hosts" на идентификатор попроще?
http://wiki.squid-cache.org/SquidFaq/SquidAcl#I_set_up_my_ac...


"Squid не режет скорость."
Отправлено BRO36 , 27-Апр-16 17:10 
> Доброго дня.
> Т.е. ведёт себя так, как-будто клиент не попадает в delay_access? Заменить "allowed_hosts"
> на идентификатор попроще?
> http://wiki.squid-cache.org/SquidFaq/SquidAcl#I_set_up_my_ac...

Заменил "allowed_hosts" на "lan1", тот же эффект. Я голову всю сломал, не режет и все, десятки конфигураций уже пробовал. Может сам сквид глючит? Может дело в том что сеть имеет маску нестандартной длины?


"Squid не режет скорость."
Отправлено Andrey Mitrofanov , 27-Апр-16 20:09 
> delay_access 1 allow allowed_hosts
> delay_access 1 deny all

Заменить для начала эти две на:

delay_access 1 allow all

, коли уж там всё одно http_access только для них.

> delay_parameters 1 500000/500000 -1/-1

Потом уже тщательно проверять эти 500КБайт/c "на всех" и "не работает".

У меня вот, например, -k reload просто _отключал_ все delay pool-ы и соотв.оганичения. Работал "как надо" только restart. Во времена 2.6 у них и в FAQ-е было "ну нишмагла, вам надо, вы и делайте". Это тоже _проверить_.


"Squid не режет скорость."
Отправлено ipmanyak , 28-Апр-16 08:03 
>[оверквотинг удален]
> delay_parameters 1 500000/500000 -1/-1
> http_port 3128
> cache_mem 256 MB
> cache_dir ufs /var/spool/squid3 300 16 256
> maximum_object_size 4 MB
> maximum_object_size_in_memory 512 KB
> access_log daemon:/var/log/squid3/access.log squid
> logfile_rotate 20
> forwarded_for transparent
> dns_v4_first on

500000 байт * 8 = 4 000 000 бит
у вас канал в инет какой?
как именно вы хотите резать скорость для пользователей?
500000/500000 -1/-1  # фактически каждому  юзеру вы ничего не ограничили, а ограничили канал на всех.
Для понимания
delay_parameters  1 -1/-1 2000/16000
-1/-1 – весь канал отдать сквиду  - анлимитед, а индивдуально на каждого юзверя ведерки по 16кб, а струйка в него в 2кб !  (сначала быстро усосет 16кб, а потом будет лить со скоростью в 2кб/cек)  точнее - быстро будет усасывать объекты размером до 16кб , объекты больше 16кб будет сосать на скорости 2кб

весь канал сквиду отдавать нельзя, ведь есть еще другие сервисы, FTP,почта и др, потому -1/-1  не советую юзать.

допустим канал 64килобайт/сек, сквиду даем 40килобайт, спецюзерам даем ведра по 8КБ, разрешаем лить большие файлы на скорости 4КБ , хилым юзерам даем ведра по 4КБи пипку по в них по 1КБ для больших файлов.
acl special_users src 192.168.1.2 192.168.1.3
acl low_users src 192.168.1.4 192.168.1.5
http_access allow special_users
http_access allow low_users
delay_pools 1
delay_class 1 2
delay_class 2 2
delay_access 1 allow special_users
delay_access 1 deny all
delay_access 2 allow low_users
delay_access 2 deny all
delay_parameters 1 40000/40000 4000/8000
delay_parameters 2 40000/40000 1000/4000


"Squid не режет скорость."
Отправлено BRO36 , 28-Апр-16 08:44 
> 500000 байт * 8 = 4 000 000 бит
> у вас канал в инет какой?
> как именно вы хотите резать скорость для пользователей?
> 500000/500000 -1/-1  # фактически каждому  юзеру вы ничего не ограничили,
> а ограничили канал на всех.

Канал 10 Мбит. То что этот конфиг режет общую скорость, а не для конкретного юзера я знаю. Я делал пулы и 2 и 3 класса, они так же не работают. Здесь я привел пример самого простого пула. Этот вариант конфига должен давать сёрфить по инету на скорости 500 кбайт в секунду, а фактически инет работает на 1,2Мбайта, то есть без ограничений. Как я писал если указать allow all то скорость режется. Я вот думаю может трабл в маске сети нестандартной длины.


"Squid не режет скорость."
Отправлено Дум Дум , 28-Апр-16 09:11 
Доброго дня.

> Я вот думаю может трабл в маске сети нестандартной длины.

ИМХО, ACL с CIDR работает нормально (да и http_access allow срабатывает же). В конце-концов никто не мешает поменять для проверки маску allowed_hosts на для С-сети...


"Squid не режет скорость."
Отправлено Andrey Mitrofanov , 28-Апр-16 10:14 
> 1,2Мбайта, то есть без ограничений. Как я писал если указать allow
> all то скорость режется..

Сокровенное знание про delay pool-ы заключается в том, что deny на все pool-ы даёт ("разрешает") _неограниченную_ скорость.

Почему клиенты не попадают в acl -- следующий вопрос. Там выше была ссылка на FAQ про debug. Не знаю, как успешно оно будет логировать именно pool-ы, но "мусора" в логах обычно получается много и все клиенты перемешаны.  Я бы сделал отдельный сквид на другом порте с подробным дебагом и ровно 1 контролируемым клиентом. Для отладки конфигураций и "проникновения" в суть происходящего.


"Squid не режет скорость."
Отправлено BRO36 , 28-Апр-16 11:00 
>> 1,2Мбайта, то есть без ограничений. Как я писал если указать allow
>> all то скорость режется..
> Сокровенное знание про delay pool-ы заключается в том, что deny на все
> pool-ы даёт ("разрешает") _неограниченную_ скорость.
> Почему клиенты не попадают в acl -- следующий вопрос. Там выше была
> ссылка на FAQ про debug. Не знаю, как успешно оно будет
> логировать именно pool-ы, но "мусора" в логах обычно получается много и
> все клиенты перемешаны.  Я бы сделал отдельный сквид на другом
> порте с подробным дебагом и ровно 1 контролируемым клиентом. Для отладки
> конфигураций и "проникновения" в суть происходящего.

Я понял в чем дело!
Дело в DansGuardian! Правилами iptables web пакеты сначала перенаправляются на dansGuardian, а потом идут в squid. И поэтому squid видит все пакеты от адреса 127.0.0.1, а не от реальных адресов хостов, поэтому и правило allow all срабатывало. Я честно говоря думал dansGuardian сохраняет реальные адреса хостов. Может кто знает как правильно сконфигурить dansGuardian и squid, чтобы сквиду были видны реальные айпи, если написать "http_port 3128 transparent" то прокся отказывается принимать соединения.


"Squid не режет скорость."
Отправлено Andrey Mitrofanov , 28-Апр-16 12:50 
>если написать "http_port 3128 transparent"

Пока Вы ещё здесь, повыясняйте, работают и deley-и _вообще_ с прозрачными костылями. Когда-то давно, уж плохо помню, это не сочеталось. Сейчас не в курсе, вдруг прогресс.

> то прокся отказывается принимать соединения.


"Squid не режет скорость."
Отправлено BRO36 , 28-Апр-16 19:06 
>>если написать "http_port 3128 transparent"
> Пока Вы ещё здесь, повыясняйте, работают и deley-и _вообще_ с прозрачными костылями.
> Когда-то давно, уж плохо помню, это не сочеталось. Сейчас не в
> курсе, вдруг прогресс.
>> то прокся отказывается принимать соединения.

Squid и dansguardian довольно частое сочетание. Я не совсем понял это у меня проблема в таком сочетании с порезкой скорости или это так и должно быть?


"Squid не режет скорость."
Отправлено ipmanyak , 29-Апр-16 07:39 
>>>если написать "http_port 3128 transparent"
>> Пока Вы ещё здесь, повыясняйте, работают и deley-и _вообще_ с прозрачными костылями.
>> Когда-то давно, уж плохо помню, это не сочеталось. Сейчас не в
>> курсе, вдруг прогресс.
>>> то прокся отказывается принимать соединения.
> Squid и dansguardian довольно частое сочетание. Я не совсем понял это у
> меня проблема в таком сочетании с порезкой скорости или это так
> и должно быть?

как вариант , поменяй dansguardian на rejik, c ним всё работает.



"Squid не режет скорость."
Отправлено abllamer , 25-Июл-16 17:11 
Вот здесь похоже пытаются решить эту проблему
http://interface31.ru/tech_it/2016/05/dansguardian-nastraiva...

"Squid не режет скорость."
Отправлено abllamer , 07-Авг-16 17:06 
>>>>если написать "http_port 3128 transparent"
>>> Пока Вы ещё здесь, повыясняйте, работают и deley-и _вообще_ с прозрачными костылями.
>>> Когда-то давно, уж плохо помню, это не сочеталось. Сейчас не в
>>> курсе, вдруг прогресс.
>>>> то прокся отказывается принимать соединения.
>> Squid и dansguardian довольно частое сочетание. Я не совсем понял это у
>> меня проблема в таком сочетании с порезкой скорости или это так
>> и должно быть?
> как вариант , поменяй dansguardian на rejik, c ним всё работает.

Зачем же сравнивать волчий ... (rejik) с копчёной колбасой (dansguardian)?