Как ограничить скорость для Squid?

Проблемы с установкой, настройкой и работой системных и сетевых программ.

Модераторы: GRooVE, alexco

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
Gamerman
капитан
Сообщения: 1723
Зарегистрирован: 2009-05-17 21:01:23
Откуда: Украина, Ужгород - Днепр
Контактная информация:

Как ограничить скорость для Squid?

Непрочитанное сообщение Gamerman » 2009-10-17 11:17:55

На шлюзе есть сервисы и Squid. Кроме того, через него ходят и через НАТ. Как с помошью ipfw ограничить входящий поток для Squid?
Глюк глюком вышибают!

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

reLax
лейтенант
Сообщения: 638
Зарегистрирован: 2007-04-08 5:50:16

Re: Как ограничить скорость для Squid?

Непрочитанное сообщение reLax » 2009-10-17 11:56:12

Gamerman писал(а):На шлюзе есть сервисы и Squid. Кроме того, через него ходят и через НАТ. Как с помошью ipfw ограничить входящий поток для Squid?
ipfw бери из примера:

Код: Выделить всё

#!/bin/sh

    fwcmd="/sbin/ipfw"
    iif="msk0"
    priv_dummynet="250 234 23 33"
    norm_dummynet="43 233 30 96"
    i=0

    ${fwcmd} -f pipe flush
    ${fwcmd} -f queue flush


  #---BEGIN DUMMYNET---#

  ${fwcmd} table 3 flush
      while  [ $i -le 255 ];
          do
          ${fwcmd} table 3 add 172.17.2.${i}
          i=`expr $i + 1`
          done

  ${fwcmd} table 1 flush
      for line in ${priv_dummynet}
        do
        ${fwcmd} table 1 add 172.17.2.${line}
        ${fwcmd} table 3 delete 172.17.2.${line}
        done

  ${fwcmd} table 2 flush
      for line in ${norm_dummynet}
        do
        ${fwcmd} table 2 add 172.17.2.${line}
        ${fwcmd} table 3 delete 172.17.2.${line}
        done


       #---PRIVELEGED---#

       ${fwcmd} pipe 1 config mask src-ip 0xffffffff bw 1024Kbit/s
       ${fwcmd} queue 11 config pipe 1 weight 80 queue 20 mask dst-ip 0xffffffff
       ${fwcmd} queue 12 config pipe 1 weight 80 queue 20 mask src-ip 0xffffffff
       ${fwcmd} add queue 11 ip from table\(1\) to any in via ${iif}
       ${fwcmd} add queue 12 ip from any to table\(1\) out via ${iif}

       #---NORMAL---#

       ${fwcmd} pipe 2 config mask src-ip 0xffffffff bw 368Kbit/s
       ${fwcmd} pipe 3 config mask src-ip 0xffffffff bw 128Kbit/s
       ${fwcmd} queue 21 config pipe 3 weight 50 queue 20 mask dst-ip 0xffffffff
       ${fwcmd} queue 22 config pipe 2 weight 50 queue 20 mask src-ip 0xffffffff
       ${fwcmd} add queue 21 ip from table\(2\) to any in via ${iif}
       ${fwcmd} add queue 22 ip from any to table\(2\) out via ${iif}

       #---OTHERS---#

       ${fwcmd} pipe 4 config mask src-ip 0xffffffff bw 256Kbit/s
       ${fwcmd} pipe 5 config mask src-ip 0xffffffff bw 64Kbit/s
       ${fwcmd} queue 31 config pipe 4 weight 30 queue 20 mask dst-ip 0xffffffff
       ${fwcmd} queue 32 config pipe 4 weight 20 queue 20 mask src-ip 0xffffffff
       ${fwcmd} queue 41 config pipe 5 weight 25 queue 20 mask dst-ip 0xffffffff
       ${fwcmd} queue 42 config pipe 5 weight 25 queue 20 mask src-ip 0xffffffff
       ${fwcmd} add queue 31 ip from table\(3\) to any not dst-port 143,5190 in via ${iif}
       ${fwcmd} add queue 32 ip from any not 143,5190 to table\(3\) out via ${iif}
       ${fwcmd} add queue 41 ip from table\(3\) to any dst-port 143,5190 in via ${iif}
       ${fwcmd} add queue 42 ip from any 143,5190 to table\(3\) out via ${iif}
Самим Squid'ом (компиляция с DELAY_POOLS):

Код: Выделить всё

delay_pools 3

delay_class 1 1
delay_class 2 1
delay_class 3 1

delay_access 1 allow IP_FAST_PROXY_USERS AD_FAST_PROXY_USERS
delay_access 1 deny all
delay_parameters 1 -1/-1

delay_access 2 allow IP_NORMAL_PROXY_USERS AD_NORMAL_PROXY_USERS
delay_access 2 deny all
delay_parameters 2 16000/256000

delay_access 3 allow all !IP_FAST_PROXY_USERS !AD_FAST_PROXY_USERS !IP_NORMAL_PROXY_USERS !AD_NORMAL_PROXY_USERS
delay_access 3 deny all
delay_parameters 3 16000/128000
(соответсвенно сам понимаешь, что выставить acl надо перед IP_FAST_PROXY_USERS и т.п.)

Аватара пользователя
Gamerman
капитан
Сообщения: 1723
Зарегистрирован: 2009-05-17 21:01:23
Откуда: Украина, Ужгород - Днепр
Контактная информация:

Re: Как ограничить скорость для Squid?

Непрочитанное сообщение Gamerman » 2009-10-17 12:14:18

Либо я Вас не понял, либо Вы меня.


Самим Squid'ом (компиляция с DELAY_POOLS): такой вариант существует, но не совсем подходит.
Дело в том, что пользователи через сквид ходят на локальные сайты (когда забудут включить локальные сайты в исключения проксирования). А зачем мне ограничивать локальные ресурсы?

Также не подходит pipe на порт 3128, потому как исходящий трафик к прокси мизерный и его ограничивать смысла нет.

Делать pipe на локальные машины тоже не стоит, потому что нет смысла ограничивать трафик с шлюза.

Хочеться ограничить канал, по которому сам сквид берет данные с инета. Ограничить стандартные web-порты тоже не стоит, потому что есть сервисы и пользователи (не прокси), которым делать этого не нужно.

Вот и не знаю, как самому сквиду апетит ограничить.
Глюк глюком вышибают!

reLax
лейтенант
Сообщения: 638
Зарегистрирован: 2007-04-08 5:50:16

Re: Как ограничить скорость для Squid?

Непрочитанное сообщение reLax » 2009-10-17 12:38:07

Gamerman писал(а):Либо я Вас не понял, либо Вы меня.


Самим Squid'ом (компиляция с DELAY_POOLS): такой вариант существует, но не совсем подходит.
Дело в том, что пользователи через сквид ходят на локальные сайты (когда забудут включить локальные сайты в исключения проксирования).
Либо я Вас не понимаю, либо Вы меня. Какие проблемы централизованно в GPO выставить исключения локальных ресурсов для прокси-сервера ?
Ну раз так, поставьте QoS или шейпер на _внешний ифейс_ на порты 80, 443 etc, я ваще проблемы не вижу.

Аватара пользователя
Gamerman
капитан
Сообщения: 1723
Зарегистрирован: 2009-05-17 21:01:23
Откуда: Украина, Ужгород - Днепр
Контактная информация:

Re: Как ограничить скорость для Squid?

Непрочитанное сообщение Gamerman » 2009-10-17 12:45:45

reLax писал(а): Какие проблемы централизованно в GPO выставить исключения локальных ресурсов для прокси-сервера ?
Пршу прощения, а что такое GPO? И как реализовать это дело?
reLax писал(а): Ну раз так, поставьте QoS или шейпер на _внешний ифейс_ на порты 80, 443 etc, я ваще проблемы не вижу.
Хотелось бы через ipfw.
Вы имеете в виду правило типа: pipe ... to any 80?
Глюк глюком вышибают!

reLax
лейтенант
Сообщения: 638
Зарегистрирован: 2007-04-08 5:50:16

Re: Как ограничить скорость для Squid?

Непрочитанное сообщение reLax » 2009-10-17 12:52:24

Gamerman писал(а):
reLax писал(а): Какие проблемы централизованно в GPO выставить исключения локальных ресурсов для прокси-сервера ?
Пршу прощения, а что такое GPO? И как реализовать это дело?
reLax писал(а): Ну раз так, поставьте QoS или шейпер на _внешний ифейс_ на порты 80, 443 etc, я ваще проблемы не вижу.
Хотелось бы через ipfw.
Вы имеете в виду правило типа: pipe ... to any 80?
GPO - Group Policy Objects - гугл поможет, если сеть вендовая - DC нужен с FreeBSD с интеграцией в AD для порядка :)
Да, именно это я имею ввиду. На внешнем только интерфейсе.

Аватара пользователя
Gamerman
капитан
Сообщения: 1723
Зарегистрирован: 2009-05-17 21:01:23
Откуда: Украина, Ужгород - Днепр
Контактная информация:

Re: Как ограничить скорость для Squid?

Непрочитанное сообщение Gamerman » 2009-10-17 13:04:09

reLax писал(а): Вы имеете в виду правило типа: pipe ... to any 80?
GPO - Group Policy Objects - гугл поможет, если сеть вендовая - DC нужен с FreeBSD с интеграцией в AD для порядка :)
[/quote]
Над этим подумаю. Спасибо.
reLax писал(а): Да, именно это я имею ввиду. На внешнем только интерфейсе.
Вариант pipe ... to any 80 рубанет канал не только для сквида, но и для других сервисов (например обновление портов самого шлюза), пользователям за НАТ, которые не используют прокси. Из-за этого собственно и возник вопрос-тема.
Глюк глюком вышибают!

reLax
лейтенант
Сообщения: 638
Зарегистрирован: 2007-04-08 5:50:16

Re: Как ограничить скорость для Squid?

Непрочитанное сообщение reLax » 2009-10-17 13:13:23

Gamerman писал(а): Из-за этого собственно и возник вопрос-тема.
Да нет, здесь на самом деле проблем нету (с внешнего интерфейса как и с пользователей Squid) в ipfw достаточно указать uid с кого идет запрос
Пример:

Код: Выделить всё

ipfw add 1 allow all from any to any via em0 uid root
А юзеры идут на шлюзе с uid squid - вот и делайте выводы :)

Аватара пользователя
Gamerman
капитан
Сообщения: 1723
Зарегистрирован: 2009-05-17 21:01:23
Откуда: Украина, Ужгород - Днепр
Контактная информация:

Re: Как ограничить скорость для Squid?

Непрочитанное сообщение Gamerman » 2009-10-17 13:26:04

reLax писал(а): Да нет, здесь на самом деле проблем нету (с внешнего интерфейса как и с пользователей Squid) в ipfw достаточно указать uid с кого идет запрос
Пример:

Код: Выделить всё

ipfw add 1 allow all from any to any via em0 uid root
А юзеры идут на шлюзе с uid squid - вот и делайте выводы :)
Ну вот, собственно, и ответ на мой вопрос. Забыл о uid . Спасибо.
Глюк глюком вышибают!