У нас есть замечательный прокси-сервер Squid с dansguardian для фильтрации файлов, и оба они отлично работают. Есть ли простой способ ограничить общее использование полосы пропускания? Я хотел бы установить максимальное количество пользователей Squid, которые используют Интернет, равным 1200, поскольку наша общая полоса составляет 2000, и мне нужно, чтобы остальные службы, такие как VoIP, работали без сбоев, связанных с огромными загрузками на "интернет-стороне" нашего подключение и подобные вопросы. Я имею в виду полное ограничение пропускной способности squid, а не пользовательское.
Спасибо всем.
Да, вы можете ограничить общую пропускную способность Squid. Например, скажем, 512 Кбит / с?
Добавить в /etc/squid3/squid.conf
delay_pools 1
delay_class 1 1
delay_access 1 allow all
delay_parameters 1 64000/64000 # 512 kbits == 64 kbytes per second
Чтобы изменить запущенный экземпляр squid, выполните следующие действия после изменения файла конфигурации
sudo squid3 -k reconfigure
Вы можете настроить формирование с помощью правил примерно так:
tc qdisc del dev eth0 root
tc qdisc add dev eth0 root handle 1: htb default 1 r2q 160
tc class add dev eth0 parent 1: classid 1:1 htb rate 2000kbit burst 1k
tc class add dev eth0 parent 1:1 classid 1:2 htb rate 2000kbit ceil 2000kbit burst 1k
tc class add dev eth0 parent 1:1 classid 1:3 htb rate 1200kbit ceil 1200kbit burst 1k
tc qdisc add dev eth0 parent 1:2 handle 2: sfq perturb 10
tc qdisc add dev eth0 parent 1:3 handle 3: sfq perturb 10
Затем вы можете использовать iptables для классификации пакетов по этим классам:
iptables -t mangle -A POSTROUTING -o eth0 --set-class 1:2
iptables -t mangle -A POSTROUTING -o eth0 -m tcp -p tcp --dport 80 -j CLASSIFY --set-class 1:3
Обратите внимание, что это последнее правило соответствия, которое устанавливает класс, оно не замыкается при совпадении одного правила. Мне потребовалось время, чтобы разобраться в этом.