Добрый день. В более-менее последних ядрах появилась альтернатива ESFQ в виде внешнего классификатора для SFQ, что позволяет организовать псевдосправедливую (per-host) раздачу трафика на основе стандартного ядра без сторонних патчей и т.п.
Вот кусочек шейпера с ESFQ: /opt/sbin/tc qdisc del dev eth2 root /opt/sbin/tc qdisc add dev eth2 root handle 1 htb default 50 r2q 10 /opt/sbin/tc class add dev eth2 parent 1: classid 1:2 htb rate 100Mbit # Это кусочек полосы для ssh /opt/sbin/tc class add dev eth2 parent 1:2 classid 1:20 htb rate 200Kbit ceil 100Mbit prio 10 /opt/sbin/tc qdisc add dev eth2 parent 1:20 handle 20 esfq perturb 10 hash dst /opt/sbin/tc filter add dev eth2 parent 1:0 protocol ip prio 100 u32 match ip sport 22 0xffff classid 1:20 ~skip~ #А это дефолтный класс /opt/sbin/tc class add dev eth2 parent 1:2 classid 1:50 htb rate 85Mbit ceil 100Mbit prio 50 /opt/sbin/tc qdisc add dev eth2 parent 1:50 handle 50 esfq perturb 10 hash dst Вот аналог придуманный мною для SFQ/flow: [code] /sbin/tc qdisc del dev eth2 root /sbin/tc qdisc add dev eth2 root handle 1 htb default 50 r2q 10 /sbin/tc class add dev eth2 parent 1: classid 1:2 htb rate 100Mbit /sbin/tc class add dev eth2 parent 1:2 classid 1:20 htb rate 200Kbit ceil 100Mbit prio 10 /sbin/tc qdisc add dev eth2 parent 1:20 handle 20 sfq /sbin/tc filter add dev eth2 parent 1:0 protocol ip prio 100 u32 match ip sport 22 0xffff classid 1:20 /sbin/tc filter add dev eth2 parent 20: protocol ip handle 20 flow hash keys nfct-dst divisor 1024 ~skip~ /sbin/tc class add dev eth2 parent 1:2 classid 1:50 htb rate 85Mbit ceil 100Mbit prio 50 /sbin/tc qdisc add dev eth2 parent 1:50 handle 50: sfq /sbin/tc filter add dev eth2 parent 50: protocol ip handle 50 flow hash keys nfct-dst divisor 1024 [/code] Синтаксис верный, но - не работает. Через какое-то время пакеты теряются до полной непроходимости. Документации по flow я не обнаружил и слабо понимаю как действует фильтр на дисциплину... -- WBR, Bogdan B. Rudas

