linux tc 限速 控制流量
2012-02-18 17:42
393 查看
TC命令格式:
加入
tc qdisc [ add | change | replace | link ] dev DEV [ parent qdisc-id | root ] [ handle qdisc-id ] qdisc [ qdisc specific parameters ]
tc class [ add | change | replace ] dev DEV parent qdisc-id [ classid class-id ] qdisc [ qdisc specific parameters ]
tc filter [ add | change | replace ] dev DEV [ parent qdisc-id | root ] protocol protocol prio priority filtertype [ filtertype specific parameters ] flowid flow-id
显示
tc [-s | -d ] qdisc show [ dev DEV ]
tc [-s | -d ] class show dev DEV tc filter show dev DEV
查看TC的状态
tc -s -d qdisc show dev eth0
tc -s -d class show dev eth0
删除tc规则
tc qdisc del dev eth0 root
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
限制单个IP
1,添加规则
[root@ct-test ~]# tc qdisc add dev eth1 root handel 1: htb r2q 1
[root@ct-test ~]# tc class add dev eth1 parent 1: classid 1:1 htb rate 5mbit ceil 10mbit
[root@ct-test ~]# tc filter add dev eth1 parent 1: protocol ip prio 16 u32 match ip dst 192.168.3.153 flowid 1:1 #filter用来将用户划入到具体的控制策略中(即不同的class中)。
TC包括三个基本的构成块: 队列规定qdisc(queueing discipline )、类(class)和分类器(Classifiers)
就可以限制192.168.3.153的下载速度为5Mbit最高可以10Mbit
r2q,是指没有default的root,使整个网络的带宽没有限制
2,查看添加的规则
[root@ct-test ~]# tc -s -d qdisc show dev eth1 #查看队列(用来实现控制网络的收发速度)
qdisc htb 1: r2q 1 default 0 direct_packets_stat 48846 ver 3.17
Sent 28638574 bytes 48870 pkts (dropped 0, overlimits 0 requeues 0)
[root@ct-test ~]# tc -s -d class show dev eth1 #查看类(class用来表示控制策略)
class htb 1:1 root prio 0 quantum 200000 rate 5Mbit ceil 10Mbit burst 2224b/8 mpu 0b overhead 0b cburst 2848b/8 mpu 0b overhead 0b level 0
Sent 14679 bytes 52 pkts (dropped 0, overlimits 0 requeues 0)
rate 202bit
lended: 52 borrowed: 0 giants: 0
tokens: 3568 ctokens: 2296
[root@ct-test ~]#
3,删除添加的规则
[root@ct-test ~]# tc qdisc del dev eth1 root
4,再次查看规则
[root@ct-test ~]# tc -s -d qdisc show dev eth1
qdisc pfifo_fast 0: bands 3 priomap 1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1
Sent 326504 bytes 488 pkts (dropped 0, overlimits 0 requeues 0)
[root@ct-test ~]# tc -s -d class show dev eth1 #已删除
[root@ct-test ~]#
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
限制网段,如果多个网段可以添加分类。tc很强大,这里是小小巫
tc qdisc add dev eth0 root handle 1: htb r2q 1
tc class add dev eth0 parent 1: classid 1:1 htb rate 50mbit ceil 1000mbit
tc filter add dev eth0 parent 1: protocol ip prio 16 u32 match ip dst 192.168.3.0/24 flowid 1:1
就可以限制192.168.3.0 到255 的带宽为3000k了,实际下载速度为200k左右。
这种情况下,这个网段所有机器共享这200k的带宽。
还可以加入一个sfq(随机公平队列)
tc qdisc add dev eth0 root handle 1: htb r2q 1
tc class add dev eth0 parent 1: classid 1:1 htb rate 3000kbit burst 10k
tc qdisc add dev eth0 parent 1:1 handle 10: sfq perturb 10
tc filter add dev eth0 parent 1: protocol ip prio 16 u32 match ip dst 192.168.111.168 flowid 1:1
sfq,他可以防止一个段内的一个ip占用整个带宽。
下面是实例:
[root@ct-test ~]# tc qdisc add dev eth1 root handle 1: htb r2q 1
[root@ct-test ~]# tc class add dev eth1 parent 1: classid 1:1 htb rate 5mbit ceil 10mbit
[root@ct-test ~]# tc filter add dev eth1 parent 1: protocol ip prio 16 u32 match ip dst 192.168.3.0/24 flowid 1:1
[root@ct-test ~]# tc -s -d qdisc show dev eth1
qdisc htb 1: r2q 1 default 0 direct_packets_stat 6402 ver 3.17
Sent 7404865 bytes 9868 pkts (dropped 0, overlimits 497 requeues 0)
[root@ct-test ~]# tc -s -d class show dev eth1
class htb 1:1 root prio 0 quantum 200000 rate 5Mbit ceil 10Mbit burst 2224b/8 mpu 0b overhead 0b cburst 2848b/8 mpu 0b overhead 0b level 0
Sent 6466768 bytes 6845 pkts (dropped 0, overlimits 0 requeues 0)
rate 56721bit 72pps
lended: 6845 borrowed: 0 giants: 0
tokens: 3502 ctokens: 2263
本文出自 “要成长要收获” 博客,请务必保留此出处http://s2t148.blog.51cto.com/3858027/782818
加入
tc qdisc [ add | change | replace | link ] dev DEV [ parent qdisc-id | root ] [ handle qdisc-id ] qdisc [ qdisc specific parameters ]
tc class [ add | change | replace ] dev DEV parent qdisc-id [ classid class-id ] qdisc [ qdisc specific parameters ]
tc filter [ add | change | replace ] dev DEV [ parent qdisc-id | root ] protocol protocol prio priority filtertype [ filtertype specific parameters ] flowid flow-id
显示
tc [-s | -d ] qdisc show [ dev DEV ]
tc [-s | -d ] class show dev DEV tc filter show dev DEV
查看TC的状态
tc -s -d qdisc show dev eth0
tc -s -d class show dev eth0
删除tc规则
tc qdisc del dev eth0 root
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
限制单个IP
1,添加规则
[root@ct-test ~]# tc qdisc add dev eth1 root handel 1: htb r2q 1
[root@ct-test ~]# tc class add dev eth1 parent 1: classid 1:1 htb rate 5mbit ceil 10mbit
[root@ct-test ~]# tc filter add dev eth1 parent 1: protocol ip prio 16 u32 match ip dst 192.168.3.153 flowid 1:1 #filter用来将用户划入到具体的控制策略中(即不同的class中)。
TC包括三个基本的构成块: 队列规定qdisc(queueing discipline )、类(class)和分类器(Classifiers)
就可以限制192.168.3.153的下载速度为5Mbit最高可以10Mbit
r2q,是指没有default的root,使整个网络的带宽没有限制
2,查看添加的规则
[root@ct-test ~]# tc -s -d qdisc show dev eth1 #查看队列(用来实现控制网络的收发速度)
qdisc htb 1: r2q 1 default 0 direct_packets_stat 48846 ver 3.17
Sent 28638574 bytes 48870 pkts (dropped 0, overlimits 0 requeues 0)
[root@ct-test ~]# tc -s -d class show dev eth1 #查看类(class用来表示控制策略)
class htb 1:1 root prio 0 quantum 200000 rate 5Mbit ceil 10Mbit burst 2224b/8 mpu 0b overhead 0b cburst 2848b/8 mpu 0b overhead 0b level 0
Sent 14679 bytes 52 pkts (dropped 0, overlimits 0 requeues 0)
rate 202bit
lended: 52 borrowed: 0 giants: 0
tokens: 3568 ctokens: 2296
[root@ct-test ~]#
3,删除添加的规则
[root@ct-test ~]# tc qdisc del dev eth1 root
4,再次查看规则
[root@ct-test ~]# tc -s -d qdisc show dev eth1
qdisc pfifo_fast 0: bands 3 priomap 1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1
Sent 326504 bytes 488 pkts (dropped 0, overlimits 0 requeues 0)
[root@ct-test ~]# tc -s -d class show dev eth1 #已删除
[root@ct-test ~]#
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
限制网段,如果多个网段可以添加分类。tc很强大,这里是小小巫
tc qdisc add dev eth0 root handle 1: htb r2q 1
tc class add dev eth0 parent 1: classid 1:1 htb rate 50mbit ceil 1000mbit
tc filter add dev eth0 parent 1: protocol ip prio 16 u32 match ip dst 192.168.3.0/24 flowid 1:1
就可以限制192.168.3.0 到255 的带宽为3000k了,实际下载速度为200k左右。
这种情况下,这个网段所有机器共享这200k的带宽。
还可以加入一个sfq(随机公平队列)
tc qdisc add dev eth0 root handle 1: htb r2q 1
tc class add dev eth0 parent 1: classid 1:1 htb rate 3000kbit burst 10k
tc qdisc add dev eth0 parent 1:1 handle 10: sfq perturb 10
tc filter add dev eth0 parent 1: protocol ip prio 16 u32 match ip dst 192.168.111.168 flowid 1:1
sfq,他可以防止一个段内的一个ip占用整个带宽。
下面是实例:
[root@ct-test ~]# tc qdisc add dev eth1 root handle 1: htb r2q 1
[root@ct-test ~]# tc class add dev eth1 parent 1: classid 1:1 htb rate 5mbit ceil 10mbit
[root@ct-test ~]# tc filter add dev eth1 parent 1: protocol ip prio 16 u32 match ip dst 192.168.3.0/24 flowid 1:1
[root@ct-test ~]# tc -s -d qdisc show dev eth1
qdisc htb 1: r2q 1 default 0 direct_packets_stat 6402 ver 3.17
Sent 7404865 bytes 9868 pkts (dropped 0, overlimits 497 requeues 0)
[root@ct-test ~]# tc -s -d class show dev eth1
class htb 1:1 root prio 0 quantum 200000 rate 5Mbit ceil 10Mbit burst 2224b/8 mpu 0b overhead 0b cburst 2848b/8 mpu 0b overhead 0b level 0
Sent 6466768 bytes 6845 pkts (dropped 0, overlimits 0 requeues 0)
rate 56721bit 72pps
lended: 6845 borrowed: 0 giants: 0
tokens: 3502 ctokens: 2263
本文出自 “要成长要收获” 博客,请务必保留此出处http://s2t148.blog.51cto.com/3858027/782818
相关文章推荐
- 限制篇(5.2) 04. 流量控制 - 共享带宽限速 ❀ 飞塔 (Fortinet) 防火墙
- 限制篇(5.2) 03. 流量控制 - 基于模板限速 ❀ 飞塔 (Fortinet) 防火墙
- 嵌入式 使用iptables限速控制带宽流量
- Linux tc 网络流量控制
- centos 的单ip流量控制-CentOS下利用iptables限速及限制每IP连接数
- Linux TC 流量限速
- 限制篇(5.2) 05. 流量控制 - 每个 IP 限速 ❀ 飞塔 (Fortinet) 防火墙
- 网络限速管理之完美的流量控制
- 基于AFD驱动的进程流量控制
- ASIHTTPRequest-流量控制
- TCP/IP-----区别、缓存、流量控制、拥塞控制
- SOAPUI测试步骤(二)---流量控制(Conditional Goto)
- Fedora使用tc进行流量控制
- 基于TC技术的网络流量控制实战
- 嵌入式 Linux流量监控工具- iftop (最全面的iftop教程)以及TC命令内核流量控制
- ACL--流量控制工具
- TCP是如何运用窗口进行流量控制
- linux的流量控制
- Cisco公司的CAR流量控制策略
- Linux内核中流量控制(13)