web-dev-qa-db-ja.com

イカの遅延プールと複数のACLの評価

私はubuntuAMD64ボックスでsquid3.0をテストしています。複数のACLでdelay_accessパラメータを設定すると、遅延プールクラスで問題が発生します。イカのウィキを通過してきましたが、決定的なものは何もありません。おそらく誰かまたはイカの第一人者がイカ3.xの遅延プールを使用して経験を共有することができます。2.xは少し違うと思います。すべてがイカのこの興味深い機能に関連しているので、私はすべてを1つの質問に入れています。

簡単な例:

acl workday time MTWHF
acl work_time time 9:00 - 18:00
acl work_day time MTWHF 9:00 - 18:00
acl streaming_site dstdomain youtube.com hulu.com

delay_pools 2

delay_class 1 2
delay_class 2 2

delay_access 1 work_day streaming_site
delay_parameters 1 500000/500000 100000/100000
delay_access 1 deny all

delay_access 2 !work_day
delay_parameters 2 1000000/1000000 500000/500000
delay_access 2 deny all

質問1:squidはdelay_accessで複数のACLをどのように評価しますか?ORルールまたはANDルールを使用していますか。 ANDルールを使用して2つ以上のACLを照合している場合、複数のACLでORを達成するにはどうすればよいですか。

質問2:以下のパラメーターは同じ効果をもたらしますか?

delay_access 1 work_day streaming_site

または

delay_access 1 work_day
delay_access 1 streaming_site

質問3:遅延プールが使用されていない場合。そのプールは合計帯域幅に影響しますか?たとえば、18:01 ++の勤務時間後に期限切れになったdelay_access1ルール。遅延プールが未使用にリセットされない理由。または、それを空にリセットする方法は?

あなたの経験を共有してくれてありがとう。


私がチェックし、読み、読み、テストした参考文献....しかし、他の人々が複数のACLを経験していることを知りたいと思っています。

  1. 公式ウィキ :複数のACLについてまだ十分な説明がありません
  2. Visolve.com :オープンソースのコンサルタント会社..イカとの仕事もあります
  3. Squid ACLと遅延プールの記事
  4. 遅延プールに関するHowtoforgeの記事 :これはserverfaultの別の質問で参照されています
  5. ツールボックスサイトから
2
Muhammad

例にリストされている「delay_pool」ディレクティブを確認することをお勧めします。「delay_pools」(「s」付き)ではないでしょうか。私はそれをローカルでテストしました(まあ、Squid 2.7は3ではありません)、そしてそれはすべてのdelay_poolsを失敗させました。

質問1に関しては、ACLはORされています。これは、プロキシを介した内部リソースへのアクセスに遅延プールを使用しないために使用する方法の例です。

acl delay_pool_local_1 dst 192.168.0.0/24
acl delay_pool_local_2 dst 192.168.1.0/24
delay_access 1 allow delay_pool_local_1
delay_access 1 allow delay_pool_local_2
delay_access 1 deny all

質問2に関しては、各aclディレクティブを独自の行に配置する必要があります。

質問3の場合、簡単な答えは、あなたの例に基づくと、各クライアントが利用できる帯域幅の「バケット」は常に即座に補充されるということです。したがって、それらが空になることはありません。

より長い説明は、「バケツ」は常に指定した速度で補充されるということです。クライアントは、delay_initial_bucket_levelの帯域幅で開始します。クライアントがダウンロードすると、データはバケットから削除されます。したがって、delay_initial_bucket_level 50を指定すると、バケットは50%いっぱいで開始されます。上記の例では、バケットは常に即座に補充されます(たとえば、「100000/100000」として指定されているため)。つまり、クライアントは単純に100000に調整されます。5000/ 100000を指定した場合、バケットは次の時点で「補充」されます。 5000のレート。その場合、ACLがその時点でバケットを使用していなくても、バケットは通常のレートで補充されます。

1
Deutsch