Имеется домик в деревне с сетью из 5 устройств и rpi в роли шлюза, точки доступа и шейпера. Провайдер раздаёт интернет по вайфаям. Оплаченый тариф 2Мбит-а, но скорость эта прыгает в зависимости от загрузки сети провайдера и погодных условий. Судя по наблюдениям, ниже 1Мбит-а не падает. Шейпера настроены так:
modprobe ifb
ip link set dev ifb0 up
tc qdisc add dev wlan0 ingress
tc filter add dev wlan0 parent ffff: protocol ip u32 match u32 0 0 action mirred egress redirect dev ifb0
tc qdisc del dev wlan0 root
tc qdisc add dev wlan0 root handle 1: htb default 90
tc class add dev wlan0 parent 1: classid 1:1 htb rate 2000kbit ceil 2000kbit
tc class add dev wlan0 parent 1:1 classid 1:90 htb rate 1000kbit ceil 2000kbit prio 10
tc qdisc add dev wlan0 parent 1:90 handle 90: sfq perturb 10
tc class add dev wlan0 parent 1:1 classid 1:10 htb rate 1000kbit ceil 2000kbit prio 0
tc qdisc add dev wlan0 parent 1:10 handle 10: sfq perturb 10
tc filter add dev wlan0 parent 1:0 protocol ip u32 match ip dst 192.168.1.16/28 classid 1:10
tc qdisc del dev ifb0 root
tc qdisc add dev ifb0 root handle 1: htb default 90
tc class add dev ifb0 parent 1: classid 1:1 htb rate 2000kbit ceil 2000kbit
tc class add dev ifb0 parent 1:1 classid 1:90 htb rate 1000kbit ceil 2000kbit prio 10
tc qdisc add dev ifb0 parent 1:90 handle 90: sfq perturb 10
tc class add dev ifb0 parent 1:1 classid 1:10 htb rate 1000kbit ceil 2000kbit prio 0
tc qdisc add dev ifb0 parent 1:10 handle 10: sfq perturb 10
tc filter add dev ifb0 parent 1:0 protocol ip u32 match ip src 192.168.1.16/28 classid 1:10
Как настроить шейпера, чтобы они отрабатывали нормально даже при падении скорости аплинка. По сути нужно всю доступную ширину канала поделить на две равные части между подсетью 192.168.1.16/28 и всеми остальными c возможностью занять весь канал, если он свободен. Можно ли для корневого класса задать рейт меньше цейла, подстроив соответственно рейты подклассов?