Category Archives: delay pools

DELAY POOLS PARA CONTROL DE ANCHO DE BANDA

Una breve introducción :

delay_pools n

esto quiere decir que vamos hacer n reglas, de acceso limitado

delay_class r m

Estamos configurando la r-ésima regla de las n’s que hemos definido al principio, dénse cuenta que sólo hay n delay pools definidos al inicio, asi r <= n.
El “m” quiere decir el tipo de clase que tendrá la regla r-ésima. Hay 3 tres tipos de clases, la 1,2 y 3:
si m=1: Esto quiere decir que se aplicara una regla de acceso limitado a todos lo que esten detrás del proxy sin importar como esten estructurados dentro de la lan.
si m=2: Esto quiere decir que vamos a aplicar una regla de acceso limitado a todos los que esten detrás del proxy (o 256 usuarios), y a la ves vamos a limitar a una misma velocidad a cada uno de estos usuarios, que estén detrás del proxy.
si m=3: Esto es hacer un delay pools de clase 1 con 256 delay pools de clase 2 que son subordinados de este.

delay_parameters r [p1/q1 p2/q2 … (r filtros)]

Con esto estamos limitando el ancho de banda según la clase que presenta el delay pools “r”, el p1/q1 quiere decir que vamos a descargar todo el ancho de banda (sí asi es) hasta que superemos los q1 bytes; luego nos limitara con la velocidad de p1 bytes por segundo.
por ejemplo para r=1:

delay_parameters 1 p1/q1

para un r=2:

delay_parameters 2 p1/q1 p2/q2

el primer “p1/q1” es para el total de usuarios dentro de la lan, y el “p2/q2” es para cada usuario conectado detras del proxy en este caso.

Tener presente que los valores p1, q1, p2, q2..etc deben ser dados en bytes.

delay_access r [allow, deny] [parm1, parm2, etc]
delay_access r [allow, deny] [parm1, parm2, etc]

delay_access r2 [allow, deny] [parm1, parm2, etc]
delay_access r2 [allow, deny] [parm1, parm2, etc]

Aqui vamos a decir que condiciones deben de cumplir los usuarios (como: La hora, ip fuente, ip destino, la pagina que visitan,que extenciones quieren descargar, path’s..etc ), para que se les aplique una de las r-esimas reglas ya definidas anteriormente, (en delay parameters).
Las condiciones estan dadas por los parámetros parm1, parm2 …, definidos en los acl’s del squid mismo. (vea los ejemplos al final)
Para hacer las condiciones hay que tener presente 2 cosas:
1: De las lineas:
delay_acces r [allow deny] [parm1 parm2 parm3]
delay_acces r [allow deny] [parm4 parm5 ]
nos quiere decir que a un usuario se les aplicará la regla “r”, si y sólo sí es cierto la proposicion lógica:
( parm1 & parm2 & parm3 ) | (parm4 & parm5),

A manera de nota: “&” denota “y” y el “|” denota el “o”.
2: Otra cosa que tenemos que tener presente es que si un usuario ya se le asigna una regla, entonces ya no ba a ser remplazadla por otra, esto es que si entra en una regla ya no pasa por las demás delay access.
ahora veamos unos ejemplos de como usar delay pools en squid:
e.g 1:

acl tiempo time 18:00-22:30
acl internet src 0/0
delay_pools 1

delay_class 1 2

delay_access 1 allow tiempo
delay_access 1 deny !tiempo
delay_access 1 allow internet

delay_parameters 1 20240/20240 20240/20240

Aqui Restringimos el acceso a internet con 19kB/s la descarga, a cada uno de los usuarios, en el horario “tiempo”

Otro ejemplo de uso un poco más compleja:

Aqui queremos hacer que nuestra lan (192.0.2.x) tenga una velocidad de descarga de 150KB/s SOLO sobre los archivos de extenciones .exe, .mp3, .avi, etc. en las HORAS de la noche (6:00 pm a 11:55 pm), ademas por si fuera poco, queremos que los usuarios descargen desde el proxy(192.0.2.1) a toda velocidad, esto puede servir si estamos haciendo cache de los videos (como por ejemplo thundercache o videocache), asi poder servir los videos cacheados sin restriccion como deberia de ser.

#192.0.2.1 es nuestra ip que tiene el proxy dentro de la lan.
acl intranet url_regex 192.0.2.1 
acl tiempo time 18:00-22:30
acl internet src 0/0
acl extensiones_descargas url_regex -i 	
.flv$ .exe$ .mp3$  .zip$ .rar$ .avi$ .mpeg$  .mpg$  .iso$ .raw$ .wav$ .mov$  .wmv$ .dvd$ .mpg$ .mpeg$ .7z$

#delay pools
delay_pools 2
delay_class 1 2
delay_class 2 2

#descargar a toda velocidad solo si se conectan al proxy
delay_parameters 1  -1/-1 -1/-1
delay_access 1 allow intranet
#descarga restringida a 150KB/s sobre algunas extenciones cuando accedan a internet, y estemos 
#sobre la hora "tiempo".
delay_parameters 2 150240/150240 150240/150240
delay_access 2 allow extensiones_descargas tiempo

Saludos.

Anuncios