Linux环境使用TC进行服务器流量控制方法(2)
来源:Asp之家 发布时间:2010-08-17 18:47:00
三、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
tc qdisc add dev eth0 root handle 1: htb r2q 1
tc class add dev eth0 parent 1: classid 1:1 htb rate 30mbit ceil 60mbit
tc filter add dev eth0 parent 1: protocol ip prio 16 u32 match ip dst 192.168.1.2 flowid 1:1
就可以限制192.168.1.2的下载速度为30Mbit最高可以60Mbit
r2q,是指没有default的root,使整个网络的带宽没有限制
下载整段IP
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.111.0/24 flowid 1:1
就可以限制192.168.111.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占用整个带宽。
TC简介
在Linux中,TC有二种控制方法CBQ和HTB.HTB是设计用来替换CBQ的。它是一个层次式的过滤框架。TC包括三个基本的构成块: 队列规定qdisc(queueing discipline )、类(class)和分类器(Classifiers)。
队列(queueing discipline):用来实现控制网络的收发速度。通过队列,Linux可以将网络数据包缓存起来,然后根据用户的设置,在尽量不中断连接(如 TCP)的前提下来平滑网络流量。需要注意的是,linux对接收队列的控制不够好,所以我们一般只用发送队列,即“控发不控收”。它封装了其他两个主要 TC组件(类和分类器)。内核如果需要通过某个网络接口发送数据包,它都需要按照为这个接口配置的qdisc(排队规则)把数据包加入队列。然后,内核会 尽可能多地从qdisc里面取出数据包,把它们交给网络适配器驱动模块。
最简单的QDisc是pfifo它不对进入的数据包做任何的处理,数据包采用先入先出的方式通过队列。不过,它会保存网络接口一时无法处理的数据包。
队列规则包括FIFO(先进先出),RED(随机早期探测),SFQ(随机公平队列)和令牌桶(Token Bucket),类基队列(CBQ),CBQ 是一种超级队列,即它能够包含其它队列(甚至其它CBQ)。
class用来表示控制策略。很显然,很多时候,我们很可能要对不同的IP实行不同的流量控制策略,这时候我们就得用不同的class来表示不同的控制策略了。
filter用来将用户划入到具体的控制策略中(即不同的class中)。比如,现在,我们想对xxa,xxb两个IP实行不同的控制策略 (A,B),这时,我们可用filter将xxa划入到控制策略A,将xxb划入到控制策略B,filter划分的标志位可用u32打标功能或 IPtables的 set-mark(大多使用iptables来做标记)功能来实现。
目前,TC可以使用的过滤器有:fwmark分类器,u32分类器,基于路由的分类器和RSVP分类器(分别用于IPV6、IPV4)等;其 中,fwmark分类器允许我们使用 Linux netfilter 代码选择流量,而u32分类器允许我们选择基于 ANY 头的流量 .需要注意的是,filter(过滤器)是在QDisc内部,它们不能作为主体。
数据包->iptables(在通过iptables时,iptables根据不同的ip来设置不同的mark)->TC(class)->TC(queue)。
猜你喜欢
- 上个月,google发布了1.1版本的官方seo指南(中文版)。这个22页的PDF文档中包含了适用于google的最
- 我们有一些想做网站的站长们还有刚步入站长行业的朋友们,你们是否经常会为一些能买到称心空间而在发愁呢?刚做网站肯定不能投资太多资金了,所以我们
- 搜索引擎快照是指搜索引擎在抓取网站时,对网页的一种缓存处理,快照都用户是非常有利的,快照可以在网站本身页面不存在或错误时也能查看,不会影响用
- 10月28日消息,日本游戏大厂任天堂,计划要推出加大版DSi掌上型游戏机,屏幕将会大于4英寸,跟Sony的PSP差不多,而且还纳入更多新功能
- 衣服宽松一些看着更舒服了,广告也是,大一点的广告往往效果更好请记住 AdSense的三种“王牌”广告
- 在本系列的第一节中,讲了提高网站性能中网站“内容”有关的10条原则。除了在网站在内容上的改进外,在网站服务器端上也有需要注意和改
- DISCUZ论坛用的人很多,下面就教你怎么美化贴子里的Google AdSense 广告,先看看效果图:当然主要是模板的制作,看你自己的发挥
- Kesioncms V6版本系列产品开发的网站已支持多种的运行方式如全静态、全动态、部分静态、伪静态(带问号,无需组件)、rewrite组件
- 在众多网络应用中,FTP(文件传输协议)有着非常重要的地位。Internet中一个十分重要的资源就是软件资源,而各种各样的软件资源大多数都放
- 做为站长最不希望的事情我想就是自己的网站搬来搬去的,空间今天换东家,明天换西家的,除了工作量上的麻烦不说,但但从SEO的角度来来考虑感觉也是
- FTP站点是因特网上比较重要的资源,但是登录FTP网站和操作FTP站点上的文件或文件夹仍然比较繁琐。我们知道,在资源管理器器可以把一个远程电
- 有Godaddy主机用户对SSL状态不是很了解,问SSL状态这是什么意思呢?当一个SSL证书向访问的浏览器证明你的网站的身份,并加密他们的信
- 确保Windows Server 2003域上的域名解析系统(domain name system,简称DNS)安全,是非常基本的一个要求。
- 到底什么是搜索引擎优化写作?搜索引擎优化文案指的是战略性地利用和部署的搜索关键词或有利可图的关键字的网站的浏览文字和其他内容。这包括标题,描
- 一个配置好的MAIL服务器除基本功能外应该具有的其它功能:* 反垃圾邮件能力。检查连接或内容,阻挡某些认为是不良的连接以及信件。* 反病毒能
- 概述微软的最新邮件系统Exchange server2007中新增加了一项服务:自动发现服务(auto discover service).
- 顾名思义,人肉搜索就是利用现代信息科技,变传统的网络信息搜索为人找人、人问人、人碰人、人挤人、人挨人的关系型网络社区活动,变枯燥乏味的查询过
- 小编日前发现,美国搜索巨头Google开始实施“更有进攻性”的搜索广告策略,具体是在搜索结果的顶部显示关键词广告,将广告和搜索结果“在视觉上
- 部署Exchange Server 2007的前提条件Microsoft .NET Framework 2.0http://www.micr
- 我先说下我的最初建设方法:华恒教育—一级栏目,华恒简介、高中留学等导航的设置都是二级栏目。(其实这种办法我走了不少弯路)我这样的办法是对每个