Родительский класс в моем сценарии правил TC не работает, как это гарантировано! Может кто-нибудь сказать мне, что не так с моим сценарием? Вот некоторые подробности моего вопроса:
Из раздела «9.5.4.4. Пример конфигурации» Linux Advanced Routing & Traffic Control HOWTO, мы видим, что можем ограничить общую скорость дочерних классов, указав родительский класс, даже если суммарная скорость дочерних классов больше, чем у родительского класса.
Но я попробовал это на своей машине, только чтобы обнаружить, что он не работает должным образом. Ниже мой скрипт, порт 22 используется SecureCRT. Родительский класс ограничивает 80 и 22 порта общей скоростью 100 КБ, а дочерние классы ограничивают их до 60 КБ и 80 КБ соответственно.
# tc qdisc add dev eth0 root handle 1:0 cbq bandwidth 10Mbit \
avpkt 1000 cell 8
# tc class add dev eth0 parent 1:0 classid 1:1 cbq bandwidth 10Mbit \
rate 800kbit weight 80kbit prio 8 allot 1514 cell 8 maxburst 20 \
avpkt 1000 bounded
# tc class add dev eth0 parent 1:1 classid 1:3 cbq bandwidth 10Mbit \
rate 480kbit weight 48kbit prio 5 allot 1514 cell 8 maxburst 20 \
avpkt 1000
# tc class add dev eth0 parent 1:1 classid 1:4 cbq bandwidth 10Mbit \
rate 640kbit weight 64kbit prio 5 allot 1514 cell 8 maxburst 20 \
avpkt 1000
# tc qdisc add dev eth0 parent 1:3 handle 30: sfq
# tc qdisc add dev eth0 parent 1:4 handle 40: sfq
# tc filter add dev eth0 parent 1:0 protocol ip prio 1 u32 match ip \
sport 80 0xffff flowid 1:3
# tc filter add dev eth0 parent 1:0 protocol ip prio 1 u32 match ip \
sport 22 0xffff flowid 1:4