Squid обмежуємо швидкість, Для системного адміністратора

Можливостей уSquid настільки багато, що розробники часто навіть не встигають їх докладно описувати. Загальне налаштування, як правило, не викликає проблем, складнощі починаються, коли необхідно налаштувати обмеження на використання каналу, організувати доступ до проксі за допомогою зовнішніх засобів або вибрати програму для роботи з журналами.

Ситуація, коли один канал потрібно справедливо поділити між користувачами, аж ніяк не рідкість. У Squ >

Принцип обмеження швидкості простий. Кожен запитуваний об'єкт спочатку потрапляє в буфер, а потім передається клієнту. Кожен пул визначається двома параметрами: швидкістю його заповнення та розміром буфера. Якщо обсяг даних менший за розмір буфера, то клієнт отримує їх з максимальною швидкістю, але при досягненні ліміту інформація буде видаватися відповідно до установок. У міру спустошення пула Squid отримуватиме решту запитуваної інформації.

Швидкість заповнення пулу залежить від класу. Для кожного пулу за допомогоюdelay_class має бути встановлений один із п'яти класів (до версії 2.6 – один із трьох):

Звідси можна дійти невтішного висновку, що що вище клас, то через більше обмежень проходить з'єднання. Так, для четвертого класу спочатку діють загальні обмеження, потім обмеження підмережі, окремого вузла і, нарешті, для користувача. Тобто не варто очікувати, що користувач отримає чітко прописану частину каналу, якщо його підмережа вибрала свій ліміт.

Клас для пулу задається за допомогою параметраdelay_class, аргументами якого є номер пулу та номер класу. Кількість пулів визначається параметромdelay_pools. Наприклад, створимо два пули та визначимо для кожного з них свій клас. Для цьогопрописуємо у squid.conf наступні рядки:

$ sudo vim /etc/squid/squid.conf # Задаємо списки доступу, за якими будемо розподіляти користувачів по пулах acl office src 192.168.1.0/24 acl office2 src 192.168 .2.0/24 acl user src 192.168.1.20/32 acl boss src 192.168.1.12/32

delay_pools 2 # 2 пула delay_class 1 2 # пул 1, клас 2 delay_class 2 3 # пул 2, клас 3

Приналежність користувачів до пулу визначається за допомогоюdelay_access, його синтаксис нагадуєhttp_access : delay_access pool allow/deny ACL

delay_access 1 allow office delay_access 1 allow user delay_access 1 deny all delay_access 2 allow office2 delay_access 2 allow boss delay_access 2 deny all http_access allow office off>http_access deny all

У перший пул включені клієнти, описані в ACL office та user, у другий – office2 та boss. Слід пам'ятати, що ACL, які не вказані в delay_access, будуть виходити до мережі без обмежень. Далі за допомогоюdelay_parameters задаємо обмеження швидкості для кожного пулу. Залежно від класу пулу кількість аргументів буде різною. Так для четвертого класу повний формат запису виглядає так:delay_parameters пул спільна мережа індивідуальний_користувач

Відповідно, в третьому класі не використовується останній аргумент, а в другому відсутні "мережа" та "користувач". Кількість пар має відповідати класу, якщо щось пропустити, Сквід відмовиться працювати. Обмеження на кожній із позицій складаються з пари швидкість_заповнення/об'єм_пулу. Але значення тут вказуються в байтах, а швидкість провайдери рахують у бітах. У позиціях, у яких немає обмежень, встановлюємо-1 :

delay_parameters 1 16000/16000 8000/8000 delay_parameters 2 32000/32000 -1/-1 16000/16000

Використовуючи різні типи acl, можна ввести обмеження за часом, протоколами, типом файлів та ін. Наприклад, за допомогою такої конструкції легко обмежити швидкість любителям качати мультимедіа: acl multimedia urlpath_regex -i \.mp3$ \.mpeg$ \.avi$ delay_pools 3 delay_class 3 1 delay_access 3 allow multimedia delay_access 3 deny all delay_parameters 3 8000/8000

Тепер при закачуванні файлів зазначених типів швидкість вище 64 кбіт не підніматиметься. Аналогічно встановлюються обмеження часу. Наприклад, щоб зменшити для всіх користувачів швидкість до 32 кбіт у робочий час, застосовуємо наступне правило: acl work_hours time M T W T F 9:00-18:00 delay_class 4 2 delay_access 4 allow work_hours delay_access 4 deny all delay_parameters 4 -1/-1 4000/4000

Постовий

Будівельна компанія "ТЕМП" пропонує квартири в новобудовах Петербурга. Можливе оформлення іпотеки.

Хочеш заробити добрі гроші. Бери участь у партнерській програмі сайту знайомств MyLove.Ru. Найбільші виплати серед таких партнерок.