虚拟化容器,大数据,DBA,中间件,监控。

在Squid中限制网络带宽的实例讲解

25 05月
作者:admin|分类:系统运维

在网上查了不少Squid中设置流量限制的文章,要么东抄西抄,语焉不详,要么翻译的不知所云,英文文档又讲的太理论,太繁琐。其实,这方便对我们一般网络管理员来说就那么几项设置有用,所以自己归纳总结了一些相关的知识和技巧。

Squid控制访问带宽的架构是这样的,首先,你可以定义一个或几个pool(池)来操控里面的流量,而你要为每个pool定义它们的class(类型),类型其实就是决定控制那些主机流量的范围,类型分为以下几种:

class定义:

class类型1表示只对pool设置相关总流量(这样比较好理解,不要加入什么bucket的概念)
class类型2表示既对pool设置总量控制,也为C类网段中的每个IP地址流量
class类型3表示既对pool设置总量控制,也为B类网段中的每个C类网段中的每个IP地址设置流量

最后就是对建立的pool设置它们的流量控制,整个过程是这样:

先在squid.acl.config文件中定义你允许哪些主机使用你的代理(这部分不属于带宽设置):

acl myteam src 172.16.23.108/32 172.16.23.53/32

acl mynet src 172.16.23.108/32 172.16.23.53/32

http_access allow myteam

http_access allow mynet

接下来进行带宽设置:

delay_pools 2  #假设你设置两个pools来分别管理两个不同的网段
 
delay_class 1 2    #设置第一个pools中的地址为C类网段中的每个IP地址流量
delay_access 1 allow myteam
delay_access 1 deny all
delay_parameters 1  64000/64000 32000/64000   #连接myteam总速度64000byte(64KB),每个ip可以3200的速度
 
delay_class 2 1  #将pool 2设为类型1,只控制总mynet的总流量
delay_access 2 allow mynet
delay_access 2 deny all
delay_parameters 2 32000/64000 #设置总流量速度为32000

注:   -1/-1表示流量无限制。 斜杆前后两个参数为最小流量与最大流量.

例如:delay_parameters 1 -1/-1  #表示你对pool 1不限速

每个delay_parameters的数值是由restore(byte/sec)/max(bytes)组成,restore是表示以bytes/sec的速度下载数据到bucket里,而max则表示bucket的容量bytes值.

备注2:SQUID FAQ中有提到,建议max至少要设为restore的两倍(It is recommended that the maximum is at least twice the restore value)

历史上的今天
05月
25
浏览2865 评论0
返回
目录
返回
首页
用squid做http代理,如何封掉QQ游戏? 用Ubuntu架设透明的Squid代理服务器