もっとも基本的なプールの設定を最初に見ていきます。
遅延プールとして単一のバケット(集約バケット)を持ったプールを作成し、ACLでその遅延プールを適用するサブネットを指定します。
この遅延プールの利用シーンとしては、ACLで特定された全端末で同じバケットの速度をシェアさせて利用させるような場合となります。
この構成の設定例は次のようになります。
- ACLとしてサブネットで192.168.10.0/24と192.168.20.0/24を対象にする 。(すべてを対象にするなら、 0.0.0.0/0
とするか、delay_accessのACLの指定部分を "all"にすれば良い。(...ハズ)
- バケットの転送制限を10MB/secとして、バケット最大数も10MBとする。(全帯域が最大10MB/secとなる)
- 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を共有するために、端末の数が多くなる程、転送速度が遅くなっていくでしょう。
クラス1の遅延プールを高速用と低速用の2つ用意して、ACLによってそれぞれどちらのプールを使わせるかを決めていきます。
この構成の設定例は次のようになります。
- ACLとしてサブネットで192.168.10.0/24と192.168.20.0/24を対象にする 。
- 低速用(転送制限を10MB/secで最大数も10MB)のプールと、高速用(転送制限を100MB/sec)のプールを作成する
- 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 の登録順では無く、プール番号順となります。