限制两个stream量来源的带宽,但不是其中之一

有2个来源的交通

他们中的第一个不应该受到任何阻碍,它应该能够抽取尽可能多的可用stream量。

另一方面,第二个方面应该限制在一起,使它们在一起不能超过一定的限度。 也就是说,他们可以超过它,但它不应该是第二个来源的“错误” – 在这种情况下,所有的交通是由第一个来的。

tc可以做到这一点吗?

现在有一个解决scheme来限制两者的stream量:

 tc qdisc add dev eth0 root handle 1: htb default 101 tc qdisc add dev eth1 root handle 1: htb default 101 tc class add dev eth0 parent 1: classid 1:1 htb rate 50000kbit tc class add dev eth1 parent 1: classid 1:1 htb rate 50000kbit tc class add dev eth0 parent 1:1 classid 1:101 htb rate 49500kbit ceil 50000kbit prio 0 quantum 16000 tc qdisc add dev eth0 parent 1:101 handle 101: sfq perturb 10 tc filter add dev eth0 parent 1:0 protocol ip prio 0 handle 1 fw classid 1:101 tc class add dev eth1 parent 1:1 classid 1:101 htb rate 49500kbit ceil 50000kbit prio 0 quantum 16000 tc qdisc add dev eth1 parent 1:101 handle 101: sfq perturb 10 tc filter add dev eth1 parent 1:0 protocol ip prio 0 handle 1 fw classid 1:101 tc class add dev eth0 parent 1:1 classid 1:102 htb rate 500kbit ceil 50000kbit prio 1 quantum 16000 tc qdisc add dev eth0 parent 1:102 handle 102: sfq perturb 10 tc filter add dev eth0 parent 1:0 protocol ip prio 1 handle 2 fw classid 1:102 tc class add dev eth1 parent 1:1 classid 1:102 htb rate 500kbit ceil 50000kbit prio 1 quantum 16000 tc qdisc add dev eth1 parent 1:102 handle 102: sfq perturb 10 tc filter add dev eth1 parent 1:0 protocol ip prio 1 handle 2 fw classid 1:102 

删除第一类的ceil参数应该可以做到。 没有它,你的第一stream量来源就不会有任何硬性限制。