您的位置:首页 > 运维架构 > Linux

通过linux的tc工具简单实现上传和下载的流量控制

2015-02-11 11:03 786 查看
1、 实现原理:

Linux内核版本2.4以上,就开始支持网络传输带宽控制(Traffic Contol),可以控制某个网卡的包发送延迟时间和带宽分配。

实现对网络下载速率的控制可以直接通过tc命令,限制下载网卡的下载速率。

由于tc只能控制网卡发送的速率,所以在对网络上传速率进行控制时则需要变相实现:



2、 实现步骤(假设应用监听lo卡监听地址为127.0.0.1,Haproxy监听eth0网卡监听地址为10.20.16.73):

下载速率限制

a) 首先删除lo卡上原有的网络控制策略

tc qdisc del dev lo root

b) 然后添加一个qdisc:

tc qdisc add dev lo root handle 1: htb r2q 1

c) 再添加一个控制类,控制分配带宽为1Mbit,最高速率为1Mbit:

tc class add dev lo parent 1: classid 1:1 htb rate 1Mbitceil 1Mbit

d) 最后为lo卡再添加一个筛选器,限制指向10.20.16.73的带宽:

tc filter add dev lo parent 1: protocol ip prio 16 u32match ip dst 10.20.16.73 flowid 1:1

上传速率限制

e) 首先删除eth0卡上原有的网络控制策略

tc qdisc del dev lo root

f) 然后添加一个qdisc:

tc qdisc add dev lo root handle 1: htb r2q 1

g) 再添加一个控制类,控制分配带宽为1Mbit,最高速率为1Mbit:

tc class add dev lo parent 1: classid 1:1 htb rate 1Mbitceil 1Mbit

h) 最后为lo卡再添加一个筛选器,限制指向127.0.0.1的带宽:

tc filter add dev lo parent 1: protocol ip prio 16 u32match ip dst 127.0.0.1 flowid 1:1
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: