2024年4月7日发(作者:)

squid限制带宽

squid限制带宽

关于设定SQUID带宽限制和流量整形,刻利用种的delay_pools字

段来完成.

delaypools里的bucket就像是一个容器,而这个容器就是squid要控制带宽

用的,当容器到达所设定的容量时,这个容器的所有者就无法超过我们所设定的带

宽限制,所有的bucket则称之为unified bucket.

Class分为三种:

(1)Class 1:包含一个unified bucket,而这个bucket是给这个class里所定义的

host使用.

(2)Class 2:包含一个unified bucket和255个buckets,每一个bucket分配给

8bit网络的使用者(255 hosts)使用IPv4 class C).

(3)Class 3:包含255个buckets,每一个bucket分配给16bit网络的使用者

(65535 hosts)使用(IPv4 class B).

(1)Class1:containsasingleunifiedbucketwhichisusedforallrequestsfrom hosts

subject to the pool

如果ACL只定义一个classC字段,要限制每个host的单一带宽,可以使用

Class 2来做;但如果ACL有定义好几个class C字段,使用Class 3可再对各个

class C字段做个别的总带宽限制

delay_parameters语法:

class 1 delay pool;

delay_parameters pool total

class 2 delay pool;

1 / 7

delay_parameters pool tal per-host

class 3 delay pool;

每个delay_parameters的数值是由restore(byte/sec)/max(bytes)组成,restore

是表示以bytes/sec的速度下载object到bucket里,而max则表示bucket的

bytes值.

备注1:如果要设定为unilit speed的话,将数值设定为-1即可

定义ACL

delay_pools n #总共有几个delay_pools

delay_class n1 1 #第n1个delay_pool的种类是Class 1

delay_class n2 3 #第n2个delay_pool的种类是Class 3

delay_class n3 2 #第n3个delay_pool的种类是Class 2

delay_access n1 allow lan

delay_access n1 deny all #定义delay_pool n1的access rule定义delay_pool

n1的速度限制,依class的不同有不同的定义方式(请参照上面的说明)

[范例说明]

1.限制带宽为512 Kbps

delay_pools 1

delay_class 1 1

delay_access 1 allow all

2.限制单一的带宽为128 Kbps

delay_pools 1

delay_class 1 3

2 / 7