我有一个Linux框(Centos 5.5),我想限制networkingstream量。 我有一个应用程序,我们分发给客户端,我想testing256Mbit /秒的最低build议带宽。 到目前为止,我看到的tc教程似乎允许你根据一定的标准来限制带宽,但是我想限制所有情况下的带宽(来自/来自所有IP地址,不pipeIP头是什么样的,等等)。
一个教程build议我使用:
tc filter add dev eth0 protocol ip parent 10: prio 2 flowid 10:2
但我得到以下错误:
Unknown filter "flowid", hence option 10:2 is unparsable
在任何情况下如何限制进出eth0的带宽?
如果您想限制所有出站stream量,则根本不需要filter。 只需将你的qdisc添加到接口根句柄中,如下所示:
tc qdisc add dev eth0 root handle 1: tbf rate 256mbit latency 1ms burst 1540
如果你想塑造/警察入境的交通,这是一个更复杂一点。 你将需要使用例如IFB接口:
modprobe ifb ip link set dev ifb0 up tc qdisc add dev eth0 ingress tc filter add dev eth0 parent ffff: protocol ip u32 match u32 0 0 action mirred egress redirect dev ifb0 # ^- this is a dummy filter, match u32 0 0 matches all traffic tc qdisc add dev ifb0 root handle 1: tbf rate 256mbit latency 1ms burst 1540
这是一个不同的方法,使用两个简单的filter:
tc qdisc add dev eth0 ingress tc filter add dev eth0 root protocol ip u32 match u32 0 0 police rate 256mbit burst 10k drop flowid :1 tc filter add dev eth0 parent ffff: protocol ip u32 match u32 0 0 police rate 256mbit burst 10k drop flowid :1
这可能会超出你的范围,但是WAN-emu一直非常擅长模拟对吞吐量和延迟有奇怪要求的环境[1]
[1]: http : //speed.cis.nctu.edu.tw/wanemu/ WAN-emu
你已经添加了1个这样的标尺tc qdisc add dev eth0 root handle 10:htb default 20
像你这样的感觉
tcfilter添加开发eth0协议ip父母10:prio 2 flowid 10:2