Grupos de atrasos do Squid e avaliação de várias ACLs

2

Estou testando o squid 3.0 em uma caixa do Ubuntu. Estou enfrentando um problema com as classes do conjunto de retardo quando configuro os parâmetros delay_access com várias ACLs. Estive passando pelo wiki do squid e nada conclusivo. Talvez alguém ou um guru do squid possa compartilhar sua experiência usando pools de delay no squid 3.x, 2.x é um pouco diferente, eu acho. Estou colocando tudo em uma questão, já que tudo está relacionado a esse recurso interessante no squid.

Um exemplo simples:

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

Pergunta 1: Como o squid avalia várias ACLs no delay_access, está usando a regra OR ou a regra AND. Se estiver usando a regra AND para corresponder a duas ou mais ACLs, o que faremos para alcançar OU para as várias ACLS.

Pergunta 2: Os parâmetros abaixo dão o mesmo efeito?

delay_access 1 work_day streaming_site

ou

delay_access 1 work_day
delay_access 1 streaming_site

Pergunta 3: Uma vez que um pool de atraso não está sendo usado. Esse pool afetará a largura de banda total? Por exemplo, regra delay_access 1 que expirou após o horário de trabalho às 18: 01 ++. Por que o pool de retardo não é redefinido de volta para não usado. Ou como redefini-lo de volta ao vazio?

Agradecemos antecipadamente por compartilhar sua experiência.

Referências que verifiquei, li, li e teste .... mas ainda estou interessado em conhecer outras pessoas com várias ACLs.

  1. O wiki oficial : ainda não há explicação suficiente sobre várias ACLs
  2. Visolve.com : Empresa de consultoria de código aberto ... com algum trabalho com o squid
  3. ACLs do Squid e o artigo do pool de atrasos
  4. Artigo do Howtoforge sobre pools de atrasos : Isso foi mencionado em outra pergunta no serverfault
  5. Do site da caixa de ferramentas
por Muhammad 07.07.2010 / 15:00

1 resposta

1

Você pode querer verificar a diretiva "delay_pool" listada em seu exemplo - não deveria ser "delay_pools" (com um 's')? Eu testei localmente (bem, com o Squid 2.7 e não 3) e isso causou a falha de todos os delay_pools.

Em relação à questão 1, as ACLs são OR'ed. Aqui está um exemplo de como eu usá-lo para não usar pools de atraso para acesso a recursos internos através do nosso proxy:

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

Em relação à pergunta 2, você vai querer colocar cada diretiva ACL em sua própria linha.

Para a pergunta 3, a resposta simples é que, com base no seu exemplo, os "intervalos" de largura de banda disponíveis para cada cliente sempre serão reabastecidos instantaneamente. Então eles nunca estarão vazios.

A explicação mais longa é que os "buckets" sempre serão preenchidos na taxa especificada. Um cliente começará com a quantidade de largura de banda delay_initial_bucket_level. Conforme o cliente faz o download, os dados são removidos do intervalo. Portanto, se você especificar delay_initial_bucket_level 50, os intervalos começarão com 50% de preenchimento. Em seu exemplo acima, os buckets sempre são reabastecidos instantaneamente (porque são especificados como "100000/100000", por exemplo), o que significa que o cliente é simplesmente acelerado para 100000. Se você especificou 5000/100000, os buckets seriam "reabastecidos" em um taxa de 5000. Nesse caso, o balde será reabastecido na taxa normal, mesmo que o ACL não esteja sendo usado no momento.

    
por 09.07.2010 / 18:28