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.

Post a comment or leave a trackback: Trackback URL.

Comentarios

  • Edwin Villarroel  On 7 mayo, 2012 at 6:23 am

    acl intranet url_regex 192.0.2.1 aca debe ir la ip de nuestro rango de red o de nuestro servidor proxy en caso de estar en diferentes rangos funciona?
    por ejemplo el servidor proxy lo tengo en 192.168.5.3 y mis clientes en 192.168.1.0/24

    • keikurono01  On 7 mayo, 2012 at 11:29 am

      Hola, la opción “url_regex” es para indentificar aquellas conexiones o peticiones que contengan en la url (en este caso), la IP 192.0.2.1, nada más. O sea si alguien de nuestra red privada, pone en su navegador la direccón “192.0.2.1”; entonces según las reglas del delay, cualquier peticion de descarga a este servidor, deben de atenderse a toda velocidad.
      ¿Y para qué podría servirme?, pues para videocache, que en ese tiempo estaba digamos de “moda”. Ya que con el videocache no se podía hacer manejo del ancho de banda, todas sus descargas quedaban siempre limitadas, pues con esta regla hacías que estas descargas vallan a velocidad LAN.

      Yo recomendaría que le des una ojeada al TC de linux. que es superior al delay pools de squid, por n razones🙂.

      Salu2.

  • Benny  On 22 noviembre, 2012 at 5:12 pm

    Que tal me podrías ayudar con las reglas para una red que tiene 1M de velocidad y quiero a los profesores asignar una velocidad de 0.3 M, a los laboratorios 0,2 y 0,5 M para los alumnos

  • Benny  On 22 noviembre, 2012 at 5:15 pm

    Los profesores y laboratorios son reconocidos por la dirección mac ya que todos estan en la misma red. Gracias.

  • propane heater  On 4 diciembre, 2012 at 2:37 am

    It’s a shame you don’t have a donate button! I’d without a doubt donate to this superb blog! I guess for now i’ll
    settle for book-marking and adding your RSS feed to my Google account.

    I look forward to new updates and will share this site with
    my Facebook group. Talk soon!

  • Wintch  On 10 febrero, 2014 at 12:02 pm

    Si me permitis, creo que salio un tanto tecnico, pero gracias de todos modos por el articulo! Saludos

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: