Existe un problema en una red local, donde varios usuarios se conectan a internet y es que cuando algien se quiere bajar un archivo, consume todo el ancho de banda, dejando al resto de usuarios sin casi velocidad de conexión.
Vamos a controlar el ancho de banda del proxy squid usando colas de prioridad o delay pools.
Esto está probado con linux debian woody.
Instalaremos las utilidades de compilación, desde consola como
root:
apt-get install gcc libc-dev make
Yo me baje el fichero:
squid-2.5.STABLE4.tar.gz
Descomprimirlo en /var/tmp:
tar xzpf squid-2.5.STABLE4.tar.gz
/opt/squid/etc/squid.conf
#squid.conf #Todas las opciones de este archivo se encuentran muy bien documentadas en el #propio squid.conf así #como en http://www.visolve.com/squidman/Configuration%20Guide.html # #Los puertos por los que escuchará nuestro Squid. http_port 8080 icp_port 3130 #los cgi-bin no se cachearán. acl QUERY urlpath_regex cgi-bin \? no_cache deny QUERY #La memoria que usará Squid. Bueno, Squid usará mucha más que ésa. cache_mem 16 MB #250 significa que Squid usará 250 megabytes de espacio en disco. cache_dir ufs /cache 250 16 256 #Lugares en los que irán los archivos de bitácora de Squid. cache_log /var/log/squid/cache.log cache_access_log /var/log/squid/access.log cache_store_log /var/log/squid/store.log cache_swap_log /var/log/squid/swap.log #Cuántas veces rotar los archivos de bitácora antes de borrarlos. #Acuda a la FAQ para más información. logfile_rotate 10 redirect_rewrites_host_header off cache_replacement_policy GDSF acl localnet src 192.168.1.0/255.255.255.0 acl localhost src 127.0.0.1/255.255.255.255 acl Safe_ports port 80 443 210 119 70 20 21 1025-65535 acl CONNECT method CONNECT acl all src 0.0.0.0/0.0.0.0 http_access allow localnet http_access allow localhost http_access deny !Safe_ports http_access deny CONNECT http_access deny all maximum_object_size 3000 KB store_avg_object_size 50 KB #Configure esto si quiere que su proxy funcione de manera transparente. #Eso significa que por lo general no tendrá que configurar todos los #navegadores de sus clientes, aunque tiene algunos inconvenientes. #Si deja esto sin comentar no pasará nada peligroso. httpd_accel_host virtual httpd_accel_port 80 httpd_accel_with_proxy on httpd_accel_uses_host_header on #Todos los usuarios de nuestra LAN serán vistos por los servidores web #externos como si usasen Mozilla en Linux. :) anonymize_headers deny User-Agent fake_user_agent Mozilla/5.0 (X11; U; Linux i686; en-US; rv:0.9.6+) Gecko/20011122 #Para acelerar aún más nuestra conexión ponemos dos líneas similares a las #de más abajo. Apuntarán a un servidor proxy [parent] que usará nuestro propio #Squid. No olvide cambiar el servidor por uno más rápido para usted. #Puede utilizar ping, traceroute y demás herramientas para comprobar la #velocidad. Asegúrese de que los puerto http e icp son los correctos. #Descomente las líneas que comienzan por "cache_peer" de ser necesario. #Éste es el proxy que va a usar para todas las conexiones... #cache_peer w3cache.icm.edu.pl parent 8080 3130 no-digest default #...excepto para las direcciones e IPs que comiencen por "!". #No es buena idea usar un mayor #cache_peer_domain w3cache.icm.edu.pl !.pl !7thguard.net !192.168.1.1 #Esto resulta útil cuando queremos usar el Cache Manager. #Copie cachemgr.cgi al cgi-bin de su servidor web. #Podrá acceder a él una vez lo haya hecho introduciendo en un navegador #la dirección http://su-servidor-web/cgi-bin/cachemgr.cgi cache_mgr your@email cachemgr_passwd secret_password all #Éste es el nombre de usuario con el que trabajará nuestro Squid. cache_effective_user squid cache_effective_group squid log_icp_queries off buffered_logs on #####DELAY POOLS #Ésta es la parte más importante para configurar el tráfico entrante con #Squid. Para una descripción detallada acuda al archivo squid.conf o a la #documentación de http://www.squid-cache.org #No queremos limitar las descargas en nuestra red local. acl magic_words1 url_regex -i 192.168 #Queremos limitar la descarga de este tipo de archivos #Ponga todo esto en una única línea acl magic_words2 url_regex -i ftp .exe .mp3 .vqf .tar.gz .gz .rpm .zip .rar .avi .mpeg .mpe .mpg .qt .ram .rm .iso .raw .wav .mov #No bloqueamos .html, .gif, .jpg y archivos similares porque por lo general #no consumen demasiado ancho de banda. #Queremos limitar el ancho de banda durante el día permitiendo #el ancho de banda completo durante la noche. #¡Cuidado! con el acl de abajo sus descargas se interrumpirán #a las 23:59. Lea la FAQ si quiere envitarlo. acl day time 09:00-23:59 #Tenemos dos delay_pools diferentes #Acuda a la documentación de Squid para familiarizarse #con delay_pools y delay_class. delay_pools 2 #Primer delay pool #No queremos retrasar nuestro tráfico local #Hay tres cases de pools; aquí sólo hablaremos de la segunda. #Primera clase de retraso (1) de segundo tipo (2). delay_class 1 2 #-1/-1 significa que no hay límites. delay_parameters 1 -1/-1 -1/-1 #magic_words1: 192.168 que ya hemos puesto antes delay_access 1 allow magic_words1 #Segundo delay pool. #Queremos retrasar la descarga de los archivos mencionados en magic_words2. #Segunda clase de retraso (2) de segundo tipo (2). delay_class 2 2 #Los números siguientes son valores en bytes; #Debemos recordar que Squid no tiene en cuenta los bits de inicio/parada #5000/150000 son valores para la red al completo #5000/120000 son valores para la IP independiente #una vez los archivos descargados exceden los 150000 bytes, #(o el doble o el triple) #las descargas proseguirán a 5000 bytes/s delay_parameters 2 5000/150000 5000/120000 #Ya hemos configurado antes el día de 09:00 a 23:59. delay_access 2 allow day delay_access 2 deny !day delay_access 2 allow magic_words2
mkdir /cache
addgroup squid
useradd -d /cache/ -g squid -s /dev/null squid
mkdir /var/log/squid/
chown squid:squid /var/log/squid/
chmod 770 /var/log/squid/
chown -R squid:squid /opt/squid/
chown -R squid:squid /cache/
This document was generated using the LaTeX2HTML translator Version 2002-2-1 (1.70)
Copyright © 1993, 1994, 1995, 1996, Nikos Drakos,
Computer Based Learning Unit, University of Leeds.
Copyright © 1997, 1998, 1999, Ross Moore, Mathematics
Department, Macquarie University, Sydney.
The command line arguments were:
latex2html squidcolas -no_subdir -split 0
-local_icons 1 -show_section_numbers -no_auto_link
-no_navigation
The translation was initiated by Paco Aldarias on 2004-01-30