> Если я не ошибаюсь, то iptables работает после ingress, поэтому он никак
> не может повлиять на эти фильтры.да всё там работает -- толькj нужно немного покумекать
1. "объеденяем" все интерфейсы в мир в ifb0
2. "объеденяем" все интерфейсы в хомяков в ifb1
теперь, раз ingress делать никак -- то логика нам говорит, что входящий с хомяков = исходящий во внешку -- т.е. egress -- соответственно и марки и tc filter...flowid тоже робит.
соответственно со входящим из мира. единственное что не получиться в данном случае полисиnь -- это траф на сам хост (а оно и не нужно).
--------------------------------------------
пример
--------------------------------------------
##зачистка
#два внешних
tc qdisc del dev vlan0 ingress
tc qdisc del dev vlan0 root
tc qdisc del dev vlan1 ingress
tc qdisc del dev vlan1 root
#два "внутренних"
tc qdisc del dev vlan10 ingress
tc qdisc del dev vlan10 root
tc qdisc del dev vlan11 ingress
tc qdisc del dev vlan11 root
#ifb
tc qdisc del dev ifb0 ingress
tc qdisc del dev ifb0 root
tc qdisc del dev ifb1 ingress
tc qdisc del dev ifb1 root
ip l set ifb0 down
ip l set ifb1 down
rmmod ifb
##конец зачистки
#начало
modprobe ifb numifbs=2
ip l set ifb0 up
ip l set ifb1 up
tc qdisc del dev vlan0 ingress
tc qdisc del dev vlan0 root
tc qdisc del dev vlan1 ingress
tc qdisc del dev vlan1 root
tc qdisc del dev vlan10 ingress
tc qdisc del dev vlan10 root
tc qdisc del dev vlan11 ingress
tc qdisc del dev vlan11 root
#0=в_мир, 1=на пользователей
tc qdisc del dev ifb0 ingress
tc qdisc del dev ifb0 root
tc qdisc del dev ifb1 ingress
tc qdisc del dev ifb1 root
#простой tbf для наглядности с 8kbit/s в пике.
tc qdisc add dev ifb0 root handle 1: prio
tc qdisc add dev ifb0 parent 1:1 handle 10: tbf rate 6kbit latency 10ms burst 154 peakrate 8kbit mtu 1500
tc qdisc add dev ifb0 parent 1:2 handle 20: tbf rate 8mbit latency 100ms burst 1540
tc filter add dev ifb0 parent 1:0 prio 0 protocol ip handle 10 fw flowid 1:1
tc filter add dev ifb0 parent 1:0 prio 0 protocol ip handle 20 fw flowid 1:2
#на пользователей htb с разделением полосы в 10mbit на сеть 192.168.0.0/24 равномерно, а для помеченых 10 в полосу 20mbit
tc qdisc add dev ifb1 root handle 1: htb default 20
tc class add dev ifb1 parent 1:1 classid 1:10 htb rate 20mbit ceil 20mbit prio 1
tc qdisc add dev ifb1 parent 1:10 handle 10: sfq perturb 10
tc class add dev ifb1 parent 1:1 classid 1:20 htb rate 10mbit ceil 10mbit prio 2
tc qdisc add dev ifb1 parent 1:20 handle 20: sfq perturb 10
tc filter add dev ifb1 parent 20: protocol ip handle 20 flow hash keys dst divisor 512
tc filter add dev ifb1 parent 1: protocol ip prio 2 u32 match ip dst 192.168.0.0/24 flowid 1:20
tc filter add dev ifb1 parent 1: protocol ip prio 1 handle 10 fw flowid 1:10
#заворачиваем в ifb0(в_мир)
tc qdisc add dev vlan0 root handle 1: prio
tc filter add dev vlan0 parent 1: protocol ip u32 match u32 0 0 action mirred egress redirect dev ifb0
tc qdisc add dev vlan1 root handle 1: prio
tc filter add dev vlan1 parent 1: protocol ip u32 match u32 0 0 action mirred egress redirect dev ifb0
#заворачиваем в ifb1(на_пользователей)
tc qdisc add dev vlan10 root handle 1: prio
tc filter add dev vlan10 parent 1: protocol ip u32 match u32 0 0 action mirred egress redirect dev ifb1
tc qdisc add dev vlan11 root handle 1: prio
tc filter add dev vlan11 parent 1: protocol ip u32 match u32 0 0 action mirred egress redirect dev ifb1
на и соответственно проверка
#в mangle
#весь icmp на google dns в полосу с 8kbit
-A POSTROUTING -o ifb0 -d 8.8.8.8/32 -p icmp -j MARK --set-xmark 0xa/0xffffffff
#хост 192.168.56.1 в полосу в 20mbit
-A POSTROUTING -o ifb1 -d 192.168.56.1/32 -p icmp -j MARK --set-xmark 0xa/0xffffffff
вроде без ошибок, но vlan интнрфейсов вот прям сдесь и сейчас у меня нет -- проверяйте.