Ограничение скорости доступа в Интернет
О чем этот текст?
Довольно часто возникает потребность разделения канала между пользователями. Даже если у тебя канал в 100 мегабит безлимита. Дело в том, что даже такой канал может забить какой-нибудь мерзкий сотрудник. Решение проблемы описывается в данном материале.
Примечание
Прежде чем приступать к практике, убедись, что ты знаешь и понимаешь назначение следующих директив Squid:
Обрати внимание на версию твоего Squid. Известный баг, что в Squid 4.x версий delay pools не работают. Так что, глянь на календарь и если на дворе уже минул 2022 год, смело ставь/собирай Squid 5.8, многие проблемы там починены.
Основная часть
# Определяем важный, обязательный ACL с именем all. Он включает в себя все возможные IP адреса протокола IPv4. Потому и его название - all(Все).
acl all src 0.0.0.0/0.0.0.0
# Определяем ACL для пользователей нашей сети(192.168.1.0).
acl ournet src 192.168.1.0/24
#Определяем группу «скоростных» пользователей. Там где скорость будет высокая.
acl goodclients src 192.168.1.5 192.168.1.6 192.168.1.10
#Определяем группу «медленных» пользователей. Там где скорость будет низкая.
acl badclients src 192.168.1.15 192.168.1.16 192.168.1.17
# Открываем доступ нашей сети.
http_access allow ournet
# Остальной доступ закрываем.
http_access deny all
#Создадим два пула по которым будут пролетать наши пользователи.
delay_pools 2
delay_class 1 1
delay_class 2 1
# Скоростные будут «лететь» по первому пулу.
delay_access 1 allow goodclients
delay_access 1 deny all
# А медленные по второму.
delay_access 2 allow badclients
delay_access 2 deny all
#Ограничим скорость на пулах
#Первому дадим без ограничений
delay_parameters 1 -1/-1
#А второму установим в 128 килобит
delay_parameters 2 16000/16000
Запускай Squid или перезапускай если уже запущен, чтобы правила применились. Готово.
А если хочешь управлять ограничением скорости динамически, например по достижению объема трафика, то приглядись к нашей Screen Squid.