如何使用TC(stream量整形)减慢和共享传入的networkingstream量

我试图减慢传入数据包的特定程序,而第二个将有完全访问未使用的带宽。 换句话说,我想控制networking带宽共享,以便优先于另一个应用程序。

这是我目前的configuration,从https://github.com/rfrail3/misc/blob/master/tc/traffic-control.sh发现 :

# Set up a virtual interface modprobe ifb ip link set dev ifb0 up # Set up eth0 in order to redirect incoming packets tc qdisc add dev eth0 handle ffff: ingress # Filter to make the packet going on ifb0 tc filter add dev eth0 protocol ip parent ffff: u32 match u32 0 0 action mirred egress redirect dev ifb0 # ifb0 configuration tc qdisc add dev ifb0 root handle 2: htb tc class add dev ifb0 parent 2: classid 2:1 htb rate 1000mbit tc class add dev ifb0 parent 2:1 classid 2:10 htb rate 999mbit ceil 1000mbit tc class add dev ifb0 parent 2:1 classid 2:11 htb rate 1mbit ceil 1000mbit 

然后,我在ifb0上应用filter,在2:10(高优先级)或2:11(低优先级)上redirect我的数据包。

数据包按照预期分配给类,但是networking在两个应用程序(50/50,而不是我所期望的HTBconfiguration的1/99)之间公平地共享。

其实,我不明白为什么我的networking是公平的,我的利率/细胞没有得到尊重。 我在这里做错了什么?

你正在设置默认stream量去处理20,但是这个不存在,所以不会匹配任何速率/细胞。

tc qdisc add dev ifb0 root handle 2: htb default 20

_________________________________________^^^^^^^^^^

尝试添加一个规则classid 2:20

我build议在本页面快速阅读更多解释: http :