Назад | Перейти на главную страницу

Почему родительский класс в дереве правил TC не работает

Родительский класс в моем сценарии правил 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