我可以在哪里放置 tc 过滤器?

我可以在哪里放置 tc 过滤器?

我和室友各有一个 Raspberry Pi 路由器。带宽分配如下:

         1:0(htb)
            |
         1:1(16mbit/s)
          /   \
1:2(8mbit/s) 1:ffff(8mbit/s)

如果我添加过滤器,其父(tc filter add dev wlan0 parent 1:0 protocol ip prio 1 handle 0x0002 fw flowid 1:2)级为 1:0 ,它工作得很好。但是,如果我添加过滤器,其类为 1:1 ,该命令不会报告任何错误,但命令没有输出tc filter show dev wlan0

问题:
1. 为什么我将过滤器设置为 1:1 时不起作用?
2. 我可以将过滤器设置为 1:1 之类的子类吗?

答案1

  1. 过滤器附加到入口队列规则的根,而不是类。因此,在您的案例中,所有过滤器都应使用parent 1:0选项创建。

  2. 要通过类别传递流量,您应该为每个类别创建一个带有flowid ...classid ...选项的过滤器。因此,在您的情况下,过滤器应该看起来像(如果我理解正确的话):

tc filter add dev wlan0 parent 1:0 protocol ip prio 1 handle 0x0002 fw flowid 1:2
tc filter add dev wlan0 parent 1:0 protocol ip prio 2 handle 0xffff fw flowid 1:ffff

相关内容