Всем привет!
Имеется 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 CONNECTacl allowed_hosts src 10.0.16.0/22
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access deny to_localhosthttp_access allow localhost manager
http_access deny manager
http_access allow SSL_portshttp_access allow localhost
http_access allow allowed_hosts
http_access deny alldelay_pools 1
delay_class 1 2
delay_access 1 allow allowed_hosts
delay_access 1 deny all
delay_parameters 1 500000/500000 -1/-1http_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
Доброго дня.Т.е. ведёт себя так, как-будто клиент не попадает в delay_access? Заменить "allowed_hosts" на идентификатор попроще?
http://wiki.squid-cache.org/SquidFaq/SquidAcl#I_set_up_my_ac...
> Доброго дня.
> Т.е. ведёт себя так, как-будто клиент не попадает в delay_access? Заменить "allowed_hosts"
> на идентификатор попроще?
> http://wiki.squid-cache.org/SquidFaq/SquidAcl#I_set_up_my_ac...Заменил "allowed_hosts" на "lan1", тот же эффект. Я голову всю сломал, не режет и все, десятки конфигураций уже пробовал. Может сам сквид глючит? Может дело в том что сеть имеет маску нестандартной длины?
> 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-е было "ну нишмагла, вам надо, вы и делайте". Это тоже _проверить_.
>[оверквотинг удален]
> 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 on500000 байт * 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
> 500000 байт * 8 = 4 000 000 бит
> у вас канал в инет какой?
> как именно вы хотите резать скорость для пользователей?
> 500000/500000 -1/-1 # фактически каждому юзеру вы ничего не ограничили,
> а ограничили канал на всех.Канал 10 Мбит. То что этот конфиг режет общую скорость, а не для конкретного юзера я знаю. Я делал пулы и 2 и 3 класса, они так же не работают. Здесь я привел пример самого простого пула. Этот вариант конфига должен давать сёрфить по инету на скорости 500 кбайт в секунду, а фактически инет работает на 1,2Мбайта, то есть без ограничений. Как я писал если указать allow all то скорость режется. Я вот думаю может трабл в маске сети нестандартной длины.
Доброго дня.> Я вот думаю может трабл в маске сети нестандартной длины.
ИМХО, ACL с CIDR работает нормально (да и http_access allow срабатывает же). В конце-концов никто не мешает поменять для проверки маску allowed_hosts на для С-сети...
> 1,2Мбайта, то есть без ограничений. Как я писал если указать allow
> all то скорость режется..Сокровенное знание про delay pool-ы заключается в том, что deny на все pool-ы даёт ("разрешает") _неограниченную_ скорость.
Почему клиенты не попадают в acl -- следующий вопрос. Там выше была ссылка на FAQ про debug. Не знаю, как успешно оно будет логировать именно pool-ы, но "мусора" в логах обычно получается много и все клиенты перемешаны. Я бы сделал отдельный сквид на другом порте с подробным дебагом и ровно 1 контролируемым клиентом. Для отладки конфигураций и "проникновения" в суть происходящего.
>> 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" то прокся отказывается принимать соединения.
>если написать "http_port 3128 transparent"Пока Вы ещё здесь, повыясняйте, работают и deley-и _вообще_ с прозрачными костылями. Когда-то давно, уж плохо помню, это не сочеталось. Сейчас не в курсе, вдруг прогресс.
> то прокся отказывается принимать соединения.
>>если написать "http_port 3128 transparent"
> Пока Вы ещё здесь, повыясняйте, работают и deley-и _вообще_ с прозрачными костылями.
> Когда-то давно, уж плохо помню, это не сочеталось. Сейчас не в
> курсе, вдруг прогресс.
>> то прокся отказывается принимать соединения.Squid и dansguardian довольно частое сочетание. Я не совсем понял это у меня проблема в таком сочетании с порезкой скорости или это так и должно быть?
>>>если написать "http_port 3128 transparent"
>> Пока Вы ещё здесь, повыясняйте, работают и deley-и _вообще_ с прозрачными костылями.
>> Когда-то давно, уж плохо помню, это не сочеталось. Сейчас не в
>> курсе, вдруг прогресс.
>>> то прокся отказывается принимать соединения.
> Squid и dansguardian довольно частое сочетание. Я не совсем понял это у
> меня проблема в таком сочетании с порезкой скорости или это так
> и должно быть?как вариант , поменяй dansguardian на rejik, c ним всё работает.
Вот здесь похоже пытаются решить эту проблему
http://interface31.ru/tech_it/2016/05/dansguardian-nastraiva...
>>>>если написать "http_port 3128 transparent"
>>> Пока Вы ещё здесь, повыясняйте, работают и deley-и _вообще_ с прозрачными костылями.
>>> Когда-то давно, уж плохо помню, это не сочеталось. Сейчас не в
>>> курсе, вдруг прогресс.
>>>> то прокся отказывается принимать соединения.
>> Squid и dansguardian довольно частое сочетание. Я не совсем понял это у
>> меня проблема в таком сочетании с порезкой скорости или это так
>> и должно быть?
> как вариант , поменяй dansguardian на rejik, c ним всё работает.Зачем же сравнивать волчий ... (rejik) с копчёной колбасой (dansguardian)?