Limitar ancho de banda con Delay Pools

Publicado por joemg6, Octubre 27, 2012, 04:41:39 PM

Tema anterior - Siguiente tema

joemg6

Limitar ancho de banda con Delay Pools
Con el Squid podemos establecer límites al ancho de banda mediante una de sus directivas "delay pools". Para esto tenemos que asociarlo con una ACL (Lista de Conrol de accesso), una pequeña referencia a las caracteristicas de configuración.

delay_pools
Esta parámetro se utiliza para definir el numero total de delay pools

delay_class
Este parámetro toma dos argumentos el primero el identificador de la regla y en segundo lugar el tipo (clase) de la regla.
El primer argumento es un número entero para identificar la regla (número de delay pool).
El segundo argumento puede ser 1,2 ó 3 para indicar uno de estos tipos de reglas (número de demora de clase).
Clase 1. Este limita el uso del canal de manera global sin importar cómo lo usan los clientes internamente o cómo esta definida lógicamente la LAN.
Clase 2. Este es un Delay clase 1 con un 256 Delay Pools clase 1 subordinados a este.
Clase 3. Este es un Delay Pool clase 1 con 256 Delay Pools clase 2 subordinados a este.

delay_parameters
Fijará los parametros para un delay pool, los argumentos de este parámetro son parejas de valores velocidad/tamaño, donde velociad es un número entero que indica una velocidad en bytes por segundo (B/s), y tamaño indica el número de bytes de reserva que se transmiten antes de aplicar la velocidad de transferencia, es decir cada pareja especifica el número de bytes de margen que se permiten antes de se haga efectiva la restricción de velocidad.

Veremos un pequeño ejemplo utilizando la directiva delay pools.

acl lan src 192.168.1.0/24              # red lan
acl wireless src 192.168.2.0/24       # red inalambrica

delay_pools 2                               # se especifica el número de delay pools en este caso 2 delay pools

delay_class 1 1                             # el delay pool 1  es de clase 1
delay_class 2 1                             # el delay pool 2  es de clase 1

delay_access 1 allow lan                 # el delay pool 1  para la red lan
delay_access 2 allow wireless           # el delay pool 2  para la red wireless

#512000 bits =  64000 bytes
#256000 bits =  32000 bytes

#Asignamos el limite cada delay pool
#delay_parameters 1 -1/-1 -1/-1      # de este modo de parametro no tiene límite.
delay_parameters 1 64000/64000      # el delay pool 1  con 512 Kb
delay_parameters 2 32000/32000      # el delay pool 2  con 256 Kb


Se puede utilizar el acl por regex para tener un control más dinámico por ej.
acl lista url_regex -i "/etc/squid/lista.lst"
RaptorCache Developer

RASTAMAN

muy buen tema, sobre todo cuando no se quiere que el cache se hale todo el ancho de banda

unointernet

Saludos

Pero con estas delay pool puedo implementar lo que quiera, como por ejemplo, esta delay pool que vi en un foro de Brazilfw.

###################################################################
#################   DELAY POOLS  BY CESAR ROCHA ###########################
delay_pools 1
delay_class 1 3
#una vez los archivos descargados por IP exceden los 1048576 bytes (1MB)
#las descargas proseguirán a 16384 bytes/s (128 Kb)
delay_parameters 1 -1/-1 -1/-1 16384/1048576
#Queremos limitar la descarga de este tipo de archivos
acl limitar urlpath_regex -i \.(jpg|jpeg|ace|adt|arj|asf|avi|bin|bz2|bzip|cab|dat|dll|exe|fla|flv|gz|iso|lha|log|lzh|mdb|mid|mov|mp3|mpeg|mpg|msi|mso|ogg|pps|ppt|rar|rm|rtf|shs|src|sys|swf|tgz|ttf|wav|wma|wri|wmv|vpu|vpaa|vqf|vob|zip)$

### En este archivo aplico delay pool por dominio (por ejemplo, sin esta acl, el youtube y todas sus variantes (hay que incluirlas
### claro) no pasan por la limitacion), ya que delay pool por extensiones no limita los videos flv o swf  en dominios que usan balanceo de carga

acl videos url_regex -i "/usr/local/squid/etc/videos"

### Incluyo en el delay pool el tráfico streaming (audio y video), ya que el delay pool utilizando extensiones como tal,
### no controla este tipo de contenido (el streaming)

acl StreamingRequest1 req_mime_type -i ^video/x-ms-asf$
acl StreamingRequest2 req_mime_type -i ^application/vnd.ms.wms-hdr.asfv1$
acl StreamingRequest3 req_mime_type -i ^application/x-mms-framed$
acl StreamingRequest4 req_mime_type -i ^audio/x-pn-realaudio$
acl StreamingReply1 rep_mime_type -i ^video/x-ms-asf$
acl StreamingReply2 rep_mime_type -i ^application/vnd.ms.wms-hdr.asfv1$
acl StreamingReply3 rep_mime_type -i ^application/x-mms-framed$
acl StreamingReply4 rep_mime_type -i ^audio/x-pn-realaudio$

delay_access 1 allow StreamingRequest1
delay_access 1 allow StreamingRequest2
delay_access 1 allow StreamingRequest3
delay_access 1 allow StreamingRequest4
delay_access 1 allow StreamingReply1
delay_access 1 allow StreamingReply2
delay_access 1 allow StreamingReply3
delay_access 1 allow StreamingReply4

delay_access 1 allow limitar
delay_access 1 allow videos
#######################################################################
#################   FIN DELAY POOLS  BY CESAR ROCHA  #####################
#######################################################################

De aca lo tome: http://www.brazilfw.com.br/forum/viewtopic.php?f=9&t=70792&start=40

btocarmona

Amigo me interesa mucho este tema lastima que desconozco como implementar esta limitacion en el raptor cache realmente no se que debo modificar para que el proxy no me tome todo el ancho de banda cuando se mira un video o cuando se realiza una descarga ojala alquien con mas conocimientos me pueda dar una mano,desde ya gracias

freedarwuin


firecold

Cita de: btocarmona en Julio 01, 2013, 01:31:57 AM
Amigo me interesa mucho este tema lastima que desconozco como implementar esta limitacion en el raptor cache realmente no se que debo modificar para que el proxy no me tome todo el ancho de banda cuando se mira un video o cuando se realiza una descarga ojala alquien con mas conocimientos me pueda dar una mano,desde ya gracias
Cita de: freedarwuin en Julio 01, 2013, 08:58:26 AM
ME INTERESA EL TEMA.

Falta de confianza pregunten y hare lo posible por responder y hasta de formar una configuracion para su beneficio, Saludos

iDiabloo666

para hacer el balanceo es necesario tener linux¿?  tener el raptor???  solo cuento con squid3.0 cabe recalcar, q de momento es lo unico que se poner en el windows 7 XD
estoy indagando sobre zarg o sarg, creo q asis e llama, pero bueno se puede implementar al squid.conf?   
se puede usar 2-3 lineas de delay pool`s ala ves? de la misma clase?
------------------------------------------------------------------------------------------------
delay_access 1 allow lan                 # el delay pool 1  para la red lan
delay_access 2 allow wireless           # el delay pool 2  para la red wireless
------------------------------------------------------------------------------------------------
o es por el hecho que tienes wifii? muchas preguntas por mic abeza XD


gracias

firecold

Cita de: iDiabloo666 en Agosto 25, 2013, 12:39:59 PM
para hacer el balanceo es necesario tener linux¿?  tener el raptor???  solo cuento con squid3.0 cabe recalcar, q de momento es lo unico que se poner en el windows 7 XD
estoy indagando sobre zarg o sarg, creo q asis e llama, pero bueno se puede implementar al squid.conf?  
se puede usar 2-3 lineas de delay pool`s ala ves? de la misma clase?
------------------------------------------------------------------------------------------------
delay_access 1 allow lan                 # el delay pool 1  para la red lan
delay_access 2 allow wireless           # el delay pool 2  para la red wireless
------------------------------------------------------------------------------------------------
o es por el hecho que tienes wifii? muchas preguntas por mic abeza XD

gracias

puedes usar varias lineas en delay_pools, solo tienes que hacerle saber a squid cuantas vas a utilizar, por ejemplo si voy a limitar dos redes o varios grupos de maquinas, epecifico cuantos delay pool voy a usar:

delay_pools 2   # si vas a usar dos reglas
delay_pools 3  # si vas a usar 3 reglas de delay_pools y asi sucesivamente

iDiabloo666

perfecto!!!! de momento me va bien,pero creo que me pasa algo de lag en las paginas .____."
no se  !!! ayuda !! por favooor!!! a corregir mis lineas!!!

###################################################################
#################   DELAY POOLS  BY CESAR ROCHA ###########################
delay_pools 2
delay_class 1 3
##############una vez los archivos descargados por IP exceden los 1048576 bytes (1MB)
##############las descargas proseguirán a 16384 bytes/s (128 Kb) 8192bytes 6143(64)  
delay_parameters 1 -1/-1 -1/-1 8192/1048576
###############Queremos limitar la descarga de este tipo de archivos
acl limitar urlpath_regex -i \.(|exe|mov|mp3|mpeg|mpg|msi|mso|ogg|rar|wav|wma|wmv|vob|zip)$
delay_access 1 allow limitar

#---------------------------------------------------
# YOUTUBE TODOS LOS VIDEOS
#---------------------------------------------------
delay_class 2 3
delay_parameters 2 -1/-1 -1/-1 24192/1048576
acl limitar1 urlpath_regex -i \.(avi|bin|fla|flv|mov|mp4|3gp)$
acl limitar1 urlpath_regex
############### En este archivo aplico delay pool por dominio (por ejemplo, sin esta acl, el youtube y todas sus variantes (hay que incluirlas
############### claro) no pasan por la limitacion), ya que delay pool por extensiones no limita los videos flv o swf  en dominios que usan balanceo de carga
acl videos url_regex -i "c:\squid\videos.txt"
############### Incluyo en el delay pool el tráfico streaming (audio y video), ya que el delay pool utilizando extensiones como tal,
############### no controla este tipo de contenido (el streaming)
acl StreamingRequest1 req_mime_type -i ^video/x-ms-asf$
acl StreamingRequest2 req_mime_type -i ^application/vnd.ms.wms-hdr.asfv1$
acl StreamingRequest3 req_mime_type -i ^application/x-mms-framed$
acl StreamingRequest4 req_mime_type -i ^audio/x-pn-realaudio$
acl StreamingReply1 rep_mime_type -i ^video/x-ms-asf$
acl StreamingReply2 rep_mime_type -i ^application/vnd.ms.wms-hdr.asfv1$
acl StreamingReply3 rep_mime_type -i ^application/x-mms-framed$
acl StreamingReply4 rep_mime_type -i ^audio/x-pn-realaudio$

delay_access 1 allow StreamingRequest1
delay_access 1 allow StreamingRequest2
delay_access 1 allow StreamingRequest3
delay_access 1 allow StreamingRequest4
delay_access 1 allow StreamingReply1
delay_access 1 allow StreamingReply2
delay_access 1 allow StreamingReply3
delay_access 1 allow StreamingReply4

delay_access 1 allow limitar1
delay_access 1 allow videos
#######################################################################
#################   FIN DELAY POOLS  BY CESAR ROCHA  ##################
#######################################################################


hace q las paginas esten muy lentas .___." ys egun net limiter pro  les esta dando el squid el delay pool 1 para navegar, por q????

como hago que  youtube tome la velocidad arriba de 128kbs
y la descarga de mp3  come 64kbps
y al navegar este normal!!!!
como??? por fa!

SE MANEJARIA TRES REGLAS????una para el internet total? otra para la descarga??? y otros para el youtube?????
que alguien me explique XD

firecold

lo que pasa es que tiene que aplicar tres delay_pools y talvez mas si tienes mas de una red o mas de un rango de red, ejemplo:


acl accesototal src "/etc/squid3/accesototal.txt"   # regla de acceso total, quiere decir sin restricciones de ningun tipo
acl magic_words1 url_regex -i 192.168.1    # segmento de red, esta acl con delay_pools nos permitira que la navegacion en nuestra red sea fluida
acl magic_words2 url_regex -i \.exe$ \.mp3$ \.zip$ \.rar$ \.avi$ \.wav$ \.mov$ \.3gp$ \.mov$ \.flv$ \.aac$ \.wma$ \.ogg$ \.mka$ \.asf$ \.iff$ \.amv$ \.cab$ \.tar.gz$   # extensiones a limitar a todos los demas con delay_pools menos a accesototal


# -----------------------------------------------------------------------------
# DELAY POOL PARAMETERS
# -----------------------------------------------------------------------------
delay_pools 3      # numero de reglas de delay_pools
delay_class 1 2    # esta regla dice que el la regla no. 1 y clase 2
delay_parameters 1 -1/-1 -1/-1   
delay_access 1 allow accesototal  #este parametro nos dice que el primer delay_pools permitido no tiene limite de descarga ni de navegacion
# -----------------------------------------------------------------------------
delay_class 2 2    # esta regla dice que el la regla no. 2 y clase 2
#-1/-1 significa que no hay limites.
delay_parameters 2 -1/-1 -1/-1   # igual que el delay_parameter 1 este es sin limites
delay_access 2 allow magic_words1   #este parametro permite que la navegacion no sufra ningun retraso o lag
# -----------------------------------------------------------------------------
delay_class 3 2  # esta regla dice que el la regla no. 3 y clase 2
delay_parameters 3 131072/131072 32768/32768 # esto me permite crear un retraso en las extensiones arriba descritas, dandoles una velocidad total de descarga de 1Mb y a cada usuario por maquina un maximo de velocidad de descarga de 32KB
delay_access 3 allow magic_words2   # permitiendo la regla de extensiones a limitar
   

Citar# TABLA DE EQUIVALENCIAS
#2048 B ==> 16 kb ==> 2KB
#4096 B ==> 32 kb ==> 4KB
#8192 B ==> 64 kb ==> 8KB
#16384 B ==> 128kb ==> 16KB
#32768 B ==> 256Kb ==> 32KB
#65536 B ==> 512Kb ==> 64KB
#131072 B ==> 1 Mb ==> 128KB
#196608 B ==> 1.5 Mb ==> 192KB
#262144 B ==> 2 Mb ==> 256KB

Delay_Pools

Espero te sirva como ejemplo, para lo que quieres implementar, Saludos

iDiabloo666

GRACIAS!!! POR EL DATO!!


acl magic_words1 url_regex -i 192.168.1

esa parte estara bien para mi windows 7??????

jugando con las configuraciones!!!! para q de bien, pues pasa algo que no me deja q arranque el squid!!
pero le buscare la manera XD
estoy con esto desde esta mañana!!!

gracias!

firecold

Cita de: iDiabloo666 en Agosto 26, 2013, 06:03:17 PM
GRACIAS!!! POR EL DATO!!


acl magic_words1 url_regex -i 192.168.1

esa parte estara bien para mi windows 7??????

jugando con las configuraciones!!!! para q de bien, pues pasa algo que no me deja q arranque el squid!!
pero le buscare la manera XD
estoy con esto desde esta mañana!!!

gracias!

Esta parte:

acl magic_words1 url_regex -i 192.168.1

es dependiendo su red, si su red, 192.168.10.0/24, entonces lo deja:

acl magic_words1 url_regex -i 192.168.10

lo que usted quiere es decirle a squid que todas las ips que comienzen con esto tendran prioridad, Saludos

iDiabloo666

COMPAÑEROOO CALAMAR ( SQUID ) XD


tengo problemas con esta linea,
delay_parameters 1 -1 -1 -1 -1

no tengo que darle una ACL??? dandole el rango de ip`s?¿????
salud
saludos!!!!

firecold

Cita de: iDiabloo666 en Agosto 26, 2013, 09:02:45 PM
COMPAÑEROOO CALAMAR ( SQUID ) XD


tengo problemas con esta linea,
delay_parameters 1 -1 -1 -1 -1

no tengo que darle una ACL??? dandole el rango de ip`s?¿????
salud
saludos!!!!

se me olvido mencionar que tiene que quedar asi:

delay_parameters 1 -1/-1 -1/-1

es que si pongo muchas barras no me deja postear, Saludos

iDiabloo666

si era la barra inclinada!! q le faltaba XD fueron de mucha ayuda tus configuraciones!!!gracias!!!
la descarga de mp3 la puse a 9kb por segundo

como le hago esta?? para
magic_wards3
es la regla donde ubique a los .flv .3gp .mp4
para tenerla en 24kb por seg
pero se dispara a 40-48kb
#-------------------------------------------------------
acl magic_words3 url_regex -i .3gp .flv .mp4
#------------------------------------------------------
delay_class 4 2
delay_parameters 4 750576/1048576 24536/24536
delay_access 4 allow magic_words3
#--------------------------------------------------------

si esta mal dime en cual,por favor : /

como le haria para usar la de brasil???

#########################
delay_class 4 3              #<-------------- como puedo hacerle para q este delay solo sea para youtube y videos en general  en el navegador
delay_parameters 2 -1/-1 -1/-1 20192/1048576       #<----esta equivalencia puedo decir si es 20kbs por segundo = a 20.000bytes?? estoy mal?
acl limitar1 urlpath_regex -i \.(avi|bin|fla|flv|mov|mp4|3gp)$ #<--------


delay_access 1 allow limitar1
#################################
me olvido mejor de esta??? XD y no la pongo?? la verdad no se sie sta bien o mal


grcias!!! por la ayuda!!! y gracias al foro!!! a todos, por q andube leyendo todingo para saber en que le andaba pelando XD
de momento ya me agarro


.________."

sanyoo

Hola:

Tengo una situación y quisiera saber si está bien encarado como lo hice en Squid.

En mi red tengo dos PC a las que le quiero dar 256kb de velocidad cada una, y el resto de la red quiero darle 512kb en general.

Hice las acl para PC1 y PC2 con su IP/32 (192.168.1.18/32 y 192.168.1.115/32), y la LAN tiene la IP/24 (192.168.1.0/24)

luego:
#defino 3 delay pools de clase 1
delay_pools 3
delay_class 1 1
delay_class 2 1
delay_class 3 1
# acceso a 256 kb. y 512 kb respectivamente:
delay_parameters 1 32000/32000
delay_parameters 2 32000/32000
delay_parameters 3 64000/64000
# PC1 y PC2 acceden a sus respectivos anchos de banda y deniego el resto.
delay_access 1 allow PC1
delay_access 1 deny all
delay_access 2 allow PC2
delay_access 2 deny all
# Por fin le doy acceso al resto de la red.
delay_access 3 allow all

Quisiera saber si me falta algo o así debe funcionar bien.
Lo probé y todas las PC de la red tienen acceso a internet, lo que no pude probar es si reserva ancho de banda para PC1 y PC2, no se que programa usar para chequear esto.

Gracias.
Un abrazo
Daniel "Sanyoo"

RASTAMAN

Buenas , hazle un test de velocidad lo demas se ve bien

jesus3602

amigos agreguenme para que me ayuden a colocar esa regla en mi raptor xq tengo una red pequeña y quisiera que me sea mas fluida ya que tengo raptor sin mikrotik tengo el debian y montado el raptor solo eso me va fino pero quiiero ponerla mas fluida mi correo es jesuspcservices@hotmail.com estare conectado toda la tarde
Despues de un final de circuito, hay un comienzo para un codigo en "C+ "Informatica Pura"

sanyoo

Cita de: RASTAMAN en Enero 31, 2014, 02:26:22 PM
Buenas , hazle un test de velocidad lo demas se ve bien

Gracias Rastaman por la respuesta y a todos por los aportes, excelente foro!

Saludos!
Daniel "Sanyoo"

Rainwod

hola gente, soy nuevo en este mundo de linux.... tengo un problema, quiero establecer uno pequeños delays de retardo para ahorrar añcho de banda, pero quiero hacerlo solo a los usuarios que yo decida, alguien me puede explicar como puedo hacerlo??