Limitare la banda in download con squid

From RVM Wiki
Jump to navigation Jump to search

E' possibile limitare la velocità di download attraverso il proxy, tramite l'utilizo dei Delay Pools

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)
    • 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 5000/150000 5000/120000

Quindi:

  • 2 = numero pool
  • 5000 = oltre i 5000 bytes di dimensione, scatta la limitazione per il limite globale
  • 150000 = lo scaricamento è limitato a 150kbit/sec globalmente
  • 5000 = oltre i 5000 bytes di dimensione, scatta la limitazione per il limite singolo
  • 120000 = lo scaricamento è limitato a 120kbit/sec per singola connessione

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 5000/150000 5000/120000
delay_access 2 allow files_limitati


Riferimenti