Limitare la banda in download con squid: Difference between revisions

From RVM Wiki
Jump to navigation Jump to search
mNo edit summary
 
(One intermediate revision by the same user not shown)
Line 1: Line 1:
E' possibile limitare la velocità di download attraverso il proxy, tramite l'utilizo dei ''Delay Pools''
=Introduzione=


*E' possibile limitare la velocità di download attraverso il proxy, tramite l'utilizzo dei ''Delay Pools''
*Si vogliono ottenere i seguenti risultati:
:* Non limitare la velocità di download per eventuali connessioni a risorse in LAN (subnet 192.168.0.0/16)
:* Non limitare la velocità di scaricamento per files di dimensione inferiore ai 512KByte
:* Limitare la velocità di download GLOBALE a 4Mbit/s per files scaricati superiori a 512KByte
:* Limitare la velocità do download per singolo client a 4Mbit/s per files scaricati superiori a 512KByte
=Calcolo dei valori=
* I valori da inserire sono espressi in Byte, cioè 8 bit
== Valore Banda==
* Calcolo banda da valore in Mb/s:
valore da inserire = banda_in_megabit / 8 * 1024 * 1000
* Ad esempio se vogliamo convertire 4Mb/s:
4 / 8 * 1024 * 1000 = 512000
* Calcolo banda da valore in Kb/s
valore da inserire = banda_in_kilobit / 8 * 1000
* Ad esempio se vogliamo convertire 4096 Kb/s:
4096 / 8 * 1000 =  512000
== Valore Dimensione==
* Calcolo dimensione file da valore in Kilobyte:
valore_da_inserire = dimensione_in_kilobyte * 1000
* Ad esempio se vogliamo convertire 512 KB:
512 * 1000 =  512000
* Calcolo dimensione file da valore in Megabyte:
valore_da_inserire = dimensione_in_megabyte * 1024 *1000
* Ad esempio se vogliamo convertire 4MB:
4 * 1024 * 1000 =  4096000
= Configurazione =
Inserire in squid.conf le seguenti direttive:
Inserire in squid.conf le seguenti direttive:



Latest revision as of 11:29, 4 March 2016

Introduzione

  • E' possibile limitare la velocità di download attraverso il proxy, tramite l'utilizzo dei Delay Pools
  • Si vogliono ottenere i seguenti risultati:
  • Non limitare la velocità di download per eventuali connessioni a risorse in LAN (subnet 192.168.0.0/16)
  • Non limitare la velocità di scaricamento per files di dimensione inferiore ai 512KByte
  • Limitare la velocità di download GLOBALE a 4Mbit/s per files scaricati superiori a 512KByte
  • Limitare la velocità do download per singolo client a 4Mbit/s per files scaricati superiori a 512KByte

Calcolo dei valori

  • I valori da inserire sono espressi in Byte, cioè 8 bit

Valore Banda

  • Calcolo banda da valore in Mb/s:
valore da inserire = banda_in_megabit / 8 * 1024 * 1000
  • Ad esempio se vogliamo convertire 4Mb/s:
4 / 8 * 1024 * 1000 = 512000
  • Calcolo banda da valore in Kb/s
valore da inserire = banda_in_kilobit / 8 * 1000
  • Ad esempio se vogliamo convertire 4096 Kb/s:
4096 / 8 * 1000 =  512000

Valore Dimensione

  • Calcolo dimensione file da valore in Kilobyte:
valore_da_inserire = dimensione_in_kilobyte * 1000
  • Ad esempio se vogliamo convertire 512 KB:
512 * 1000 =  512000
  • Calcolo dimensione file da valore in Megabyte:
valore_da_inserire = dimensione_in_megabyte * 1024 *1000
  • Ad esempio se vogliamo convertire 4MB:
4 * 1024 * 1000 =  4096000

Configurazione

Inserire in squid.conf le seguenti direttive:

Per evitare di limitare dei download da siti intranet, definire l'acl:

acl traffico_intranet url_regex -i 192.168

Scegliamo di limitare il download solo di determinati tipi di files, definendo l'acl:

acl files_limitati url_regex -i ftp .exe .mp3 .vqf .tar.gz .gz .rpm .zip .rar .avi .mpeg .mpe .mpg .qt .ram .rm .iso .raw .wav .mov


Creiamo due delay pools:

delay_pools 2

Definiamo ora i parametri per il primo pool, definendolo di classe 2 (vedi di seguito)

delay_class 1 2
#First delay class (1) of second type (2).

Il tipo di classe di delay 2 permette di definire due tipi di limiti:

  • Il primo è il limite aggregato di velocità. Questo limite viene specificato nella forma a/b
    • a: dimensione in byte oltre il quale scatta la limitazione (files di dimensioni inferiori a questa vengono scaricatia a piena veloità, generando traffico burts)

verificare **b: limite di velocità in bit/sec

  • Il secondo è il limite specifico per ogni singolo ip connesso. Anch'esso è espresso nella stessa forma precedente.

Definiamo ora i limiti da imporre al pool 1, che vogliamo sia il pool senza limiti:

delay_parameters 1 -1/-1 -1/-1
#-1/-1 mean that there are no limits.

Ora definiamo quali connessioni ammettere in questo pool, che saranno quelle destinate agli indirizzi intranet:

delay_access 1 allow traffico_intranet

Definiamo ora il secondo pool anche questo di classe 2:

delay_class 2 2

Definiamo i limiti di questo pool numero 2:

delay_parameters 2 64000/100000 60000/100000

Quindi:

  • 2 = numero pool

verificare * 64000 = lo scaricamento è limitato a 64kByte/sec (512kBit/sec) globalmente

  • 100000 = oltre i 100 kBytes di dimensione, scatta la limitazione per il limite globale

verificare * 60000 = lo scaricamento è limitato a 60kByte/sec (480kBit/sec) per singola connessione

  • 100000 = oltre i 100 kBytes di dimensione, scatta la limitazione per il limite singolo
delay_parameters 2 512000/1000000 256000/1000000
# 4Mbit/s /8 =512kB/s start at 1000KB=1MB GLOBAL
# 2Mbit/s /8 =256kB/s start at 1000KB=1MB Individual
delay_access 2 allow files_limitati


Definiamo quindi quale traffico entra in questo pool, che sarà quello degli url contenenti le estensioni precedentemente definite:

delay_access 1 allow files_limitati

Riassumendo:

acl traffico_intarnet url_regex -i 192.168
acl files_limitati url_regex -i ftp .exe .mp3 .vqf .tar.gz .gz .rpm .zip .rar .avi .mpeg .mpe .mpg .qt .ram .rm .iso .raw .wav .mov

delay_pools 2
 
delay_class 1 2
delay_parameters 1 -1/-1 -1/-1
delay_access 1 allow traffico_intranet

delay_class 2 2
delay_parameters 2 100000/64000 100000/60000
delay_access 2 allow files_limitati


Riferimenti