Pages

Selasa, 14 Juni 2011

Squid Delay Pool

sumberhttp://mandriva-user.or.id/?p=368


Begitu mahalnya harga internet di Indonesia, membuat penyedia jasa harus ekstra hati-hati dalam memberikan pelayanan. Satu sisi klien ingin harga murah, di sisi lain klien tidak ingin membayar mahal untuk koneksi internet kencang. Warnet misalnya, dengan 3000 sampai 5000 rupiah per jam dan koneksihanya up to 1 Mbps harus dipaksa melayani lebih dari 10 PC, yang pastinya akan sangat terasa lambatnya jika tidak diatur dengan pengatur bandwidth. Salah satu solusinya dengan squid.
Squid sendiri aplikasi yang digunakan sebagai server proxy cache,http://id.wikipedia.org/wiki/Squid. Selain itu juga bisa mengatur permintaan bandwidth. Delay Pool sendiri adalah salah satu fitur Squid yang digunakan untuk melakukan pembatasan bandwidth.
Ada beberapa istilah di dalam delay pool.
delay_pools
menyatakan berapa banyak bagian/pool yang akan dibuat
delay_pools 1
Ket : hanya ada 1 pool yang kita berlakukan
delay_class
Opsi ini menspesifikasikan kelompok dari masing-masing pool yang telah didefinisikan pada opsi delay-pools. Ada tiga class yang didukung Squid sebelum versi 3, antara lain:
• class 1: Semua akses dibatasi dengan single bucket, artinya satu aturan untuk semua semua jaringan.
• class 2: Semua akses dibatasi dengan single agregate dengan dua parameter bandwidth. Parameter pertama mendefinisikan berapa bandwidth maksimal seluruh jaringan, parameter kedua mendefinisikan bandwidth yang lebih spesifik untuk per klien.
• class 3: Kelompok yang definisi bandwidth-nya paling mendetail.Parameter pertama mendefinisikan berapa bandwidth maksimal seluruh jaringan, parameter kedua mendefinisikan berapa bandwidth normal yang didapatkan per client , dan parameter yang ketiga adalah mendefinisikan bandwidth yang didapatkan client jika mengakses file tertentu yang spesifik, misalnya file mp3.
delay_class 1 3
Ket : pool 1 memiliki 3 class, artinya akan ada 3 aturan di dalam pool 1
delay_access
Memberi batasan siapa saja yang boleh mempergunakan delay pools ini.
Penting untuk diingat sebaiknya setelah menetukan batasan jangan lupa di akhiri dengan deny all.
delay_access 1 allow localnet
delay_access 1 deny all
delay_parameters
Ini adalah bagian terpenting dari delay pools memberikan aturan main setiap delay pools yang dibentuk.
delay parameter mempunyai format yang disesuaikan dengan tipe/class yang dipakai.
Tapi disetiap tipe yang dipakai ada 1 format baku yaiturestore/max
restore menunjukkan maksimum kecepatan data yang dapat dilewatkan bila harga max sudah terlampaui, dalam satuanbytes/second
max menunjukkan besar-nya file atau bucket yang dapat dilewatkan tanpa melalui proses delay. dalam satuan bytes.
Yang perlu diperhatikan dari satuan diatas adalah harga restore dimana kita sering menerima/menyewa/membeli bandwidth dari provider dalam satuan bits/second bukan bytes/second. Sedangkan satuan kecepatan yang ditunjukkan oleh Microsoft pada saat mendonlot file adalah bytes/sec.
Sedangkan satuan dari harga max sudah sesuai dengan kebiasaan sehari-hari, dimana kita memberi besaran bytes pada file-file.
1 byte = 8 bit.
Disinilah aturan pembatasan bandwidth berlaku. Max adalah kondisi dimana kita mendapatkan semua jatah bandwidth yang ada atau disaat pemakaian bukan pada puncaknya. Restore adalah kondisi ketika bandwidth mencapai puncaknya, dan setiap aturan akan mendapatkan bandwidth maksimal dari harga restore yang sudah kita set.
delay_parameters 1 -1/-1 24000/32000 16000/32000
Ket :
Pool 1 memiliki 3 class.
Class 1 memiliki harga -1/-1 artinya keseluruhan bandwidth yang ada di alokasikan untuk seluruh jaringan client squid.
Class 2 memiliki harga 24000/32000 artinya masing-masing client squid akan mendapatkan jatah bandwidth maksimal sebesar 32000 bytes/second atau 256 kbps dan ketika high trafic hanya akan mendapatkan maksimal 24000 bytes/second atau 192 kbps.
Class 3 memiliki harga 16000/32000 artinya ketika mendownload sebuah file, client squid akan mendapatkan jatah bandwidth maksimal sebesar 32000 bytes/second atau 256 kbps dan ketika high trafic hanya akan mendapatkan maksimal 16000 bytes/second atau 128 kbps.
Berikut contoh sederhana squid delay pool
Contoh 1
acl all src 0.0.0.0/0.0.0.0
acl admin src 192.168.1.250/255.255.255.255
acl server src 192.168.1.251/255.255.255.255
acl umum src 192.168.1.0/255.255.255.0
acl staff src 192.168.1.1 192.168.1.111 192.168.1.2 192.168.1.4 192.168.1.71
delay_pools 3
delay_class 1 1
delay_parameters 1 -1/-1
delay_access 1 allow admin
delay_access 1 allow server
delay_access 1 deny all
delay_class 2 1
delay_parameters 2 1500/64000
delay_access 2 allow staf
delay_access 2 deny all
delay_class 3 1
delay_parameters 3 1000/32000
delay_access 3 allow umum
delay_access 3 deny all
Ket :
  • admin, server dengan bandwidth unlimited
  • staff dengan bandwidth 1,5 kbytes/sec, bila file yang diakses melebihi 64Kbte
  • umum dengan bandwidth 1 kbytes/sec, bila file yang diakses melebihi 32 Kbyte
Contoh 2
acl multimedia url_regex -i \.mp3$ \.rm$ \.mpg$ \.mpeg$ \.avi$ \.dat$
delay_pools 1
delay_class 1 1
delay_parameters 1 1000/16000
delay_access 1 allow multimedia
delay_access 1 deny ALL
Ket :
Delay pools yang digunakan untuk membatasi donlot file untuk extensi tertentu.
Gunakan ACL url_regex untuk mengatasi hal ini.
Contoh diatas digunakan untuk membatasi donlot file multimedia hingga 1 kByte/sec.
Contoh 3
acl JAM_KANTOR time SMTWHFA 07:00-18:00 

delay_pools 2 delay_class 1 2
delay_parameters 1 24000/32000 -1/-1
delay_access 1 allow riset JAM_KANTOR
delay_access 1 deny all 

delay_class 1 2
delay_parameters 2 8000/8000 -1/-1
delay_access 2 allow riset !JAM_KANTOR
delay_access 2 deny all
Ket :
Pada jam kantor (07:00 – 18:00) speed yang diberikan hingga 256 kbps pada masing-masing host, dan di luar jam kantor hanya diberikan speed hingga 64 kbps.
Atau jika anda kesulitan dengan konfigurasi manual seperti diatas, silahkan instal WebMin.
Diatas ini adalah konfigurasi delay pool pada squid versi 3. Bukan cuma 3 class tapi hingga 5 class. Saya belum mencari tau tentang 2 class tambahan yang ada di squid versi 3 ini.
Dalam bentuk script, konfigurasi diatas akan berbentuk
acl manager proto cache_object
acl localhost src 127.0.0.1/32
acl to_localhost dst 127.0.0.0/8
acl localnet src 10.0.0.0/8 # RFC1918 possible internal network
acl localnet src 172.16.0.0/12 # RFC1918 possible internal network
acl localnet src 192.168.0.0/16 # RFC1918 possible internal network
acl SSL_ports port 443
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 # https
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # wais
acl Safe_ports port 1025-65535 # unregistered ports
acl Safe_ports port 280 # http-mgmt
acl Safe_ports port 488 # gss-http
acl Safe_ports port 591 # filemaker
acl Safe_ports port 777 # multiling http
acl CONNECT method CONNECT
acl download url_regex -i ftp \.exe$ \.mp3$ \.mp4$ \.tar.gz$ \.gz$ \.tar.bz2$ \.rpm$ \.zip$ \.rar$
acl download url_regex -i \.avi$ \.mpg$ \.mpeg$ \.rm$ \.iso$ \.wav$ \.mov$ \.dat$ \.mpe$ \.mid$
acl download url_regex -i \.midi$ \.rmi$ \.wma$ \.wmv$ \.ogg$ \.ogm$ \.m1v$ \.mp2$ \.mpa$ \.wax$ \.3gp$
acl download url_regex -i \.m3u$ \.asx$ \.wpl$ \.wmx$ \.dvr-ms$ \.snd$ \.au$ \.aif$ \.asf$ \.m2v$
acl download url_regex -i \.m2p$ \.ts$ \.tp$ \.trp$ \.div$ \.divx$ \.mod$ \.vob$ \.aob$ \.dts$
acl download url_regex -i \.ac3$ \.cda$ \.vro$ \.deb$
acl warnet_ON time 10:00-23:00
delay_pools 1

delay_class 1 3
delay_parameters 1 -1/-1 24000/32000 16000/32000
delay_access 1 allow localnet
delay_access 1 allow download
delay_access 1 allow warnet_ON
delay_access 1 deny manager localhost to_localhost localnet SSL_ports Safe_ports CONNECT download
Konfigurasi diatas hanya sebagian yang bisa kita terapkan pada squid, selebihnya silahkan googling lebih jauh.

Tidak ada komentar:

Posting Komentar