Столкнулся с проблемой, что не работает route опция для tc filter.Взять хотя бы самый простой пример:
tc qdisc add dev vlan101 root handle 1: htb default 2
tc class add dev vlan101 parent 1: classid 1:1 htb rate 75mbit ceil 75mbit
tc class add dev vlan101 parent 1: classid 1:2 htb rate 5mbit ceil 5mbit
tc qdisc add dev vlan101 parent 1:1 handle 10: sfq perturb 10
tc qdisc add dev vlan101 parent 1:2 handle 20: sfq perturb 10tc filter add dev vlan101 parent 1: protocol ip prio 1 route to 2 flowid 1:1
В результате tc -s qdisc видим что трафик в очередь 10: не встает, а продолжает идти через 20:
rt_realms зона прописана:
0 cosmos
2 internetв маршруты также добавлял все верно
ip route add xxx.xxx.xxx.xxx via yyy.yyy.yyy.yyy dev vlan101 realm internetВ ядре все что нужно, вроде включено.
если меняю фильтр на
tc filter add dev vlan101 parent 1: protocol ip prio 1 route to 0 flowid 1:1
т.е. фильтруем зону cosmos, то трафик начинает бежать через 10:В чем может быть причина?
при этом вывод "tc filter show dev vlan101" вот что дает:
filter parent 1: protocol ip pref 1 route
filter parent 1: protocol ip pref 1 route fh 0xffff0002 flowid 1:1 to internetЭто так и должно быть? Мне кажется странным что здесь два правила вместо одного, а также непонятно что показывает параметр fh
и еще - этот самый xxx.xxx.xxx.xxx сейчас маршрутизируется через отдельную таблицу маршрутизации, может ли это являться причиной такого поведения tc?
Во блин! нифига я тупень =) двое суток убил на эту тему
и тока щас понял что ip route add ... realm internet я делал в основной таблице маршрутизации, а трафик бежит через другую, где этот realm не установлен
пц в общем =)
щас все отлично пашет, извиняюсь если кого отвлек