The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
Настройка delay_pool в Squid. Помогите пожалуйста., !*! Dan78, 22-Июл-14, 16:26  [смотреть все]
Есть прокси/фаервол/NAT на Debian 7 (7.4). Два сетевых интерфейса (eth0 - WAN; eth1 - LAN (сеть 172.16.1.0/24)). Установлен SQUID (Version 2.7.STABLE9)+ iptables. Интернет есть у всех, канал 8 Mbit.
Этот канал хочу порезать при помощи сквида. До этого никогда такого не делал. Задача: отделить тех, кто качает и ходит в соцсети от всех остальных. Первым (качкам и вконтактникам) порезать скорость, вторым дать "равные" доли от канала. Оставив при этом запаса ~2 Mbit от канала. Нашел несколько инструкций по настройке squid и delay_pool в частности, в итоге получился следующий конфиг:

acl all src all
acl manager proto cache_object
acl localhost src 127.0.0.1/32
acl to_localhost dst 127.0.0.0/8 172.16.1.0/24
acl localnet src 172.16.1.0/24    # RFC1918 possible internal network
acl vip src "/etc/squid/lists/vip"
acl file_bad urlpath_regex -i \.mp3$ \.asf$ \.wma$ \.flv$
acl bad_url dst "/etc/squid/lists/bad_url"
acl SSL_ports port 443        # https
acl SSL_ports port 563        # snews
acl SSL_ports port 873        # rsync
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 Safe_ports port 631        # cups
acl Safe_ports port 873        # rsync
acl Safe_ports port 901        # SWAT
acl purge method PURGE
acl CONNECT method CONNECT

http_access allow manager
http_access allow localnet vip
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
cachemgr_passwd ghjcnjq all
http_port 172.16.1.1:3128 transparent
hierarchy_stoplist cgi-bin ?
access_log /var/log/squid/access.log squid
log_fqdn on
refresh_pattern ^ftp:        1440    20%    10080
refresh_pattern ^gopher:    1440    0%    1440
refresh_pattern -i (/cgi-bin/|\?) 0    0%    0
refresh_pattern (Release|Packages(.gz)*)$    0    20%    2880
refresh_pattern .        0    20%    4320
acl shoutcast rep_header X-HTTP09-First-Line ^ICY.[0-9]
upgrade_http0.9 deny shoutcast
acl apache rep_header Server ^Apache
broken_vary_encoding allow apache
extension_methods REPORT MERGE MKACTIVITY CHECKOUT
hosts_file /etc/hosts
coredump_dir /var/spool/squid
cache_dir ufs /var/spool/squid 5000 16 256
minimum_object_size 2 KB
maximum_object_size 61440 KB
via off
forwarded_for delete

delay_pools 4

delay_class 1 1
delay_parameters 1 768000/768000
delay_access 1 allow vip
delay_access 1 deny all

delay_class 2 2
delay_parameters 2 64000/5000000 8000/1024000
delay_access 2 allow file_bad
delay_access 2 deny all

delay_class 3 2
delay_parameters 2 64000/5000000 16000/2048000
delay_access 3 allow bad_url
delay_access 3 deny all

delay_class 4 3
delay_parameters 4 704000/50000000 -1/-1 38000/10000000
delay_access 4 allow localnet

Сквид ошибок не находит в конфиге, нормально стартует. Но при этом ВСЕ пользователи у меня в классе 4. Вторым и третьим классом никто не стал... Что неправильно в конфиге и как добиться выполнения поставленной задачи?

  • Настройка delay_pool в Squid. Помогите пожалуйста., !*! pavlinux, 23:58 , 22-Июл-14 (1) –1
    > ... как добиться выполнения поставленной задачи?

    HTB, SFQ, ipset  


    • Настройка delay_pool в Squid. Помогите пожалуйста., !*! Dan78, 07:54 , 23-Июл-14 (2)
      >> ... как добиться выполнения поставленной задачи?
      > HTB, SFQ, ipset

      Можно ли расшифровать Ваш ответ? Я никогда не слышал об этих аббревиатурах.
      Да, и я спрашивал как решить поставленную задачу в рамках сквида, поскольку знаю, что подобные вещи как раз на нём делают.

      • Настройка delay_pool в Squid. Помогите пожалуйста., !*! pavlinux, 22:36 , 23-Июл-14 (9)
        >>> ... как добиться выполнения поставленной задачи?
        >> HTB, SFQ,

        Шейперы трафика это. (см. QoS)
        ipset - группировка ip адресов, для работы в паре с фаерволом.

        > Можно ли расшифровать Ваш ответ? Я никогда не слышал об этих аббревиатурах.
        > поскольку знаю, что подобные вещи как раз на нём делают.

        SQUID работает на 7-5 уровнях OSI, скорость передачи - это 3-2 уровень.  
        Могу как теоретически, так и практически показать как обойти любое
        ограничение скорости реализованное на 7...5 уровнях. (но не буду, долго это и нудно :))
        4-й уровень и SPDY - отдельная песнь.


        • Настройка delay_pool в Squid. Помогите пожалуйста., !*! Dan78, 08:47 , 24-Июл-14 (10)
          >>> HTB, SFQ,
          > Шейперы трафика это. (см. QoS)
          > ipset - группировка ip адресов, для работы в паре с фаерволом.

          Ни разу не сталкивался с этим. Может быть, это хорошие инструменты, но почему-то про них мне информация не попадалась. Я реализую решения на том, что знаю и боюсь, мы можем немного отойти от темы.

          >> Можно ли расшифровать Ваш ответ? Я никогда не слышал об этих аббревиатурах.
          >> поскольку знаю, что подобные вещи как раз на нём делают.
          > SQUID работает на 7-5 уровнях OSI, скорость передачи - это 3-2 уровень.

          Вы имеете в виду QOS, как я понимаю. Но "Механизмы QoS главным образом работают на четвертом (транспортном) и седьмом (прикладном) уровнях." (http://www.ccc.ru/magazine/depot/03_14/read.html?0301.htm, или в этих протоколах что-то кардинально изменилось?) Соответственно, чем эти механизмы отличаются от Squid мне не очень понятно. Но это уже отклонение от прямой темы форума, посему развивать не буду.

          > Могу как теоретически, так и практически показать как обойти любое
          > ограничение скорости реализованное на 7...5 уровнях. (но не буду, долго это и
          > нудно :))

          Я не сомневаюсь в Ваших знаниях и умениях. Однако вопрос темы "Как сделать ограничения на Squid", а не "Как обойти ограничения траффика в Squid". Посему опять таки, продолжать углубляться в это не вижу смысла.

          > 4-й уровень и SPDY - отдельная песнь.

          Да, посему забудем в данном обсуждении.

  • Настройка delay_pool в Squid. Помогите пожалуйста., !*! ipmanyak, 09:38 , 23-Июл-14 (3)
    >[оверквотинг удален]
    > delay_class 1 1
    > delay_parameters 1 768000/768000
    > delay_access 1 allow vip
    > delay_access 1 deny all
    > delay_class 2 2
    > delay_parameters 2 64000/5000000 8000/1024000
    > delay_access 2 allow file_bad
    > delay_access 2 deny all
    > delay_class 3 2
    > delay_parameters 2 64000/5000000 16000/2048000

    ошибка,  пул номер 3, а delay_parameters  указан для пула c номером 2
    > delay_access 3 allow bad_url

    пробуй вот так
    delay_access 3 allow localnet bad_url
    > delay_access 3 deny all
    > delay_class 4 3
    > delay_parameters 4 704000/50000000 -1/-1 38000/10000000
    > delay_access 4 allow localnet
    > Сквид ошибок не находит в конфиге, нормально стартует. Но при этом ВСЕ
    > пользователи у меня в классе 4. Вторым и третьим классом никто
    > не стал... Что неправильно в конфиге и как добиться выполнения поставленной
    > задачи?

    в 4 пуле  -1/-1 советую убрать, этим  вы сняли все ограничения и лучше сделать его  пулом второго класса.

    • Настройка delay_pool в Squid. Помогите пожалуйста., !*! Dan78, 12:00 , 23-Июл-14 (5)
      >>[оверквотинг удален]
      >> delay_class 2 2
      >> delay_parameters 2 64000/5000000 8000/1024000
      >> delay_access 2 allow file_bad
      >> delay_access 2 deny all
      >> delay_class 3 2
      >> delay_parameters 2 64000/5000000 16000/2048000
      > ошибка,  пул номер 3, а delay_parameters  указан для пула c
      > номером 2

      Спасибо, не заметил!

      >> delay_access 3 allow bad_url
      > пробуй вот так
      > delay_access 3 allow localnet bad_url

      А какой смысл объединять всю локалку и "запретные" урлы? Скорости у них должны быть разные.

      >> delay_access 3 deny all
      >> delay_class 4 3
      >> delay_parameters 4 704000/50000000 -1/-1 38000/10000000
      >> delay_access 4 allow localnet
      > в 4 пуле  -1/-1 советую убрать, этим  вы сняли все
      > ограничения и лучше сделать его  пулом второго класса.

      Как я понял из прочитанного в сети, -1/-1 убирает ограничения в конкретном пуле для конкретных параметров (для сети, посети или ИП). Или это действует вообще на всё и на всех? А про второй класс я подумаю, идея вполне здравая, спасибо!


  • Настройка delay_pool в Squid. Помогите пожалуйста., !*! Andrey Mitrofanov, 09:55 , 23-Июл-14 (4)
    >[оверквотинг удален]
    > acl bad_url dst "/etc/squid/lists/bad_url"
    > delay_access 2 allow file_bad
    > delay_parameters 2 64000/5000000 16000/2048000
    > delay_access 3 allow bad_url
    > delay_parameters 4 704000/50000000 -1/-1 38000/10000000
    > delay_access 4 allow localnet
    > Сквид ошибок не находит в конфиге, нормально стартует. Но при этом ВСЕ
    > пользователи у меня в классе 4. Вторым и третьим классом никто
    > не стал... Что неправильно в конфиге и как добиться выполнения поставленной
    > задачи?

    В пулы попадают не "кто-то", а конкретные http-запросы, но да несколько запросов с одного ip в одном пуле получат одно ограничение.

    По этим правилам, например, 1 пользователь (=ip) может качать .mp3 на 8kBs, "bad url" на 16-ти, и, скажем какой-нибудь .pdf на 38kBs, всего - до 52kBs. Никаким из 3ёх классов _он, "ip", при этом не становится.

    • Настройка delay_pool в Squid. Помогите пожалуйста., !*! Dan78, 12:07 , 23-Июл-14 (6)
      > В пулы попадают не "кто-то", а конкретные http-запросы, но да несколько запросов
      > с одного ip в одном пуле получат одно ограничение.

      Да, я это понимаю. Я неправильно применил терминологию, скажем так.

      > По этим правилам, например, 1 пользователь (=ip) может качать .mp3 на 8kBs,
      > "bad url" на 16-ти, и, скажем какой-нибудь .pdf на 38kBs, всего
      > - до 52kBs. Никаким из 3ёх классов _он, "ip", при этом
      > не становится.

      Да, согласен. Именно этого я и хочу. Но этого почему-то и не происходит. Смотрю sqstat с интервалом обновления 1с, народ качает mp3, flv, заходит на сайты перечисленные в bad_url - и всё это хозяйство попадает в 4 класс. С разных ИП, разные запросы. Но все в одном классе. Проблема в этом. Вопрос про это. Что в указанном конфиге не так?

  • Настройка delay_pool в Squid. Помогите пожалуйста., !*! Andrey Mitrofanov, 12:49 , 23-Июл-14 (7)
    Ещё попытка.

    > acl vip src "/etc/squid/lists/vip"
    > acl file_bad urlpath_regex -i \.mp3$ \.asf$ \.wma$ \.flv$
    > acl bad_url dst "/etc/squid/lists/bad_url"

    1. Стеснялся спросить, а _vip_ работает?

    2. http://wiki.squid-cache.org/SquidFaq/SquidAcl#Fast_and_Slow_...
    Как то: dst, пишут, - slow, но delay_access - fast, поэтому пул bad_url не работает.

    Заменить url_regex-пом, переписав список, например.

    Но urlpath_regex - fast, тот пул дожен, вроде работать.

    >[оверквотинг удален]
    > delay_class 2 2
    > delay_parameters 2 64000/5000000 8000/1024000
    > delay_access 2 allow file_bad
    > delay_access 2 deny all
    > delay_class 3 2
    > delay_parameters 2 64000/5000000 16000/2048000
    > delay_access 3 allow bad_url
    > delay_access 3 deny all
    > delay_class 4 3
    > delay_access 4 allow localnet

    3. Порядок директив - и deny-и _везде.... Я как-то с этим морочался, припоминаю.

    -> добавь для последнего пула deny all в конце, или даже переписать в виде

    deny vip
    deny file_bad
    deny bad_url
    allow all

    • Настройка delay_pool в Squid. Помогите пожалуйста., !*! Dan78, 16:52 , 23-Июл-14 (8)
      > Ещё попытка.

      Спасибо! :)

      >> acl vip src "/etc/squid/lists/vip"
      >> acl file_bad urlpath_regex -i \.mp3$ \.asf$ \.wma$ \.flv$
      >> acl bad_url dst "/etc/squid/lists/bad_url"
      > 1. Стеснялся спросить, а _vip_ работает?

      Как ни удивительно, VIP работает исправно.

      > 2. http://wiki.squid-cache.org/SquidFaq/SquidAcl#Fast_and_Slow_...
      >  Как то: dst, пишут, - slow, но delay_access - fast, поэтому
      > пул bad_url не работает.
      > Заменить url_regex-пом, переписав список, например.

      Хм... Мне весьма сомнительна идея заменить список сайтов регулярным выражением... К тому же

      > Но urlpath_regex - fast, тот пул дожен, вроде работать.

      Этот пул тоже НЕ работает... Работают 1 и 4, 2 и 3 не работают, хотя запросы, которые должны подпадать под правила в них, есть. Кто не попал в 1, оптом попадают в 4, как будто остальных пулов нет.

      > 3. Порядок директив - и deny-и _везде.... Я как-то с этим морочался,
      > припоминаю.
      > -> добавь для последнего пула deny all в конце, или даже переписать
      > в виде
      > deny vip
      > deny file_bad
      > deny bad_url
      > allow all

      А вот это завтра попробую. По результату напишу.

    • Настройка delay_pool в Squid. Помогите пожалуйста., !*! Dan78, 09:00 , 24-Июл-14 (11)
      > 3. Порядок директив - и deny-и _везде.... Я как-то с этим морочался,
      > припоминаю.
      > -> добавь для последнего пула deny all в конце,

      Да, добавил, сквид рестарнул - тот же фаберже :( 1 и 4 работают, остальные  - нет.

      >или даже переписать в виде
      > deny vip
      > deny file_bad
      > deny bad_url
      > allow all

      Хм, запретить пользоваться этими классами? А смысл? Или я не так понял Ваш совет?

      • Настройка delay_pool в Squid. Помогите пожалуйста., !*! Andrey Mitrofanov, 11:17 , 24-Июл-14 (12)
        >[оверквотинг удален]
        >> -> добавь для последнего пула deny all в конце,
        > Да, добавил, сквид рестарнул - тот же фаберже :( 1 и 4
        > работают, остальные  - нет.
        >>или даже переписать в виде
        >> deny vip
        >> deny file_bad
        >> deny bad_url
        >> allow all
        > Хм, запретить пользоваться этими классами? А смысл? Или я не так понял
        > Ваш совет?

        Я имел в виду последний

        >>> delay_class 4 3
        >>> delay_parameters 4 704000/50000000 -1/-1 38000/10000000
        >>> delay_access 4 allow localnet

        переписать, как

        delay_class 4 3
        delay_parameters 4 704000/50000000 -1/-1 38000/10000000
        delay_access 4 deny vip
        delay_access 4 deny file_bad
        delay_access 4 deny bad_url
        delay_access 4 allow all

        • Настройка delay_pool в Squid. Помогите пожалуйста., !*! Dan78, 13:44 , 24-Июл-14 (13)
          >> Хм, запретить пользоваться этими классами? А смысл? Или я не так понял
          >> Ваш совет?
          > Я имел в виду последний

          Да, спасибо за подсказку!

          > переписать, как
          > delay_class 4 3
          > delay_parameters 4 704000/50000000 -1/-1 38000/10000000
          > delay_access 4 deny vip
          > delay_access 4 deny file_bad
          > delay_access 4 deny bad_url
          > delay_access 4 allow all

          Переписал, перезапустил. Результат отрицательный. Мне не понятно почему работают только 1 и 4 пулы? Что в них такого "правильного"?

          • Настройка delay_pool в Squid. Помогите пожалуйста., !*! Сергей, 15:53 , 24-Июл-14 (14)
            >[оверквотинг удален]
            > Да, спасибо за подсказку!
            >> переписать, как
            >> delay_class 4 3
            >> delay_parameters 4 704000/50000000 -1/-1 38000/10000000
            >> delay_access 4 deny vip
            >> delay_access 4 deny file_bad
            >> delay_access 4 deny bad_url
            >> delay_access 4 allow all
            > Переписал, перезапустил. Результат отрицательный. Мне не понятно почему работают только
            > 1 и 4 пулы? Что в них такого "правильного"?

            ЭТО есть
            delay_access 2 allow file_bad

            А вот этого
            http_allow  file_bad  
            нет

            • Настройка delay_pool в Squid. Помогите пожалуйста., !*! Andrey Mitrofanov, 17:19 , 24-Июл-14 (15)
              >[оверквотинг удален]
              >>> delay_access 4 deny file_bad
              >>> delay_access 4 deny bad_url
              >>> delay_access 4 allow all
              >> Переписал, перезапустил. Результат отрицательный. Мне не понятно почему работают только
              >> 1 и 4 пулы? Что в них такого "правильного"?
              > ЭТО есть
              > delay_access 2 allow file_bad
              > А вот этого
              > http_allow  file_bad
              > нет

              Нормально там всё с этим. Есть http_access allow на manager (хотя это не совсем обычно, но не суть), vip, localnet и localhost.

              • Настройка delay_pool в Squid. Помогите пожалуйста., !*! Dan78, 08:59 , 25-Июл-14 (16)
                >>> Переписал, перезапустил. Результат отрицательный. Мне не понятно почему работают только
                >>> 1 и 4 пулы? Что в них такого "правильного"?
                >> ЭТО есть
                >> delay_access 2 allow file_bad
                >> А вот этого
                >> http_allow  file_bad
                >> нет
                > Нормально там всё с этим. Есть http_access allow на manager (хотя это
                > не совсем обычно, но не суть), vip, localnet и localhost.

                На всякий случай проверил - прописывание http_access для этих acl ничего не даёт...

          • Настройка delay_pool в Squid. Помогите пожалуйста., !*! Andrey Mitrofanov, 11:47 , 25-Июл-14 (17)
            > Переписал, перезапустил. Результат отрицательный. Мне не понятно почему работают только
            > 1 и 4 пулы? Что в них такого "правильного"?

            Я исчерпал предположения. Следующий шаг, приходящий в голову, взять кувалду побольше: debug 9 и расшифровывание больших-больщих логов. Но это не ко мне.

            • Настройка delay_pool в Squid. Помогите пожалуйста., !*! Dan78, 14:34 , 25-Июл-14 (18)
              >> Переписал, перезапустил. Результат отрицательный. Мне не понятно почему работают только
              >> 1 и 4 пулы? Что в них такого "правильного"?
              > Я исчерпал предположения. Следующий шаг, приходящий в голову, взять кувалду побольше: debug
              > 9 и расшифровывание больших-больщих логов. Но это не ко мне.

              Спасибо Вам за помощь! Приёмами с кувалдой тоже не владею. Может быть кто-нибудь ещё что-то сможет подсказать. Проблема не стоит ребром, но хотелось бы её решить!

              • Настройка delay_pool в Squid. Помогите пожалуйста., !*! ipmanyak, 14:43 , 25-Июл-14 (19)
                >>> Переписал, перезапустил. Результат отрицательный. Мне не понятно почему работают только
                >>> 1 и 4 пулы? Что в них такого "правильного"?
                >> Я исчерпал предположения. Следующий шаг, приходящий в голову, взять кувалду побольше: debug
                >> 9 и расшифровывание больших-больщих логов. Но это не ко мне.
                > Спасибо Вам за помощь! Приёмами с кувалдой тоже не владею. Может быть
                > кто-нибудь ещё что-то сможет подсказать. Проблема не стоит ребром, но хотелось
                > бы её решить!

                включи debug в конфиге сквида уровень побольше и смотри cache.log
                увидишь какие правила срабатывают а какие нет

  • Настройка delay_pool в Squid. Помогите пожалуйста., !*! Dan78, 12:20 , 28-Июл-14 (21)
    И так, проблему решил сам. Всё было просто, дело в моём непонимании некоторых моментов и невнимательности:

    Было:
    > acl file_bad urlpath_regex -i \.mp3$ \.asf$ \.wma$ \.flv$
    > acl bad_url dst "/etc/squid/lists/bad_url"

    Стало:
    acl file_bad urlpath_regex -i mp3$ asf$ wma$ flv$
    acl bad_url dstdomain "/etc/squid/lists/bad_url"

    Было:
    >[оверквотинг удален]
    > delay_parameters 2 64000/5000000 8000/1024000
    > delay_access 2 allow file_bad
    > delay_access 2 deny all
    > delay_class 3 2
    > delay_parameters 2 64000/5000000 16000/2048000
    > delay_access 3 allow bad_url
    > delay_access 3 deny all
    > delay_class 4 3
    > delay_parameters 4 704000/50000000 -1/-1 38000/10000000
    > delay_access 4 allow localnet

    Стало:
    delay_pools 4

    delay_class 1 1
    delay_parameters 1 768000/768000
    delay_access 1 allow vip
    delay_access 1 deny all

    delay_class 2 2
    delay_parameters 2 64000/5000000 8000/1024000
    delay_access 2 allow file_bad
    delay_access 2 deny all

    delay_class 3 2
    delay_parameters 3 64000/5000000 16000/2048000
    delay_access 3 allow bad_url
    delay_access 3 deny all

    delay_class 4 2
    delay_parameters 4 704000/50000000 38000/10000000
    delay_access 4 allow localnet
    delay_access 4 deny all

    Теперь это хозяйство работает нормально. Все попадают в нужные пулы с нужной скоростью. Всем принявшим участие в обсуждении большое спасибо за помощь!




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру