Какая платформа QoS на основе Linux является лучшей для реализации конфигурации, в которой все клиенты DSL с 256 Кбит / с (все принадлежат к одному диапазону IP-адресов) получают гарантированную скорость 200 Кбит / с с одним правилом QoS?
Для гарантий и справедливого разделения отлично подходит планировщик HFSC (перенесенный с altq BSD на linux). (по крайней мере, он не такой неуклюжий и ненадежный, как HTB.) К сожалению, настройка любого формирования трафика в Linux - болезненный процесс с жесткой кривой обучения, и поскольку интерфейс tc просто недружелюбен, я бы предложил использовать MasterShaper или что-то подобное. внешний интерфейс.
(PS. Если вы решите управлять tc самостоятельно, используйте функцию ядра IFB для формирования загрузки - это похоже на IMQ, предложенный здесь ранее, но работает с новыми ядрами и немного лучше подходит для всей структуры)
И будет ли указанная конфигурация назначать каждому IP в диапазоне требуемую скорость без необходимости иметь отдельное правило для каждого отдельного IP?
Нет, не будет. Как работает HTB, вы можете просто назначить ставки для всего сегмента, а не для отдельных IP-адресов. Калеб пытался равномерно распределить доступную полосу пропускания в 2000 Кбит / с через SFQ qdisc между 10 вашими клиентами. Однако это не будет работать должным образом - SFQ рассчитывает расписание для каждого соединения, а не для IP - если у кого-то из ваших клиентов открыто больше требовательных к пропускной способности соединений, чем у других, он получит в целом большую пропускную способность.
Есть еще один планировщик под названием ESFQ который расширяет SFQ, чтобы иметь возможность планировать для каждого IP-адреса, но даже тогда вы бы только запланировали в настоящее время активен трафик без ограничения любого пользователя на 200 кбит / с. Я не знаю, есть ли какой-нибудь доступный qdisc, который позволил бы вам это сделать, но, учитывая огромное количество различных проектов qdisc, я так полагаю.
Другая проблема заключается в том, что tc планирует только исходящий трафик на интерфейсе, входящий трафик никогда не учитывается. В Устройство промежуточной очереди (IMQ) помогает обойти это ограничение.
Стандартная Linux система QoS / управления трафиком называется [tc][1]
(регулирование движения).
Вам нужно будет инициализировать цепочку, установить ее свойства, а затем добавить к ней свой IP, примерно так:
#!/bin/bash
DEV=eth0
PATH=$PATH:/sbin
tc qdisc del dev $DEV root
tc qdisc add dev $DEV root handle 1: htb default 20
tc class add dev $DEV parent 1:1 classid 1:10 htb rate 2000kbps ceil 2000kbps burst 500kb quantum 1500
tc qdisc add dev $DEV parent 1:10 handle 10: sfq perturb 10
tc filter add dev $DEV parent 1:0 protocol ip prio 1 u32 match ip dst 10.10.10.1/24 flowid 1:10
tc filter add dev $DEV parent 1:0 protocol ip prio 1 u32 match ip src 10.10.10.1/24 flowid 1:10
Mikrotik RouterBoards;) Лучшая платформа, которую вы можете иметь. Их ОС (RouterOS) основана на Linux, но, будучи приложением, у вас нет доступа к реальной оболочке или файловой системе.
Однако они представляют собой небольшую платформу интернет-провайдера, поэтому они вам действительно нравятся.
Возможно, мои предыдущие ответы, связанные с Linux / QoS, также могут вам помочь: