Шейпинг входящего трафика на несколько подсетей

Есть провайдер инета inet0, ести 4 подсети net0, net1, net2 и net3. Инет 10Мбит. При этом у подсетей канал 100Мбит и есть локальные ресурсы, к которым нужно отдать все 100Мбит.

Загрузил ifb. Сделал
tc qdisc add dev inet0 ingress
tc filter add dev inet0 parent ffff: protocol ip u32 match u32 0 0 action mirred egress redirect dev ifb0

Сделал скрипт шейпера для исходящей с ifb0

iface=ifb0
ceil=10mbit
r_cheef=4mbit
r_otdel=3mbit
r_prep=1mbit
r_stud=1mbit
r_korp=1mbit
iface_ceil=100mbit
tc qdisc add dev $iface root handle 1: htb default 50
tc class add dev $iface parent 1: classid 1:1 htb rate $ceil ceil $ceil
tc class add dev $iface parent 1:1 classid 1:10 htb rate $r_cheef ceil $ceil prio 0
tc class add dev $iface parent 1:1 classid 1:20 htb rate $r_otdel ceil $ceil prio 1
tc class add dev $iface parent 1:20 classid 1:21 htb rate 2560kbit ceil 3mbit prio 1
tc class add dev $iface parent 1:20 classid 1:22 htb rate 512kbit ceil 3mbit prio 1
tc class add dev $iface parent 1:1 classid 1:30 htb rate $r_prep ceil $ceil prio 2
tc class add dev $iface parent 1:1 classid 1:40 htb rate $r_korp ceil $ceil prio 2
tc class add dev $iface parent 1:1 classid 1:50 htb rate $r_stud ceil $ceil prio 3
tc qdisc add dev $iface parent 1:10 handle 100: sfq perturb 10
tc qdisc add dev $iface parent 1:21 handle 210: sfq perturb 10
tc qdisc add dev $iface parent 1:22 handle 220: sfq perturb 10
tc qdisc add dev $iface parent 1:30 handle 300: sfq perturb 10
tc qdisc add dev $iface parent 1:40 handle 400: sfq perturb 10
tc qdisc add dev $iface parent 1:50 handle 500: sfq perturb 10
tc filter add dev $iface parent 1:0 protocol ip prio 0 u32 match ip dst 192.168.100.100/32 flowid 1:10
tc filter add dev $iface parent 1:0 protocol ip prio 1 u32 match ip dst 192.168.100.0/24   flowid 1:21
tc filter add dev $iface parent 1:0 protocol ip prio 1 u32 match ip dst 192.168.100.17/32  flowid 1:22
tc filter add dev $iface parent 1:0 protocol ip prio 2 u32 match ip dst 192.168.10.0/24    flowid 1:30
tc filter add dev $iface parent 1:0 protocol ip prio 2 u32 match ip dst 192.168.1.0/24     flowid 1:40
tc filter add dev $iface parent 1:0 protocol ip prio 2 u32 match ip dst 192.168.2.0/24     flowid 1:40
tc filter add dev $iface parent 1:0 protocol ip prio 2 u32 match ip dst 192.168.3.0/24     flowid 1:40
tc filter add dev $iface parent 1:0 protocol ip prio 2 u32 match ip dst 192.168.7.0/24     flowid 1:40
tc filter add dev $iface parent 1:0 protocol ip prio 2 u32 match ip dst 192.168.9.0/24     flowid 1:40
tc filter add dev $iface parent 1:0 protocol ip prio 3 u32 match ip dst 192.168.20.0/24    flowid 1:50

Дисциплины, классы и фильтры создаются, но при этом трафик идет по дефолтовому классу!
В чем ошибка? Как нарезать канал инета между подсетями?

P.S. Цепочка фильтров терминирующая или нет? Если есть накладывающиеся условия в каком порядке их разместить?
А не проще ли будет настроить прозрачный прокси?
Появится возможность на лету менять пропускную способность, ограничивать доступ, вести статистику, плюс еще поможет экономить Ваш "не широкий" интернет-канал, ну и возможность индивидуально настраивать скорость для каждой машины. Да и рулить этим всем можно через вэб-интерфейс.
прозрачный прокси и так настроен и работает. Вот только он не даст нормально работать с https - получается классическая MITM-атака, на которую и ругаются браузеры - самоподписанный сертификат или даже валидный - но не соответствует хосту назначения. плюс соединения через нат. поэтому хочется канал резать шейпером и внутри еще пакеты перетасовывать чтоб по пользователям примерно равномерно раскидать. плюс есть общественный wifi...
 
Зарегистрироваться или войдите чтобы оставить сообщение.