Wednesday, October 7, 2009

Menggabungkan Proxy Squid ZPH dan Bandwidth Management HTB Tools

Cukup penting untuk warnet.

Illustrasi :


Semua warnet ingin memberikan pelayanan yang memuaskan kepada konsumennya, salah satunya akses internet yang cepat. Untuk pemodal besar hal itu tidak akan terlalu menjadi masalah, tinggal menambah bandwidth internet yang tentu saja juga berpengaruh terhadap pengeluaran biaya operasional. Namun bagi warnet pemula dengan tongpes tapi ingin bagus dan cepat tentu saja harus memutar otak untuk mengakalinya.

Sebagai contoh warnet teman saya yang hanya berlangganan speedy paket unlimited kecepatan 384 kbps dengan 6 cilent. Jika kecepatan speedy sedang maksimal maka tiap client akan mendapatkan jatah 384 kbps : 6 = 64 Kbps atau 8 KBps (cat : 8 bit = 1 byte), nah nyatanya kecepatan speedy adalah share, tergantung jumlah user pada saat yang sama, dan bisa dikatakan sangat jarang kecepatan speedy bisa mencapai kecepatan maksimal.

Untuk itu server proxy sangat dibutuhkan untuk mengelabuhi konsumen, karena dengan cache yang ada di server proxy client bisa mendapatkan kecepatan lokal untuk membuka halaman web yang sudah dicache (pernah dibuka/dikunjungi). Client hanya melakukan akses langung ke internet jika client mengakses halaman yang belum dicache oleh proxy. Proxy yang lazim dipakai oleh linux adalah Squid, selain opensource, performanya sudah banyak terbukti.

Untuk mengatasi rebutan bandwidth antar client dibutuhkan pembagian bandwidth, bisa dibayangkan jika tanpa pembagian bandwidth, jika satu cilent saja download menggunakan addons Downthemall milik mozilla firefox saja yang hanya bisa memecah proses download maksimal 10 part (1 client download dianggap ada 10 client melakukan permintaan download secara bersama), maka habislah bandwidth disedot oleh 1 client saja. Apalagi dengan menggunakan download accelerator yang lain (getRight, IDM, DAP) yang bisa memecah proses download sampai 100 part. Untuk urusan bandwidth management (pembagian bandwidth) ini aplikasi yang cukup mudah digunakan di lingkungan Linux adalah HTB Tools.

Nah sekarang masalahnya adalah bagaimana menggabungkan Squid dan HTB Tools yang kerjanya agak kontradiktif berdasarkan fungsinya (bertolak belakang). Squid salah satunya digunakan untuk mempercepat akses internet dari client dengan memanfaatkan cache yang bisa diakses secara lokal, tapi HTB Tools malah mau membatasi jatah kecepatan bandwidth maksimal tiap client. Jadi walaupun server Squid proxy menyediakan cache page yang sudah pernah dibuka untuk bisa diakses secara lokal (dengan kecepatan LAN) tapi karena kecepatan bandwidth maksimal sudah ditentukan oleh HTB Tools maka client tetap hanya bisa mengakses cache tersebut dengan kecepatan yang ditentukan oleh HTB Tools.


Harapan : apakah bisa fungsi pembagian bandwidth dari HTB Tools hanya berlaku untuk akses langsung client ke internet (untuk mengakses halaman web yang belum di cache), sedangkan untuk mengakses cache proxy tanpa pembatasan dari HTB Tools ???

Solusi : Squid menyediakan fasilitas ZPH (Zero Penalty Hit) adalah cara untuk memberi tanda pada paket yang diambil dari cache server proxy, atau istilahnya paket TCP-HIT. Dengan demikian jika kita menggabungkan dengan HTB Tools, maka kita bisa mengatur agar HTB Tools membaypass paket yang sudah ditandai (TCP-HIT).

Untuk Ubuntu 8.10 atau yang lebih baru, paket ZPH sudah include di dalam Squid3, selain itu kita harus mem = patch ZPH ke Squid dulu untuk menggunakannya. Untuk mempermudah gunakan versi Ubuntu terbaru, disini saya menggunakan Ubuntu 9.04 Jauty Jackalope.

Langkah-langkah mengkombinasikan Squid ZPH dengan HTB Tools.


1. Pastikan Squid sudah terinstal dan bisa berjalan dengan baik. Kalau belum tau caranya bisa dilihat disini.

2. Pastikan HTB Tools sudah terinstal dan bisa berjalan dengan baik. Kalau belum tau caranya bisa dilihat disini.


3. Tambahkan 4 baris berikut di squid.conf , bisa diletakkan di akhir file.
zph_mode tos
zph_local 0x30
zph_parent 0
zph_option 136


4. Restart squid

5. generate file konfigurasi HTB Tools dengan menggunakan q_parser, dengan perintah :

$sudo q_parser eth1 10000 10000 /etc/htb/eth1-qos.cfg > /home/user/eth1-qos.sh


Kalau masih muncul pesan error permision denied, bisa di coba dengan login sebagai root dulu, dengan perintah :

$sudo –i

(tanda $ akan berubah menjadi #)

6. Edit file hasil generate (eth1-qos.sh), cari baris :

$TC qdisc add dev $DEV parent 1:0x10 handle 0x10: pfifo limit 5


tambahkan baris berikut dibawahnya :

$TC class add dev $DEV parent 1:1 classid 1:0x15 htb rate 10Mbit
$TC filter add dev $DEV parent 1:0 protocol ip prio 1 u32 match ip protocol 0x6 0xff match ip tos 0x30 0xff flowid 1:15


7. Ubah permision eth1-qos.sh agar bisa dieksekusi, dengan perintah :

$udo chmod 775 /home/user/eth1-qos.sh

8. Jalankan file eth1-qos.sh, dengan perintah :

$sudo /home/user/eth1-qos.sh


9. Kalau ingin file tersebut bisa langsung dijalankan saat booting (komputer baru dinyalakan), tambahkan baris perintah tersebut di file /etc/rc.local



Nah sudah jadi deh kombinasi squid + ZPH dan HTB Tools
Selamat mencoba ......


4 comments:

Anonymous said...

bos, squid yang dipake versi berapa ya?

ak cari2 kok katanya di squid 3 belum ada yang zph nya lgsg terintegrasi (tanpa di patch)...

terus, kira2 squid (versi 3) nya yg integrated zph itu cuman ada di ubuntu, atau squid yang install sendiri juga udah ada?

(tolong reply ke e-mail bos, ndasbulous@gmail.com)
thanks...

Lutfi said...

to ndasbulous@gmail.com : bos, squid kan paket terpisah dr ubuntu, so ga mungkin lah klo hanya squid bawaan ubuntu yg udah include zph tanpa d patch, saya coba squid3 bawaan ubuntu 8.10 sdh include zph-nya (cuman sy lupa versi squidnya). Biar aman download aj squid versi terbaru ...ok

ncuptea said...

Disepengalaman saya di lucid,karmic server sekalipun default squid ada di 2.7 an dgn apt-get nya yg support zph. Tapi karena saya sekarang nginstall squid3 dgn apt-get install squid3 dan udah jalan secara transparent dah pas saya terapin HTB berbasis web 'webhtb' ternyata squid masih terlimit. Saya cek feature zph di squid-cache.org ternyata versi 3.0,3.1 ga di support zph mode lagi.

Boleh liat ga file konfigurasi squid versi 3 nya berikut zph di dalamnya. Kalo bisa report hasil htb nya dong.

Dapur Kita said...

setahuku, untuk squid 2.7xx menggunakan ZPH (Zero Penalti Hit)

tapi untuk squid3.xx menggunakan QosFlow

Related Post :