TC实现带宽分配

1:为网卡分配队列
2:在该队列上建立分类
3:根据需要建立子队列和子分类
4:为每个分类建立过滤器

创建队列:#tc qdisc add dev eth0 root handle 1: htd default 11
dev eth0:要操作的网卡为eth0
root:为网卡eth0添加的是一个根队列
handle 1: :队列的句柄为1:
htb:添加的队列为HTB队列
default 11:htb特有的队列参数,意思是所以未分类的流量都将分配给类别1:11

为根队列创建相应的类别:
#tc class add dev eth0 parent 1: classid 1:11 htb rate 40mbit ceil 40mbit
#tc class add dev eth0 parent 1: classid 1:12 htb rate 40mbit ceil 40mbit
#tc class add dev eth0 parent 1: classid 1:13 htb rate 20mbit ceil 20mbit
classid1:11:创建一个标识为1:11的类别
rate 40mbit:系统将为该类别确保带宽40mbit
cell 40mbit:该类别最高可占用带宽为40mbit

为类别设置过滤器:
#tc filter add dev eth0 protocol ip parent 1:0 prio 1 u32 match ip dport 80 0xfff flowid 1:11
#tc filter add dev eth0 protocol ip parent 1:0 prio 1 u32 match ip dport 25 0xfff flowid 1:12
#tc filter add dev eth0 protocol ip parent 1:0 prio 1 u32 match ip dport 23 0xfff flowid 1:13
protocol ip:该过滤器应该检查报文分组的协议字段
prio 1:对报文的处理优先级相同(不同优先级的过滤器,系统将按照从小到大的
优先级顺序来执行;相同优先级的过滤器,系统将按照命令的先后顺序执行)
使用u32选择器,判断的是dport字段,如果该字段与0xfff进行与操作的结果为某数值,
则将该数据流分配到固定类别中

以上方法固定了带宽的分配,并不能最大化利用带宽,可通过以下操作实现灵活的带宽共享和独占模式
#tc qdisc add dev eth0 root handle 1: htd default 21
#tc class add dev eth0 parent 1: classid 1:1 htb rate 20mbit ceil 20mbit
#tc class add dev eth0 parent 1: classid 1:2 htb rate 80mbit ceil 80mbit
#tc class add dev eth0 parent 1:2 classid 1:21 htb rate 40mbit ceil 80mbit
#tc class add dev eth0 parent 1:2 classid 1:22 htb rate 40mbit ceil 80mbit
#tc filter add dev eth0 protocol ip parent 1:0 prio 1 u32 match ip dport 80 0xfff flowid 1:21
#tc filter add dev eth0 protocol ip parent 1:0 prio 1 u32 match ip dport 25 0xfff flowid 1:22
#tc filter add dev eth0 protocol ip parent 1:0 prio 1 u32 match ip dport 23 0xfff flowid 1:1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值