итак -- во первых нужно отталкиваться от того что задачка может решаться двумя разными способами
1. определить полосу на всех пользователей и отдельно для каждого создать подклассы
2. определить полосы под конкретные сервисы а остальное поделить на всех
ИМХО -- второй вариант проще
итого
создаём очереди для приоритетного трафика
подготовка
tc qdisc del root dev $interface
rmmod cls_flow
rmmod cls_u32
rmmod sch_htb
rmmod sch_sfq
insmod sch_sfq
insmod sch_htb
insmod cls_flow
insmod cls_u32
tc qdisc add dev $interface root handle 1: htb default 10
# r2q 3
#создаём очередь для высокоприоритетного трафика гарантированной шириной в 10мбит с расшарением до 20мбит и максимальным приоритетом
tc class add dev $interface parent 1:1 classid 1:5 htb rate 10Mbit ceil 10mbit rate 20mbit prio 0
#разрешаем использовать полосу нашей сети равномерно через netfilter-conntrack по хостам в нашей сети
в случае если conntrack не используется можно использовать ключ dst
tc filter add dev $interface parent 5: protocol ip handle 10 flow hash keys nfct-dst divisor 512
#то-же самое делаем для менее приоритетного трафика -- единственное отличие в приоритете
tc class add dev $interface parent 1:1 classid 1:10 htb rate 80mbit ceil 90mbit prio 6
tc qdisc add dev $interface parent 1:10 handle 10: sfq perturb 10
#устанавливаем фильтр, который как раз и отвечает за равномерное распределение, опять-же смотрим на ключ nfct-dst и заменяем его на dst если conntrack не используется
tc filter add dev $interface parent 5: protocol ip handle 5 flow hash keys nfct-dst divisor 512
tc filter add dev $interface parent 10: protocol ip handle 10 flow hash keys nfct-dst divisor 512
#divisor отвечает за то, сколько хостов в сети (максимальный дивизор на sfq равен 1024), в нашем случае сеть /24 - поэтому используем 512
#устанавливаем фильтры для типа трафика, в данном случае для всей нашей сети 10.0.10.0/24 будет использоваться только высокоприоритетная очередь, и амксимальная скорость соответственно будет 20мбит
tc filter add dev $interface parent 1: protocol ip prio 2 u32 match ip dst 10.0.10.0/24 flowid 1:5
#соответственно в данном случае для высокоприоритетного трафика (потому как он обычно разномастный) удобнее всего использовать выставление меток на уровне iptables -j MARK/CONNMARK с последующим просовыванием его в определённую очередь на основе этой метки