Minggu, 21 September 2008

Setting Squid Delay Pools

Teori delay pool.

Delay pool itu kita ibaratkan dengan wadah besar yang berisi air. Yang kalau dibuka kerannya bisa mengalirkan air dengan kecepatan 512 liter air per detik.
Airnya hendak kita bagi-bagi ke orang-orang. Namun orang yang menampung air tersebut ada 2 jenis, yang gila air dan yang tidak gila air.
Nah, untuk orang-orang yang gila air, kita berikan satu corong dengan kekuatan 100 liter per detik dengan masing masing mendapat kecepatan 5 liter per detik, dan yang 100 liter per detik inilah yang diperebutkan oleh orang-orang yang gila air tadi. Artinya berapa banyak pun mereka mengambil air, kekuatan maksimal total untuk semua orang yang gila air itu adalah 100 liter per detik.
Untuk orang-orang yang tidak gila air kita buka keran sebesar 400 liter per detik dengan kecepatan masing masing 64 liter per detik. Artinya karena orang tersebut hanya sekali sekali saja mengambil air, saat menampung air akan terasa lebih cepat dan tidak terganggu oleh orang-orang yang gila air tadi.
Sehingga yang tidak gila air tetap dengan nyaman mengambil air
Terapkan hal tersebut di proxy, dengan menggunakan delay_pools

Kita punya bandwidth 512kbps.

ada 2 macam traffik yang hendak kita layani yaitu browsing dan download file tertentu(gila air dan tidak gila air)
untuk ini di proxy kita ketikkan:
delay_pools 2
selanjutnya, kita akan memberitahukan proxy bahwa yang di layani adalah orang yang download file tertentu. Maka settingnya adalah:

delay_class 1 2 allow filedownload

timbul pertanyaan, angka 1 dan 2 itu maksudnya apa?.
Angka 1 berarti layanan yang hendak dibatasi.
Angka 2 berarti jenis pembatasan yang hendak dilakukan ( ada 3 jenis pembatasan/class/kelas, selanjutnya dibicarakan)

Selanjutnya adalah menentukan kecepatan rata-rata yang diterima oleh orang orang yang sedang mendownload dan berapa kecepatan yang hendak dibagikan secara global untuk download saja. Misalnya kita hendak memberikan kecepatan global 100kb/s dan masing-masing maksimum mendapatkan kecepatan 48kb/s, maka penulisannya adalah:

delay_parameters 1 12500/12500 6000/6000

satuan kecepatan dalam hal ini adalah byte. 1 byte = 8 bit, 1 kilobyte = 8 kilobit, 6 kilobyte = 6 x 8 kilobit = 48 kilobit (48kb).
16000/16000 = 16000 pertama menyatakan kecepatan global gabungan traffik download, 16000 kedua menyatakan kecepatan global maksimum dari gabungan traffik download.
6000/6000 = 6000 pertama menyatakan kecepatan awal individual saat mulai download, dan 6000 yang kedua menyatakan kecepatan maksimum individual saat download berlangsung.

Selanjutnya kita hendak menyatakan, tidak ada yang lain selain download yang dibatasi yang serupa, maka dituliskan
delay_access deny all

Untuk selanjutnya kita hendak menentukan kecepatan orang yang hanya browsing saja.
Bandwidth yang dialokasikan 400kb, dan per user mendapat kecepatan 128kb
Karena penjelasan sintax sudah ada di atas, maka langsung saja ya:

delay_class 2 2
delay_access 2 allow my_network
delay_parameters 50000/50000 16000/16000
delay_access 2 deny all

Sebelumnya, kita harus menjelaskan kepada proxy apa itu filedownload dan apa itu my_network.
filedownload berisi semua extension yang kemungkinan akan di download user dengan kapasitas file yang besar. Contohnya exe,zip,rar, dan sebagainya.
Cara penulisannya :
acl filedownload url_regex \.exe$ \.zip$ \.rar$

Untuk my_network, merupakan gabungan ip address client, misalnya semua client menggunakan ip class c yaitu 192.168.1.xxx, maka dituliskan

acl my_network src 192.168.1.0/24

Selengkapnya delay_pools yang dituliskan adalah
acl all src 0.0.0.0/0
acl my_network src 192.168.1.0/24
acl filedownload url_regex \.exe$ \.zip$ \.rar$

delay_pools 2
delay_class 1 2
delay_acess 1 allow filedownload
delay_access 1 deny all
delay_parameters 12500/12500 6000/6000

delay_class 2 2
delay_access 2 allow my_network
delay_access 2 deny all
delay_parameters 50000/50000 16000/16000

Pertanyaan:
Kenapa ada sisa 12kb yang tidak dipergunakan? Karena 400kb + 100kb = 500kb.
Jawaban:
Ini berguna agar tidak terjadi bottle neck (setidaknya) terhadap proxy, sehingga proxy dapat dengan lancar melakukan request ke internet.

Untuk jenis pembatasan/class, ada 3 —- bersambung. Read More..