delay spool con squid

Imagen de falcom

Forums: 

Saludos, en vista de varias peticiones sobre como implementar restricciones con delay pools en squid pongo un ejemplo q les explico paso a paso para que entiendan es un poquito complejo pero a la final entendible espero les sirva:

#Primero de ley para q no se pierdan
#TABLA DE EQUIVALENCIAS
#8192 b/s ==> 64 Kb
#16384 b/s ==> 128 kB
#32768 b/s ==> 256 Kb
#65536 b/s ==> 512 Kb
#131072 b/s ==> 1 Mb
#196608 b/s ==> 1.5 Mb
#262144 b/s ==> 2 Mb

#EMPIEZA EL FILTRADO CON UN TOTAL DE 1.5 mb

delay_pools 3

#es el numero de delays q vamos a usar en el ejemplo


delay_class 1 2

#este parametro nos indica que el Delay Pool número 1 será de clase 2
#el 2 es el tipo de clase de los delay existen 3 clases, se escoge la clase 2 por que consiste en un canal comun con #256 canales individuales. Es decir tenemos un canal global y dentro de el 256 canales que se aplican a las maquinas #de una red clase C, que es la mas comun


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

#aca indicamos que el delay parameters 1 tiene asignado el ancho de banda global (el 1.5 Mb)
#-1/-1 significa todo sin restricciones
#los valores de delay_parameters (rate / size) son dados en Bytes.


acl rf src 192.168.0.1/32

# este es una ip cualquiera a la q vamos a dar full acesso
delay_access 1 allow rf
#ACA le estamos dando acceso a la ip 192.168.0.1


delay_class 2 2

#este parametro nos indica que el Delay número 2 será de clase 2

delay_parameters 2 131072/131072 16384/8192

#aca indicamos que el delay parameters 2 tiene asignado un ancho de banda de 1 Mb, cada usuario dentro del pool tiene un límite promedio de 128k, pero puede bajarse objetos pequeños a 64 K.

acl red_local src 192.168.0.2-192.168.0.200/24

#aca declaramos el resto de la red para los mortales

delay_access 2 allow red_local

#ACA le estamos dando acceso a el resto de la red desde la ip 192.168.0.2 hasta 192.168.0.200

#Filtrado a otras ips con 256Kb de un total de 1.5 Mb

acl rf1 src 192.168.201-192.168.0.254/24

##aca declaramos otra red para darle 256Kb

delay_class 3 2

#este parametro nos indica que el Delay Pool número 3 será de clase 2

delay_parameters 3 32768/32768 8192/8192

#aca indicamos que el delay parameters 3 tiene asignado un ancho de banda de 256Kb y cada usuario tiene un limite promedio de 64 K

delay_access 3 allow rf1

#ACA le estamos dando acceso a la red desde la ip 192.168.0.201 hasta 192.168.0.254

Pueden monitorear los Delay Pools con el comando:

squidclient mgr:delay | less

Notas:
- Los Delay Pools, no comparten ancho de banda. Esta es la principal limitación. Si existe un solo cliente demandando ancho banda de Internet la cantidad máxima de canal que recibe esta limitado por el Delay más restrictivo que lo cobija sin importar que él sea el único haciendo peticiones al caché. Si el cliente tiene asignados 20KB/s y hay 200KB/s sin usar, seguirá recibiendo los cache misses a máximo 20KB/s. Si su objetivo es optimizar el uso del canal, por este lado, no hay mucho por hacer.
- Están fuertemente orientados hacia el subnetting de la red. Se identifican los clientes por los últimos bits del número IP. Si sus clientes se identifican en Squid por un nombre de usuario y desea asignar canal por usuario y no por IP, alli se joden asi a poner ips fijas a toda su red (a trabajar chicos)
- Son un método para mantener a raya a los usuarios que joden mucho, (los tipicos q navegan todo el dia y tratan de descargar infinidad de archivos) más que para optimizar el uso del canal. Los Delay Pools se implementan cuando el ancho de banda es un recurso escaso, costoso y hay usuarios abusivos, como los de mi red jeje.
- Como todos saben los delay pools solo controlan la bajada con squid, no la subida, no controla el ancho de banda utilizado por ejem por los programas P2P (gran trabajo q nos toca afrontar)
Si desean un control total pasa por parchar el kernel con layer7 + iptables (eso si es seguro), comming soon el manual terminadito..
Saludos
PD: Cualquier comentario avisen!

Gracias

Por fin aprendí como trabaja de Delay Pool Squid excelente Aporte

Soy responsable de lo que digo y escribo, no de lo que interpretes