在Squid中限制网络带宽的实例讲解
在网上查了不少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)
目录 返回
首页