Автор Тема: Ограничение скорости через squid с допусловием [РЕШЕНО]  (Прочитано 2702 раз)

Оффлайн dormidont3

  • Завсегдатай
  • *
  • Сообщений: 703
    • ФотоШоу
    • Email
Здравствуйте.  Подскажите, возможно ли такое сделать.
Как ограничить скорость ряду пользователей по IP я разобрался и вроде даже получилось это сделать. Теперь шаг 2. Реально ли сделать так, что бы скорость была ограничена ко всем сайтам, кроме белого списка, к которому скорость анлим. И всё это для той же группы
« Последнее редактирование: 09.04.2018 13:32:08 от dormidont3 »

Оффлайн NickM

  • Завсегдатай
  • *
  • Сообщений: 896
Попробуйте так...

Описываете, например, два пула:
1. Пул для белого списка;
2. Пул для остального;


delay_pools 2

#Пул для белого
delay_class 1 1
delay_parameters 1 -1/-1
delay_access 1 allow whitelist.list src.ip
delay_access 1 deny all

#Пул для остальных
delay_class 2 2
delay_parameters 2 -1/-1 8000/8000
delay_access 2 deny whitelist.list src.ip
delay_access 2 allow src.ip
delay_access 2 deny all

где,
whitelist.list - правило "белого списка";
src.ip - диапазон требуемых IP-адресов;
во втором пуле на всех безлимит, на каждого пользователя 64к/бит (вроде так если не ошибаюсь...)


Оффлайн dormidont3

  • Завсегдатай
  • *
  • Сообщений: 703
    • ФотоШоу
    • Email
Спасибо, обязательно попробую. Если не получится, пусть в теме лежит другой вариант. Авось кому пригодится.  Вот что нарыл
delay_class 1 2
        delay_parameters 1   -1/-1   5000/15000
        delay_access 1 allow LocalNet
        delay_access 1 deny all

Таким образом мы выделяем на всю нашу сеть и на подсети максимальный
канал (-1 означает неограниченность), а каждому пользователю даем
скорость максимум в 5 Кб/сек после того, как он скачает на максимальной
скорости первые 15 Кбайт документа

Оффлайн dormidont3

  • Завсегдатай
  • *
  • Сообщений: 703
    • ФотоШоу
    • Email
Попробуйте так...

Описываете, например, два пула:
1. Пул для белого списка;
2. Пул для остального;


delay_pools 2

#Пул для белого
delay_class 1 1
delay_parameters 1 -1/-1
delay_access 1 allow whitelist.list src.ip
delay_access 1 deny all

#Пул для остальных
delay_class 2 2
delay_parameters 2 -1/-1 8000/8000
delay_access 2 deny whitelist.list src.ip
delay_access 2 allow src.ip
delay_access 2 deny all

где,
whitelist.list - правило "белого списка";
src.ip - диапазон требуемых IP-адресов;
во втором пуле на всех безлимит, на каждого пользователя 64к/бит (вроде так если не ошибаюсь...)
не вышло. Если написать как у вас, то скорость у всех на всё безлимит, хотя в вайтлисте всего один сайт. Если в первом пуле убрать из разрешений вайт лист то скорость режется на все сайты для второго пула. 

И не совсем понял один момент src.ip-Список каких адресов? Почему он в оба пула прописан?
« Последнее редактирование: 02.04.2018 10:33:24 от dormidont3 »

Оффлайн NickM

  • Завсегдатай
  • *
  • Сообщений: 896
не вышло. Если написать как у вас, то скорость у всех на всё безлимит, хотя в вайтлисте всего один сайт. Если в первом пуле убрать из разрешений вайт лист то скорость режется на все сайты для второго пула. 

Цитировать
И не совсем понял один момент src.ip-Список каких адресов?
ну например локальной подсети - 192.168.1.0/24

Цитировать
Почему он в оба пула прописан?
delay_access 1 allow whitelist.list src.ipправило И - разрешаем, если адрес из "белого" листа и IP из Нашего диапазона

delay_access 2 deny whitelist.list src.ipправило И - запрещаем, если адрес из "белого" листа и IP из Нашего диапазона

delay_access 2 allow src.ipразрешаем если IP из Нашего диапазона


UPD:

а так?

delay_pools 2

#Пул для белого
delay_class 1 1
delay_parameters 1 -1/-1
delay_access 1 allow whitelist.list
delay_access 1 deny all

#Пул для остальных
delay_class 2 2
delay_parameters 2 -1/-1 8000/8000
delay_access 2 deny whitelist.list
delay_access 2 allow all

« Последнее редактирование: 02.04.2018 15:01:37 от NickM »

Оффлайн dormidont3

  • Завсегдатай
  • *
  • Сообщений: 703
    • ФотоШоу
    • Email
Если так, то как будь то и нет ни какого белого списка. Тестирую на песнях, качаю с разрешённого сайта и с того, который не включён в белый список. Разницы в скорости нет, оба сайта максимальная скорость
« Последнее редактирование: 03.04.2018 06:58:19 от dormidont3 »

Оффлайн NickM

  • Завсегдатай
  • *
  • Сообщений: 896
Странно, а у Вас случаем не из кэша ли закачивается?
Сейчас гифку сделаю, покажу что скорость режется....

UPD: Может это окажется и лишним, но вот видео...

Если адрес не в "белом" листе, то работает второй пул и ограничивает скорость в 4кб/с, если адрес вносим в "белый" лист, то получаем безлимит от первого пула, в Моем случае 2мбит/с.
« Последнее редактирование: 03.04.2018 12:04:09 от NickM »

Оффлайн dormidont3

  • Завсегдатай
  • *
  • Сообщений: 703
    • ФотоШоу
    • Email
Я не понимаю, почему у меня не работает. Я перепечатал всё как у вас, в белом листе один сайт. Начинаю качать с другого песни, скорость всё равно 400-500кб/с
Конфиг вот такой
#

acl localnet src 10.0.0.0/8 # RFC1918 possible internal network
acl localnet src 172.16.0.0/12 # RFC1918 possible internal network
acl localnet src 192.168.0.0/16 # RFC1918 possible internal network
acl localnet src fc00::/7       # RFC 4193 local private network range
acl localnet src fe80::/10      # RFC 4291 link-local (directly plugged) machines


acl SSL_ports port 443
acl SSL_ports port 3050
acl SSL_ports port 3808

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 wl.list dstdomain -i "/etc/squid/wl"
http_access allow wl.list
http_access allow CONNECT SSL_ports wl.list

delay_pools 2
delay_initial_bucket_level 50

delay_class 1 1
delay_parameters 1 -1/-1
delay_access 1 allow wl.list
delay_access 1 deny all

delay_class 2 2
delay_parameters 2  -1/-1   800/800
delay_access 2 deny wl.list   
delay_access 2 deny all

http_access allow localhost manager
http_access deny manager

http_access deny !Safe_ports

http_access deny CONNECT !SSL_ports


http_access allow localnet
http_access allow localhost


http_access deny all

http_port 192.168.1.1:3128

visible_hostname mbou58-squid
Пробовал несколько раз, каждая попытка - разные песни, что бы избежать вариантов с кэшем?
« Последнее редактирование: 04.04.2018 09:15:35 от dormidont3 »

Оффлайн NickM

  • Завсегдатай
  • *
  • Сообщений: 896
Цитировать
...
delay_access 2 deny wl.list   
delay_access 2 deny all
...

пользоваться вторым пулом Вы никому не разрешили

Оффлайн dormidont3

  • Завсегдатай
  • *
  • Сообщений: 703
    • ФотоШоу
    • Email
Всё получилось, спасибо! Как только попробую добавить сюда ещё и IP отпишусь о результате

« Последнее редактирование: 09.04.2018 13:15:09 от dormidont3 »

Оффлайн dormidont3

  • Завсегдатай
  • *
  • Сообщений: 703
    • ФотоШоу
    • Email
Всё заработало как и хотелось. итоговый конфиг вот такой
acl wl.list dstdomain -i "/etc/squid/wl" #Список сайтов для максимальной скорости
http_access allow wl.list #Не знаю зачем, так написано на форуме :)
http_access allow CONNECT SSL_ports wl.list #Не знаю зачем, так написано на форуме :)

acl ip.list src "/etc/squid/ip" #Список тех, кому режем скорость
delay_pools 2 #Подключаем 2 пула
delay_initial_bucket_level 50 #Не знаю зачем, так написано на форуме :)

delay_class 1 1 #правила для первого пула
delay_parameters 1 -1/-1 #Скорость безлимитка
delay_access 1 allow wl.list ip.list #Разрешаем если сайт в белом списке и ip в чёрном
delay_access 1 deny ip.list #Запрещаем если ip в чёрном списке
delay_access 1 allow all #Разрешаем всем остальным

delay_class 2 2 #правила для второго пула
delay_parameters 2  -1/-1   800/800 #режем скорость
delay_access 2 deny wl.list  ip.list #запрещаем если сайт в белом списке и ip в чёрном
delay_access 2 allow  ip.list #Разрешаем если ip в чёрном списке
delay_access 2 deny all #Запрещаем всем остальным

Правда почему то безлимитная скорость всё равно подрезалась и тестовые песни грузились на скорости 200 вместо 500, но это уже не так критично, главное общий смысл заработал как мне надо.

ОГРОМНОЕ спасибо за помощь