最終更新日: 2014年 5月18日
Squid Home / FAQトップ

遅延プール・クラス1

クラス1(Class 1)の遅延プールは、1つのプールに1つのバケットを割り当て、このバケットに対して速度制限を実施します。
必要な数の遅延プールを用意しておき、ACLによってクライアントを選別して目的の遅延プールを利用させるようにします。
ACLによって選別されたクライアントは、すべて同じバケットによる帯域制限を共有する形態となるので「全社的に共通」といったような制限に使用すると良いでしょう。
プールは複数用意できるので、特定のクライアント用に高速なバケットを用意することで、一般のクライアントと別の速度でアクセスさせることが可能になります。
クラス1の遅延プールは、IPv4、IPv6のどちらの環境においても設定可能です。
(なお、以下で使っている帯域制限でのバイトサイズは 1KB=1000バイト とする近似値です)

1. 一つの遅延プールを用意して、指定クライアントが1つの帯域を共有する構成

もっとも基本的なプールの設定を最初に見ていきます。
遅延プールとして単一のバケット(集約バケット)を持ったプールを作成し、ACLでその遅延プールを適用するサブネットを指定します。
この遅延プールの利用シーンとしては、ACLで特定された全端末で同じバケットの速度をシェアさせて利用させるような場合となります。
この構成の設定例は次のようになります。

(squid.conf)
# ACLs
acl some_clients_1 src 192.168.10.0/24
acl some_clients_1 src 192.168.20.0/24

# Delay Pool
delay_pools 1

delay_class 1 1 # pool 1 is a class 1 pool

delay_parameters 1 10000000/10000000 # 10MB/sec, 10MBバケット

delay_access 1 allow some_clients_1
delay_access 1 deny all
この構成では、ACLにマッチしたクライアントは、最大で10MB/secでの転送が行われますが、対象となる端末で同時にアクセスが行われた場合には10MBを共有するために、端末の数が多くなる程、転送速度が遅くなっていくでしょう。

2. 遅延プール(高速用・低速用)を複数用意する構成

クラス1の遅延プールを高速用と低速用の2つ用意して、ACLによってそれぞれどちらのプールを使わせるかを決めていきます。
この構成の設定例は次のようになります。
(squid.conf)
# ACLs
acl some_clients_1 src 192.168.10.0/24
acl some_clients_2 src 192.168.20.0/24

# Delay Pool
delay_pools 2

delay_class 1 1 # pool 1 is a class 1 pool
delay_class 2 1 # pool 2 is a class 1 pool

delay_parameters 1 10000000/10000000 # 10MB/sec , 10MBバケット
delay_parameters 2 100000000/100000000 # 100MB/sec , 100MBバケット

delay_access 1 allow some_clients_1
delay_access 1 deny all
delay_access 2 allow some_clients_2
delay_access 2 deny all
クラス1と他のクラスを組み合わせて構成することも可能です。

なお、複数のプールを構成する場合には、プールが評価される順に注意してください。 プールの評価は、delay_access の登録順では無く、プール番号順となります。

参考: